-
Notifications
You must be signed in to change notification settings - Fork 2
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-43340: Add exposure pairing for full array mode #227
Conversation
b18e855
to
86be05f
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 is really cool, thanks for adding this in!
Can you please update the doc/uml/taskClass.uml file and the developer guide page?
Some pair tables and butler questions (these might kind of overlap but I'm just writing them down as they occurred to me reading the code):
- How do you envision pair tables being created/stored in production?
- Do we want to ingest pair tables for every run into their own collection or would we have a general pair table that is regularly updated and overwritten? Are we then going to have lots of collections with just a pair table as their contents?
- How we will know which pair tables to use when?
|
||
# For each extra focal exposure, find the best intra focal exposure. | ||
# Note that it's possible that the same intra exposure is paired with | ||
# multiple extra exposures. |
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 allow the same intra exposure to be paired with multiple extra exposures? Would it be better to create a copy of the intra table and remove rows as they are paired?
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.
That's an interesting idea. I'm on the fence as to whether that should be the only mode of operation, or if this should be a config setting. Do you have a preference?
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.
Yeah, I'm all for keeping our options open and using a config to set this.
dbcb974
to
47c7cef
Compare
4378ed8
to
41fe47d
Compare
41fe47d
to
e596e86
Compare
Responses to general questions:
We'll have to experiment. It might turn out that we can mostly rely on the automatic pairer. One option we could think about is creating a script that runs the automatic pairer and writes the result to a CSV file that we can then go and tweak by hand. I'm happy to do that here if you like, or leave it for a future ticket.
Yeah, that's a good question. One pair table per collection is probably the easiest right now; I don't think butler products generally work very well with edit-in-place in mind, though you can mimic that with chain-collections where newer runs shadow older runs.
Possibly many run-collections. Hopefully fewer chain-collections though.
I think maintaining a default pair table chain-collection may make sense here. Quick estimate might be ~500 pairs per night and ~100 nights of commissioning. I don't think having a 50,000 row pair table is that bad. Off-main pairing experiments will have to maintain their own collections. (or develop other Pairer subtasks). |
b816306
to
fb64507
Compare
Hey Bryce, |
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.
Thanks for the generate script, all my comments have been addressed. Just one comment on the UML that I think is needed based upon what we've added before.
@@ -42,4 +42,6 @@ GenerateDonutFromRefitWcsTaskConfig *-- GenerateDonutFromRefitWcsTaskConnections | |||
GenerateDonutCatalogWcsTaskConfig <|-- GenerateDonutFromRefitWcsTaskConfig | |||
GenerateDonutFromRefitWcsTask *-- GenerateDonutFromRefitWcsTaskConfig | |||
GenerateDonutCatalogWcsTask <|-- GenerateDonutFromRefitWcsTask | |||
ExposurePairer *-- ExposurePairerConfig | |||
TablePairer *-- TablePairerConfig |
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 CutOutDonutsScienceSensorTaskConfig *-- ExposurePairer
needs to be added as well.
6dd0a3a
to
ba7e5cd
Compare
PR adds two new subtasks:
ExposurePairer
: automatically pairs intra/extra exposures based on focusz and proximity in time/space/rotation.TablePairer
: pairs intra/extra exposures based on a pre-ingested table of exposure IDs.Also included are scripts to ingest above table, and modifications to CutoutDonutsScienceSensorTask to use the pairers.