Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sensor model and reference system documentation #36

Merged
merged 14 commits into from
Feb 27, 2024

Conversation

AustinSanders
Copy link
Contributor

@AustinSanders AustinSanders commented Feb 9, 2024

Likely needs some restructuring, but not sure what the best split is. Maybe split the ecosystem stuff off from the sensor models doc, leaving us with 1. reference systems / reference frames 2. Sensor models + the CSM 3. Software ecosystem (3a USGS ecosystem, 3b extended ecosystem)

Licensing

This project is mostly composed of free and unencumbered software released into the public domain, and we are unlikely to accept contributions that are not also released into the public domain. Somewhere near the top of each file should have these words:

This work is free and unencumbered software released into the public domain. In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain.

  • I dedicate any and all copyright interest in this software to the public domain. I make this dedication for the benefit of the public at large and to the detriment of my heirs and successors. I intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.

Copy link
Collaborator

@Kelvinrr Kelvinrr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some comments on structure.

Copy link
Contributor

@jlaura jlaura left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a lot of good stuff in this document. A few overarching thoughts:

  1. The depth of information varies widely. I would pick a persona and write this for them. Then, I would write it again for someone with a different level of knowledge. I suspect the documents will vary greatly in the vocabulary and depth of information provided.
  2. As noted in a comment, this needs to be a number of smaller documents with an overarching start here, end here, you will have a conceptual understanding of _________.

!!! INFO "Reference System vs Reference Frame"
A __reference system__ provides an origin, axes / planes, and a fixed point that allows for the description of an object. A __reference frame__ is a description within the context of that reference system, and provides the location of an object at a given moment in time.

Finally, reference frames often have dependencies on other reference frames, which results in a "frame chain" that must be calculated. For example, consider a common scenario in which a camera is intended to record an image of a planetary body. The camera is mounted on a gimbal, which is mounted on the spacecraft. In order to move from the image plane to a BCBF system, it is necessary to know the location of the camera and the planetary body. However, in order to know the location of the camera, it is necessary to know the extrinsics not only of the camera, but also of the gimbal and the spacecraft to which it is mounted. The dependency chain that is formed is known as a "frame chain," and the entire chain of extrinsics must be calculated in order to accurately model the objects' relative locations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would take this into a new section and then provide a simple example. For example, take an imaginary sensor, fixed to a spacecraft, and describe the chain of transformations to get from the sensor position in the bodies reference frame. Just include frame chain stuff, not distortion, focal/pixel, etc. Just transform the position of the sensor into the body frame.

@AustinSanders
Copy link
Contributor Author

For convenience of review, mermaid sequence diagram renders to:
mermaid-diagram-2024-02-16-120843

@AustinSanders AustinSanders marked this pull request as ready for review February 16, 2024 20:03
@jlaura
Copy link
Contributor

jlaura commented Feb 16, 2024

Instead of ISIS Data / PDS Data, would you consider 'intrinsics (e.g., SPICE instrument kernel)' and 'extrinsics (e.g., SPICE ephemeris)' or something like that? My thinking is that the source really does not matter, it's the content that is important.

Copy link
Contributor

@jlaura jlaura left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AustinSanders Overall, this is a huge improvement over the last version that got reviewed. I have a bunch of consider comments in here that you should feel very free to consider and ignore.


## The Community Sensor Model

Because the only requirement of a sensor model is that it models a sensor's geometric information, the design and implementation of a sensor model largely remains open-ended. Of particular importance is the sensor's interface, i.e. what information is required to create the model and what information is produced by the model. Without a concrete interface specification, each sensor model may require and provide its own set of information, which makes it incredibly difficult to facilitate interoperability between sensor models. In order to address these concerns about interoperability, the US defense and intelligence community established the [Community Sensor Model (CSM) working group](https://gwg.nga.mil/gwg/focus-groups/Community_Sensor_Model_Working_Group_(CSMWG).html) , which is responsible for developing and maintaining a set of standards upon which sensor models can be implemented. The resulting CSM standard describes an application programming interface (API) for multiple sensor types.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am struggling a little here and wonder if other readers might too. The topic sentence is 100% correct. When I read 'the design and implementation of a sensor model', I am not sure whether the sensor model is a mathematical construct, software (it definitely does not read as such), or something physical, like a camera. I wonder if this sentence could be re-written in a way to make it clear that the CSM is computer code that realizes capabilities that one normally wants to accomplish with the mathematical model that is the sensor model?

@AustinSanders AustinSanders changed the title Unfinished draft of sensor-models.md Sensor model and reference system documentation Feb 16, 2024
@jlaura jlaura self-requested a review February 22, 2024 19:26
@jlaura
Copy link
Contributor

jlaura commented Feb 26, 2024

@AustinSanders Apologies, I had a change request in, but you made a ton of changes and it looks good. I think any additional changes can/should happen incrementally after publication.

The link check CI failure looks like a red-herring because of how the @TODO is structured.

@jlaura
Copy link
Contributor

jlaura commented Feb 27, 2024

@AustinSanders Any chance the new glossary additions can go in in another PR? Happy to review. This is a big add to this PR that appeared super close to being mergable.

@jlaura jlaura merged commit 6073280 into DOI-USGS:main Feb 27, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants