Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: daf_butler
-
Story Points:8
-
Epic Link:
-
Team:Data Release Production
-
Urgent?:No
Description
In discussions with Robert Lupton, we decided that it would be best for multiple mutually-inconsistent associations of exposures (snaps) into visits should be permitted in the same Gen3 data repository. We cannot assume that we will be able to do that association in advance and not want to revisit it in later reprocessing.
On the database side, I think we'd need to add a field to the visit table indicating which of several named systems the visit belongs to, while ensuring that visit IDs are unique across all systems. We'd select exactly one system via configuration to be used by any butler client, though we'd need to think about when we'd have to be able to refer to other systems instead of relying on that selection (e.g. when interacting with datasets produced on some other system). We'll also need to move the exposure.visit field into a separate join table.
The way information about visits will be transmitted from the LSST hardware is via a "GROUP" header card; to make use of that, we should:
- propagate that through ObservationInfo into the exposure table during raw ingest;
- remove visit definition (and all of the stuff dealing with visit regions) from raw ingest;
- add a new task to be run after ingest that creates visits (with regions, where appropriate) from groups of exposures with the same GROUP value. That would involve generating visit IDs and names from GROUP via some algorithm.
For instruments that want visits to be 1-1 with exposures, we'll just define GROUP accordingly. If we ever want to define a set of visits that isn't strictly derived from GROUP, we can write an alternate version of the task that populates the same tables via some other means.
Attachments
Issue Links
- blocks
-
DM-23445 Move visit definition out of raw ingest for Gen3
- Done
- is blocked by
-
DM-23208 Add exposure group to gen3 registry
- Done
- is duplicated by
-
DM-23843 Incremental ingest of raw images into Gen3 repository
- Invalid
- is triggered by
-
RFC-484 The Gen3 Butler Registry Schema
- Implemented
Activity
Risk Score | 0 |
Remote Link | This issue links to "Page (Confluence)" [ 17995 ] |
Remote Link | This issue links to "Page (Confluence)" [ 20471 ] |
Description |
In discussions with [~rhl], we decided that it would be best for multiple mutually-inconsistent associations of Exposures (snaps) into Visits should be permitted in the same Gen3 data repository. We cannot assume that we will be able to do that association in advance and not want to revisit it in later reprocessing.
This will entail adding a new DataUnit (proposed name is "SnapSystem") that defines a named association of Exposure into Visits, along with a join table that relates Exposure, Visit, and SnapSystem. The visit field will be removed from Exposure itself, and some metadata from Visit will be moved or copied to Exposure (including at least the region). |
In discussions with [~rhl], we decided that it would be best for multiple mutually-inconsistent associations of exposures (snaps) into visits should be permitted in the same Gen3 data repository. We cannot assume that we will be able to do that association in advance and not want to revisit it in later reprocessing.
On the database side, I think we'd need to add a field to the visit table indicating which of several named systems the visit belongs to, while ensuring that visit IDs are unique across all systems. We'd select exactly one system via configuration to be used by any butler client, though we'd need to think about when we'd have to be able to refer to other systems instead of relying on that selection (e.g. when interacting with datasets produced on some other system). We'll also need to move the {{exposure.visit}} field into a separate join table. The way information about visits will be transmitted from the LSST hardware is via a "GROUP" header card; to make use of that, we should: * propagate that through ObservationInfo into the exposure table during raw ingest; * remove visit definition (and all of the stuff dealing with visit regions) from raw ingest; * add a new task to be run after ingest that creates visits (with regions, where appropriate) from groups of exposures with the same GROUP value. That would involve generating visit IDs and names from GROUP via some algorithm. For instruments that want visits to be 1-1 with exposures, we'll just define GROUP accordingly. If we ever want to define a set of visits that isn't strictly derived from GROUP, we can write an alternate version of the task that populates the same tables via some other means. |
Labels | gen3-middleware | gen2-deprecation-blocker gen3-middleware |
Story Points | 4 | 2 |
Status | To Do [ 10001 ] | In Progress [ 3 ] |
Labels | gen2-deprecation-blocker gen3-middleware | gen2-deprecation-blocker gen3-middleware gen3-registry-incompatibility |
Story Points | 2 | 8 |
Reviewers | Tim Jenness [ tjenness ] | |
Status | In Progress [ 3 ] | In Review [ 10004 ] |
Status | In Review [ 10004 ] | In Progress [ 3 ] |
Status | In Progress [ 3 ] | In Review [ 10004 ] |
Status | In Review [ 10004 ] | Reviewed [ 10101 ] |
Resolution | Done [ 10000 ] | |
Status | Reviewed [ 10101 ] | Done [ 10002 ] |
Epic Link |
|
Urgent? | off |
I have split some of this work off onto
DM-23445.