View Javadoc
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 }