Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: jointcal, meas_mosaic, obs_base, obs_cfht, obs_decam, obs_subaru
-
Labels:
-
Story Points:2
-
Epic Link:
-
Sprint:DRP S18-3
-
Team:Data Release Production
Description
meas_mosaic writes its WCS as FITS header with no attached image, which requires loading code to use the following pattern:
md = butler.get("wcs_md", ...)
|
wcs = lsst.afw.image.makeWcs(md)
|
instead of simply
wcs = butler.get("wcs", ...)
|
Using a header-only format also limits us to FITS-standard WCS mappings.
Because Wcs inherits from afw::table::io::Persistable it already has writeFits and readFits methods that utilize our FITS binary table format, which will be able to save more complex WCS solutions. It's also compatible (or will be soon, on DM-10728) with the "FitsCatalogStorage" butler storage type, so we should be able to fix this by:
- Redefining "wcs" to be a "FitsCatalogStorage" dataset, instead of a "FitsStorage" exposure in all mappers;
- modifying meas_mosaic (and possibly jointcal, if needed) to use butler.put directly.
- modifying any code that consumes the wcs dataset to use butler.get directly.
In addition, this issue should include creating a simple command-line script that can be used to convert a data repository from the old format to the new one.
Attachments
Issue Links
- blocks
-
DM-13579 Apply jointcal_wcs and jointcal_photoCalib directly in coaddition code
- Invalid
- is triggered by
-
RFC-450 Write meas_mosaic and jointcal WCS using FitsCatalogStorage
- Implemented
- is triggering
-
DM-13760 pipe_analysis needs updates for the wcs dataset name changes
- Done
- relates to
-
DM-12796 jointcal butler templates don't include filter
- Invalid
Oh, and I think pipe_analysis is fine as is (it only checks on datasetExists, the "getting" is delegated to applyMosaicResultsCatalog in lsst.meas.mosaic.updateExposure).