1 package nom.tam.fits.header.extra; 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 import nom.tam.fits.header.FitsKey; 35 import nom.tam.fits.header.IFitsHeader; 36 37 /** 38 * <p> 39 * A Set of FITS Standard Extensions for Amateur Astronomical Processing Software Packages published by SBIG. 40 * </p> 41 * <p> 42 * Please note that SBIG has published a FITS Standard SBIGFITSEXT that SBIG with CCDOps, Software Bisque with CCDSoft 43 * and Diffraction Limited with MaximDl all agreed to and implemented. 44 * </p> 45 * <p> 46 * See <a href= "https://diffractionlimited.com/wp-content/uploads/2016/11/sbfitsext_1r0.pdf"> 47 * https://diffractionlimited.com/wp-content/uploads/2016/11/sbfitsext_1r0.pdf</a> 48 * </p> 49 * 50 * @author Richard van Nieuwenhoven. 51 */ 52 public enum SBFitsExt implements IFitsHeader { 53 /** 54 * Aperture Area of the Telescope used in square millimeters. Note that we are specifying the area as well as the 55 * diameter because we want to be able to correct for any central obstruction. 56 */ 57 APTAREA(VALUE.REAL, "Aperture Area of the Telescope"), 58 /** 59 * Aperture Diameter of the Telescope used in millimeters. 60 */ 61 APTDIA(VALUE.REAL, "Aperture Diameter of the Telescope"), 62 /** 63 * Upon initial display of this image use this ADU level for the Black level. 64 */ 65 CBLACK(VALUE.INTEGER, "use this ADU level for the Black"), 66 /** 67 * Temperature of CCD when exposure taken. 68 */ 69 CCD_TEMP("CCD-TEMP", VALUE.REAL, "Temperature of CCD"), 70 /** 71 * Altitude in degrees of the center of the image in degrees. Format is the same as the OBJCTDEC keyword. 72 */ 73 CENTALT(VALUE.STRING, "Altitude of the center of the image"), 74 /** 75 * Azimuth in degrees of the center of the image in degrees. Format is the same as the OBJCTDEC keyword. 76 */ 77 CENTAZ(VALUE.STRING, "Azimuth of the center of the image"), 78 /** 79 * Upon initial display of this image use this ADU level as the White level. For the SBIG method of displaying 80 * images using Background and Range the following conversions would be used: Background = CBLACK Range = CWHITE - 81 * CBLACK. 82 */ 83 CWHITE(VALUE.INTEGER, "use this ADU level for the White"), 84 /** 85 * Total dark time of the observation. This is the total time during which dark current is collected by the 86 * detector. If the times in the extension are different the primary HDU gives one of the extension times. 87 * <p> 88 * units = UNITTIME 89 * </p> 90 * <p> 91 * default value = EXPTIME 92 * </p> 93 * <p> 94 * index = none 95 * </p> 96 */ 97 DARKTIME(VALUE.REAL, "Dark time"), 98 /** 99 * Electronic gain in e-/ADU. 100 */ 101 EGAIN(VALUE.REAL, "Electronic gain in e-/ADU"), 102 /* 103 * Optional Keywords <p> The following Keywords are not defined in the FITS Standard but are defined in this 104 * Standard. They may or may not be included by AIP Software Packages adhering to this Standard. Any of these 105 * keywords read by an AIP Package must be preserved in files written. </p> 106 */ 107 /** 108 * Focal Length of the Telescope used in millimeters. 109 */ 110 FOCALLEN(VALUE.REAL, "Focal Length of the Telescope"), 111 /** 112 * This indicates the type of image and should be one of the following: Light Frame Dark Frame Bias Frame Flat 113 * Field. 114 */ 115 IMAGETYP(VALUE.STRING, "type of image"), 116 /** 117 * This is the Declination of the center of the image in degrees. The format for this is ‘+25 12 34.111’ (SDD MM 118 * SS.SSS) using a space as the separator. For the sign, North is + and South is -. 119 */ 120 OBJCTDEC(VALUE.STRING, "Declination of the center of the image"), 121 /** 122 * This is the Right Ascension of the center of the image in hours, minutes and secon ds. The format for this is ’12 123 * 24 23.123’ (HH MM SS.SSS) using a space as the separator. 124 */ 125 OBJCTRA(VALUE.STRING, "Right Ascension of the center of the image"), 126 /** 127 * Add this ADU count to each pixel value to get to a zero - based ADU. For example in SBIG images we add 100 ADU to 128 * each pixel to stop underflow at Zero ADU from noise. We would set PEDESTAL to - 100 in this case. 129 */ 130 PEDESTAL(VALUE.INTEGER, "ADU count to each pixel value to get to a zero"), 131 /** 132 * This string indicates the version of this standard that the image was created to ie ‘SBFITSEXT Version 1.0’. 133 */ 134 SBSTDVER(VALUE.STRING, "version of this standard"), 135 /** 136 * This is the setpoint of the cooling in degrees C. If it is not specified the setpoint is assumed to be the 137 */ 138 SET_TEMP("SET-TEMP", VALUE.REAL, "setpoint of the cooling in degrees C"), 139 /** 140 * Latitude of the imaging location in degrees. Format is the same as the OBJCTDEC key word. 141 */ 142 SITELAT(VALUE.STRING, "Latitude of the imaging location"), 143 144 /** 145 * Longitude of the imaging location in degrees. Format is the same as the OBJCTDEC keyword. 146 */ 147 SITELONG(VALUE.STRING, "Longitude of the imaging location"), 148 /** 149 * Number of images combined to make this image as in Track and Accumulate or Co - Added images. 150 */ 151 SNAPSHOT(VALUE.INTEGER, "Number of images combined"), 152 /** 153 * This indicates the name and version of the Software that initially created this file ie ‘SBIGs CCDOps Version 154 * 5.10’. 155 */ 156 SWCREATE(VALUE.STRING, "created version of the Software"), 157 /** 158 * This indicates the name and version of the Software that modified this file ie ‘SBIGs CCDOps Version 5.10’ and 159 * the re can be multiple copies of this keyword. Only add this keyword if you actually modified the image and we 160 * suggest placing this above the HISTORY keywords corresponding to the modifications made to the image. 161 */ 162 SWMODIFY(VALUE.STRING, "modified version of the Software"), 163 164 /** 165 * If the image was auto-guided this is the exposure time in seconds of the tracker used to acquire this image. If 166 * this keyword is not present then the image was unguided or hand guided. 167 */ 168 TRAKTIME(VALUE.REAL, "exposure time in seconds of the tracker"), 169 170 /** 171 * Binning factor in width. 172 */ 173 XBINNING(VALUE.INTEGER, "Binning factor in width"), 174 /** 175 * Sub frame X position of upper left pixel relative to whole frame in binned pixel units. 176 */ 177 XORGSUBF(VALUE.INTEGER, "Sub frame X position"), 178 179 /** 180 * Pixel width in microns (after binning). 181 */ 182 XPIXSZ(VALUE.REAL, "Pixel width in microns"), 183 /** 184 * Binning factor in height. 185 */ 186 YBINNING(VALUE.INTEGER, "Binning factor in height"), 187 /** 188 * Sub frame Y position of upper left pixel relative to whole frame in binned pixel units. 189 */ 190 YORGSUBF(VALUE.INTEGER, "Sub frame Y position"), 191 /** 192 * Pixel height in microns (after binning). 193 */ 194 YPIXSZ(VALUE.REAL, "Pixel height in microns"); 195 196 private final FitsKey key; 197 198 SBFitsExt(String key, VALUE valueType, String comment) { 199 this.key = new FitsKey(key == null ? name() : key, IFitsHeader.SOURCE.SBIG, HDU.IMAGE, valueType, comment); 200 } 201 202 SBFitsExt(VALUE valueType, String comment) { 203 this(null, valueType, comment); 204 } 205 206 @Override 207 public final FitsKey impl() { 208 return key; 209 } 210 211 }