48#define XSH_IFU_CFG_TAB "IFU_CFG_TAB"
49#define XSH_IFU_CFG_TAB_UVB "IFU_CFG_TAB_UVB"
50#define XSH_IFU_CFG_TAB_VIS "IFU_CFG_TAB_VIS"
51#define XSH_IFU_CFG_TAB_NIR "IFU_CFG_TAB_NIR"
53#define XSH_IFU_CFG_COR "IFU_CFG_COR"
54#define XSH_IFU_CFG_COR_UVB "IFU_CFG_COR_UVB"
55#define XSH_IFU_CFG_COR_VIS "IFU_CFG_COR_VIS"
56#define XSH_IFU_CFG_COR_NIR "IFU_CFG_COR_NIR"
58#define XSH_IFU_MAP_SKY "IFU_MAP_SKY"
59#define XSH_IFU_MAP_SKY_UVB "IFU_MAP_SKY_UVB"
60#define XSH_IFU_MAP_SKY_VIS "IFU_MAP_SKY_VIS"
61#define XSH_IFU_MAP_SKY_NIR "IFU_MAP_SKY_NIR"
63#define XSH_ARC_LINE_LIST_INTMON "ARC_LINE_LIST_INTMON"
64#define XSH_ARC_LINE_LIST_INTMON_UVB "ARC_LINE_LIST_INTMON_UVB"
65#define XSH_ARC_LINE_LIST_INTMON_VIS "ARC_LINE_LIST_INTMON_VIS"
66#define XSH_ARC_LINE_LIST_INTMON_NIR "ARC_LINE_LIST_INTMON_NIR"
68#define XSH_CORRECTIFU_LAMBDAREF_PIPE_UVB 400
69#define XSH_CORRECTIFU_LAMBDAREF_PIPE_VIS 700
70#define XSH_CORRECTIFU_LAMBDAREF_PIPE_NIR 1500
72#define XSH_SLIT_BIN_SIZE_AUTO_PIPE_UVB 0.16
73#define XSH_SLIT_BIN_SIZE_AUTO_PIPE_VIS 0.16
74#define XSH_SLIT_BIN_SIZE_AUTO_PIPE_NIR 0.21
76#define XSH_WAVE_BIN_SIZE_AUTO_PIPE_UVB 0.04
77#define XSH_WAVE_BIN_SIZE_AUTO_PIPE_VIS 0.04
78#define XSH_WAVE_BIN_SIZE_AUTO_PIPE_NIR 0.1
81#define XSH_SLIT_BIN_SIZE_NARROW_SLIT_UVB 0.16
82#define XSH_SLIT_BIN_SIZE_NARROW_SLIT_VIS 0.16
83#define XSH_SLIT_BIN_SIZE_NARROW_SLIT_NIR 0.21
85#define XSH_WAVE_BIN_SIZE_NARROW_SLIT_UVB 0.015
86#define XSH_WAVE_BIN_SIZE_NARROW_SLIT_VIS 0.015
87#define XSH_WAVE_BIN_SIZE_NARROW_SLIT_NIR 0.06
90#define XSH_SLIT_BIN_SIZE_BROAD_SLIT_UVB 0.16
91#define XSH_SLIT_BIN_SIZE_BROAD_SLIT_VIS 0.16
92#define XSH_SLIT_BIN_SIZE_BROAD_SLIT_NIR 0.21
94#define XSH_WAVE_BIN_SIZE_BROAD_SLIT_UVB 0.02
95#define XSH_WAVE_BIN_SIZE_BROAD_SLIT_VIS 0.02
96#define XSH_WAVE_BIN_SIZE_BROAD_SLIT_NIR 0.06
99#define XSH_SLIT_BIN_SIZE_PIPE_UVB XSH_SLIT_BIN_SIZE_BROAD_SLIT_UVB
100#define XSH_SLIT_BIN_SIZE_PIPE_VIS XSH_SLIT_BIN_SIZE_BROAD_SLIT_VIS
101#define XSH_SLIT_BIN_SIZE_PIPE_NIR XSH_SLIT_BIN_SIZE_BROAD_SLIT_NIR
103#define XSH_WAVE_BIN_SIZE_PIPE_UVB XSH_WAVE_BIN_SIZE_BROAD_SLIT_UVB
104#define XSH_WAVE_BIN_SIZE_PIPE_VIS XSH_WAVE_BIN_SIZE_BROAD_SLIT_VIS
105#define XSH_WAVE_BIN_SIZE_PIPE_NIR XSH_WAVE_BIN_SIZE_BROAD_SLIT_NIR
107#define XSH_REMOVE_CRH_SINGLE_NIR 0
108#define XSH_REMOVE_CRH_SINGLE_UVB_VIS 4
111#define XSH_DRS_MBIAS "DRS_MBIAS"
112#define XSH_DRS_MBIAS_UVB "DRS_MBIAS_UVB"
113#define XSH_DRS_MBIAS_VIS "DRS_MBIAS_VIS"
114#define XSH_DRS_MBIAS_NIR "DRS_MBIAS_NIR"
116#define XSH_DRS_MDARK "DRS_MDARK"
117#define XSH_DRS_MDARK_UVB "DRS_MDARK_UVB"
118#define XSH_DRS_MDARK_VIS "DRS_MDARK_VIS"
119#define XSH_DRS_MDARK_NIR "DRS_MDARK_NIR"
122#define XSH_DRS_UVB "DRS_UVB"
123#define XSH_DRS_VIS "DRS_VIS"
124#define XSH_DRS_NIR "DRS_NIR"
126#define XSH_RESP_FIT_POINTS_CAT "RESP_FIT_POINTS_CAT"
127#define XSH_RESP_FIT_POINTS_CAT_UVB "RESP_FIT_POINTS_CAT_UVB"
128#define XSH_RESP_FIT_POINTS_CAT_VIS "RESP_FIT_POINTS_CAT_VIS"
129#define XSH_RESP_FIT_POINTS_CAT_NIR "RESP_FIT_POINTS_CAT_NIR"
132#define XSH_LINEARITY "LINEARITY"
134#define XSH_LINGAIN "LINGAIN"
135#define XSH_LINGAIN_UVB "LINGAIN_UVB"
136#define XSH_LINGAIN_VIS "LINGAIN_VIS"
137#define XSH_LINGAIN_NIR "LINGAIN_NIR"
139#define XSH_TRACE "TRACE"
141#define XSH_IFU_DETECT_IFU_TRACE "IFU_DETECT_IFU_TRACE"
142#define XSH_IFU_DETECT_IFU_TRACE_UVB "IFU_DETECT_IFU_TRACE_UVB"
143#define XSH_IFU_DETECT_IFU_TRACE_VIS "IFU_DETECT_IFU_TRACE_VIS"
144#define XSH_IFU_DETECT_IFU_TRACE_NIR "IFU_DETECT_IFU_TRACE_NIR"
146#define XSH_SLIT_MAP_MODEL "SLIT_MAP"
147#define XSH_SLIT_MAP_MODEL_UVB "SLIT_MAP_UVB"
148#define XSH_SLIT_MAP_MODEL_VIS "SLIT_MAP_VIS"
149#define XSH_SLIT_MAP_MODEL_NIR "SLIT_MAP_NIR"
151#define XSH_SLIT_MAP_POLY "SLIT_MAP"
152#define XSH_SLIT_MAP_POLY_UVB "SLIT_MAP_UVB"
153#define XSH_SLIT_MAP_POLY_VIS "SLIT_MAP_VIS"
154#define XSH_SLIT_MAP_POLY_NIR "SLIT_MAP_NIR"
156#define XSH_SLIT_STARE_REMOVE_CRH "SLIT_STARE_REMOVE_CRH"
157#define XSH_SLIT_STARE_REMOVE_CRH_UVB "SLIT_STARE_REMOVE_CRH_UVB"
158#define XSH_SLIT_STARE_REMOVE_CRH_VIS "SLIT_STARE_REMOVE_CRH_VIS"
159#define XSH_SLIT_STARE_REMOVE_CRH_NIR "SLIT_STARE_REMOVE_CRH_NIR"
161#define XSH_IFU_STARE_REMOVE_CRH "IFU_STARE_REMOVE_CRH"
162#define XSH_IFU_STARE_REMOVE_CRH_UVB "IFU_STARE_REMOVE_CRH_UVB"
163#define XSH_IFU_STARE_REMOVE_CRH_VIS "IFU_STARE_REMOVE_CRH_VIS"
164#define XSH_IFU_STARE_REMOVE_CRH_NIR "IFU_STARE_REMOVE_CRH_NIR"
166#define XSH_BIAS_REMOVE_CRH "BIAS_REMOVE_CRH"
167#define XSH_BIAS_REMOVE_CRH_UVB "BIAS_REMOVE_CRH_UVB"
168#define XSH_BIAS_REMOVE_CRH_VIS "BIAS_REMOVE_CRH_VIS"
169#define XSH_BIAS_REMOVE_CRH_NIR "BIAS_REMOVE_CRH_NIR"
171#define XSH_FLAT_REMOVE_CRH "FLAT_REMOVE_CRH"
172#define XSH_FLAT_REMOVE_CRH_UVB "FLAT_REMOVE_CRH_UVB"
173#define XSH_FLAT_REMOVE_CRH_VIS "FLAT_REMOVE_CRH_VIS"
174#define XSH_FLAT_REMOVE_CRH_NIR "FLAT_REMOVE_CRH_NIR"
176#define XSH_HIGH_ABS_WIN "HIGH_ABS_WIN"
177#define XSH_HIGH_ABS_WIN_UVB "HIGH_ABS_WIN_UVB"
178#define XSH_HIGH_ABS_WIN_VIS "HIGH_ABS_WIN_VIS"
179#define XSH_HIGH_ABS_WIN_NIR "HIGH_ABS_WIN_NIR"
181#define XSH_TELL_MOD_CAT "TELL_MOD_CAT"
182#define XSH_TELL_MOD_CAT_UVB "TELL_MOD_CAT_UVB"
183#define XSH_TELL_MOD_CAT_VIS "TELL_MOD_CAT_VIS"
184#define XSH_TELL_MOD_CAT_NIR "TELL_MOD_CAT_NIR"
187#define XSH_ONOFF_REMOVE_CRH "ONOFF_REMOVE_CRH"
188#define XSH_ONOFF_REMOVE_CRH_UVB "ONOFF_REMOVE_CRH_UVB"
189#define XSH_ONOFF_REMOVE_CRH_VIS "ONOFF_REMOVE_CRH_VIS"
190#define XSH_ONOFF_REMOVE_CRH_NIR "ONOFF_REMOVE_CRH_NIR"
192#define XSH_FLAT_QTH_SLIT_UVB "FLAT_QTH_SLIT_UVB"
193#define XSH_FLAT_D2_SLIT_UVB "FLAT_D2_SLIT_UVB"
194#define XSH_FLAT_SLIT_VIS "FLAT_SLIT_VIS"
195#define XSH_FLAT_SLIT_NIR "FLAT_SLIT_NIR_ON"
196#define XSH_FLAT_SLIT_OFF "FLAT_SLIT_NIR_OFF"
197#define XSH_FLAT_QTH_IFU_UVB "FLAT_QTH_IFU_UVB"
198#define XSH_FLAT_D2_IFU_UVB "FLAT_D2_IFU_UVB"
199#define XSH_FLAT_IFU_VIS "FLAT_IFU_VIS"
200#define XSH_FLAT_IFU_NIR "FLAT_IFU_NIR_ON"
201#define XSH_FLAT_IFU_OFF "FLAT_IFU_NIR_OFF"
203#define XSH_MEASURE_FLAT_SLIT_EDGES "MEASURE_FLAT_SLIT_EDGES"
204#define XSH_MEASURE_FLAT_D2_SLIT_EDGES_UVB "MEASURE_FLAT_D2_SLIT_EDGES_UVB"
205#define XSH_MEASURE_FLAT_QTH_SLIT_EDGES_UVB "MEASURE_FLAT_QTH_SLIT_EDGES_UVB"
206#define XSH_MEASURE_FLAT_SLIT_EDGES_UVB "MEASURE_FLAT_SLIT_EDGES_UVB"
207#define XSH_MEASURE_FLAT_SLIT_EDGES_VIS "MEASURE_FLAT_SLIT_EDGES_VIS"
208#define XSH_MEASURE_FLAT_SLIT_EDGES_NIR "MEASURE_FLAT_SLIT_EDGES_NIR"
210#define XSH_MEASURE_FLAT_IFU_EDGES "MEASURE_FLAT_IFU_EDGES"
211#define XSH_MEASURE_FLAT_D2_IFU_EDGES_UVB "MEASURE_FLAT_D2_IFU_EDGES_UVB"
212#define XSH_MEASURE_FLAT_QTH_IFU_EDGES_UVB "MEASURE_FLAT_QTH_IFU_EDGES_UVB"
213#define XSH_MEASURE_FLAT_IFU_EDGES_UVB "MEASURE_FLAT_IFU_EDGES_UVB"
214#define XSH_MEASURE_FLAT_IFU_EDGES_VIS "MEASURE_FLAT_IFU_EDGES_VIS"
215#define XSH_MEASURE_FLAT_IFU_EDGES_NIR "MEASURE_FLAT_IFU_EDGES_NIR"
217#define XSH_EFFICIENCY "EFFICIENCY"
219#define XSH_BIAS "BIAS"
220#define XSH_DARK "DARK"
221#define XSH_FMTCHK "FMTCHK"
222#define XSH_FLAT "FLAT"
223#define XSH_ORDERDEF "ORDERDEF"
224#define XSH_WAVECAL "ARC"
225#define XSH_WAVE "WAVE"
226#define XSH_OBJECT_SLIT_STARE "OBJECT_SLIT_STARE"
227#define XSH_FLUX_OFFSET "STD_FLUX_OFFSET"
228#define XSH_OBJECT_SLIT_NOD "OBJECT_SLIT_NOD"
229#define XSH_OBJECT_SLIT_OFFSET "OBJECT_SLIT_OFFSET"
230#define XSH_OBJECT_IFU_STARE "OBJECT_IFU_STARE"
231#define XSH_OBJECT_IFU_OFFSET "OBJECT_IFU_OFFSET"
233#define XSH_SKY_SLIT "SKY_SLIT"
234#define XSH_SKY_IFU "SKY_IFU"
237#define XSH_IMA_UVB "IMA_UVB"
238#define XSH_IMA_VIS "IMA_VIS"
239#define XSH_IMA_NIR "IMA_NIR"
241#define XSH_RAW_IMA_SLIT "RAW_IMA_SLIT"
242#define XSH_RAW_IMA_SLIT_VIS "RAW_IMA_SLIT_VIS"
243#define XSH_RAW_IMA_SLIT_UVB "RAW_IMA_SLIT_UVB"
244#define XSH_RAW_IMA_SLIT_NIR "RAW_IMA_SLIT_NIR"
246#define XSH_RAW_IMA_IFU "RAW_IMA_IFU"
247#define XSH_RAW_IMA_IFU_VIS "RAW_IMA_IFU_VIS"
248#define XSH_RAW_IMA_IFU_UVB "RAW_IMA_IFU_UVB"
249#define XSH_RAW_IMA_IFU_NIR "RAW_IMA_IFU_NIR"
251#define XSH_SKY_SUB_BKPTS "SKY_SUB_BKPTS"
252#define XSH_SKY_SUB_BKPTS_UVB "SKY_SUB_BKPTS_UVB"
253#define XSH_SKY_SUB_BKPTS_VIS "SKY_SUB_BKPTS_VIS"
254#define XSH_SKY_SUB_BKPTS_NIR "SKY_SUB_BKPTS_NIR"
256#define XSH_SKY_ORDERS_CHUNKS "SKY_ORDERS_CHUNKS"
257#define XSH_SKY_ORDERS_CHUNKS_UVB "SKY_ORDERS_CHUNKS_UVB"
258#define XSH_SKY_ORDERS_CHUNKS_VIS "SKY_ORDERS_CHUNKS_VIS"
259#define XSH_SKY_ORDERS_CHUNKS_NIR "SKY_ORDERS_CHUNKS_NIR"
261#define XSH_GAIN "GAIN_INFO"
262#define XSH_GAIN_UVB "GAIN_INFO_UVB"
263#define XSH_GAIN_VIS "GAIN_INFO_VIS"
264#define XSH_GAIN_NIR "GAIN_INFO_NIR"
266#define XSH_FLUX_STD_TAB "FLUX_STD_TABLE"
267#define XSH_FLUX_STD_TAB_UVB "FLUX_STD_TABLE_UVB"
268#define XSH_FLUX_STD_TAB_VIS "FLUX_STD_TABLE_VIS"
269#define XSH_FLUX_STD_TAB_NIR "FLUX_STD_TABLE_NIR"
272#define XSH_FLUX_STD_CAT "FLUX_STD_CATALOG"
273#define XSH_FLUX_STD_CAT_UVB "FLUX_STD_CATALOG_UVB"
274#define XSH_FLUX_STD_CAT_VIS "FLUX_STD_CATALOG_VIS"
275#define XSH_FLUX_STD_CAT_NIR "FLUX_STD_CATALOG_NIR"
277#define XSH_EXTCOEFF_TAB "EXTCOEFF_TABLE"
278#define XSH_EXTCOEFF_TAB_UVB "EXTCOEFF_TABLE_UVB"
279#define XSH_EXTCOEFF_TAB_VIS "EXTCOEFF_TABLE_VIS"
280#define XSH_EXTCOEFF_TAB_NIR "EXTCOEFF_TABLE_NIR"
282#define XSH_SKY_MAP "SKY_MAP"
283#define XSH_SKY_MAP_UVB "SKY_MAP_UVB"
284#define XSH_SKY_MAP_VIS "SKY_MAP_VIS"
285#define XSH_SKY_MAP_NIR "SKY_MAP_NIR"
287#define XSH_CPIX_MAP "CPIX_MAP"
288#define XSH_CPIX_MAP_UVB "CPIX_MAP_UVB"
289#define XSH_CPIX_MAP_VIS "CPIX_MAP_VIS"
290#define XSH_CPIX_MAP_NIR "CPIX_MAP_NIR"
293#define XSH_HPIX_MAP "HPIX_MAP"
294#define XSH_HPIX_MAP_UVB "HPIX_MAP_UVB"
295#define XSH_HPIX_MAP_VIS "HPIX_MAP_VIS"
296#define XSH_HPIX_MAP_NIR "HPIX_MAP_NIR"
298#define XSH_CRH_MAP "CRH_MAP"
299#define XSH_CRH_MAP_UVB "CRH_MAP_UVB"
300#define XSH_CRH_MAP_VIS "CRH_MAP_VIS"
301#define XSH_CRH_MAP_NIR "CRH_MAP_NIR"
304#define XSH_CRH_LIST "CRH_LIST"
305#define XSH_CRH_LIST_UVB "CRH_LIST_UVB"
306#define XSH_CRH_LIST_VIS "CRH_LIST_VIS"
307#define XSH_CRH_LIST_NIR "CRH_LIST_NIR"
309#define XSH_STD_FLUX_SLIT_STARE_ORDER1D "STD_FLUX_SLIT_STARE_ORDER1D"
310#define XSH_STD_FLUX_SLIT_STARE_ORDER1D_UVB "STD_FLUX_SLIT_STARE_ORDER1D_UVB"
311#define XSH_STD_FLUX_SLIT_STARE_ORDER1D_VIS "STD_FLUX_SLIT_STARE_ORDER1D_VIS"
312#define XSH_STD_FLUX_SLIT_STARE_ORDER1D_NIR "STD_FLUX_SLIT_STARE_ORDER1D_NIR"
315#define XSH_STD_FLUX_SLIT_STARE_MERGE1D "STD_FLUX_SLIT_STARE_MERGE1D"
316#define XSH_STD_FLUX_SLIT_STARE_MERGE1D_UVB "STD_FLUX_SLIT_STARE_MERGE1D_UVB"
317#define XSH_STD_FLUX_SLIT_STARE_MERGE1D_VIS "STD_FLUX_SLIT_STARE_MERGE1D_VIS"
318#define XSH_STD_FLUX_SLIT_STARE_MERGE1D_NIR "STD_FLUX_SLIT_STARE_MERGE1D_NIR"
320#define XSH_ORDERPOS_RESID_TAB "ORDERPOS_RESID_TAB"
321#define XSH_ORDERPOS_RESID_TAB_UVB "ORDERPOS_RESID_TAB_UVB"
322#define XSH_ORDERPOS_RESID_TAB_VIS "ORDERPOS_RESID_TAB_VIS"
323#define XSH_ORDERPOS_RESID_TAB_NIR "ORDERPOS_RESID_TAB_NIR"
325#define XSH_DET_LIN_INFO_UVB "DET_LIN_INFO_UVB"
326#define XSH_DET_LIN_INFO_VIS "DET_LIN_INFO_VIS"
327#define XSH_DET_LIN_INFO_NIR "DET_LIN_INFO_NIR"
329#define XSH_GAIN_INFO_UVB "GAIN_INFO_UVB"
330#define XSH_GAIN_INFO_VIS "GAIN_INFO_VIS"
331#define XSH_GAIN_INFO_NIR "GAIN_INFO_NIR"
333#define XSH_COEFFS_CUBE_UVB "COEFFS_CUBE_UVB"
334#define XSH_COEFFS_CUBE_VIS "COEFFS_CUBE_VIS"
335#define XSH_COEFFS_CUBE_NIR "COEFFS_CUBE_NIR"
338#define XSH_BP_MAP "BP_MAP"
339#define XSH_BP_MAP_UVB "BP_MAP_UVB"
340#define XSH_BP_MAP_VIS "BP_MAP_VIS"
341#define XSH_BP_MAP_NIR "BP_MAP_NIR"
343#define XSH_BP_MAP_NP "BP_MAP_NP"
344#define XSH_BP_MAP_NP_UVB "BP_MAP_NP_UVB"
345#define XSH_BP_MAP_NP_VIS "BP_MAP_NP_VIS"
346#define XSH_BP_MAP_NP_NIR "BP_MAP_NP_NIR"
349#define XSH_BP_MAP_PN "BP_MAP_PN"
350#define XSH_BP_MAP_PN_UVB "BP_MAP_PN_UVB"
351#define XSH_BP_MAP_PN_VIS "BP_MAP_PN_VIS"
352#define XSH_BP_MAP_PN_NIR "BP_MAP_PN_NIR"
355#define XSH_BP_MAP_RP "BP_MAP_RP"
356#define XSH_BP_MAP_RP_UVB "BP_MAP_RP_UVB"
357#define XSH_BP_MAP_RP_VIS "BP_MAP_RP_VIS"
358#define XSH_BP_MAP_RP_NIR "BP_MAP_RP_NIR"
360#define XSH_BP_MAP_NL "BP_MAP_NL"
361#define XSH_BP_MAP_NL_UVB "BP_MAP_NL_UVB"
362#define XSH_BP_MAP_NL_VIS "BP_MAP_NL_VIS"
363#define XSH_BP_MAP_NL_NIR "BP_MAP_NL_NIR"
365#define XSH_RAW_BP_MAP_NL "RAW_BP_MAP_NL"
366#define XSH_RAW_BP_MAP_NL_UVB "RAW_BP_MAP_NL_UVB"
367#define XSH_RAW_BP_MAP_NL_VIS "RAW_BP_MAP_NL_VIS"
368#define XSH_RAW_BP_MAP_NL_NIR "RAW_BP_MAP_NL_NIR"
370#define XSH_AUTOCORR_UVB "AUTOCORR_UVB"
371#define XSH_AUTOCORR_VIS "AUTOCORR_VIS"
372#define XSH_AUTOCORR_NIR "AUTOCORR_NIR"
374#define XSH_DIFF_FLAT_UVB "DIFF_FLAT_UVB"
375#define XSH_DIFF_FLAT_VIS "DIFF_FLAT_VIS"
376#define XSH_DIFF_FLAT_NIR "DIFF_FLAT_NIR"
378#define XSH_GUESS_LINES_POS "GUESS_LINES_POS"
379#define XSH_GUESS_LINES_POS_UVB "GUESS_LINES_POS_UVB"
380#define XSH_GUESS_LINES_POS_VIS "GUESS_LINES_POS_VIS"
381#define XSH_GUESS_LINES_POS_NIR "GUESS_LINES_POS_NIR"
383#define XSH_LINEARITY_UVB "LINEARITY_UVB"
384#define XSH_LINEARITY_VIS "LINEARITY_VIS"
385#define XSH_LINEARITY_NIR "LINEARITY_NIR"
386#define XSH_LINEARITY_UVB_ON "LINEARITY_UVB_ON"
387#define XSH_LINEARITY_UVB_OFF "LINEARITY_UVB_OFF"
388#define XSH_LINEARITY_VIS_ON "LINEARITY_VIS_ON"
389#define XSH_LINEARITY_VIS_OFF "LINEARITY_VIS_OFF"
390#define XSH_LINEARITY_NIR_ON "LINEARITY_NIR_ON"
391#define XSH_LINEARITY_NIR_OFF "LINEARITY_NIR_OFF"
393#define XSH_WAVECAL_NIR "WAVECAL_NIR"
394#define XSH_BIAS_UVB "BIAS_UVB"
395#define XSH_BIAS_VIS "BIAS_VIS"
396#define XSH_BIAS_NIR "BIAS_NIR"
397#define XSH_BIAS_AGC "BIAS_AGC"
398#define XSH_DARK_UVB "DARK_UVB"
399#define XSH_DARK_VIS "DARK_VIS"
400#define XSH_DARK_NIR "DARK_NIR"
401#define XSH_DARK_AGC "DARK_AGC"
402#define XSH_DARK_NIR_ON "DARK_NIR_ON"
403#define XSH_DARK_NIR_OFF "DARK_NIR_OFF"
404#define XSH_FMTCHK_UVB "FMTCHK_UVB"
405#define XSH_FMTCHK_VIS "FMTCHK_VIS"
406#define XSH_FMTCHK_NIR "FMTCHK_NIR_ON"
407#define XSH_FMTCHK_OFF "FMTCHK_NIR_OFF"
409#define XSH_ORDERDEF_QTH_UVB "ORDERDEF_QTH_UVB"
410#define XSH_ORDERDEF_D2_UVB "ORDERDEF_D2_UVB"
411#define XSH_ORDERDEF_VIS "ORDERDEF_VIS"
412#define XSH_ORDERDEF_NIR "ORDERDEF_NIR_ON"
413#define XSH_ORDERDEF_OFF "ORDERDEF_NIR_OFF"
415#define XSH_FLAT_QTH_SLIT_UVB "FLAT_QTH_SLIT_UVB"
416#define XSH_FLAT_D2_SLIT_UVB "FLAT_D2_SLIT_UVB"
417#define XSH_FLAT_SLIT_VIS "FLAT_SLIT_VIS"
418#define XSH_FLAT_SLIT_NIR "FLAT_SLIT_NIR_ON"
419#define XSH_FLAT_SLIT_OFF "FLAT_SLIT_NIR_OFF"
420#define XSH_FLAT_QTH_IFU_UVB "FLAT_QTH_IFU_UVB"
421#define XSH_FLAT_D2_IFU_UVB "FLAT_D2_IFU_UVB"
422#define XSH_FLAT_IFU_VIS "FLAT_IFU_VIS"
423#define XSH_FLAT_IFU_NIR "FLAT_IFU_NIR_ON"
424#define XSH_FLAT_IFU_OFF "FLAT_IFU_NIR_OFF"
426#define XSH_WAVE_UVB "WAVE_UVB"
427#define XSH_WAVE_VIS "WAVE_VIS"
428#define XSH_WAVE_NIR "WAVE_NIR_ON"
429#define XSH_WAVE_OFF "WAVE_NIR_OFF"
430#define XSH_ARC_SLIT_UVB "ARC_SLIT_UVB"
431#define XSH_ARC_SLIT_VIS "ARC_SLIT_VIS"
432#define XSH_ARC_SLIT_NIR "ARC_SLIT_NIR_ON"
433#define XSH_ARC_SLIT_OFF "ARC_SLIT_NIR_OFF"
434#define XSH_ARC_IFU_UVB "ARC_IFU_UVB"
435#define XSH_ARC_IFU_VIS "ARC_IFU_VIS"
436#define XSH_ARC_IFU_NIR "ARC_IFU_NIR_ON"
437#define XSH_ARC_IFU_OFF "ARC_IFU_NIR_OFF"
438#define XSH_FLEX_UVB "FLEX_UVB"
439#define XSH_FLEX_VIS "FLEX_VIS"
440#define XSH_FLEX_NIR "FLEX_NIR"
441#define XSH_TRACE_UVB "TRACE_UVB"
442#define XSH_TRACE_VIS "TRACE_VIS"
443#define XSH_TRACE_NIR "TRACE_NIR"
445#define XSH_STD_TELL_SLIT_UVB "STD_TELL_SLIT_UVB"
446#define XSH_STD_TELL_SLIT_VIS "STD_TELL_SLIT_VIS"
447#define XSH_STD_TELL_SLIT_NIR "STD_TELL_SLIT_NIR"
449#define XSH_STD_FLUX_SLIT_STARE "STD_FLUX_SLIT_STARE"
450#define XSH_STD_FLUX_SLIT_STARE_UVB "STD_FLUX_SLIT_STARE_UVB"
451#define XSH_STD_FLUX_SLIT_STARE_VIS "STD_FLUX_SLIT_STARE_VIS"
452#define XSH_STD_FLUX_SLIT_STARE_NIR "STD_FLUX_SLIT_STARE_NIR"
455#define XSH_STD_FLUX_IFU_STARE "STD_FLUX_IFU_STARE"
456#define XSH_STD_FLUX_IFU_STARE_UVB "STD_FLUX_IFU_STARE_UVB"
457#define XSH_STD_FLUX_IFU_STARE_VIS "STD_FLUX_IFU_STARE_VIS"
458#define XSH_STD_FLUX_IFU_STARE_NIR "STD_FLUX_IFU_STARE_NIR"
462#define XSH_STD_TELL_SLIT_STARE "STD_TELL_SLIT_STARE"
463#define XSH_STD_TELL_SLIT_STARE_UVB "STD_TELL_SLIT_STARE_UVB"
464#define XSH_STD_TELL_SLIT_STARE_VIS "STD_TELL_SLIT_STARE_VIS"
465#define XSH_STD_TELL_SLIT_STARE_NIR "STD_TELL_SLIT_STARE_NIR"
469#define XSH_STD_TELL_IFU_STARE "STD_TELL_IFU_STARE"
470#define XSH_STD_TELL_IFU_STARE_UVB "STD_TELL_IFU_STARE_UVB"
471#define XSH_STD_TELL_IFU_STARE_VIS "STD_TELL_IFU_STARE_VIS"
472#define XSH_STD_TELL_IFU_STARE_NIR "STD_TELL_IFU_STARE_NIR"
475#define XSH_STD_TELL_IFU_OFFSET "STD_TELL_IFU_OFFSET"
476#define XSH_STD_TELL_IFU_OFFSET_UVB "STD_TELL_IFU_OFFSET_UVB"
477#define XSH_STD_TELL_IFU_OFFSET_VIS "STD_TELL_IFU_OFFSET_VIS"
478#define XSH_STD_TELL_IFU_OFFSET_NIR "STD_TELL_IFU_OFFSET_NIR"
481#define XSH_STD_TELL_SLIT_NOD "STD_TELL_SLIT_NOD"
482#define XSH_STD_TELL_SLIT_NOD_UVB "STD_TELL_SLIT_NOD_UVB"
483#define XSH_STD_TELL_SLIT_NOD_VIS "STD_TELL_SLIT_NOD_VIS"
484#define XSH_STD_TELL_SLIT_NOD_NIR "STD_TELL_SLIT_NOD_NIR"
486#define XSH_STD_FLUX_SLIT_NOD "STD_FLUX_SLIT_NOD"
487#define XSH_STD_FLUX_SLIT_NOD_UVB "STD_FLUX_SLIT_NOD_UVB"
488#define XSH_STD_FLUX_SLIT_NOD_VIS "STD_FLUX_SLIT_NOD_VIS"
489#define XSH_STD_FLUX_SLIT_NOD_NIR "STD_FLUX_SLIT_NOD_NIR"
493#define XSH_STD_FLUX_SLIT_OFFSET "STD_FLUX_SLIT_OFFSET"
494#define XSH_STD_FLUX_SLIT_OFFSET_UVB "STD_FLUX_SLIT_OFFSET_UVB"
495#define XSH_STD_FLUX_SLIT_OFFSET_VIS "STD_FLUX_SLIT_OFFSET_VIS"
496#define XSH_STD_FLUX_SLIT_OFFSET_NIR "STD_FLUX_SLIT_OFFSET_NIR"
499#define XSH_STD_FLUX_IFU_OFFSET "STD_FLUX_IFU_OFFSET"
500#define XSH_STD_FLUX_IFU_OFFSET_UVB "STD_FLUX_IFU_OFFSET_UVB"
501#define XSH_STD_FLUX_IFU_OFFSET_VIS "STD_FLUX_IFU_OFFSET_VIS"
502#define XSH_STD_FLUX_IFU_OFFSET_NIR "STD_FLUX_IFU_OFFSET_NIR"
504#define XSH_STD_FLUX_NOD "STD_FLUX_NOD"
505#define XSH_STD_FLUX_NOD_UVB "STD_FLUX_NOD_UVB"
506#define XSH_STD_FLUX_NOD_VIS "STD_FLUX_NOD_VIS"
507#define XSH_STD_FLUX_NOD_NIR "STD_FLUX_NOD_NIR"
508#define XSH_OBJECT_SLIT_STARE_UVB "OBJECT_SLIT_STARE_UVB"
509#define XSH_OBJECT_SLIT_STARE_VIS "OBJECT_SLIT_STARE_VIS"
510#define XSH_OBJECT_SLIT_STARE_NIR "OBJECT_SLIT_STARE_NIR"
511#define XSH_OBJECT_SLIT_NOD_UVB "OBJECT_SLIT_NOD_UVB"
512#define XSH_OBJECT_SLIT_NOD_VIS "OBJECT_SLIT_NOD_VIS"
513#define XSH_OBJECT_SLIT_NOD_NIR "OBJECT_SLIT_NOD_NIR"
514#define XSH_OBJECT_SLIT_OFFSET_UVB "OBJECT_SLIT_OFFSET_UVB"
515#define XSH_OBJECT_SLIT_OFFSET_VIS "OBJECT_SLIT_OFFSET_VIS"
516#define XSH_OBJECT_SLIT_OFFSET_NIR "OBJECT_SLIT_OFFSET_NIR"
517#define XSH_OBJECT_IFU_STARE_UVB "OBJECT_IFU_STARE_UVB"
518#define XSH_OBJECT_IFU_STARE_VIS "OBJECT_IFU_STARE_VIS"
519#define XSH_OBJECT_IFU_STARE_NIR "OBJECT_IFU_STARE_NIR"
520#define XSH_OBJECT_IFU_OFFSET_UVB "OBJECT_IFU_OFFSET_UVB"
521#define XSH_OBJECT_IFU_OFFSET_VIS "OBJECT_IFU_OFFSET_VIS"
522#define XSH_OBJECT_IFU_OFFSET_NIR "OBJECT_IFU_OFFSET_NIR"
523#define XSH_SKY_SLIT_UVB "SKY_SLIT_UVB"
524#define XSH_SKY_SLIT_VIS "SKY_SLIT_VIS"
525#define XSH_SKY_SLIT_NIR "SKY_SLIT_NIR"
526#define XSH_SKY_IFU_UVB "SKY_IFU_UVB"
527#define XSH_SKY_IFU_VIS "SKY_IFU_VIS"
528#define XSH_SKY_IFU_NIR "SKY_IFU_NIR"
530#define XSH_AFC_POS "AFC_POS"
531#define XSH_AFC_POS_UVB "AFC_POS_UVB"
532#define XSH_AFC_POS_VIS "AFC_POS_VIS"
533#define XSH_AFC_POS_NIR "AFC_POS_NIR"
534#define XSH_AFC_SLT "AFC_SLT"
535#define XSH_AFC_SLT_UVB "AFC_SLT_UVB"
536#define XSH_AFC_SLT_VIS "AFC_SLT_VIS"
537#define XSH_AFC_SLT_NIR "AFC_SLT_NIR"
539#define XSH_AFC_CAL "AFC_CAL"
540#define XSH_AFC_CAL_UVB "AFC_CAL_UVB"
541#define XSH_AFC_CAL_VIS "AFC_CAL_VIS"
542#define XSH_AFC_CAL_NIR "AFC_CAL_NIR"
543#define XSH_AFC_ATT "AFC_ATT"
544#define XSH_AFC_ATT_UVB "AFC_ATT_UVB"
545#define XSH_AFC_ATT_VIS "AFC_ATT_VIS"
546#define XSH_AFC_ATT_NIR "AFC_ATT_NIR"
549#define XSH_MASTER_BIAS "MASTER_BIAS"
550#define XSH_MASTER_DARK "MASTER_DARK"
551#define XSH_ORDER_TAB_RECOV "ORDER_TAB_RECOV"
552#define XSH_ORDER_TAB_GUESS "ORDER_TAB_GUESS"
553#define XSH_ORDER_TAB_CENTR "ORDER_TAB_CENTR"
554#define XSH_ORDER_TAB_EDGES "ORDER_TAB_EDGES"
555#define XSH_WAVE_TAB_GUESS "WAVE_TAB_GUESS"
556#define XSH_WAVE_TAB_2D "WAVE_TAB_2D"
557#define XSH_WAVE_TAB_AFC "WAVE_TAB_AFC"
558#define XSH_WAVE_TAB_ARC "WAVE_TAB_ARC"
559#define XSH_WAVE_TAB_ARC_DOWN_IFU "WAVE_TAB_ARC_DOWN_IFU"
560#define XSH_WAVE_TAB_ARC_CEN_IFU "WAVE_TAB_ARC_CEN_IFU"
561#define XSH_WAVE_TAB_ARC_UP_IFU "WAVE_TAB_ARC_UP_IFU"
563#define XSH_RESID_TAB "RESID_TAB"
564#define XSH_RESID_TAB_DOWN_IFU "RESID_TAB_DOWN_IFU"
565#define XSH_RESID_TAB_CEN_IFU "RESID_TAB_CEN_IFU"
566#define XSH_RESID_TAB_UP_IFU "RESID_TAB_UP_IFU"
568#define XSH_RESID_ORDER_TAB "RESID_ORDER_TAB"
569#define XSH_MASTER_FLAT "MASTER_FLAT"
571#define XSH_TILT_TAB "TILT_TAB"
572#define XSH_TILT_TAB_DOWN_IFU "TILT_TAB_DOWN_IFU"
573#define XSH_TILT_TAB_CEN_IFU "TILT_TAB_CEN_IFU"
574#define XSH_TILT_TAB_UP_IFU "TILT_TAB_UP_IFU"
576#define XSH_SHIFT_TAB "SHIFT_TAB"
577#define XSH_SHIFT_TAB_SLIT "SHIFT_TAB_SLIT"
578#define XSH_SHIFT_TAB_IFU "SHIFT_TAB_IFU"
579#define XSH_SHIFT_TAB_SLIT_UVB "SHIFT_TAB_SLIT_UVB"
580#define XSH_SHIFT_TAB_SLIT_VIS "SHIFT_TAB_SLIT_VIS"
581#define XSH_SHIFT_TAB_SLIT_NIR "SHIFT_TAB_SLIT_NIR"
582#define XSH_SHIFT_TAB_IFU_UVB "SHIFT_TAB_IFU_UVB"
583#define XSH_SHIFT_TAB_IFU_VIS "SHIFT_TAB_IFU_VIS"
584#define XSH_SHIFT_TAB_IFU_NIR "SHIFT_TAB_IFU_NIR"
587#define XSH_ORDER1D "ORDER1D"
588#define XSH_ORDER2D "ORDER2D"
589#define XSH_ORDER1D_IFU "ORDER1D_IFU"
590#define XSH_ORDER2D_IFU "ORDER2D_IFU"
592#define XSH_MERGE1D "MERGE1D"
593#define XSH_MERGE_EXT1D "MERGE_EXT1D"
594#define XSH_MERGE2D "MERGE2D"
595#define XSH_MERGE3D_IFU "MERGE3D_IFU"
597#define XSH_PHYS_MERGE1D "PHYS_MERGE1D"
598#define XSH_PHYS_MERGE2D "PHYS_MERGE2D"
600#define XSH_LOCALIZATION "LOC_TABLE"
601#define XSH_SLICE_OFFSET "SLICE_OFFSET_TABLE"
604#define XSH_PICKUP_NOISE_MAP "PICKUP_NOISE_MAP"
605#define XSH_PICKUP_NOISE_MAP_UVB "PICKUP_NOISE_MAP_UVB"
606#define XSH_PICKUP_NOISE_MAP_VIS "PICKUP_NOISE_MAP_VIS"
607#define XSH_PICKUP_NOISE_MAP_NIR "PICKUP_NOISE_MAP_NIR"
610#define XSH_BP_MAP_REF "BP_MAP_REF"
611#define XSH_BP_MAP_REF_UVB "BP_MAP_REF_UVB"
612#define XSH_BP_MAP_REF_VIS "BP_MAP_REF_VIS"
613#define XSH_BP_MAP_REF_NIR "BP_MAP_REF_NIR"
615#define XSH_BP_MAP_LIN "BP_MAP_LIN"
616#define XSH_BP_MAP_LIN_UVB "BP_MAP_LIN_UVB"
617#define XSH_BP_MAP_LIN_VIS "BP_MAP_LIN_VIS"
618#define XSH_BP_MAP_LIN_NIR "BP_MAP_LIN_NIR"
620#define XSH_BP_MAP_HP "BP_MAP_HP"
621#define XSH_BP_MAP_HP_UVB "BP_MAP_HP_UVB"
622#define XSH_BP_MAP_HP_VIS "BP_MAP_HP_VIS"
623#define XSH_BP_MAP_HP_NIR "BP_MAP_HP_NIR"
625#define XSH_BP_MAP_CP "BP_MAP_CP"
626#define XSH_BP_MAP_CP_UVB "BP_MAP_CP_UVB"
627#define XSH_BP_MAP_CP_VIS "BP_MAP_CP_VIS"
628#define XSH_BP_MAP_CP_NIR "BP_MAP_CP_NIR"
631#define XSH_BP_MAP_SP "BP_MAP_SP"
632#define XSH_BP_MAP_SP_UVB "BP_MAP_SP_UVB"
633#define XSH_BP_MAP_SP_VIS "BP_MAP_SP_VIS"
634#define XSH_BP_MAP_SP_NIR "BP_MAP_SP_NIR"
637#define XSH_BP_MAP_DP "BP_MAP_DP"
638#define XSH_BP_MAP_DP_UVB "BP_MAP_DP_UVB"
639#define XSH_BP_MAP_DP_VIS "BP_MAP_DP_VIS"
640#define XSH_BP_MAP_DP_NIR "BP_MAP_DP_NIR"
643#define XSH_MASTER_BP_MAP "MASTER_BP_MAP"
644#define XSH_MASTER_BP_MAP_UVB "MASTER_BP_MAP_UVB"
645#define XSH_MASTER_BP_MAP_VIS "MASTER_BP_MAP_VIS"
646#define XSH_MASTER_BP_MAP_NIR "MASTER_BP_MAP_NIR"
648#define XSH_BIAS_PD "BIAS_PD"
649#define XSH_BIAS_PD_UVB "BIAS_PD_UVB"
650#define XSH_BIAS_PD_VIS "BIAS_PD_VIS"
651#define XSH_BIAS_PD_NIR "BIAS_PD_NIR"
653#define XSH_BIAS_PD_MASK "BIAS_PD_MASK"
654#define XSH_BIAS_PD_MASK_UVB "BIAS_PD_MASK_UVB"
655#define XSH_BIAS_PD_MASK_VIS "BIAS_PD_MASK_VIS"
656#define XSH_BIAS_PD_MASK_NIR "BIAS_PD_MASK_NIR"
657#define XSH_BIAS_PD_MASK_AGC "BIAS_PD_MASK_AGC"
659#define XSH_MASTER_BP_MAP_NLIN "MASTER_BP_MAP_NLIN"
660#define XSH_MASTER_BP_MAP_NLIN_UVB "MASTER_BP_MAP_NLIN_UVB"
661#define XSH_MASTER_BP_MAP_NLIN_VIS "MASTER_BP_MAP_NLIN_VIS"
662#define XSH_MASTER_BP_MAP_NLIN_NIR "MASTER_BP_MAP_NLIN_NIR"
664#define XSH_MASTER_BP_MAP_BIAS "MASTER_BP_MAP_BIAS"
665#define XSH_MASTER_BP_MAP_BIAS_UVB "MASTER_BP_MAP_BIAS_UVB"
666#define XSH_MASTER_BP_MAP_BIAS_VIS "MASTER_BP_MAP_BIAS_VIS"
667#define XSH_MASTER_BP_MAP_BIAS_NIR "MASTER_BP_MAP_BIAS_NIR"
669#define XSH_MASTER_BP_MAP_DARK "MASTER_BP_MAP_DARK"
670#define XSH_MASTER_BP_MAP_DARK_UVB "MASTER_BP_MAP_DARK_UVB"
671#define XSH_MASTER_BP_MAP_DARK_VIS "MASTER_BP_MAP_DARK_VIS"
672#define XSH_MASTER_BP_MAP_DARK_NIR "MASTER_BP_MAP_DARK_NIR"
674#define XSH_MASTER_BP_MAP_FLAT "MASTER_BP_MAP_FLAT"
675#define XSH_MASTER_BP_MAP_FLAT_UVB "MASTER_BP_MAP_FLAT_UVB"
676#define XSH_MASTER_BP_MAP_FLAT_VIS "MASTER_BP_MAP_FLAT_VIS"
677#define XSH_MASTER_BP_MAP_FLAT_NIR "MASTER_BP_MAP_FLAT_NIR"
681#define XSH_MASTER_BIAS_UVB "MASTER_BIAS_UVB"
682#define XSH_MASTER_BIAS_VIS "MASTER_BIAS_VIS"
683#define XSH_MASTER_BIAS_AGC "MASTER_BIAS_AGC"
684#define XSH_MASTER_BIAS_NIR "??TAG??"
685#define XSH_MASTER_DARK_UVB "MASTER_DARK_UVB"
686#define XSH_MASTER_DARK_VIS "MASTER_DARK_VIS"
687#define XSH_MASTER_DARK_NIR "MASTER_DARK_NIR"
688#define XSH_ORDER_TAB_RECOV_UVB "ORDER_TAB_RECOV_UVB"
689#define XSH_ORDER_TAB_RECOV_VIS "ORDER_TAB_RECOV_VIS"
690#define XSH_ORDER_TAB_RECOV_NIR "ORDER_TAB_RECOV_NIR"
691#define XSH_ORDER_TAB_GUESS_UVB "ORDER_TAB_GUESS_UVB"
692#define XSH_ORDER_TAB_GUESS_VIS "ORDER_TAB_GUESS_VIS"
693#define XSH_ORDER_TAB_GUESS_NIR "ORDER_TAB_GUESS_NIR"
694#define XSH_ORDER_TAB_CENTR_UVB "ORDER_TAB_CENTR_UVB"
695#define XSH_ORDER_TAB_CENTR_VIS "ORDER_TAB_CENTR_VIS"
696#define XSH_ORDER_TAB_CENTR_NIR "ORDER_TAB_CENTR_NIR"
698#define XSH_ORDER_TAB_EDGES_SLIT "ORDER_TAB_EDGES_SLIT"
699#define XSH_ORDER_TAB_EDGES_SLIT_UVB "ORDER_TAB_EDGES_SLIT_UVB"
700#define XSH_ORDER_TAB_EDGES_SLIT_VIS "ORDER_TAB_EDGES_SLIT_VIS"
701#define XSH_ORDER_TAB_EDGES_SLIT_NIR "ORDER_TAB_EDGES_SLIT_NIR"
703#define XSH_ORDER_TAB_EDGES_IFU "ORDER_TAB_EDGES_IFU"
704#define XSH_ORDER_TAB_EDGES_IFU_UVB "ORDER_TAB_EDGES_IFU_UVB"
705#define XSH_ORDER_TAB_EDGES_IFU_VIS "ORDER_TAB_EDGES_IFU_VIS"
706#define XSH_ORDER_TAB_EDGES_IFU_NIR "ORDER_TAB_EDGES_IFU_NIR"
707#define XSH_ORDER_TAB_EDGES_QTH_SLIT_UVB "ORDER_TAB_EDGES_QTH_SLIT_UVB"
708#define XSH_ORDER_TAB_EDGES_QTH_IFU_UVB "ORDER_TAB_EDGES_QTH_IFU_UVB"
709#define XSH_ORDER_TAB_EDGES_D2_SLIT_UVB "ORDER_TAB_EDGES_D2_SLIT_UVB"
710#define XSH_ORDER_TAB_EDGES_D2_IFU_UVB "ORDER_TAB_EDGES_D2_IFU_UVB"
712#define XSH_ORDER_TAB_AFC "ORDER_TAB_AFC"
714#define XSH_ORDER_TAB_AFC_SLIT "ORDER_TAB_AFC_SLIT"
715#define XSH_ORDER_TAB_AFC_SLIT_UVB "ORDER_TAB_AFC_SLIT_UVB"
716#define XSH_ORDER_TAB_AFC_SLIT_VIS "ORDER_TAB_AFC_SLIT_VIS"
717#define XSH_ORDER_TAB_AFC_SLIT_NIR "ORDER_TAB_AFC_SLIT_NIR"
719#define XSH_ORDER_TAB_AFC_IFU "ORDER_TAB_AFC_IFU"
720#define XSH_ORDER_TAB_AFC_IFU_UVB "ORDER_TAB_AFC_IFU_UVB"
721#define XSH_ORDER_TAB_AFC_IFU_VIS "ORDER_TAB_AFC_IFU_VIS"
722#define XSH_ORDER_TAB_AFC_IFU_NIR "ORDER_TAB_AFC_IFU_NIR"
725#define XSH_WAVE_TAB_GUESS_UVB "WAVE_TAB_GUESS_UVB"
726#define XSH_WAVE_TAB_GUESS_VIS "WAVE_TAB_GUESS_VIS"
727#define XSH_WAVE_TAB_GUESS_NIR "WAVE_TAB_GUESS_NIR"
728#define XSH_WAVE_TAB_2D_UVB "WAVE_TAB_2D_UVB"
729#define XSH_WAVE_TAB_2D_VIS "WAVE_TAB_2D_VIS"
730#define XSH_WAVE_TAB_2D_NIR "WAVE_TAB_2D_NIR"
731#define XSH_WAVE_TAB_AFC_UVB "WAVE_TAB_AFC_UVB"
732#define XSH_WAVE_TAB_AFC_VIS "WAVE_TAB_AFC_VIS"
733#define XSH_WAVE_TAB_AFC_NIR "WAVE_TAB_AFC_NIR"
734#define XSH_WAVE_TAB_ARC_SLIT_UVB "WAVE_TAB_ARC_SLIT_UVB"
735#define XSH_WAVE_TAB_ARC_SLIT_VIS "WAVE_TAB_ARC_SLIT_VIS"
736#define XSH_WAVE_TAB_ARC_SLIT_NIR "WAVE_TAB_ARC_SLIT_NIR"
739#define XSH_WAVE_TAB_ARC_IFU_UVB "WAVE_TAB_ARC_IFU_UVB"
740#define XSH_WAVE_TAB_ARC_DOWN_IFU_UVB "WAVE_TAB_ARC_DOWN_IFU_UVB"
741#define XSH_WAVE_TAB_ARC_CEN_IFU_UVB "WAVE_TAB_ARC_CEN_IFU_UVB"
742#define XSH_WAVE_TAB_ARC_UP_IFU_UVB "WAVE_TAB_ARC_UP_IFU_UVB"
744#define XSH_WAVE_TAB_ARC_IFU_VIS "WAVE_TAB_ARC_IFU_VIS"
745#define XSH_WAVE_TAB_ARC_DOWN_IFU_VIS "WAVE_TAB_ARC_DOWN_IFU_VIS"
746#define XSH_WAVE_TAB_ARC_CEN_IFU_VIS "WAVE_TAB_ARC_CEN_IFU_VIS"
747#define XSH_WAVE_TAB_ARC_UP_IFU_VIS "WAVE_TAB_ARC_UP_IFU_VIS"
749#define XSH_WAVE_TAB_ARC_IFU_NIR "WAVE_TAB_ARC_IFU_NIR"
750#define XSH_WAVE_TAB_ARC_DOWN_IFU_NIR "WAVE_TAB_ARC_DOWN_IFU_NIR"
751#define XSH_WAVE_TAB_ARC_CEN_IFU_NIR "WAVE_TAB_ARC_CEN_IFU_NIR"
752#define XSH_WAVE_TAB_ARC_UP_IFU_NIR "WAVE_TAB_ARC_UP_IFU_NIR"
754#define XSH_ORDER1D_IFU_UVB "ORDER1D_IFU_UVB"
755#define XSH_ORDER1D_DOWN_IFU_UVB "ORDER1D_DOWN_IFU_UVB"
756#define XSH_ORDER1D_CEN_IFU_UVB "ORDER1D_CEN_IFU_UVB"
757#define XSH_ORDER1D_UP_IFU_UVB "ORDER1D_UP_IFU_UVB"
759#define XSH_ORDER1D_IFU_VIS "ORDER1D_IFU_VIS"
760#define XSH_ORDER1D_DOWN_IFU_VIS "ORDER1D_DOWN_IFU_VIS"
761#define XSH_ORDER1D_CEN_IFU_VIS "ORDER1D_CEN_IFU_VIS"
762#define XSH_ORDER1D_UP_IFU_VIS "ORDER1D_UP_IFU_VIS"
764#define XSH_ORDER1D_IFU_NIR "ORDER1D_IFU_NIR"
765#define XSH_ORDER1D_DOWN_IFU_NIR "ORDER1D_DOWN_IFU_NIR"
766#define XSH_ORDER1D_CEN_IFU_NIR "ORDER1D_CEN_IFU_NIR"
767#define XSH_ORDER1D_UP_IFU_NIR "ORDER1D_UP_IFU_NIR"
769#define XSH_ORDER2D_IFU_UVB "ORDER2D_IFU_UVB"
770#define XSH_ORDER2D_DOWN_IFU_UVB "ORDER2D_DOWN_IFU_UVB"
771#define XSH_ORDER2D_CEN_IFU_UVB "ORDER2D_CEN_IFU_UVB"
772#define XSH_ORDER2D_UP_IFU_UVB "ORDER2D_UP_IFU_UVB"
774#define XSH_ORDER2D_IFU_VIS "ORDER2D_IFU_VIS"
775#define XSH_ORDER2D_DOWN_IFU_VIS "ORDER2D_DOWN_IFU_VIS"
776#define XSH_ORDER2D_CEN_IFU_VIS "ORDER2D_CEN_IFU_VIS"
777#define XSH_ORDER2D_UP_IFU_VIS "ORDER2D_UP_IFU_VIS"
779#define XSH_ORDER2D_IFU_NIR "ORDER2D_IFU_NIR"
780#define XSH_ORDER2D_DOWN_IFU_NIR "ORDER2D_DOWN_IFU_NIR"
781#define XSH_ORDER2D_CEN_IFU_NIR "ORDER2D_CEN_IFU_NIR"
782#define XSH_ORDER2D_UP_IFU_NIR "ORDER2D_UP_IFU_NIR"
784#define XSH_MERGE1D_IFU_UVB "MERGE1D_IFU_UVB"
785#define XSH_MERGE1D_DOWN_IFU_UVB "MERGE1D_DOWN_IFU_UVB"
786#define XSH_MERGE1D_CEN_IFU_UVB "MERGE1D_CEN_IFU_UVB"
787#define XSH_MERGE1D_UP_IFU_UVB "MERGE1D_UP_IFU_UVB"
789#define XSH_MERGE1D_IFU_VIS "MERGE1D_IFU_VIS"
790#define XSH_MERGE1D_DOWN_IFU_VIS "MERGE1D_DOWN_IFU_VIS"
791#define XSH_MERGE1D_CEN_IFU_VIS "MERGE1D_CEN_IFU_VIS"
792#define XSH_MERGE1D_UP_IFU_VIS "MERGE1D_UP_IFU_VIS"
794#define XSH_MERGE1D_IFU_NIR "MERGE1D_IFU_NIR"
795#define XSH_MERGE1D_DOWN_IFU_NIR "MERGE1D_DOWN_IFU_NIR"
796#define XSH_MERGE1D_CEN_IFU_NIR "MERGE1D_CEN_IFU_NIR"
797#define XSH_MERGE1D_UP_IFU_NIR "MERGE1D_UP_IFU_NIR"
801#define XSH_MERGE2D_IFU_UVB "MERGE2D_IFU_UVB"
802#define XSH_MERGE2D_DOWN_IFU_UVB "MERGE2D_DOWN_IFU_UVB"
803#define XSH_MERGE2D_CEN_IFU_UVB "MERGE2D_CEN_IFU_UVB"
804#define XSH_MERGE2D_UP_IFU_UVB "MERGE2D_UP_IFU_UVB"
806#define XSH_MERGE2D_IFU_VIS "MERGE2D_IFU_VIS"
807#define XSH_MERGE2D_DOWN_IFU_VIS "MERGE2D_DOWN_IFU_VIS"
808#define XSH_MERGE2D_CEN_IFU_VIS "MERGE2D_CEN_IFU_VIS"
809#define XSH_MERGE2D_UP_IFU_VIS "MERGE2D_UP_IFU_VIS"
811#define XSH_MERGE2D_IFU_NIR "MERGE2D_IFU_NIR"
812#define XSH_MERGE2D_DOWN_IFU_NIR "MERGE2D_DOWN_IFU_NIR"
813#define XSH_MERGE2D_CEN_IFU_NIR "MERGE2D_CEN_IFU_NIR"
814#define XSH_MERGE2D_UP_IFU_NIR "MERGE2D_UP_IFU_NIR"
817#define XSH_SKY_MERGE2D_IFU_UVB "SKY_MERGE2D_IFU_UVB"
818#define XSH_SKY_MERGE2D_DOWN_IFU_UVB "SKY_MERGE2D_DOWN_IFU_UVB"
819#define XSH_SKY_MERGE2D_CEN_IFU_UVB "SKY_MERGE2D_CEN_IFU_UVB"
820#define XSH_SKY_MERGE2D_UP_IFU_UVB "SKY_MERGE2D_UP_IFU_UVB"
822#define XSH_SKY_MERGE2D_IFU_VIS "SKY_MERGE2D_IFU_VIS"
823#define XSH_SKY_MERGE2D_DOWN_IFU_VIS "SKY_MERGE2D_DOWN_IFU_VIS"
824#define XSH_SKY_MERGE2D_CEN_IFU_VIS "SKY_MERGE2D_CEN_IFU_VIS"
825#define XSH_SKY_MERGE2D_UP_IFU_VIS "SKY_MERGE2D_UP_IFU_VIS"
827#define XSH_SKY_MERGE2D_IFU_NIR "SKY_MERGE2D_IFU_NIR"
828#define XSH_SKY_MERGE2D_DOWN_IFU_NIR "SKY_MERGE2D_DOWN_IFU_NIR"
829#define XSH_SKY_MERGE2D_CEN_IFU_NIR "SKY_MERGE2D_CEN_IFU_NIR"
830#define XSH_SKY_MERGE2D_UP_IFU_NIR "SKY_MERGE2D_UP_IFU_NIR"
834#define XSH_MERGE3D_IFU_NIR "MERGE3D_IFU_NIR"
835#define XSH_MERGE3D_IFU_UVB "MERGE3D_IFU_UVB"
836#define XSH_MERGE3D_IFU_VIS "MERGE3D_IFU_VIS"
838#define XSH_COMBINED_OFFSET_2D_IFU "COMBINED_OFFSET_2D_IFU_"
839#define XSH_COMBINED_OFFSET_2D_IFU_UVB "COMBINED_OFFSET_2D_IFU_UVB"
840#define XSH_COMBINED_OFFSET_2D_DOWN_IFU_UVB "COMBINED_OFFSET_2D_DOWN_IFU_UVB"
841#define XSH_COMBINED_OFFSET_2D_CEN_IFU_UVB "COMBINED_OFFSET_2D_CEN_IFU_UVB"
842#define XSH_COMBINED_OFFSET_2D_UP_IFU_UVB "COMBINED_OFFSET_2D_UP_IFU_UVB"
844#define XSH_COMBINED_OFFSET_2D_IFU_VIS "COMBINED_OFFSET_2D_IFU_VIS"
845#define XSH_COMBINED_OFFSET_2D_DOWN_IFU_VIS "COMBINED_OFFSET_2D_DOWN_IFU_VIS"
846#define XSH_COMBINED_OFFSET_2D_CEN_IFU_VIS "COMBINED_OFFSET_2D_CEN_IFU_VIS"
847#define XSH_COMBINED_OFFSET_2D_UP_IFU_VIS "COMBINED_OFFSET_2D_UP_IFU_VIS"
849#define XSH_COMBINED_OFFSET_2D_IFU_NIR "COMBINED_OFFSET_2D_IFU_NIR"
850#define XSH_COMBINED_OFFSET_2D_DOWN_IFU_NIR "COMBINED_OFFSET_2D_DOWN_IFU_NIR"
851#define XSH_COMBINED_OFFSET_2D_CEN_IFU_NIR "COMBINED_OFFSET_2D_CEN_IFU_NIR"
852#define XSH_COMBINED_OFFSET_2D_UP_IFU_NIR "COMBINED_OFFSET_2D_UP_IFU_NIR"
854#define XSH_COMBINED_OFFSET_2D_SLIT "COMBINED_OFFSET_2D_SLIT_"
855#define XSH_COMBINED_OFFSET_2D_SLIT_UVB "COMBINED_OFFSET_2D_SLIT_UVB"
856#define XSH_COMBINED_OFFSET_2D_SLIT_VIS "COMBINED_OFFSET_2D_SLIT_VIS"
857#define XSH_COMBINED_OFFSET_2D_SLIT_NIR "COMBINED_OFFSET_2D_SLIT_NIR"
859#define XSH_RESID_TAB_SLIT_UVB "RESID_TAB_SLIT_UVB"
860#define XSH_RESID_TAB_SLIT_VIS "RESID_TAB_SLIT_VIS"
861#define XSH_RESID_TAB_SLIT_NIR "RESID_TAB_SLIT_NIR"
862#define XSH_RESID_TAB_IFU_UVB "RESID_TAB_IFU_UVB"
863#define XSH_RESID_TAB_IFU_VIS "RESID_TAB_IFU_VIS"
864#define XSH_RESID_TAB_IFU_NIR "RESID_TAB_IFU_NIR"
865#define XSH_RESID_ORDER_TAB_NIR "RESID_ORDER_TAB_NIR"
866#define XSH_RESID_ORDER_TAB_UVB "RESID_ORDER_TAB_UVB"
867#define XSH_RESID_ORDER_TAB_VIS "RESID_ORDER_TAB_VIS"
869#define XSH_MASTER_FLAT_SLIT "MASTER_FLAT_SLIT"
870#define XSH_MASTER_FLAT_SLIT_UVB "MASTER_FLAT_SLIT_UVB"
871#define XSH_MASTER_FLAT_SLIT_VIS "MASTER_FLAT_SLIT_VIS"
872#define XSH_MASTER_FLAT_SLIT_NIR "MASTER_FLAT_SLIT_NIR"
873#define XSH_MASTER_FLAT_IFU_UVB "MASTER_FLAT_IFU_UVB"
874#define XSH_MASTER_FLAT_IFU_VIS "MASTER_FLAT_IFU_VIS"
875#define XSH_MASTER_FLAT_IFU_NIR "MASTER_FLAT_IFU_NIR"
876#define XSH_MASTER_FLAT_QTH_SLIT_UVB "MASTER_FLAT_QTH_SLIT_UVB"
877#define XSH_MASTER_FLAT_QTH_SLIT_VIS "MASTER_FLAT_QTH_SLIT_VIS"
878#define XSH_MASTER_FLAT_QTH_SLIT_NIR "MASTER_FLAT_QTH_SLIT_NIR"
879#define XSH_MASTER_FLAT_QTH_IFU_UVB "MASTER_FLAT_QTH_IFU_UVB"
880#define XSH_MASTER_FLAT_QTH_IFU_VIS "MASTER_FLAT_QTH_IFU_VIS"
881#define XSH_MASTER_FLAT_QTH_IFU_NIR "MASTER_FLAT_QTH_IFU_NIR"
882#define XSH_MASTER_FLAT_D2_SLIT_UVB "MASTER_FLAT_D2_SLIT_UVB"
883#define XSH_MASTER_FLAT_D2_SLIT_VIS "MASTER_FLAT_D2_SLIT_VIS"
884#define XSH_MASTER_FLAT_D2_SLIT_NIR "MASTER_FLAT_D2_SLIT_NIR"
885#define XSH_MASTER_FLAT_D2_IFU_UVB "MASTER_FLAT_D2_IFU_UVB"
886#define XSH_MASTER_FLAT_D2_IFU_VIS "MASTER_FLAT_D2_IFU_VIS"
887#define XSH_MASTER_FLAT_D2_IFU_NIR "MASTER_FLAT_D2_IFU_NIR"
889#define XSH_TILT_TAB_SLIT_UVB "TILT_TAB_SLIT_UVB"
890#define XSH_TILT_TAB_SLIT_VIS "TILT_TAB_SLIT_VIS"
891#define XSH_TILT_TAB_SLIT_NIR "TILT_TAB_SLIT_NIR"
892#define XSH_TILT_TAB_IFU_UVB "TILT_TAB_IFU_UVB"
893#define XSH_TILT_TAB_IFU_VIS "TILT_TAB_IFU_VIS"
894#define XSH_TILT_TAB_IFU_NIR "TILT_TAB_IFU_NIR"
897#define XSH_DISP_TAB "DISP_TAB"
898#define XSH_DISP_TAB_UVB "DISP_TAB_UVB"
899#define XSH_DISP_TAB_VIS "DISP_TAB_VIS"
900#define XSH_DISP_TAB_NIR "DISP_TAB_NIR"
902#define XSH_DISP_TAB_AFC "DISP_TAB_AFC"
903#define XSH_DISP_TAB_AFC_UVB "DISP_TAB_AFC_UVB"
904#define XSH_DISP_TAB_AFC_VIS "DISP_TAB_AFC_VIS"
905#define XSH_DISP_TAB_AFC_NIR "DISP_TAB_AFC_NIR"
907#define XSH_SLIT_MAP "SLIT_MAP"
908#define XSH_SLIT_MAP_UVB "SLIT_MAP_UVB"
909#define XSH_SLIT_MAP_VIS "SLIT_MAP_VIS"
910#define XSH_SLIT_MAP_NIR "SLIT_MAP_NIR"
912#define XSH_IFU_MAP "IFU_MAP"
913#define XSH_IFU_MAP_UVB "IFU_MAP_UVB"
914#define XSH_IFU_MAP_VIS "IFU_MAP_VIS"
915#define XSH_IFU_MAP_NIR "IFU_MAP_NIR"
918#define XSH_WAVE_MAP_POLY "WAVE_MAP"
919#define XSH_WAVE_MAP_POLY_UVB "WAVE_MAP_UVB"
920#define XSH_WAVE_MAP_POLY_VIS "WAVE_MAP_VIS"
921#define XSH_WAVE_MAP_POLY_NIR "WAVE_MAP_NIR"
923#define XSH_WAVE_MAP_MODEL "WAVE_MAP"
924#define XSH_WAVE_MAP_MODEL_UVB "WAVE_MAP_UVB"
925#define XSH_WAVE_MAP_MODEL_VIS "WAVE_MAP_VIS"
926#define XSH_WAVE_MAP_MODEL_NIR "WAVE_MAP_NIR"
928#define XSH_WAVE_MAP "WAVE_MAP"
929#define XSH_WAVE_MAP_UVB "WAVE_MAP_UVB"
930#define XSH_WAVE_MAP_VIS "WAVE_MAP_VIS"
931#define XSH_WAVE_MAP_NIR "WAVE_MAP_NIR"
933#define XSH_WAVE_MAP_QTH_SLIT_UVB "WAVE_MAP_QTH_SLIT_UVB"
934#define XSH_WAVE_MAP_D2_SLIT_UVB "WAVE_MAP_D2_SLIT_UVB"
935#define XSH_WAVE_MAP_SLIT_UVB "WAVE_MAP_SLIT_UVB"
936#define XSH_WAVE_MAP_SLIT_VIS "WAVE_MAP_SLIT_VIS"
937#define XSH_WAVE_MAP_SLIT_NIR "WAVE_MAP_SLIT_NIR"
938#define XSH_WAVE_MAP_IFU_UVB "WAVE_MAP_IFU_UVB"
939#define XSH_WAVE_MAP_QTH_IFU_UVB "WAVE_MAP_QTH_IFU_UVB"
940#define XSH_WAVE_MAP_D2_IFU_UVB "WAVE_MAP_D2_IFU_UVB"
941#define XSH_WAVE_MAP_IFU_VIS "WAVE_MAP_IFU_VIS"
942#define XSH_WAVE_MAP_IFU_NIR "WAVE_MAP_IFU_NIR"
944#define XSH_SKY_LINE_LIST "SKY_LINE_LIST"
945#define XSH_SKY_LINE_LIST_UVB "SKY_LINE_LIST_UVB"
946#define XSH_SKY_LINE_LIST_VIS "SKY_LINE_LIST_VIS"
947#define XSH_SKY_LINE_LIST_NIR "SKY_LINE_LIST_NIR"
950#define XSH_ARC_LINE_LIST_AFC "ARC_LINE_LIST_AFC"
951#define XSH_ARC_LINE_LIST_AFC_UVB "ARC_LINE_LIST_AFC_UVB"
952#define XSH_ARC_LINE_LIST_AFC_VIS "ARC_LINE_LIST_AFC_VIS"
953#define XSH_ARC_LINE_LIST_AFC_NIR "ARC_LINE_LIST_AFC_NIR"
955#define XSH_ARC_LINE_LIST "ARC_LINE_LIST"
956#define XSH_ARC_LINE_LIST_UVB "ARC_LINE_LIST_UVB"
957#define XSH_ARC_LINE_LIST_VIS "ARC_LINE_LIST_VIS"
958#define XSH_ARC_LINE_LIST_NIR "ARC_LINE_LIST_NIR"
960#define XSH_ARC_LINE_LIST_PREDICT "ARC_LINE_LIST_PREDICT"
961#define XSH_ARC_LINE_LIST_PREDICT_UVB "ARC_LINE_LIST_PREDICT_UVB"
962#define XSH_ARC_LINE_LIST_PREDICT_VIS "ARC_LINE_LIST_PREDICT_VIS"
963#define XSH_ARC_LINE_LIST_PREDICT_NIR "ARC_LINE_LIST_PREDICT_NIR"
965#define XSH_ARC_LINE_LIST_2DMAP "ARC_LINE_LIST_2DMAP"
966#define XSH_ARC_LINE_LIST_2DMAP_UVB "ARC_LINE_LIST_2DMAP_UVB"
967#define XSH_ARC_LINE_LIST_2DMAP_VIS "ARC_LINE_LIST_2DMAP_VIS"
968#define XSH_ARC_LINE_LIST_2DMAP_NIR "ARC_LINE_LIST_2DMAP_NIR"
970#define XSH_ORDER1D_NIR "ORDER1D_NIR"
971#define XSH_ORDER1D_UVB "ORDER1D_UVB"
972#define XSH_ORDER1D_VIS "ORDER1D_VIS"
975#define XSH_NORM_OXT1D "NORM_OXT1D"
976#define XSH_NORM_OXT1D_NIR "NORM_OXT1D_NIR"
977#define XSH_NORM_OXT1D_UVB "NORM_OXT1D_UVB"
978#define XSH_NORM_OXT1D_VIS "NORM_OXT1D_VIS"
981#define XSH_NORM_ORDER1D "NORM_ORDER1D"
982#define XSH_NORM_ORDER1D_NIR "NORM_ORDER1D_NIR"
983#define XSH_NORM_ORDER1D_UVB "NORM_ORDER1D_UVB"
984#define XSH_NORM_ORDER1D_VIS "NORM_ORDER1D_VIS"
986#define XSH_NORM_ORDER2D "NORM_ORDER2D"
987#define XSH_NORM_ORDER2D_NIR "NORM_ORDER2D_NIR"
988#define XSH_NORM_ORDER2D_UVB "NORM_ORDER2D_UVB"
989#define XSH_NORM_ORDER2D_VIS "NORM_ORDER2D_VIS"
991#define XSH_NORM_MERGE1D "NORM_MERGE1D"
992#define XSH_NORM_MERGE1D_NIR "NORM_MERGE1D_NIR"
993#define XSH_NORM_MERGE1D_UVB "NORM_MERGE1D_UVB"
994#define XSH_NORM_MERGE1D_VIS "NORM_MERGE1D_VIS"
997#define XSH_NORM_MERGE2D "NORM_MERGE2D"
998#define XSH_NORM_MERGE2D_NIR "NORM_MERGE2D_NIR"
999#define XSH_NORM_MERGE2D_UVB "NORM_MERGE2D_UVB"
1000#define XSH_NORM_MERGE2D_VIS "NORM_MERGE2D_VIS"
1003#define XSH_FLUX_ORDER1D "FLUX_ORDER1D"
1004#define XSH_FLUX_ORDER1D_NIR "FLUX_ORDER1D_NIR"
1005#define XSH_FLUX_ORDER1D_UVB "FLUX_ORDER1D_UVB"
1006#define XSH_FLUX_ORDER1D_VIS "FLUX_ORDER1D_VIS"
1009#define XSH_FLUX_OXT1D "FLUX_OXT1D"
1010#define XSH_FLUX_OXT1D_NIR "FLUX_OXT1D_NIR"
1011#define XSH_FLUX_OXT1D_UVB "FLUX_OXT1D_UVB"
1012#define XSH_FLUX_OXT1D_VIS "FLUX_OXT1D_VIS"
1014#define XSH_FLUX_ORDER2D "FLUX_ORDER2D"
1015#define XSH_FLUX_ORDER2D_NIR "FLUX_ORDER2D_NIR"
1016#define XSH_FLUX_ORDER2D_UVB "FLUX_ORDER2D_UVB"
1017#define XSH_FLUX_ORDER2D_VIS "FLUX_ORDER2D_VIS"
1019#define XSH_FLUX_MERGE1D "FLUX_MERGE1D"
1020#define XSH_FLUX_MERGE1D_NIR "FLUX_MERGE1D_NIR"
1021#define XSH_FLUX_MERGE1D_UVB "FLUX_MERGE1D_UVB"
1022#define XSH_FLUX_MERGE1D_VIS "FLUX_MERGE1D_VIS"
1024#define XSH_FLUX_MERGE2D "FLUX_MERGE2D"
1025#define XSH_FLUX_MERGE2D_NIR "FLUX_MERGE2D_NIR"
1026#define XSH_FLUX_MERGE2D_UVB "FLUX_MERGE2D_UVB"
1027#define XSH_FLUX_MERGE2D_VIS "FLUX_MERGE2D_VIS"
1029#define XSH_ORDER_EXT1D "ORDER_EXT1D"
1030#define XSH_ORDER_EXT1D_NIR "ORDER_EXT1D_NIR"
1031#define XSH_ORDER_EXT1D_UVB "ORDER_EXT1D_UVB"
1032#define XSH_ORDER_EXT1D_VIS "ORDER_EXT1D_VIS"
1034#define XSH_ORDER_OXT1D "ORDER_OXT1D"
1035#define XSH_ORDER_OXT1D_NIR "ORDER_OXT1D_NIR"
1036#define XSH_ORDER_OXT1D_UVB "ORDER_OXT1D_UVB"
1037#define XSH_ORDER_OXT1D_VIS "ORDER_OXT1D_VIS"
1039#define XSH_MERGE1D_NIR "MERGE1D_NIR"
1040#define XSH_MERGE1D_UVB "MERGE1D_UVB"
1041#define XSH_MERGE1D_VIS "MERGE1D_VIS"
1043#define XSH_MERGE_EXT1D_NIR "MERGE_EXT1D_NIR"
1044#define XSH_MERGE_EXT1D_UVB "MERGE_EXT1D_UVB"
1045#define XSH_MERGE_EXT1D_VIS "MERGE_EXT1D_VIS"
1047#define XSH_MERGE_OXT1D "MERGE_OXT1D"
1048#define XSH_MERGE_OXT1D_NIR "MERGE_OXT1D_NIR"
1049#define XSH_MERGE_OXT1D_UVB "MERGE_OXT1D_UVB"
1050#define XSH_MERGE_OXT1D_VIS "MERGE_OXT1D_VIS"
1052#define XSH_FLUX_MOXT1D "FLUX_MOXT1D"
1053#define XSH_FLUX_MOXT1D_NIR "FLUX_MOXT1D_NIR"
1054#define XSH_FLUX_MOXT1D_UVB "FLUX_MOXT1D_UVB"
1055#define XSH_FLUX_MOXT1D_VIS "FLUX_MOXT1D_VIS"
1057#define XSH_PHYS_MERGE1D_NIR "PHYS_MERGE1D_NIR"
1058#define XSH_PHYS_MERGE1D_UVB "PHYS_MERGE1D_UVB"
1059#define XSH_PHYS_MERGE1D_VIS "PHYS_MERGE1D_VIS"
1061#define XSH_ORDER2D_NIR "ORDER2D_NIR"
1062#define XSH_ORDER2D_UVB "ORDER2D_UVB"
1063#define XSH_ORDER2D_VIS "ORDER2D_VIS"
1065#define XSH_SKY_ORDER2D "SKY_ORDER2D"
1066#define XSH_SKY_ORDER2D_NIR "SKY_ORDER2D_NIR"
1067#define XSH_SKY_ORDER2D_UVB "SKY_ORDER2D_UVB"
1068#define XSH_SKY_ORDER2D_VIS "SKY_ORDER2D_VIS"
1070#define XSH_MERGE2D_NIR "MERGE2D_NIR"
1071#define XSH_MERGE2D_UVB "MERGE2D_UVB"
1072#define XSH_MERGE2D_VIS "MERGE2D_VIS"
1074#define XSH_SKY_MERGE2D "SKY_MERGE2D"
1075#define XSH_SKY_MERGE2D_NIR "SKY_MERGE2D_NIR"
1076#define XSH_SKY_MERGE2D_UVB "SKY_MERGE2D_UVB"
1077#define XSH_SKY_MERGE2D_VIS "SKY_MERGE2D_VIS"
1080#define XSH_PHYS_MERGE2D_NIR "PHYS_MERGE2D_NIR"
1081#define XSH_PHYS_MERGE2D_UVB "PHYS_MERGE2D_UVB"
1082#define XSH_PHYS_MERGE2D_VIS "PHYS_MERGE2D_VIS"
1084#define XSH_THEO_TAB_SING "THEO_TAB_SING"
1085#define XSH_THEO_TAB_SING_UVB "THEO_TAB_SING_UVB"
1086#define XSH_THEO_TAB_SING_VIS "THEO_TAB_SING_VIS"
1087#define XSH_THEO_TAB_SING_NIR "THEO_TAB_SING_NIR"
1089#define XSH_THEO_TAB_MULT "THEO_TAB_MULT"
1090#define XSH_THEO_TAB_MULT_UVB "THEO_TAB_MULT_UVB"
1091#define XSH_THEO_TAB_MULT_VIS "THEO_TAB_MULT_VIS"
1092#define XSH_THEO_TAB_MULT_NIR "THEO_TAB_MULT_NIR"
1094#define XSH_THEO_TAB_IFU "THEO_TAB_IFU"
1095#define XSH_THEO_TAB_IFU_UVB "THEO_TAB_IFU_UVB"
1096#define XSH_THEO_TAB_IFU_VIS "THEO_TAB_IFU_VIS"
1097#define XSH_THEO_TAB_IFU_NIR "THEO_TAB_IFU_NIR"
1099#define XSH_SKY_TAB_MULT "SKY_TAB_MULT"
1100#define XSH_SKY_TAB_MULT_UVB "SKY_TAB_MULT_UVB"
1101#define XSH_SKY_TAB_MULT_VIS "SKY_TAB_MULT_VIS"
1102#define XSH_SKY_TAB_MULT_NIR "SKY_TAB_MULT_NIR"
1105#define XSH_SKY_TAB_SING "SKY_TAB_SING"
1106#define XSH_SKY_TAB_SING_UVB "SKY_TAB_SING_UVB"
1107#define XSH_SKY_TAB_SING_VIS "SKY_TAB_SING_VIS"
1108#define XSH_SKY_TAB_SING_NIR "SKY_TAB_SING_NIR"
1110#define XSH_LOCALIZATION_VIS "LOC_TABLE_VIS"
1111#define XSH_LOCALIZATION_UVB "LOC_TABLE_UVB"
1112#define XSH_LOCALIZATION_NIR "LOC_TABLE_NIR"
1114#define XSH_SLICE_OFFSET_VIS "SLICE_OFFSET_TABLE_VIS"
1115#define XSH_SLICE_OFFSET_UVB "SLICE_OFFSET_TABLE_UVB"
1116#define XSH_SLICE_OFFSET_NIR "SLICE_OFFSET_TABLE_NIR"
1118#define XSH_OFFSET "OFFSET_TAB"
1119#define XSH_OFFSET_DOWN_IFU "OFFSET_TAB_DOWN_IFU"
1120#define XSH_OFFSET_CEN_IFU "OFFSET_TAB_CEN_IFU"
1121#define XSH_OFFSET_UP_IFU "OFFSET_TAB_UP_IFU"
1122#define XSH_OFFSET_DOWN_IFU_VIS "OFFSET_TAB_DOWN_IFU_VIS"
1123#define XSH_OFFSET_CEN_IFU_VIS "OFFSET_TAB_CEN_IFU_VIS"
1124#define XSH_OFFSET_UP_IFU_VIS "OFFSET_TAB_UP_IFU_VIS"
1125#define XSH_OFFSET_DOWN_IFU_UVB "OFFSET_TAB_DOWN_IFU_UVB"
1126#define XSH_OFFSET_CEN_IFU_UVB "OFFSET_TAB_CEN_IFU_UVB"
1127#define XSH_OFFSET_UP_IFU_UVB "OFFSET_TAB_UP_IFU_UVB"
1128#define XSH_OFFSET_DOWN_IFU_NIR "OFFSET_TAB_DOWN_IFU_NIR"
1129#define XSH_OFFSET_CEN_IFU_NIR "OFFSET_TAB_CEN_IFU_NIR"
1130#define XSH_OFFSET_UP_IFU_NIR "OFFSET_TAB_UP_IFU_NIR"
1134#define XSH_BADPIXEL_MAP "BADPIXEL_MAP"
1135#define XSH_BADPIXEL_MAP_UVB "BADPIXEL_MAP_UVB"
1136#define XSH_BADPIXEL_MAP_VIS "BADPIXEL_MAP_VIS"
1137#define XSH_BADPIXEL_MAP_NIR "BADPIXEL_MAP_NIR"
1139#define XSH_TELL_LINE_LIST "TELL_LINE_LIST"
1140#define XSH_TELL_LINE_LIST_UVB "TELL_LINE_LIST_UVB"
1141#define XSH_TELL_LINE_LIST_VIS "TELL_LINE_LIST_VIS"
1142#define XSH_TELL_LINE_LIST_NIR "TELL_LINE_LIST_NIR"
1144#define XSH_RESPONSE_SLIT "RESPONSE_SLIT"
1145#define XSH_RESPONSE_SLIT_UVB "RESPONSE_SLIT_UVB"
1146#define XSH_RESPONSE_SLIT_VIS "RESPONSE_SLIT_VIS"
1147#define XSH_RESPONSE_SLIT_NIR "RESPONSE_SLIT_NIR"
1149#define XSH_RESPONSE_MERGE1D_SLIT "RESPONSE_MERGE1D_SLIT"
1150#define XSH_RESPONSE_MERGE1D_SLIT_UVB "RESPONSE_MERGE1D_SLIT_UVB"
1151#define XSH_RESPONSE_MERGE1D_SLIT_VIS "RESPONSE_MERGE1D_SLIT_VIS"
1152#define XSH_RESPONSE_MERGE1D_SLIT_NIR "RESPONSE_MERGE1D_SLIT_NIR"
1154#define XSH_RRESPONSE_MERGE1D_SLIT "RRESPONSE_MERGE1D_SLIT"
1155#define XSH_RRESPONSE_MERGE1D_SLIT_UVB "RRESPONSE_MERGE1D_SLIT_UVB"
1156#define XSH_RRESPONSE_MERGE1D_SLIT_VIS "RRESPONSE_MERGE1D_SLIT_VIS"
1157#define XSH_RRESPONSE_MERGE1D_SLIT_NIR "RRESPONSE_MERGE1D_SLIT_NIR"
1159#define XSH_MRESPONSE_MERGE1D_SLIT "MRESPONSE_MERGE1D_SLIT"
1160#define XSH_MRESPONSE_MERGE1D_SLIT_UVB "MRESPONSE_MERGE1D_SLIT_UVB"
1161#define XSH_MRESPONSE_MERGE1D_SLIT_VIS "MRESPONSE_MERGE1D_SLIT_VIS"
1162#define XSH_MRESPONSE_MERGE1D_SLIT_NIR "MRESPONSE_MERGE1D_SLIT_NIR"
1165#define XSH_RESPONSE_ORDER1D_SLIT "RESPONSE_ORDER1D_SLIT"
1166#define XSH_RESPONSE_ORDER1D_SLIT_UVB "RESPONSE_ORDER1D_SLIT_UVB"
1167#define XSH_RESPONSE_ORDER1D_SLIT_VIS "RESPONSE_ORDER1D_SLIT_VIS"
1168#define XSH_RESPONSE_ORDER1D_SLIT_NIR "RESPONSE_ORDER1D_SLIT_NIR"
1170#define XSH_RESPONSE_OFFSET "RESPONSE_OFFSET"
1171#define XSH_RESPONSE_OFFSET_UVB "RESPONSE_OFFSET_UVB"
1172#define XSH_RESPONSE_OFFSET_VIS "RESPONSE_OFFSET_VIS"
1173#define XSH_RESPONSE_OFFSET_NIR "RESPONSE_OFFSET_NIR"
1176#define XSH_RESPONSE_IFU_UVB "RESPONSE_IFU_UVB"
1177#define XSH_RESPONSE_IFU_VIS "RESPONSE_IFU_VIS"
1178#define XSH_RESPONSE_IFU_NIR "RESPONSE_IFU_NIR"
1179#define XSH_OFFSET_TABLE_UVB "OFFSET_TABLE_UVB"
1180#define XSH_OFFSET_TABLE_VIS "OFFSET_TABLE_VIS"
1181#define XSH_OFFSET_TABLE_NIR "OFFSET_TABLE_NIR"
1183#define XSH_TELL_MASK "TELL_MASK"
1184#define XSH_TELL_MASK_UVB "TELL_MASK_UVB"
1185#define XSH_TELL_MASK_VIS "TELL_MASK_VIS"
1186#define XSH_TELL_MASK_NIR "TELL_MASK_NIR"
1188#define XSH_STD_STAR_FLUX_UVB "STD_STAR_FLUX_UVB"
1189#define XSH_STD_STAR_FLUX_VIS "STD_STAR_FLUX_VIS"
1190#define XSH_STD_STAR_FLUX_NIR "STD_STAR_FLUX_NIR"
1191#define XSH_ATMOS_EXT "ATMOS_EXT"
1192#define XSH_ATMOS_EXT_UVB "ATMOS_EXT_UVB"
1193#define XSH_ATMOS_EXT_VIS "ATMOS_EXT_VIS"
1194#define XSH_ATMOS_EXT_NIR "ATMOS_EXT_NIR"
1196#define XSH_SPECTRAL_FORMAT "SPECTRAL_FORMAT_TAB_"
1197#define XSH_SPECTRAL_FORMAT_NIR "SPECTRAL_FORMAT_TAB_NIR"
1198#define XSH_SPECTRAL_FORMAT_UVB "SPECTRAL_FORMAT_TAB_UVB"
1199#define XSH_SPECTRAL_FORMAT_VIS "SPECTRAL_FORMAT_TAB_VIS"
1204#define XSH_SPECTRAL_FORMAT_JH_NIR "SPECTRAL_FORMAT_TAB_JH_NIR"
1207#define XSH_MODEL_WAVE_LIST "XSH_MODEL_COMPUTE_WAVE_LIST_"
1208#define XSH_MODEL_WAVE_LIST_UVB "XSH_MODEL_COMPUTE_WAVE_LIST_UVB"
1209#define XSH_MODEL_WAVE_LIST_VIS "XSH_MODEL_COMPUTE_WAVE_LIST_VIS"
1210#define XSH_MODEL_WAVE_LIST_NIR "XSH_MODEL_COMPUTE_WAVE_LIST_NIR"
1212#define XSH_MODEL_TEST_PAR "XSH_MODEL_COMPUTE_TEST_PAR_"
1213#define XSH_MODEL_TEST_PAR_UVB "XSH_MODEL_COMPUTE_TEST_PAR_UVB"
1214#define XSH_MODEL_TEST_PAR_VIS "XSH_MODEL_COMPUTE_TEST_PAR_VIS"
1215#define XSH_MODEL_TEST_PAR_NIR "XSH_MODEL_COMPUTE_TEST_PAR_NIR"
1217#define XSH_ANNEAL_ZNSE "XSH_MODEL_ANNEAL_ZNSE"
1218#define XSH_ANNEAL_CONFIG "XSH_MODEL_ANNEAL_CONFIG"
1219#define XSH_ANNEAL_MEAS_COORD "XSH_MODEL_ANNEAL_MEAS_COORD"
1222#define XSH_MOD_CFG_OPT_REC "XSH_MOD_CFG_OPT_REC"
1223#define XSH_MOD_CFG_OPT_REC_UVB "XSH_MOD_CFG_OPT_REC_UVB"
1224#define XSH_MOD_CFG_OPT_REC_VIS "XSH_MOD_CFG_OPT_REC_VIS"
1225#define XSH_MOD_CFG_OPT_REC_NIR "XSH_MOD_CFG_OPT_REC_NIR"
1227#define XSH_MOD_CFG_OPT_FMT "XSH_MOD_CFG_OPT_FMT"
1228#define XSH_MOD_CFG_OPT_FMT_UVB "XSH_MOD_CFG_OPT_FMT_UVB"
1229#define XSH_MOD_CFG_OPT_FMT_VIS "XSH_MOD_CFG_OPT_FMT_VIS"
1230#define XSH_MOD_CFG_OPT_FMT_NIR "XSH_MOD_CFG_OPT_FMT_NIR"
1233#define XSH_MOD_CFG_OPT_2D "XSH_MOD_CFG_OPT_2D"
1234#define XSH_MOD_CFG_OPT_2D_UVB "XSH_MOD_CFG_OPT_2D_UVB"
1235#define XSH_MOD_CFG_OPT_2D_VIS "XSH_MOD_CFG_OPT_2D_VIS"
1236#define XSH_MOD_CFG_OPT_2D_NIR "XSH_MOD_CFG_OPT_2D_NIR"
1239#define XSH_MOD_CFG_OPT_WAV_SLIT "XSH_MOD_CFG_OPT_WAV_SLIT"
1240#define XSH_MOD_CFG_OPT_WAV_SLIT_UVB "XSH_MOD_CFG_OPT_WAV_SLIT_UVB"
1241#define XSH_MOD_CFG_OPT_WAV_SLIT_VIS "XSH_MOD_CFG_OPT_WAV_SLIT_VIS"
1242#define XSH_MOD_CFG_OPT_WAV_SLIT_NIR "XSH_MOD_CFG_OPT_WAV_SLIT_NIR"
1245#define XSH_MOD_CFG_OPT_WAV_IFU "XSH_MOD_CFG_OPT_WAV_IFU"
1246#define XSH_MOD_CFG_OPT_WAV_IFU_UVB "XSH_MOD_CFG_OPT_WAV_IFU_UVB"
1247#define XSH_MOD_CFG_OPT_WAV_IFU_VIS "XSH_MOD_CFG_OPT_WAV_IFU_VIS"
1248#define XSH_MOD_CFG_OPT_WAV_IFU_NIR "XSH_MOD_CFG_OPT_WAV_IFU_NIR"
1251#define XSH_MOD_CFG_TAB "XSH_MOD_CFG_TAB"
1252#define XSH_MOD_CFG_TAB_UVB "XSH_MOD_CFG_TAB_UVB"
1253#define XSH_MOD_CFG_TAB_VIS "XSH_MOD_CFG_TAB_VIS"
1254#define XSH_MOD_CFG_TAB_NIR "XSH_MOD_CFG_TAB_NIR"
1256#define XSH_MOD_CFG_OPT_AFC "XSH_MOD_CFG_OPT_AFC"
1257#define XSH_MOD_CFG_OPT_AFC_UVB "XSH_MOD_CFG_OPT_AFC_UVB"
1258#define XSH_MOD_CFG_OPT_AFC_VIS "XSH_MOD_CFG_OPT_AFC_VIS"
1259#define XSH_MOD_CFG_OPT_AFC_NIR "XSH_MOD_CFG_OPT_AFC_NIR"
1261#define XSH_MOD_CFG "XSH_MOD_CFG_TAB"
1262#define XSH_MOD_CFG_UVB "XSH_MOD_CFG_TAB_UVB"
1263#define XSH_MOD_CFG_VIS "XSH_MOD_CFG_TAB_VIS"
1264#define XSH_MOD_CFG_NIR "XSH_MOD_CFG_TAB_NIR"
1266#define XSH_MOD_CFG_OPEN "XSH_MOD_CFG_OPEN_"
1267#define XSH_MOD_CFG_OPEN_UVB "XSH_MOD_CFG_OPEN_UVB"
1268#define XSH_MOD_CFG_OPEN_VIS "XSH_MOD_CFG_OPEN_VIS"
1269#define XSH_MOD_CFG_OPEN_NIR "XSH_MOD_CFG_OPEN_NIR"
1271#define XSH_MEASCOORD "XSH_MEASCOORD"
1272#define XSH_MEASCOORD_UVB "XSH_MEASCOORD_UVB"
1273#define XSH_MEASCOORD_VIS "XSH_MEASCOORD_VIS"
1274#define XSH_MEASCOORD_NIR "XSH_MEASCOORD_NIR"
1276#define XSH_MOD_CFG_FAN "XSH_MOD_CFG_FAN"
1277#define XSH_MOD_CFG_FAN_UVB "XSH_MOD_CFG_FAN_UVB"
1278#define XSH_MOD_CFG_FAN_VIS "XSH_MOD_CFG_FAN_VIS"
1279#define XSH_MOD_CFG_FAN_NIR "XSH_MOD_CFG_FAN_NIR"
1281#define XSH_MODEL_GUESS_XY "XSH_MODEL_GUESS_XY"
1282#define XSH_MODEL_GUESS_XY_UVB "XSH_MODEL_GUESS_XY_UVB"
1283#define XSH_MODEL_GUESS_XY_VIS "XSH_MODEL_GUESS_XY_VIS"
1284#define XSH_MODEL_GUESS_XY_NIR "XSH_MODEL_GUESS_XY_NIR"
1286#define XSH_MEASURE_LINE_POS_XY "MEASURE_LINE_POS_XY"
1287#define XSH_MEASURE_LINE_POS_XY_UVB "MEASURE_LINE_POS_XY_UVB"
1288#define XSH_MEASURE_LINE_POS_XY_VIS "MEASURE_LINE_POS_XY_VIS"
1289#define XSH_MEASURE_LINE_POS_XY_NIR "MEASURE_LINE_POS_XY_NIR"
1292#define XSH_COL_MODEL_CONF_NAME "Parameter_Name"
1293#define XSH_COL_MODEL_CONF_UNITS "Parameter_Units"
1294#define XSH_COL_MODEL_CONF_BEST "Best_Guess"
1295#define XSH_COL_MODEL_CONF_LOW "Low_Limit"
1296#define XSH_COL_MODEL_CONF_HIGH "High_Limit"
1297#define XSH_COL_MODEL_CONF_FLAG "Compute_Flag"
1298#define XSH_UTIL_GENCONFIG_RAW "CONFIG"
1301#define XSH_PRODUCT_PREFIX ""
1303#define XSH_SCIENCE_SPECTRUM "SCIENCE.SPECTRUM"
1304#define XSH_ANC_SPECTRUM "ANCILLARY.2DSPECTRUM"
1306#define XSH_IS_RAW(tag) ( \
1307 XSH_CMP_TAG_ARM( tag, XSH_LINEARITY) || \
1308 XSH_CMP_TAG_ARM( tag, XSH_DARK) || \
1309 (strcmp(tag,XSH_DARK_AGC ) == 0) || \
1310 (strcmp(tag,XSH_LINEARITY_UVB_OFF ) == 0) || \
1311 (strcmp(tag,XSH_LINEARITY_UVB_ON ) == 0) || \
1312 (strcmp(tag,XSH_LINEARITY_VIS_OFF ) == 0) || \
1313 (strcmp(tag,XSH_LINEARITY_VIS_ON ) == 0) || \
1314 (strcmp(tag,XSH_LINEARITY_NIR_OFF ) == 0) || \
1315 (strcmp(tag,XSH_LINEARITY_NIR_ON ) == 0) || \
1316 (strcmp(tag,XSH_BIAS_UVB ) == 0) || \
1317 (strcmp(tag,XSH_BIAS_VIS ) == 0) || \
1318 (strcmp(tag,XSH_BIAS_AGC ) == 0) || \
1319 (strcmp(tag,XSH_FMTCHK_UVB) == 0) || \
1320 (strcmp(tag,XSH_FMTCHK_VIS) == 0) || \
1321 (strcmp(tag,XSH_FMTCHK_NIR) == 0) || \
1322 (strcmp(tag,XSH_FMTCHK_OFF) == 0) || \
1323 (strcmp(tag,XSH_ORDERDEF_QTH_UVB) == 0) || \
1324 (strcmp(tag,XSH_ORDERDEF_D2_UVB) == 0) || \
1325 (strcmp(tag,XSH_ORDERDEF_VIS) == 0) || \
1326 (strcmp(tag,XSH_ORDERDEF_NIR) == 0) || \
1327 (strcmp(tag,XSH_ORDERDEF_OFF) == 0) || \
1328 (strcmp(tag,XSH_FLAT_QTH_SLIT_UVB) == 0) || \
1329 (strcmp(tag,XSH_FLAT_D2_SLIT_UVB) == 0) || \
1330 (strcmp(tag,XSH_FLAT_SLIT_VIS) == 0) || \
1331 (strcmp(tag,XSH_FLAT_SLIT_NIR) == 0) || \
1332 (strcmp(tag,XSH_FLAT_SLIT_OFF) == 0) || \
1333 (strcmp(tag,XSH_FLAT_QTH_IFU_UVB) == 0) || \
1334 (strcmp(tag,XSH_FLAT_D2_IFU_UVB) == 0) || \
1335 (strcmp(tag,XSH_FLAT_IFU_VIS) == 0) || \
1336 (strcmp(tag,XSH_FLAT_IFU_NIR) == 0) || \
1337 (strcmp(tag,XSH_FLAT_IFU_OFF) == 0) || \
1338 (strcmp(tag,XSH_WAVE_UVB) == 0) || \
1339 (strcmp(tag,XSH_WAVE_VIS) == 0) || \
1340 (strcmp(tag,XSH_WAVE_NIR) == 0) || \
1341 (strcmp(tag,XSH_WAVE_OFF) == 0) || \
1342 (strcmp(tag,XSH_ARC_IFU_UVB) == 0) || \
1343 (strcmp(tag,XSH_ARC_IFU_VIS) == 0) || \
1344 (strcmp(tag,XSH_ARC_IFU_NIR) == 0) || \
1345 (strcmp(tag,XSH_ARC_IFU_OFF) == 0) || \
1346 (strcmp(tag,XSH_ARC_SLIT_UVB) == 0) || \
1347 (strcmp(tag,XSH_ARC_SLIT_VIS) == 0) || \
1348 (strcmp(tag,XSH_ARC_SLIT_NIR) == 0) || \
1349 (strcmp(tag,XSH_ARC_SLIT_OFF) == 0) || \
1350 XSH_CMP_TAG_ARM( tag, XSH_FLEX) || \
1351 XSH_CMP_TAG_ARM( tag, XSH_TRACE) || \
1352 XSH_CMP_TAG_ARM( tag, XSH_STD_TELL_SLIT_STARE) || \
1353 XSH_CMP_TAG_ARM( tag, XSH_STD_TELL_SLIT_NOD) || \
1354 XSH_CMP_TAG_ARM( tag, XSH_STD_TELL_IFU_STARE) || \
1355 XSH_CMP_TAG_ARM( tag, XSH_STD_TELL_IFU_OFFSET) || \
1356 XSH_CMP_TAG_ARM( tag, XSH_STD_FLUX_SLIT_STARE) || \
1357 XSH_CMP_TAG_ARM( tag, XSH_STD_FLUX_SLIT_OFFSET) || \
1358 XSH_CMP_TAG_ARM( tag, XSH_STD_FLUX_SLIT_NOD) || \
1359 XSH_CMP_TAG_ARM( tag, XSH_STD_FLUX_NOD) || \
1360 XSH_CMP_TAG_ARM( tag, XSH_STD_FLUX_IFU_STARE) || \
1361 XSH_CMP_TAG_ARM( tag, XSH_STD_FLUX_IFU_OFFSET) || \
1362 XSH_CMP_TAG_ARM( tag, XSH_OBJECT_SLIT_STARE) || \
1363 XSH_CMP_TAG_ARM( tag, XSH_OBJECT_SLIT_OFFSET) || \
1364 XSH_CMP_TAG_ARM( tag, XSH_OBJECT_SLIT_NOD) || \
1365 XSH_CMP_TAG_ARM( tag, XSH_OBJECT_IFU_STARE) || \
1366 XSH_CMP_TAG_ARM( tag, XSH_OBJECT_IFU_OFFSET) || \
1367 XSH_CMP_TAG_ARM( tag, XSH_SKY_SLIT) || \
1368 XSH_CMP_TAG_ARM( tag, XSH_IMA) || \
1369 (strcmp(tag,XSH_IMA) == 0) || \
1370 XSH_CMP_TAG_ARM( tag, XSH_AFC_POS) || \
1371 XSH_CMP_TAG_ARM( tag, XSH_AFC_SLT) || \
1372 XSH_CMP_TAG_ARM( tag, XSH_AFC_CAL) || \
1373 XSH_CMP_TAG_ARM( tag, XSH_AFC_ATT) || \
1374 XSH_CMP_TAG_ARM( tag, XSH_RAW_IMA_SLIT) || \
1375 XSH_CMP_TAG_ARM( tag, XSH_RAW_IMA_IFU) || \
1376 XSH_CMP_TAG_ARM( tag, XSH_SKY_IFU))
1380#define XSH_IS_CALIB(tag) ( \
1381 XSH_CMP_TAG_ARM( tag, XSH_IFU_CFG_TAB) || \
1382 XSH_CMP_TAG_ARM( tag, XSH_IFU_CFG_COR) || \
1383 XSH_CMP_TAG_ARM( tag, XSH_DRS) || \
1384 XSH_CMP_TAG_ARM( tag, XSH_DRS_MBIAS) || \
1385 XSH_CMP_TAG_ARM( tag, XSH_DRS_MDARK) || \
1386 XSH_CMP_TAG_ARM( tag, XSH_BADPIXEL_MAP) || \
1387 XSH_CMP_TAG_ARM( tag, XSH_MASTER_BP_MAP) || \
1388 XSH_CMP_TAG_ARM( tag, XSH_MASTER_BP_MAP_NLIN) || \
1389 XSH_CMP_TAG_ARM( tag, XSH_MASTER_BP_MAP_BIAS) || \
1390 XSH_CMP_TAG_ARM( tag, XSH_MASTER_BP_MAP_DARK) || \
1391 XSH_CMP_TAG_ARM( tag, XSH_MASTER_BP_MAP_FLAT) || \
1392 XSH_CMP_TAG_ARM( tag, XSH_BP_MAP) || \
1393 XSH_CMP_TAG_ARM( tag, XSH_BIAS_PD) || \
1394 XSH_CMP_TAG_ARM( tag, XSH_BIAS_PD_MASK) || \
1395 XSH_CMP_TAG_ARM( tag, XSH_BP_MAP_CP) || \
1396 XSH_CMP_TAG_ARM( tag, XSH_BP_MAP_HP) || \
1397 XSH_CMP_TAG_ARM( tag, XSH_BP_MAP_SP) || \
1398 XSH_CMP_TAG_ARM( tag, XSH_BP_MAP_DP) || \
1399 XSH_CMP_TAG_ARM( tag, XSH_BP_MAP_NL) || \
1400 XSH_CMP_TAG_ARM( tag, XSH_RAW_BP_MAP_NL) || \
1401 XSH_CMP_TAG_ARM( tag, XSH_BP_MAP_RP) || \
1402 XSH_CMP_TAG_ARM( tag, XSH_BP_MAP_NP) || \
1403 XSH_CMP_TAG_ARM( tag, XSH_BP_MAP_PN) || \
1404 XSH_CMP_TAG_ARM( tag, XSH_MASTER_BIAS) || \
1405 (strcmp(tag,XSH_MASTER_BIAS_AGC) == 0) || \
1406 XSH_CMP_TAG_ARM( tag, XSH_MASTER_DARK) || \
1407 XSH_CMP_TAG_ARM( tag, XSH_ORDER_TAB_RECOV) || \
1408 XSH_CMP_TAG_ARM( tag, XSH_ORDER_TAB_GUESS) || \
1409 XSH_CMP_TAG_ARM( tag, XSH_ORDER_TAB_CENTR) || \
1410 XSH_CMP_TAG_LAMP( tag, XSH_ORDER_TAB_EDGES) || \
1411 XSH_CMP_TAG_MODE( tag, XSH_ORDER_TAB_AFC) || \
1412 XSH_CMP_TAG_LAMP( tag, XSH_MASTER_FLAT) || \
1413 XSH_CMP_TAG_ARM( tag, XSH_WAVE_TAB_GUESS) || \
1414 XSH_CMP_TAG_ARM( tag, XSH_WAVE_TAB_2D) || \
1415 XSH_CMP_TAG_ARM( tag, XSH_WAVE_TAB_AFC) || \
1416 XSH_CMP_TAG_MODE( tag, XSH_WAVE_TAB_ARC) || \
1417 XSH_CMP_TAG_MODE( tag, XSH_SHIFT_TAB) || \
1418 XSH_CMP_TAG_ARM( tag, XSH_HIGH_ABS_WIN) || \
1419 XSH_CMP_TAG_ARM( tag, XSH_TELL_MOD_CAT) || \
1420 XSH_CMP_TAG_ARM( tag, XSH_ARC_LINE_LIST) || \
1421 XSH_CMP_TAG_ARM( tag, XSH_ARC_LINE_LIST_INTMON) || \
1422 XSH_CMP_TAG_ARM( tag, XSH_ARC_LINE_LIST_AFC) || \
1423 XSH_CMP_TAG_ARM( tag, XSH_SKY_LINE_LIST) || \
1424 XSH_CMP_TAG_ARM( tag, XSH_ARC_LINE_LIST_PREDICT) || \
1425 XSH_CMP_TAG_ARM( tag, XSH_ARC_LINE_LIST_2DMAP) || \
1426 XSH_CMP_TAG_ARM( tag, XSH_MOD_CFG_TAB) || \
1427 XSH_CMP_TAG_ARM( tag, XSH_MOD_CFG_OPT_AFC) || \
1430 XSH_CMP_TAG_ARM( tag, XSH_MOD_CFG_OPT_REC) || \
1431 XSH_CMP_TAG_ARM( tag, XSH_MOD_CFG_OPT_FMT) || \
1432 XSH_CMP_TAG_ARM( tag, XSH_MOD_CFG_OPT_2D) || \
1433 (strcmp(tag,XSH_MEASURE_FLAT_D2_SLIT_EDGES_UVB) == 0) || \
1434 (strcmp(tag,XSH_MEASURE_FLAT_QTH_SLIT_EDGES_UVB) == 0) || \
1435 (strcmp(tag,XSH_MEASURE_FLAT_SLIT_EDGES_VIS) == 0) || \
1436 (strcmp(tag,XSH_MEASURE_FLAT_SLIT_EDGES_NIR) == 0) || \
1437 (strcmp(tag,XSH_MEASURE_FLAT_D2_IFU_EDGES_UVB) == 0) || \
1438 (strcmp(tag,XSH_MEASURE_FLAT_QTH_IFU_EDGES_UVB) == 0) || \
1439 (strcmp(tag,XSH_MEASURE_FLAT_IFU_EDGES_VIS) == 0) || \
1440 (strcmp(tag,XSH_MEASURE_FLAT_IFU_EDGES_NIR) == 0) || \
1441 XSH_CMP_TAG_ARM( tag, XSH_MEASCOORD) || \
1442 XSH_CMP_TAG_ARM( tag, XSH_MOD_CFG_OPEN) || \
1443 XSH_CMP_TAG_ARM( tag, XSH_MOD_CFG_FAN) || \
1444 XSH_CMP_TAG_ARM( tag, XSH_MODEL_WAVE_LIST) || \
1445 XSH_CMP_TAG_ARM( tag, XSH_TELL_LINE_LIST) || \
1446 XSH_CMP_TAG_ARM( tag, XSH_DISP_TAB) || \
1447 XSH_CMP_TAG_ARM( tag, XSH_DISP_TAB_AFC) || \
1448 XSH_CMP_TAG_ARM( tag, XSH_SLIT_MAP) || \
1449 XSH_CMP_TAG_ARM( tag, XSH_IFU_MAP) || \
1450 XSH_CMP_TAG_ARM( tag, XSH_RESPONSE_OFFSET) || \
1451 XSH_CMP_TAG_ARM( tag, XSH_RESPONSE_SLIT) || \
1452 XSH_CMP_TAG_ARM( tag, XSH_RESPONSE_ORDER1D_SLIT) || \
1453 XSH_CMP_TAG_ARM( tag, XSH_RESPONSE_MERGE1D_SLIT) || \
1454 XSH_CMP_TAG_ARM( tag, XSH_MRESPONSE_MERGE1D_SLIT) || \
1455 XSH_CMP_TAG_ARM( tag, XSH_RRESPONSE_MERGE1D_SLIT) || \
1456 XSH_CMP_TAG_ARM( tag, XSH_RESPONSE_IFU) || \
1457 XSH_CMP_TAG_ARM( tag, XSH_OFFSET_TABLE) || \
1458 XSH_CMP_TAG_ARM( tag, XSH_TELL_MASK) || \
1459 XSH_CMP_TAG_ARM( tag, XSH_STD_STAR_FLUX) || \
1460 XSH_CMP_TAG_ARM( tag, XSH_THEO_TAB_SING) || \
1461 XSH_CMP_TAG_ARM( tag, XSH_THEO_TAB_MULT) || \
1462 XSH_CMP_TAG_ARM( tag, XSH_THEO_TAB_IFU) || \
1463 XSH_CMP_TAG_ARM( tag, XSH_WAVE_MAP) || \
1464 XSH_CMP_TAG_ARM( tag, XSH_SKY_MAP) || \
1465 XSH_CMP_TAG_ARM( tag, XSH_SKY_SUB_BKPTS) || \
1466 XSH_CMP_TAG_ARM( tag, XSH_SKY_ORDERS_CHUNKS) || \
1467 (strcmp(tag,XSH_SPECTRAL_FORMAT_JH_NIR) == 0) || \
1468 XSH_CMP_TAG_ARM( tag, XSH_SPECTRAL_FORMAT) || \
1469 XSH_CMP_TAG_ARM( tag, XSH_GUESS_LINES_POS) || \
1470 XSH_CMP_TAG_ARM( tag, XSH_WAVE_TAB_ARC_DOWN_IFU) || \
1471 XSH_CMP_TAG_ARM( tag, XSH_OFFSET_UP_IFU) || \
1472 XSH_CMP_TAG_ARM( tag, XSH_OFFSET_CEN_IFU) || \
1473 XSH_CMP_TAG_ARM( tag, XSH_OFFSET_DOWN_IFU) || \
1474 XSH_CMP_TAG_ARM( tag, XSH_FLUX_STD_TAB) || \
1475 XSH_CMP_TAG_ARM( tag, XSH_FLUX_STD_CAT) || \
1476 XSH_CMP_TAG_ARM( tag, XSH_RESP_FIT_POINTS_CAT) || \
1477 XSH_CMP_TAG_ARM( tag, XSH_EXTCOEFF_TAB) || \
1478 XSH_CMP_TAG_ARM( tag, XSH_WAVE_TAB_ARC_CEN_IFU) || \
1479 XSH_CMP_TAG_ARM( tag, XSH_WAVE_TAB_ARC_UP_IFU) || \
1480 XSH_CMP_TAG_ARM( tag, XSH_STD_FLUX_SLIT_STARE_ORDER1D) || \
1481 XSH_CMP_TAG_ARM( tag, XSH_STD_FLUX_SLIT_STARE_MERGE1D) || \
1482 XSH_CMP_TAG_ARM( tag, XSH_SLICE_OFFSET) || \
1488 XSH_CMP_TAG_ARM( tag, XSH_ATMOS_EXT))
1491#define XSH_STD_TELL_SLIT(arm)\
1492 (arm) == XSH_ARM_UVB ? "STD_TELL_SLIT_STARE_UVB" : \
1493 (arm) == XSH_ARM_VIS ? "STD_TELL_SLIT_STARE_VIS" : \
1494 (arm) == XSH_ARM_NIR ? "STD_TELL_SLIT_STARE_NIR" : "??TAG??"
1496#define XSH_STD_FLUX_SLIT(arm)\
1497 (arm) == XSH_ARM_UVB ? "STD_FLUX_SLIT_STARE_UVB" : \
1498 (arm) == XSH_ARM_VIS ? "STD_FLUX_SLIT_STARE_VIS" : \
1499 (arm) == XSH_ARM_NIR ? "STD_FLUX_SLIT_STARE_NIR" : "??TAG??"
1502#define XSH_STD_TELL_OFFSET(arm)\
1503 (arm) == XSH_ARM_UVB ? "STD_TELL_SLIT_OFFSET_UVB" : \
1504 (arm) == XSH_ARM_VIS ? "STD_TELL_SLIT_OFFSET_VIS" : \
1505 (arm) == XSH_ARM_NIR ? "STD_TELL_SLIT_OFFSET_NIR" : "??TAG??"
1507#define XSH_STD_FLUX_OFFSET(arm)\
1508 (arm) == XSH_ARM_UVB ? "STD_FLUX_SLIT_OFFSET_UVB" : \
1509 (arm) == XSH_ARM_VIS ? "STD_FLUX_SLIT_OFFSET_VIS" : \
1510 (arm) == XSH_ARM_NIR ? "STD_FLUX_SLIT_OFFSET_NIR" : "??TAG??"
1513#define XSH_STD_FLUX(arm)\
1514 (arm) == XSH_ARM_UVB ? "STD_FLUX_STARE_UVB" : \
1515 (arm) == XSH_ARM_VIS ? "STD_FLUX_STARE_VIS" : \
1516 (arm) == XSH_ARM_NIR ? "STD_FLUX_STARE_NIR" : "??TAG??"
1518#define XSH_STD_STAR_FLUX(arm)\
1519 (arm) == XSH_ARM_UVB ? "STD_STAR_FLUX_UVB" : \
1520 (arm) == XSH_ARM_VIS ? "STD_STAR_FLUX_VIS" : \
1521 (arm) == XSH_ARM_NIR ? "STD_STAR_FLUX_NIR" : "??TAG??"
1523#define XSH_RESPONSE(arm)\
1524 (arm) == XSH_ARM_UVB ? "RESPONSE_UVB" : \
1525 (arm) == XSH_ARM_VIS ? "RESPONSE_VIS" : \
1526 (arm) == XSH_ARM_NIR ? "RESPONSE_NIR" : "??TAG??"
1528#define XSH_CMP_TAG_ARM( tag_in, TAG) \
1529 ( strcmp(tag_in, TAG##_UVB) == 0) || \
1530 ( strcmp(tag_in, TAG##_VIS) == 0) || \
1531 ( strcmp(tag_in, TAG##_NIR) == 0)
1533#define XSH_CMP_TAG_MODE( tag_in, TAG) \
1534 ( strcmp( tag_in, TAG##_SLIT##_UVB) == 0) || \
1535 ( strcmp( tag_in, TAG##_SLIT##_VIS) == 0) || \
1536 ( strcmp( tag_in, TAG##_SLIT##_NIR) == 0) || \
1537 ( strcmp( tag_in, TAG##_IFU##_UVB) == 0) || \
1538 ( strcmp( tag_in, TAG##_IFU##_VIS) == 0) || \
1539 ( strcmp( tag_in, TAG##_IFU##_NIR) == 0)
1541#define XSH_CMP_TAG_LAMP( tag_in, TAG) \
1542 ( strcmp( tag_in, TAG##_SLIT##_UVB) == 0) || \
1543 ( strcmp( tag_in, TAG##_SLIT##_VIS) == 0) || \
1544 ( strcmp( tag_in, TAG##_SLIT##_NIR) == 0) || \
1545 ( strcmp( tag_in, TAG##_IFU##_UVB) == 0) || \
1546 ( strcmp( tag_in, TAG##_IFU##_VIS) == 0) || \
1547 ( strcmp( tag_in, TAG##_IFU##_NIR) == 0) || \
1548 ( strcmp( tag_in, TAG##_QTH_SLIT##_UVB) == 0) || \
1549 ( strcmp( tag_in, TAG##_D2_SLIT##_UVB) == 0) || \
1550 ( strcmp( tag_in, TAG##_QTH_IFU##_UVB) == 0) || \
1551 ( strcmp( tag_in, TAG##_D2_IFU##_UVB) == 0)
1553#define XSH_GET_TAG_FROM_ARM(TAG, instr)\
1554 (xsh_instrument_get_arm(instr)) == XSH_ARM_UVB ? TAG##_UVB : \
1555 (xsh_instrument_get_arm(instr)) == XSH_ARM_VIS ? TAG##_VIS : \
1556 (xsh_instrument_get_arm(instr)) == XSH_ARM_NIR ? TAG##_NIR : "??TAG??"
1558#define XSH_GET_TAG_FROM_ARM_EXT(TAG, instr)\
1559 (xsh_instrument_get_arm(instr)) == XSH_ARM_UVB ? TAG##_UVB : \
1560 (xsh_instrument_get_arm(instr)) == XSH_ARM_VIS ? TAG##_VIS : \
1561 (xsh_instrument_get_arm(instr)) == XSH_ARM_NIR ? TAG##_NIR : \
1562 (xsh_instrument_get_arm(instr)) == XSH_ARM_AGC ? TAG##_AGC : "??TAG??"
1564#define XSH_GET_TAG_FROM_SLITLET( TAG, slitlet, instr)\
1565 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_UVB && \
1566 (xsh_instrument_get_mode(instr) == XSH_MODE_SLIT)) ? TAG##_UVB : \
1567 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_VIS && \
1568 (xsh_instrument_get_mode(instr) == XSH_MODE_SLIT)) ? TAG##_VIS : \
1569 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_NIR && \
1570 (xsh_instrument_get_mode(instr) == XSH_MODE_SLIT)) ? TAG##_NIR : \
1571 ( (xsh_instrument_get_arm(instr) == XSH_ARM_UVB) && \
1572 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1573 (slitlet == LOWER_IFU_SLITLET)) ? TAG##_DOWN_IFU_UVB :\
1574 ( (xsh_instrument_get_arm(instr) == XSH_ARM_UVB) && \
1575 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1576 (slitlet == CENTER_IFU_SLITLET)) ? TAG##_CEN_IFU_UVB :\
1577 ( (xsh_instrument_get_arm(instr) == XSH_ARM_UVB) && \
1578 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1579 (slitlet == UPPER_IFU_SLITLET)) ? TAG##_UP_IFU_UVB :\
1580 ( (xsh_instrument_get_arm(instr) == XSH_ARM_VIS) && \
1581 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1582 (slitlet == LOWER_IFU_SLITLET)) ? TAG##_DOWN_IFU_VIS :\
1583 ( (xsh_instrument_get_arm(instr) == XSH_ARM_VIS) && \
1584 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1585 (slitlet == CENTER_IFU_SLITLET)) ? TAG##_CEN_IFU_VIS :\
1586 ( (xsh_instrument_get_arm(instr) == XSH_ARM_VIS) && \
1587 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1588 (slitlet == UPPER_IFU_SLITLET)) ? TAG##_UP_IFU_VIS :\
1589 ( (xsh_instrument_get_arm(instr) == XSH_ARM_NIR) && \
1590 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1591 (slitlet == LOWER_IFU_SLITLET)) ? TAG##_DOWN_IFU_NIR :\
1592 ( (xsh_instrument_get_arm(instr) == XSH_ARM_NIR) && \
1593 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1594 (slitlet == CENTER_IFU_SLITLET)) ? TAG##_CEN_IFU_NIR :\
1595 ( (xsh_instrument_get_arm(instr) == XSH_ARM_NIR) && \
1596 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1597 (slitlet == UPPER_IFU_SLITLET)) ? TAG##_UP_IFU_NIR : "??TAG??"
1599#define XSH_GET_TAG_FROM_MODE(TAG, instr)\
1600 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_UVB && \
1601 (xsh_instrument_get_mode(instr) == XSH_MODE_SLIT)) ? TAG##_SLIT##_UVB : \
1602 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_VIS && \
1603 (xsh_instrument_get_mode(instr) == XSH_MODE_SLIT)) ? TAG##_SLIT##_VIS : \
1604 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_NIR && \
1605 (xsh_instrument_get_mode(instr) == XSH_MODE_SLIT)) ? TAG##_SLIT##_NIR : \
1606 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_UVB && \
1607 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU)) ? TAG##_IFU##_UVB : \
1608 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_VIS && \
1609 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU)) ? TAG##_IFU##_VIS : \
1610 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_NIR && \
1611 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU)) ? TAG##_IFU##_NIR : "??TAG??"
1613#define XSH_GET_TAG_FROM_LAMP(TAG, instr)\
1614 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_UVB && \
1615 (xsh_instrument_get_mode(instr) == XSH_MODE_SLIT) && \
1616 (xsh_instrument_get_lamp(instr) == XSH_LAMP_UNDEFINED)) ? TAG##_SLIT##_UVB : \
1617 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_UVB && \
1618 (xsh_instrument_get_mode(instr) == XSH_MODE_SLIT) && \
1619 (xsh_instrument_get_lamp(instr) == XSH_LAMP_QTH)) ? TAG##_QTH_SLIT##_UVB : \
1620 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_UVB && \
1621 (xsh_instrument_get_mode(instr) == XSH_MODE_SLIT) && \
1622 (xsh_instrument_get_lamp(instr) == XSH_LAMP_D2)) ? TAG##_D2_SLIT##_UVB : \
1623 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_VIS && \
1624 (xsh_instrument_get_mode(instr) == XSH_MODE_SLIT) && \
1625 (xsh_instrument_get_lamp(instr) == XSH_LAMP_UNDEFINED)) ? TAG##_SLIT##_VIS : \
1626 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_NIR && \
1627 (xsh_instrument_get_mode(instr) == XSH_MODE_SLIT) && \
1628 (xsh_instrument_get_lamp(instr) == XSH_LAMP_UNDEFINED)) ? TAG##_SLIT##_NIR : \
1629 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_UVB && \
1630 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1631 (xsh_instrument_get_lamp(instr) == XSH_LAMP_UNDEFINED)) ? TAG##_IFU##_UVB : \
1632 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_UVB && \
1633 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1634 (xsh_instrument_get_lamp(instr) == XSH_LAMP_QTH)) ? TAG##_QTH_IFU##_UVB : \
1635 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_UVB && \
1636 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1637 (xsh_instrument_get_lamp(instr) == XSH_LAMP_D2)) ? TAG##_D2_IFU##_UVB : \
1638 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_VIS && \
1639 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1640 (xsh_instrument_get_lamp(instr) == XSH_LAMP_UNDEFINED))? TAG##_IFU##_VIS : \
1641 ( (xsh_instrument_get_arm(instr)) == XSH_ARM_NIR && \
1642 (xsh_instrument_get_mode(instr) == XSH_MODE_IFU) && \
1643 (xsh_instrument_get_lamp(instr) == XSH_LAMP_UNDEFINED))? TAG##_IFU##_NIR : "??TAG??"
1651 cpl_frame_group group,cpl_frame_level level);
1655 cpl_frame_group group,cpl_frame_level level,cpl_frame** frm);
1673 cpl_frameset* calib);
1675 cpl_frameset** off);
1682 cpl_frameset *frameset,
1683 const cpl_parameterlist *parameters,
1684 const char *recipe_id,
1686 cpl_frame ** result_frame);
1689 const cpl_parameterlist *parameters,
const char *recipe_id,
1690 xsh_instrument* instr, cpl_frame ** result_frame,cpl_propertylist* qclist);
1693 const cpl_parameterlist *parameters,
const char *recipe_id,
1697 const cpl_parameterlist *parameters,
1698 const char *recipe_id,
1702 cpl_frameset *frameset,
1703 const cpl_parameterlist *parameters,
1704 const char *recipe_id,
1706 const char *prefix );
1709 const cpl_parameterlist * parameters,
1710 const char *recipe_id,
1712 const char *final_prefix ) ;
1715 const cpl_parameterlist * parameters,
1716 const char *recipe_id,
1718 const char *final_prefix ) ;
1721 const cpl_parameterlist * parameters,
1722 const char *recipe_id,
1724 const char *final_prefix ) ;
1727 const cpl_parameterlist * parameters,
1728 const char *recipe_id,
1730 const char* tag_prefix);
1733 const cpl_frame *uncal_frame,
1734 cpl_frameset *frameset,
1735 const cpl_frameset *usedframes,
1736 const cpl_parameterlist *parameters,
1737 const char *recipe_id,
1739 cpl_propertylist* qclist
1744 const char *pro_catg);
1840 cpl_frameset * frameset,
1841 const cpl_parameterlist * parameters,
1842 const char *recipe_id,
1844 const char *final_prefix ,
const char* type) ;
1847 const char * sky_tag,
1848 cpl_frameset **
object,
1849 cpl_frameset ** sky) ;
1869 cpl_vector* offset);
1904xsh_table_save(cpl_table* t, cpl_propertylist* ph, cpl_propertylist* xh,
const char* fname,
const int ext);
1907xsh_vector_save(cpl_vector* v, cpl_propertylist* ph,
const char* fname,
const int ext);
static xsh_instrument * instrument
void xsh_dfs_split_qth_d2(cpl_frameset *input, cpl_frameset **qth, cpl_frameset **d2)
Extracts QTH and D2 frames from input frameset.
cpl_frame * xsh_find_bpmap(cpl_frameset *set)
find the bad pixel map in a set of files
cpl_frame * xsh_find_order_tab_centr(cpl_frameset *frames, xsh_instrument *instr)
Find an order tab CENTR.
cpl_frame * xsh_find_raw_orderdef_vis_uvb(cpl_frameset *frames)
Find orderdef raw frame for UVB or VIS.
cpl_frame * xsh_find_std_star_flux(cpl_frameset *frames)
Find standard standard star flux frame.
cpl_error_code xsh_vector_save(cpl_vector *v, cpl_propertylist *ph, const char *fname, const int ext)
void xsh_add_product_imagelist(cpl_frame *frame, cpl_frameset *frameset, const cpl_parameterlist *parameters, const char *recipe_id, xsh_instrument *instrument, const char *final_prefix)
void xsh_add_product_vector(cpl_frame *frame, cpl_frameset *frameset, const cpl_parameterlist *parameters, const char *recipe_id, xsh_instrument *instrument, const char *final_prefix)
cpl_frame * xsh_find_master_dark(cpl_frameset *frames, xsh_instrument *instr)
Find master dark frame.
cpl_frame * xsh_find_spectral_format(cpl_frameset *frames, xsh_instrument *instr)
Find spectral format frame.
int xsh_dfs_split_offset(cpl_frameset *input, const char *object_tag, const char *sky_tag, cpl_frameset **object, cpl_frameset **sky)
split input RAW offset sof in OBJECT_... and SKY_... framesets
cpl_error_code xsh_calib_nir_respon_corr_if_JH(cpl_frameset *calib, xsh_instrument *instr)
void xsh_add_product_spectrum(cpl_frame *product_frame, cpl_frameset *frameset, const cpl_parameterlist *parameters, const char *recipe_id, xsh_instrument *instr, cpl_frame **result_frame, cpl_propertylist *qclist)
cpl_error_code xsh_calib_nir_corr_if_JH(cpl_frameset *calib, xsh_instrument *instr, const char *recid)
cpl_frameset * xsh_frameset_drl_frames(cpl_frameset *set)
extract DRL specific frames from frameset
cpl_frame * xsh_find_wave_tab_guess(cpl_frameset *frames, xsh_instrument *instr)
Find a wave tab guess.
cpl_frameset * xsh_find_wave_tab_ifu(cpl_frameset *frames, xsh_instrument *instr)
Find wave tab ARC (for IFU 3 frames)
cpl_frame * xsh_find_model_wavelist(cpl_frameset *frames, xsh_instrument *instr)
Find model wavelength list frame.
cpl_error_code xsh_frameset_merge(cpl_frameset *set1, cpl_frameset *set2)
Extracts raw frames.
void xsh_dfs_filter(cpl_frameset *raws, const char *tag[], int size)
filter the frameset with the given tag list
cpl_frame * xsh_find_usr_lines_guess_tab(cpl_frameset *frames, xsh_instrument *instr)
Find a user guess line positions table frame.
cpl_error_code xsh_frameset_uniform_bin(cpl_frameset **raws, cpl_frameset **calib, xsh_instrument *instrument)
cpl_frame * xsh_find_raw_arc_slit_nir_off(cpl_frameset *frames)
Find raw frame for Slit NIR OFF.
void xsh_add_product(cpl_frame *frame, cpl_frameset *frameset, const cpl_parameterlist *parameters, const char *recipe_id, xsh_instrument *instrument, const char *final_prefix, const char *type)
cpl_frameset * xsh_frameset_extract_offsety_mismatches(cpl_frameset *raws, const double offset)
Extract frames that has different cumoffy than offset.
cpl_frame * xsh_find_disp_tab(cpl_frameset *frames, xsh_instrument *instrument)
Find Dispersol tab frame. The frame returned should not be free by the caller.
cpl_frameset * xsh_frameset_extract_pre(cpl_frameset *set, const char *prefix)
Extracts pre frames from a frameset.
cpl_frame * xsh_find_calpro_model_meas_coord(cpl_frameset *frames, xsh_instrument *instr)
Find model config frame.
cpl_frameset * xsh_frameset_ext_table_frames(cpl_frameset *set)
Extract frameset sub set containing only table frames.
void xsh_add_product_table(cpl_frame *frame, cpl_frameset *frameset, const cpl_parameterlist *parameters, const char *recipe_id, xsh_instrument *instrument, const char *tag_prefix)
Save Table product (input frame has several extensions, 1 table per extension)
cpl_frame * xsh_find_order_tab_edges(cpl_frameset *frames, xsh_instrument *instr)
Find an order tab EDGES.
cpl_frame * xsh_find_master_bias(cpl_frameset *frames, xsh_instrument *instr)
Find master bias frame.
void xsh_add_product_pre_3d(cpl_frame *frame, cpl_frameset *frameset, const cpl_parameterlist *parameters, const char *recipe_id, xsh_instrument *instr)
Add 3d product frame.
cpl_frame * xsh_find_order_tab_recov(cpl_frameset *frames, xsh_instrument *instr)
Find an order tab RECOV.
cpl_frame * xsh_find_raw_orderdef_nir(cpl_frameset *frames)
Find orderdef raw frame for NIR.
int xsh_parameter_get_default_flag(const cpl_parameter *p)
Check if an input parameter has been changed by the user.
int xsh_print_rec_status(const int val)
Check if an error has happened and returns error kind and location.
cpl_frame * xsh_find_wave_tab_2d(cpl_frameset *frames, xsh_instrument *instr)
Find a wave tab 2D.
cpl_boolean xsh_mode_is_physmod(cpl_frameset *set, xsh_instrument *instrument)
cpl_error_code xsh_dfs_extract_calib_frames(cpl_frameset *input, cpl_frameset *calib)
split input sof in groups: raw and calib
void xsh_add_product_image(cpl_frame *frame, cpl_frameset *frameset, const cpl_parameterlist *parameters, const char *recipe_id, xsh_instrument *instrument, const char *final_prefix)
void xsh_dfs_split_in_group(cpl_frameset *input, cpl_frameset *raws, cpl_frameset *calib)
split input sof in groups: raw and calib
int xsh_file_exists(const char *filename)
cpl_frame * xsh_find_wavemap(cpl_frameset *frames, xsh_instrument *instrument)
Find Wave Map frame. The frame returned should not be free by the caller.
void xsh_dfs_split_nir(cpl_frameset *input, cpl_frameset **on, cpl_frameset **off)
split input RAW NIR sof in ON and OFF
cpl_frame * xsh_find_off(cpl_frameset *set)
find the off frame in set of files
cpl_frameset * xsh_find_offset_tab_ifu(cpl_frameset *frames, xsh_instrument *instr)
Find offset tab (One for each slitlet)
cpl_frameset * xsh_frameset_extract_offsety_matches(cpl_frameset *raws, const double offset)
Extract frames that has same cumoffy as offset.
cpl_error_code xsh_table_save(cpl_table *t, cpl_propertylist *ph, cpl_propertylist *xh, const char *fname, const int ext)
cpl_frame * xsh_find_slitmap(cpl_frameset *frames, xsh_instrument *instr)
Find a slit map.
cpl_frame * xsh_find_raw_arc_slit_uvb_vis(cpl_frameset *frames, XSH_ARM arm)
Find raw frame for Slit UVB/VIS.
cpl_frame * xsh_find_order_tab_guess(cpl_frameset *frames, xsh_instrument *instr)
Find an order tab GUESS.
cpl_frameset * xsh_frameset_ext_image_frames(cpl_frameset *set)
Extract frameset sub set containing only table frames.
int xsh_dfs_files_dont_exist(cpl_frameset *frameset)
Check if all SOF files exist.
cpl_frame * xsh_find_std_flux(cpl_frameset *frames)
Find standard star frame.
xsh_instrument * xsh_dfs_set_groups(cpl_frameset *)
Set the group as RAW or CALIB in a frameset and return the instrument detected.
void xsh_add_product_orders_spectrum(cpl_frame *frame, cpl_frameset *frameset, const cpl_parameterlist *parameters, const char *recipe_id, xsh_instrument *instr, cpl_frame **result_frame)
void xsh_frame_config(const char *fname, const char *tag, cpl_frame_type type, cpl_frame_group group, cpl_frame_level level, cpl_frame **frm)
Define a frame characteristics.
cpl_frame * xsh_find_theo_tab_mult(cpl_frameset *frames, xsh_instrument *instr)
Find a theoretical tab multi pinhole in SOF.
cpl_error_code xsh_dfs_extract_raw_frames(cpl_frameset *input, cpl_frameset *raws)
split input sof in groups: raw and calib
cpl_frame * xsh_find_wave_tab(cpl_frameset *frames, xsh_instrument *instr)
Find a wave tab 2D or a wave tab ARC.
void xsh_dfs_find_flat(cpl_frameset *raws, cpl_frameset *flat)
find the flat set of files in the input SOF and detect the mode of instrument. This function assure t...
cpl_propertylist * xsh_frame_head_extract_qc(cpl_frame *frm)
cpl_error_code xsh_dfs_check_binning(cpl_frameset *raw, cpl_frameset *calib)
char * xsh_get_tag_from_arm(const char *tag, xsh_instrument *instr)
Find arm specific tag from base and instrument setting.
cpl_error_code xsh_validate_model_cfg(cpl_frame *mod, cpl_frameset *set)
Validate model cfg.
cpl_frame * xsh_find_model_config_tab(cpl_frameset *frames, xsh_instrument *instr)
Find a model configuration table frame.
cpl_frame * xsh_find_model_testpar(cpl_frameset *frames, xsh_instrument *instr)
Find model test parameter list.
cpl_error_code xsh_add_afc_info(cpl_frame *frm_m, cpl_frame *frm_o)
void xsh_add_product_pre(cpl_frame *product_frame, cpl_frameset *frameset, const cpl_parameterlist *parameters, const char *recipe_id, xsh_instrument *instr, cpl_propertylist *qclist)
Add DFS keywords to a product frame.
cpl_frame * xsh_ensure_raws_number_is_even(cpl_frameset *raws)
Make sure input frames is an even number (eventually removes the last from the input list)
cpl_frame * xsh_find_theo_tab_sing(cpl_frameset *frames, xsh_instrument *instr)
Find a theoretical tab signle pinhole in SOF.
cpl_frameset * xsh_extract_obj_and_sky_pairs(cpl_frameset *raws, xsh_instrument *instrument)
Make sure input frames is composed by obj-sky pairs.
void xsh_add_sdp_product_spectrum(const cpl_frame *flux_cal_frame, const cpl_frame *uncal_frame, cpl_frameset *frameset, const cpl_frameset *usedframes, const cpl_parameterlist *parameters, const char *recipe_id, xsh_instrument *instrument, cpl_propertylist *qclist)
Creates a 1D spectrum product in the Science Data Product format.
cpl_frame * xsh_find_model_config_open(cpl_frameset *frames, xsh_instrument *instr)
Find model config frame.
cpl_error_code xsh_ensure_raws_input_offset_recipe_is_proper(cpl_frameset **raws, xsh_instrument *instrument)
Make sure input frames is an even number (eventually removes the last from the input list)
cpl_frame * xsh_find_raw_orderdef_nir_off(cpl_frameset *frames)
Find orderdef raw frame for NIR OFF.
cpl_frame * xsh_find_arc_line_list_clean(cpl_frameset *frames, xsh_instrument *instr)
Find an arc lines list clean frame.
cpl_frame * xsh_frame_product(const char *fname, const char *tag, cpl_frame_type type, cpl_frame_group group, cpl_frame_level level)
Creates a frame with given characteristics.
cpl_frame * xsh_find_arc_line_list(cpl_frameset *frames, xsh_instrument *instr)
Find an arc line list frame.
cpl_frameset * xsh_correct_calib(cpl_frameset *raws, cpl_frameset *calib)
cpl_frame * xsh_find_model_config_opt(cpl_frameset *frames, xsh_instrument *instr)
cpl_frameset * xsh_extract_nod_pairs(cpl_frameset *raws, cpl_vector *offset)
Make sure input frames is composed by nod a-b sequence.
cpl_frame * xsh_find_on(cpl_frameset *set)
find the on frame in set of files
cpl_frame * xsh_find_theo_tab_mode(cpl_frameset *frames, xsh_instrument *instr)
Find a theoretical tab IFU or SINg depending of MODE in SOF.
cpl_error_code xsh_dfs_check_mflat_is_proper(xsh_instrument *inst, cpl_frameset **calib)
cpl_frame * xsh_find_raw_arc_slit_nir_on(cpl_frameset *frames)
Find raw frame for Slit NIR ON.
cpl_error_code xsh_dfs_extract_pro_frames(cpl_frameset *input, cpl_frameset *pros)
split input sof in groups: raw and calib
void xsh_add_product_bpmap(cpl_frame *product_frame, cpl_frameset *frameset, const cpl_parameterlist *parameters, const char *recipe_id, xsh_instrument *instr, const char *prefix)
cpl_frame * xsh_find_frame_with_tag(cpl_frameset *frames, const char *tag, xsh_instrument *instr)
Find frame with a given tag.
cpl_frame * xsh_find_master_flat(cpl_frameset *frames, xsh_instrument *instr)
Find master flat frame.
char * xsh_unique_filename(const char *context, const char *caller_id, const char *pro_catg)
Get unique product filename.
cpl_frame * xsh_find_calpro_model_config(cpl_frameset *frames, xsh_instrument *instr)
Find model config frame.
cpl_frameset * xsh_frameset_extract(const cpl_frameset *frames, const char *tag)
Extract frames with given tag from frameset.
cpl_error_code xsh_frameset_check_uniform_exptime(cpl_frameset *raws, xsh_instrument *inst)
cpl_frame * xsh_find_model_config(cpl_frameset *frames, xsh_instrument *instr)
Find a model config.
cpl_frame * xsh_find_master_bpmap(cpl_frameset *set)
find the master bad pixel map in a set of files