[Back to the main proposals page]

Proposal 1: To increase the allowed length of FITS keyword names

Definition

A new type of 'free-format' FITS keyword is defined in which the `= ' value indicator (an equals sign followed by a space character) that separates the keyword name from the keyword value is no longer required to be in bytes 9 and 10 of the keyword record. The value indicator may instead be located anywhere between bytes 9 - 10 and bytes 55 - 56 in the keyword record. This allows keyword names that are up to 54 characters long.

These new long keyword names inherit the same restrictions that apply to the standard 8-character names. The names must be left-justified (starting in byte 1 of the keyword record) and can contain only the same set of characters that are allowed in standard FITS keyword names. Non-significant space characters may occur between the end of the keyword name and the `= ' value indicator.

Examples

The following keyword records conform to this convention:

00000000011111111112222222222333333333344444444445555555555666666666677777777778
12345678901234567890123456789012345678901234567890123456789012345678901234567890
MY_STRING_VALUED_KEYWORD = 'Mary had a little lamb'  / string value
MY_LOGICAL_KEYWORD=     T   / this keyword has a logical value
MAXIMUM_ALLOWED_EXPOSURE_TIME = 3600 / [s]  time in units of seconds
FLUX_POLYNOMIAL_COEFFICIENT1 =  4500.  /  These are a series of
FLUX_POLYNOMIAL_COEFFICIENT2 =  11.0  /  indexed keywords which have
FLUX_POLYNOMIAL_COEFFICIENT3 =  0.015  / the form KEYWORDn where
FLUX_POLYNOMIAL_COEFFICIENT4 =  0.000078 /  'n' is the index number

The following keyword records do not conform to this convention:

00000000011111111112222222222333333333344444444445555555555666666666677777777778
12345678901234567890123456789012345678901234567890123456789012345678901234567890
BACKGROUND FLUX VALUE = 0.01 / Embedded spaces are not allowed in name
BATTERY_CHARGE% = 99.0 / Illegal '%' character in name
USER_ADDRESS(STATE) = 'Texas'  / Illegal '(' and ')' characters in name
OBSERVATORY_NAME ='NOAO' / No space character following the equals sign
CAMERA123_MICRO_SHUTTER_START_LATENCY_DELAY_COEFFICIENT= 17 / name is too long

Discussion

Limiting the length of the keyword name to 54 characters leaves a minimum of 24 characters in the keyword record for the value field. This is sufficient to express the value of the largest possible 64-bit integer (20 characters, including the plus or minus sign) or a floating point number in exponential notation with 16 digits of precision and a 3-digit exponent (24 characters).

Note that these free format keyword records are permitted by the existing FITS standard. Because these keywords do not have the `= ' value indicator in bytes 9 and 10, software that does not support this new convention should interpret these keywords as having no value field, similar to the COMMENT and HISTORY keywords.