1 package nom.tam.fits.header; 2 3 /* 4 * #%L 5 * nom.tam FITS library 6 * %% 7 * Copyright (C) 1996 - 2024 nom-tam-fits 8 * %% 9 * This is free and unencumbered software released into the public domain. 10 * 11 * Anyone is free to copy, modify, publish, use, compile, sell, or 12 * distribute this software, either in source code form or as a compiled 13 * binary, for any purpose, commercial or non-commercial, and by any 14 * means. 15 * 16 * In jurisdictions that recognize copyright laws, the author or authors 17 * of this software dedicate any and all copyright interest in the 18 * software to the public domain. We make this dedication for the benefit 19 * of the public at large and to the detriment of our heirs and 20 * successors. We intend this dedication to be an overt act of 21 * relinquishment in perpetuity of all present and future rights to this 22 * software under copyright law. 23 * 24 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 25 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 26 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 27 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 28 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 29 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 30 * OTHER DEALINGS IN THE SOFTWARE. 31 * #L% 32 */ 33 34 /** 35 * <p> 36 * This data dictionary contains FITS keywords that have been widely used within the astronomical community. It is 37 * recommended that these keywords only be used as defined here. These are the keywords that describe the data or the 38 * FITS file itself 39 * </p> 40 * <p> 41 * See <a href= 42 * "http://heasarc.gsfc.nasa.gov/docs/fcg/common_dict.html">http://heasarc.gsfc.nasa.gov/docs/fcg/common_dict.html</a> 43 * </p> 44 * 45 * @author Richard van Nieuwenhoven 46 */ 47 public enum DataDescription implements IFitsHeader { 48 /** 49 * The value field shall contain a character string that uniquely defines the configuration state, or version, of 50 * the the software processing system that generated the data contained in the HDU. This keyword differs from the 51 * CREATOR keyword in that it give the name and version of the overall processing system and not just the name and 52 * version of a single program. 53 */ 54 CONFIGUR(SOURCE.UNKNOWN, HDU.ANY, VALUE.STRING, "software configuration used to process the data"), 55 56 /** 57 * The value field shall contain a character string giving the name, and optionally, the version of the program that 58 * originally created the current FITS HDU. This keyword is synonymous with the PROGRAM keyword. Example: 'TASKNAME 59 * V1.2.3' 60 */ 61 CREATOR(SOURCE.HEASARC, HDU.ANY, VALUE.STRING, "name of the software task that created the file"), 62 63 /** 64 * The value field shall contain a character string giving the the host file name used to record the original data. 65 */ 66 FILENAME(SOURCE.NOAO, HDU.ANY, VALUE.STRING, "name of the file "), 67 68 /** 69 * The value field shall contain a character string giving the file type suffix of the host file name. The full file 70 * name typically consists of the root name (see ROOTNAME) followed by a file type suffix, separated by the period 71 * ('.') character. 72 */ 73 FILETYPE(SOURCE.UNKNOWN, HDU.ANY, VALUE.STRING, "type of file"), 74 75 /** 76 * The value fields of this hierarchical set of indexed keywords shall contain character strings that classify the 77 * type of data contained in the HDU. The HDUCLAS1 keyword gives the highest, most general data classification, and 78 * the HDUCLAS2 and higher keywords provide progressively more detailed subclassifications of the data. 79 */ 80 HDUCLASn(SOURCE.HEASARC, HDU.ANY, VALUE.STRING, "hierarchical classification of the data"), 81 82 /** 83 * The value field shall contain a character string that identifies the domain to which the associated HDUCLASn 84 * keywords apply. This keyword typically identifies the institution or project that has defined the allowed set of 85 * values for the associated hierarchical HDUCLASn keywords. 86 */ 87 HDUCLASS(SOURCE.HEASARC, HDU.ANY, VALUE.STRING, "general identifier for the classification of the data"), 88 89 /** 90 * The value field shall contain a character string that gives a reference to a document that describes the allowed 91 * values that may be assigned to the HDUCLASn data classification keywords. 92 */ 93 HDUDOC(SOURCE.HEASARC, HDU.ANY, VALUE.STRING, "reference to document describing the data format"), 94 95 /** 96 * This keyword is synonymous to the standard EXTLEVEL. It is recommended that the HDULEVEL and EXTLEVEL keywords 97 * should not both be given in the same HDU key, but if they are, then the HDULEVEL keyword will have precedence. 98 */ 99 HDULEVEL(SOURCE.UNKNOWN, HDU.ANY, VALUE.INTEGER, "hierarchical level of the HDU"), 100 101 /** 102 * This keyword is synonymous to the standard EXTNAME keyword except. It is recommended that the HDUNAME and EXTNAME 103 * keywords should not both be given in the same HDU key, but if they are, then the HDUNAME keyword will have 104 * precedence. 105 */ 106 HDUNAME(SOURCE.UNKNOWN, HDU.ANY, VALUE.STRING, "descriptive name of the HDU"), 107 108 /** 109 * This keyword is synonymous to the standard EXTVER keyword. It is recommended that the HDUVER and EXTVER keywords 110 * should not both be given in the same HDU key, but if they are, then the HDUVER keyword will have precedence. 111 */ 112 HDUVER(SOURCE.UNKNOWN, HDU.ANY, VALUE.INTEGER, "version number of the HDU"), 113 114 /** 115 * The value field shall contain a character string that gives the specific version of the document referenced by 116 * HDUDOC. 117 */ 118 HDUVERS(SOURCE.HEASARC, HDU.ANY, VALUE.STRING, "specific version of the document referenced by HDUDOC"), 119 120 /** 121 * The value field shall contain an integer giving the number of standard extensions contained in the FITS file. 122 * This keyword may only be used in the primary array key. 123 */ 124 NEXTEND(SOURCE.STScI, HDU.PRIMARY, VALUE.INTEGER, "Number of standard extensions"), 125 126 /** 127 * The value field shall contain a character string giving the name, and optionally, the version of the program that 128 * originally created the current FITS HDU. This keyword is synonymous with the CREATOR keyword. Example: 'TASKNAME 129 * V1.2.3' 130 */ 131 PROGRAM(SOURCE.UCOLICK, HDU.ANY, VALUE.STRING, "the name of the software task that created the file"), 132 133 /** 134 * The value field shall contain a character string giving the root of the host file name. The full file name 135 * typically consists of the root name followed by a file type suffix (see FILETYPE), separated by the period ('.') 136 * character. 137 */ 138 ROOTNAME(SOURCE.UNKNOWN, HDU.ANY, VALUE.STRING, "rootname of the file"), 139 140 /** 141 * The value field of this indexed keyword shall contain a floating point number specifying the suggested bin size 142 * when producing a histogram of the values in column n. This keyword is typically used in conjunction the TLMINn 143 * and TLMAXn keywords when constructing a histogram of the values in column n, such that the histogram ranges from 144 * TLMINn to TLMAXn with the histogram bin size given by TDBINn. This keyword may only be used in 'TABLE' or 145 * 'BINTABLE' extensions. 146 */ 147 TDBINn(SOURCE.CXC, HDU.TABLE, VALUE.REAL, "default histogram bin size for the column"), 148 149 /** 150 * The value field of this indexed keyword shall contain a floating point number specifying the maximum valid 151 * physical value represented in column n of the table, exclusive of any special values. This keyword may only be 152 * used in 'TABLE' or 'BINTABLE' extensions and is analogous to the DATAMAX keyword used for FITS images. 153 * 154 * @deprecated Use {@link Standard#TDMAXn} instead. 155 */ 156 TDMAXn(SOURCE.HEASARC, HDU.TABLE, VALUE.REAL, "maximum value in the column"), 157 158 /** 159 * The value field of this indexed keyword shall contain a floating point number specifying the minimum valid 160 * physical value represented in column n of the table, exclusive of any special values. This keyword may only be 161 * used in 'TABLE' or 'BINTABLE' extensions and is analogous to the DATAMIN keyword used for FITS images. 162 * 163 * @deprecated Use {@link Standard#TDMINn} instead. 164 */ 165 TDMINn(SOURCE.HEASARC, HDU.TABLE, VALUE.REAL, "minimum value in the column"), 166 167 /** 168 * The value field shall contain a character string giving a title that is suitable for display purposes, e.g., for 169 * annotation on images or plots of the data contained in the HDU. 170 */ 171 TITLE(SOURCE.ROSAT, HDU.ANY, VALUE.STRING, "title for the observation or data"), 172 173 /** 174 * The value field of this indexed keyword shall contain a floating point number specifying the upper bound of the 175 * legal range of physical values that may be represented in column n of the table. The column may contain values 176 * that are greater than this legal maximum value but the interpretation of such values is not defined here. The 177 * value of this keyword is typically used as the maxinum value when constructing a histogram of the values in the 178 * column. This keyword may only be used in 'TABLE' or 'BINTABLE' extensions. 179 * 180 * @deprecated Use {@link Standard#TLMAXn} instead. 181 */ 182 183 TLMAXn(SOURCE.HEASARC, HDU.TABLE, VALUE.REAL, "maximum legal value in the column"), 184 /** 185 * The value field of this indexed keyword shall contain a floating point number specifying the lower bound of the 186 * legal range of physical values that may be represented in column n of the table. The column may contain values 187 * that are less than this legal minimum value but the interpretation of such values is not defined here. The value 188 * of this keyword is typically used as the mininum value when constructing a histogram of the values in the column. 189 * This keyword may only be used in 'TABLE' or 'BINTABLE' extensions. 190 * 191 * @deprecated Use {@link Standard#TLMINn} instead. 192 */ 193 194 TLMINn(SOURCE.HEASARC, HDU.TABLE, VALUE.REAL, "minimum legal value in the column"), 195 /** 196 * The value field shall contain a character string that defines the order in which the rows in the current FITS 197 * ASCII or binary table extension have been sorted. The character string lists the name (as given by the TTYPEn 198 * keyword) of the primary sort column, optionally followed by the names of any secondary sort column(s). The 199 * presence of this keyword indicates that the rows in the table have been sorted first by the values in the primary 200 * sort column; any rows that have the same value in the primary column have been further sorted by the values in 201 * the secondary sort column and so on for all the specified columns. If more than one column is specified by 202 * TSORTKEY then the names must be separated by a comma. One or more spaces are also allowed between the comma and 203 * the following column name. By default, columns are sorted in ascending order, but a minus sign may precede the 204 * column name to indicate that the rows are sorted in descending order. This keyword may only be used in 'TABLE' or 205 * 'BINTABLE' extensions. Example: TSORTKEY = 'TIME, RA, DEC'. 206 */ 207 TSORTKEY(SOURCE.HEASARC, HDU.TABLE, VALUE.STRING, "defines the sort order of a table"); 208 209 private final FitsKey key; 210 211 DataDescription(IFitsHeader.SOURCE status, HDU hdu, VALUE valueType, String comment) { 212 key = new FitsKey(name(), status, hdu, valueType, comment); 213 } 214 215 @Override 216 public final FitsKey impl() { 217 return key; 218 } 219 }