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
DM-20994: Write how to make gen3 obs package guide #181
Conversation
5576ca0
to
fc3948e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a reasonable start. Is the intent to also include examples of how to write the instrument and rawformatter classes themselves?
#################################### | ||
|
||
These instructions describe how to create a package that allows the LSST Science Pipelines to read raw data from a telescope and instrument using the gen3 middleware and ingest it into an LSST repository. | ||
"Ingestion" is the process of reading raw files, interpreting their metadata, and formatting the data in a way the :py:mod:`Data Butler <lsst.daf.butler>` can read. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure what "formatting the data" means in this context. Ingestion always means that the file is added to the repository without being changed in any way. We associate it with a Formatter
class to tell butler how to read the file but this sentence implies we might change the data on ingest.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point: I was never quite clear on what exactly happens with the Formatter during Ingest. Could you please offer an alternate wording?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"...interpreting their metadata, recording how to read the data, and copying it into the butler datastore" ?
|
||
the tests should fail, as there is no Example `Instrument` yet. | ||
|
||
Next, add a file in ``python/lsst/obs/example/instrument.py`` containing a subclass of `Instrument`, `ExampleCam`, which at minimum overrides these abstract methods: `Instrument.getName`, `Instrument.getCamera`, `Instrument.register`, `Instrument.filterDefinitions`, and define ``self.configPaths`` in ``__init__``. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the ExampleCam
here the name of the Instrument
subclass? I'd expect that to be ExampleCamInstrument
(and double backticks).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For HSC and DECam, we named them "HyperSuprimeCam" and "DarkEnergyCamera". I see you did LsstCamInstrument
for LSST. Should we change the former two?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I would understand it better if the parenthetical said ", named ExampleCam
,"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to go with ExampleCamInstrument
here and update HSC/DECam? Now's our chance to enshrine the "correct" way for the future. I don't have a strong opinion one way or the other.
I do have the |
630e0a3
to
518a64c
Compare
518a64c
to
74320f2
Compare
037a5a7
to
86e68ea
Compare
No description provided.