Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: afw
-
Labels:
-
Story Points:10
-
Epic Link:
-
Sprint:AP F20-6 (November), AP S21-1 (December)
-
Team:Alert Production
-
Urgent?:No
Description
Once FilterLabel is implemented, add it to a new persistence format for ExposureInfo. Ensure that Exposure has methods that work in both Filter and FilterLabel, and that older, Filter-based files are converted in a reasonable manner. This is a large ticket, as it requires that backwards-compatibility code be provided at both the class and persistence levels.
I recommend that DM-27168 be done before this ticket, so that any discoveries about unexpected use cases can be incorporated into FilterLabel early.
Attachments
Issue Links
- blocks
-
DM-27754 Make Exposure formatters more generic
- To Do
-
DM-27170 Deprecate and phase out afw::image::Filter
- Done
-
DM-27178 Standardize aliases on Gen 2 Exposure get
- Done
- has to be done after
-
DM-27168 Phase out use of FilterProperty
- Done
- is blocked by
-
DM-21333 Implement afw.image.Filter replacement(s)
- Done
- is triggered by
-
RFC-730 Replace afw.image.Filter with simple label-based classes
- Implemented
- relates to
-
DM-28004 ExposureInfo may persist dummy FilterLabels
- Done
-
DM-28298 Missing FilterLabel in testdata_jointcal raws
- Won't Fix
-
DM-27696 Fix Boost deprecation warning in afw
- Done
Discussion on
DM-27167concluded that the only aliases being used in the current Stack are the afw_name fields (HSC/r2, HSC/i2, DECam/SOLID), which are used as the canonical name for old-style filters and therefore written in exposures and catalogs. Unfortunately, we can't remove use of these names in a self-consistent fashion without breaking some code, somewhere, that depends on the current hybrid system.John Parejko suggested simply adding special-case code that detects these three names on reading old Exposure files (in addition to the band vs. physical check discussed on
RFC-730). There is also some special-case code surrounding these names (https://github.com/lsst/obs_subaru/blob/master/python/lsst/obs/subaru/filterFraction.py) which would need to be modified to support physical filter names in addition to afw_names.Most of the Stack code assumes that Filter::getName returns a band, so the new Exposure::getFilter should prefer the band as the name passed to the Filter constructor. The exceptions, which would need to be rewritten before
DM-27170, are:However, to make sure we haven't overlooked any cases, we should probably post a warning on CLO before merging.