Details
-
Type:
RFC
-
Status: Implemented
-
Resolution: Done
-
Component/s: DM
-
Labels:None
Description
Newer versions of cfitsio require uppercase header names as a matter of standards conformance. This necessitates modifications to all code that is expecting to find lowercase or mixed-case names in a PropertyList derived from a FITS header; it should use an uppercase name instead. Code that is inserting into a PropertyList that is to be persisted as a FITS header should also use uppercase only for consistency. We will modify the afw FITS writing code to warn if lowercase characters are detected in headers.
Other PropertyList uses that have no FITS persistence can use any case as desired.
We would like to adopt a new version of cfitsio prior to Release 20.0 (which is expected to be release at the end of May 2020), rather than having a one-release transition period, as this change enables the nearly-complete use of conda and conda-forge for the third-party dependencies of the Science Pipelines stack and use of the conda compilers for building it.
This RFC explicitly permits the use of the new cfitsio for Release 20.0 instead of 21.0.
Attachments
Issue Links
- is triggering
-
DM-21989 Package a new version of CFITSIO ( 3.47 / 3470 )
- Done
-
DM-24376 afw should warn when FITS headers case may be modified (cfitsio > 3380)
- Done
- mentioned in
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
I have been trying to follow the call stack of Fits::readMeatadata->Fits::forEachKey in fits.cc stack into cfitsio 3.47, and it seems like that path does NOT uppercase on read.
https://github.com/lsst/afw/blob/706b86db4bbcb8a2ac40b529dbf274a30fb6761b/src/fits.cc#L791