1 package nom.tam.fits.header.extra;
2
3 /*-
4 * #%L
5 * nom.tam.fits
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 * Standard ESO FITS keywords, based on ESO's
40 * <a href="https://archive.eso.org/cms/tools-documentation/dicb/ESO-044156_7_DataInterfaceControlDocument.pdf">Data
41 * Interface Control Document</a>. Only ESO specific keyword, beyond those defined in the standard or in
42 * {@link CommonExt} are listed.
43 * </p>
44 * <p>
45 * HIERARCH-type keywords are not currently included in this enumeration.
46 * </p>
47 *
48 * @author Attila Kovacs
49 *
50 * @see CommonExt
51 *
52 * @since 1.20.1
53 */
54 public enum ESOExt implements IFitsHeader {
55
56 /**
57 * Provides the name under which the file is stored in the archive
58 */
59 ARCFILE(VALUE.STRING, "archive file name"),
60
61 /**
62 * If applicable, the string containing the designation of the dispersing element (grating, grism) used during the
63 * observation
64 */
65 DISPELEM(VALUE.STRING, "Dispersing element used"),
66
67 /**
68 * Modification timestamp. Imay be added to files downloaded for the ESO archive by the delivery software. It shall
69 * be present in the primary HDU of the delivered file if the metadata of the frame have been updated/modified after
70 * the ingestion (an example of such modification is reassigning of the file to a different programme/run or a
71 * correction of erroneous metadata). If present, it contains the modification timetag, in restricted ISO 8601
72 * format, YYYY-MM-DDThh:mm:ss.sss. If it is not present in the frame, it indicates that there have been no metadata
73 * modifications. HDRVER must not be present in files ingested into archive. In particular, HDRVER must be actively
74 * removed prior to ingestion from the headers of products.
75 */
76 HDRVER(VALUE.STRING, "header modification timestamp"),
77
78 /**
79 * UTC seconds since midnight.
80 */
81 LST(VALUE.REAL, "[s] Local Sidereal Time"),
82
83 /**
84 * Records the original file name, as assigned at the instrument workstation.
85 */
86 ORIGFILE(VALUE.STRING, "original file name"),
87
88 /**
89 * The PI or Co-I’s initials followed by their surname. The primary keyword should repeat the value OBS.PI-COI.NAME.
90 */
91 PI_COI("PI-COI", VALUE.STRING, "PI and CoIs"),
92
93 /**
94 * UTC seconds since midnight.
95 */
96 UTC(VALUE.REAL, "[s] UTC time of day");
97
98 private final FitsKey key;
99
100 ESOExt(VALUE valueType, String comment) {
101 this(null, valueType, comment);
102 }
103
104 ESOExt(String name, VALUE valueType, String comment) {
105 this.key = new FitsKey(name == null ? name() : name, IFitsHeader.SOURCE.ESO, HDU.ANY, valueType, comment);
106 }
107
108 @Override
109 public final FitsKey impl() {
110 return key;
111 }
112 }