Notes On FITS Metadata Change
Notes On FITS Metadata Change
Before this
date, the files produced were not FITS-compliant. After this date, the files produced were compliant with version
4.0 of the FITS Standard (https://fits.gsfc.nasa.gov/standard40/fits_standard40aa-le.pdf). In addition to changes
needed to achieve compliance, several other changes were made to enhance readability (in preparation for final
archiving).
RSUN_OBS= 967.630554
a ' ' character occupies the byte after the byte occupied by
the '/' character
a comment occupies the bytes after the byte that the last ' ' occupies
[ a ' ' occupies the byte after the byte that the last comment character
occupies; a string containing the DRMS keyword name in curly braces
occupies the bytes after the byte that the last ' ' occupies ] (if
the FITS keyword name does not equal the DRMS keyword name - to retain
the DRMS the mapping from FITS keyword name to DRMS keyword name)
- current examples:
RSUN_OBS= 967.630554
- previously, NaN keyword values, the value to indicate a missing floating-point value
in DRMS, were represented by a non-quoted value of three characters: nan; this was
not FITS-compliant; example:
OSCNMEAN= nan
ROI_LLY1= -2147483648
a FITS keyword name (1 to 8 chars in length only) occupies the first 8 bytes
' ' characters occupy the next several bytes (determined by FITSIO keyword-
writing routines)
a '/' character occupies the byte after the byte occupied by the last ' '
character
a ' ' character occupies the byte after the byte occupied by the '/' character
the string "(MISSING)" occupies the next 10 bytes after the byte occupied by
the '/' character
a ' ' character occupies the byte after the byte that the last ')' character
occupies
a comment occupies the bytes after the byte that the ' ' occupies
[ a ' ' occupies the byte after the byte that the last comment character
occupies; a string containing the DRMS keyword name in curly braces occupies
the bytes after the byte that the last ' ' occupies ] (if the FITS keyword
name does not equal the DRMS keyword name - to retain the DRMS the mapping
from FITS keyword name to DRMS keyword name)
- current example:
+ date keywords
- previously the length of certain string keywords, like `SOURCE`, exceeded the
number of bytes available so their values were truncated; example:
SOURCE = 'hmi.lev1[:#195382928,#195382880,#195382832,#195382784,#195382736,#19'
- currently, the FITS long-string convention is used (the string continues to the
next line with one or more CONTINUE keywords; each line, other than the last one, ends in
an '&'); example:
SOURCE = 'hmi.lev1[:#195382928,#195382880,#195382832,#195382784,#195382736,#1&'
CONTINUE '95382688,#195382640,#195382592,#195382964,#195383024,#195383072,#19&'
CONTINUE '5383120,#195383168,#195383216,#195382929,#195382881,#195382833,#195&'
...
CONTINUE '3199,#195383247]' / level 1 filtergrams used to produce the observa
- previously, a user-defined format string was used to generate the values; example:
DATAMEAN= -1473.85
- currently, the "maximum" precision used the FITSIO writing routines is used;
example:
DATAMEAN= -1473.8548583984375 / [m/s] Mean value from pixels within 99% of sola
+ DRMS ID
- previously, no keyword value uniquely identified each and every data file
- currently, such a keyword, DRMS_ID, uniquely identifies each and every segment
file; its value is generated by concatenating the DRMS series, the series recnum,
and the segment, with colons separating the components; example: