I. List of Significant Changes Between the previous NOST FITS Standard Version 1.1, and the draft Version 1.2 that was released for public comment on 15 April 1998: Section Description of Changes 3: Definitions have been added, deleted, or revised: Added: ASCII NULL, DAT, Fraction, Heap, IAUFWG, Mantissa, Primary HDU, Repeat count Deleted: AIPS, CfA, ESO, NOAO, NRAO, STScI Revised: Entry, Floating point, Indexed keyword 4.6: New section describing Physical Blocking. Incorporates some text previously contained in Appendix B. 5.1.2.2: Explicitly states that null-valued keywords are allowed. 5.1.2.3: Keyword comment, if present, must be preceeded by a slash. 5.2: References to ANSI FORTRAN-77 have been removed and replaced with explicit definitions of free format values. 5.2: Keyword values are restricted to be a single value and not an array of values. 5.2.1: Fixed format character string values no longer need to be padded with blanks to be at least 8 characters long. (e.g., XTENSION= 'TABLE' is now a legal keyword record). 5.2.1: Previous requirement that reading the data values should not require decoding any more than the first eight characters of a character string value of a keyword has been dropped. 5.2.2: Explicitly states that a logical value must consist of a single `T' or `F' character, followed only by a space or a slash character. 5.2.3: Explicitly states that an integer value must not contain embedded spaces and is always interpreted as a signed decimal value. 5.2.4: Explicitly states that a real floating point value must not contain embedded spaces. The decimal point is not required, so values like 12, and 1E30 are valid, but E30 is not. 5.2.5: Fixed format for complex integers is no longer defined. Free format complex integer values must be enclosed in parentheses separated by a comma, e.g. (14, -45). 5.2.6: Fixed format for complex reals is no longer defined. Free format complex real values must be enclosed in parentheses separated by a comma, e.g. (14.5, -4.5E+5). 5.4.1.1 Explicitly states that no other keywords may intervene between the SIMPLE and last NAXISn keyword in the primary header. The SIMPLE keyword must not appear in extension headers. 5.4.1.2 Explicitly states that no other keywords may intervene between the XTENSION and last NAXISn keyword in an extension. 5.4.2 The description of the DATE and DATE-OBS keywords has been modified in accordance with the new Y2000 FITS agreement. 6.3 Definition of IEEE floating point has been moved to appendix H. 8.1 Explicitly states that no other keywords may intervene between the XTENSION and TFIELDS keywords in an ASCII table extension. The TFORM format codes must be in upper case. Numeric values in ASCII tables are always decimal, and never binary, octal, hexadecimal, or other representation. 8.1.5 New discussion about selecting a format appropriate to the data. References to ANSI FORTRAN-77 have been removed and replaced with explicit definitions of how each format should be interpreted. 8.2 Definition of the image extension has been added. 8.3 Definition of binary table extension has been moved from Appendix A into the standard itself. The TFORM format codes must be in upper case. 8.3.4 Explicit definitions are given for the possible display formats. Appendix A: (new) gives a formal syntax for keyword card images. Appendix D: (new) discusses time scale issues related to the new DATE-OBS keyword format. Appendix H: (new) defines IEEE floating point formats --------------------------------------------------------------------- II. List of Significant Changes between the draft that was made available for public comment on April 15, 1998, and the final draft dated 22 January 1999 A) First, all the changes recommended by the Technical panel at the 26 Oct meeting were made. Refer to the 'response.txt' document for a list of all the changes. B) In addition, the following minor changes were made, with the approval of the panel - added all the previous members of the Technical panel on the first page. - Section 5.1.2.2: clarified the wording about how to interpret keywords without a value indicator. - added new section 6.2.4 describing the convention for unsigned integers - Section 8.3.4, clarified the recommended display format for complex numbers. - Appendix B.3 added a discription of the 'rAw' convention for fixed length substrings C) Finally, the following mainly editorial changes were made to the draft: 1) Corrected spelling for - explictly -> explicitly - hasnot -> has not - preceed -> precede - millenium -> millennium 2) Removed spaces around the en dash in numerical ranges, e.g., 9--80 instead of 9 -- 80. 3) Changed all references to other sections of the document to use the \S symbol instead of the word "section" or "Section". 4) Changed all references to numbered equations to use "Eq." instead of "equation" or "Equation". 5) Reversed comma and quotation mark at close of opening quotation in the Overview [...Universe", -> ...Universe,"] 6) Deleted last sentence of \S 1.1, which does not seem pertinent to include in this document. 7) Changed title of \S 1.4 from "Organization and Recommendations" to "Organization of This Document" as this text here does not actually contain any recommendations. 8) Reworded \S 5.1.2.2 Value Indicator. Was: \subsubsection{Value Indicator (bytes 9--10)} \label{s:ValInd} If this field contains an ASCII ``\verb*+= +'', it indicates the presence of a value field associated with the keyword, unless it is a commentary keyword\index{keyword, commentary} as defined in \S\ref{s:comk}. (Such a commentary keyword may contain any ASCII text in columns 9--80). If the presence of a value field is indicated, that value field may be a null field; i. e., it may consist entirely of spaces. If the value field is null, the value associated with the keyword is undefined. If the value indicator is not present then columns 9--80 may contain any ASCII text. Is now: \subsubsection{Value Indicator (bytes 9--10)} \label{s:ValInd} If this field contains the ASCII characters ``\verb*+= +'', it indicates the presence of a value field associated with the keyword, unless it is a commentary keyword\index{keyword, commentary} as defined in \S\ref{s:comk}. If the value indicator is not present or if it is a commentary keyword then columns 9--80 may contain any ASCII text. 9) Reworded \S 5.1.2.3 Value/Comment Was: \subsubsection{Value/Comment (bytes 11--80)} \label{s:valcomm} This field, when used, shall contain the value, if any, of the keyword, followed by optional comments. If a comment is present, it must be preceded by a slash (hexadecimal 2F, ``{\tt /}''). A space between the value and the slash\index{slash} is strongly recommended. The value shall be the ASCII text representation of a string or constant, in the format specified in \S\ref{s:valC}. The comment may contain any ASCII\index{ASCII, text} text. Is now: \subsubsection{Value/Comment (bytes 11--80)} \label{s:valcomm} This field, when used, shall contain the value, if any, of the keyword, followed by optional comments. The value field may be a null field; i. e., it may consist entirely of spaces. If the value field is null, the value associated with the keyword is undefined. If a comment is present, it must be preceded by a slash (hexadecimal 2F, ``{\tt /}''). A space between the value and the slash\index{slash} is strongly recommended. The value shall be the ASCII text representation of a string or constant, in the format specified in \S\ref{s:valC}. The comment may contain any ASCII\index{ASCII, text} text. The point of the above changes was to make \S 5.1.2.2 less convoluted, and to move the point about null values to the description of the value field where it belongs. 10) Changed several occurrences of "i. e." to "i.e." 11) Changed last sentence of \S 5.2.3 from "... except that it may occupy any columns 11--80." to "... except that it may occur anywhere within columns 11--80." 12) Changed last sentence of \S 5.2.4 in the same way as 11). 13) Changed last sentence of \S 5.2.5 from "... anywhere in columns 11--80." to "... anywhere within columns 11--80." 14) Changed last sentence of \S 5.2.6 in the same way as 13). 15) Removed \nonumber from equation for NBITS in \S 5.4.1.1, as this was suppressing an equation number which could be useful for external references to the standard. 16) Changed {\tt NBITS} to $N_{\rm bits}$ in equation mentioned in 15) and elsewhere NBITS occurred, as NBITS is not a FITS keyword. 17) Updated the new \S 6.2.4 Unsigned Integers. - Corrected typo "substracting" - Set "signed" in normal font - Inserted new wording: Unsigned sixteen-bit integers can be represented in {\em FITS\/} files by subtracting 32768 from each value (thus offsetting the values into the range of a signed sixteen-bit integer) before writing them to the {\em FITS\/} file. The \verb+BZERO+ keyword (or the \verb+TZEROn+ keyword in the case of binary table columns with {\tt TFORM = 'I'}) must also be included in the header with its value set to 32768 so that {\em FITS\/} reading software will add this offset to the raw values in the {\em FITS\/} file, thus restoring them to the original unsigned integer values. Unsigned thirty-two-bit integers can be represented in {\em FITS} files in a similar way by applying an offset of 2147483648 ($2^{31}$) to the data values. 18) Changed "must be" to "is" in the first sentence of the second paragraph of \S 7.1.1. The following equation affected by change 16). 19) Made several changes in \S 7.2: - Replaced the word "members" with "elements" as this is describing elements in an array, and this is consistent with usage elsewhere. - Replaced {\tt GMEM} variable with $N_{\rm elem}$ since GMEM is not a FITS keyword. 20) Took in-line word equation in \S 8.1.5 (paragraph following the enumerated list) out of math mode and corrected extra right parenthesis. Also removed forced line break. 21) In description of TFORMn keywords (\S 8.3.1) changed "type P" to "type {\tt P}" to be consistent with typographic convention elsewhere in this section. 22) Fixed subscript in n_row (put "row" in {\rm }). 23) Put "TFORMn" and TFORMn values in Table 8.5 in \tt font. 24) Put all TFORMn values in subsequent text in \tt font (\S 8.3.2). 25) Put all TDISPn values in \tt font (\S 8.3.2). 26) Changed logical values written as ``T'' or ``{\tt T}'' to simply {\tt T}. Ditto for F. 27) Changed TFORMn values in Table 8.2 to \tt font. Also in subsequent text in \S 8.1.5. Could not see the real value of showing the w as a variable distinct from the format code. 28) More \tt font changes in \S 8.3.4, making all format codes consistently set in \tt. 29) Made caption of Table 8.6 into better prose by adding "the"s to each phrase, and changed semicolon to comma. 30) In second to last paragraph of \S 8.3.4, fixed math mode problems (word "value" in in-line equation set in \rm, and put exponent "d" in \tt to make it clear that this is the same "d" as in the format code). 31) Corrected the addendum to \S 8.3.4 describing display format for complex data values: 2w+1 -> 2w+3. 32) Corrected App. A definition for commentary card image (a | had been omitted at the end of the anychar_but_equal line). 33) Changed "maxelem" to e_{\rm max} in App. B. (Using words for variable names in math mode looks ugly!) Changed datatype specifier to \tt font consistent with usage elsewhere. Changed pseudo-equations at bottom of p. 58 and top of p. 59 into normal \rm fonts. At bottom of p. 59, set N+1 and N with N in math mode. 34) In B.2, I see that the authors intended for the trailing blanks in the examples of TFORMn to be shown (the fields are filled to eight characters in the source file). Since TFORMn is mandatory for binary tables and mandatory keywords must be encoded in fixed format, these spaces are indeed significant and should be shown. This has been fixed. 35) In B.3, changed TFORMn examples to \tt, consistent with usage elsewhere. Replaced "maxelem" with e_{\rm max} consistent with 33). 36) In App. D, changed font for suggested TIMESYS keyword values to \tt instead of \bf. \bf was showing up because these were done in a \description environment. Also changed "...TDB-UTC..." in Item 2 on p.68 to put the minus sign in math mode. Replaced quotation marks in TIMESYS values in Item 3 and put values in \tt font. 37) Corrected typo in App. E, Item 7 (p.72): "1.2-inch" should be "1/2-inch" 38) App. E, Item 23 (p. 75): put "BLANK" in \tt font, since in Paper 1 this appeared in the context of a list of keywords. 39) App. E, Items 31b/c: changed "A-format" to "{\tt A}-format. 40) App. E, Item 32b: changed "type P" to "type {\tt P}" 41) In App. F, the keywords shown in the table are all mandatory and should be shown with the correct spacing when they have values given. Fixed this. Also changed footnotes 1, 2, and 3 to show the significant spaces within the value fields only. 42) Fixed formating of Table I.1 in App. I. It was missing a closing delimiter in a \verb* declaration. 43) In App. J, put all the "FITS" into the standard typography for the document, {\em FITS\/}. 44) Noted inconsistent use of terms "element" and "member" when referring to elements of an array. Wherever the word "member" referred to elements of an array, changed it to "element". 45) Changed wording preceding Eq. 8.2 from "The total number of bytes $n_{\rm row}$ in a table row, derived from the following equation," to "The total number of bytes $n_{\rm row}$ in a table row is given by" 46) Edited .ind file and changed "FITS" to "\em FITS" to be consistent with rest of the document. 47) debated getting rid of the ugly 'Section' symbol, especially when it is the first character in the sentence, as in Section 1.4, but decided to leave the text as it stands. 48) Last paragraph of section 4.3.2 was simplified from "... the remainder of the record shall be filled with zero values with the same data representation as the values in the array. For IEEE floating point data, values of +0. shall be used to fill the remainder of the record." to "... the remainder of the record shall be filled by setting all bits to zero." This is the same wording that is used in section 8.3.3 for binary tables. 49) Section 5.2.1, second paragraph: Change "... may occur in any column from 11 to 80, inclusive" to "may occur anywhere within columns 11--80" to be consistent with your revised wording in sections 5.2.3, 5.2.4, etc. 50) Section 5.2.1, fourth paragraph: Change "... in the Standard" to "... in this standard" to be consistent with the usage in section 5.4.1. 51) Section 5.4.1.1, last paragraph: The reference to section 4.1 is incorrect, and should refer to section 4.3.2. The same reference appears in 5.4.1.2 Conforming Extensions (top of p.21), but there there is also a reference to 4.3.2. The point of the reference to 4.1 is only meant to remind the reader of the overall structure of the file, however, this is not very useful. Changed the reference in 5.4.1.1 and omitted the reference to 4.1 in 5.4.1.2. 51) Section 5.4.1.2, top of page 21: change "... must be given by the following expression" to "... is given by the following expression" to be consistent with section 7.1.1. The same wording occurred in 5.4.1.1, just preceding Eq. 5.1, so changed that also. 52) Section 5.4.2.5, BLANK keyword: debated changing the wording, but eventually decided to leave it as it stands. 53) Section 6.2.4: Should read "TFORMn = 'I'", not "TFORM = 'I'". 54) Section 8.1, 8.2 and 8.3: the space after the equals sign is explicitly shown, but you deleted this in the foot notes to table F.1 (page 79). For consistency, put the spaces back in the table footnotes. 55) Top of page 38: Delete the word "However". This is the same wording as in section 8.3.2, TTYPE. 56) Section 8.3.3.1, in the paragraphs on 16-Bit Integer and 32-Bit Integer: add the following sentence to the end of both paragraphs: "Unsigned integers can be represented using the convention described in section 6.2.4." 57) In section B.3, bottom of page 61 there is a formatting problem: the 2 lines after the TFORMn value examples are indented when they should not be indented. 58) Top of page 69: The URL reference to "legacy.gsfc.nasa.gov" should be "heasarc.gsfc.nasa.gov" for consistency with the second example (legacy and heasarc are aliases). 59) Table F.1 (page 79). debated whether to pad the length of the keyword name out to 8 spaces, but decided to leave it as it stands. 60) Fixed various problems in the Index: a) The first 2 entries (Nbits and Table, extension) are out of order. b) There are duplicate entries for "ASCII, text" and "ASCII,text" c) Under "case sensitivity" add references to the discussion of the TTYPEn keywords in ASCII and binary tables. d) clarify the index entry for "IEEE, ANSI". e) Add a new index entry for "integer, unsigned" and refer to pages 30, and 47. f) The entry for "keywords, mandatory" should be "keyword, mandatory" g) There are duplicate entries for "TABLE, extension" and "TABLE,extension" 61) More index problems: Fixed a variety of minor problems, mainly entries like "character, string" which should simply be "character string".