diff --git a/METIS/METIS.yaml b/METIS/METIS.yaml index bb58bebf..4ff74705 100644 --- a/METIS/METIS.yaml +++ b/METIS/METIS.yaml @@ -57,12 +57,19 @@ effects: minimum_throughput: !!float 0. - name : common_fits_keywords - decription : FITS keywords common to all modes + description : FITS keywords common to all modes class : ExtraFitsKeywords include : True kwargs : filename: headers/FITS_common_keywords.yaml + - name: cfo_fits_keywords + description: FITS keywords to CFO elements + class: ExtraFitsKeywords + include: True + kwargs: + filename: headers/FITS_cfo_keywords.yaml + # - name : metis_adc_residuals # class : AtmosphericDispersionCorrection # include : False diff --git a/METIS/METIS_DET_IFU.yaml b/METIS/METIS_DET_IFU.yaml index 7909ab5d..c3387675 100644 --- a/METIS/METIS_DET_IFU.yaml +++ b/METIS/METIS_DET_IFU.yaml @@ -84,3 +84,10 @@ effects: kwargs: dtype: uint16 gain: "!DET.gain" + + - name: det_ifu_fits_keywords + descriptions: FITS keywords specific to IFU detectors + class: ExtraFitsKeywords + include: True + kwargs: + filename: headers/FITS_det_ifu_keywords.yaml diff --git a/METIS/METIS_DET_IMG_LM.yaml b/METIS/METIS_DET_IMG_LM.yaml index 0e53f459..55229dc0 100644 --- a/METIS/METIS_DET_IMG_LM.yaml +++ b/METIS/METIS_DET_IMG_LM.yaml @@ -101,3 +101,10 @@ effects: kwargs: dtype: uint16 gain: "!DET.gain" + + - name: det_lm_fits_keywords + descriptions: FITS keywords specific to LM detector + class: ExtraFitsKeywords + include: True + kwargs: + filename: headers/FITS_det_lm_keywords.yaml diff --git a/METIS/METIS_DET_IMG_N_GeoSnap.yaml b/METIS/METIS_DET_IMG_N_GeoSnap.yaml index 193acae0..d810ab32 100644 --- a/METIS/METIS_DET_IMG_N_GeoSnap.yaml +++ b/METIS/METIS_DET_IMG_N_GeoSnap.yaml @@ -115,3 +115,10 @@ effects: kwargs: dtype: uint16 gain: "!DET.gain" + + - name: det_n_fits_keywords + descriptions: FITS keywords specific to N detector + class: ExtraFitsKeywords + include: True + kwargs: + filename: headers/FITS_det_n_keywords.yaml diff --git a/METIS/METIS_IMG_LM.yaml b/METIS/METIS_IMG_LM.yaml index 337492f4..a56cc3c5 100644 --- a/METIS/METIS_IMG_LM.yaml +++ b/METIS/METIS_IMG_LM.yaml @@ -12,6 +12,7 @@ changes: - 2022-01-12 (OC) change default bkg_width to -1 - 2022-02-17 (OC) increase spectral_bin_width for imaging - 2022-02-21 (OC) renamed effects + - 2025-04-16 (OC) add ExtraFitsKeywords properties: pixel_scale: 0.00547 # arcsec / pixel, METIS_1097 @@ -81,6 +82,13 @@ effects: wave_key: "WAVELENG" bkg_width: -1 + - name: img_lm_fits_keywords + descriptions: FITS keywords specific to IMG-LM + class: ExtraFitsKeywords + include: True + kwargs: + filename: headers/FITS_img_lm_keywords.yaml + --- ### default simulation parameters needed for a METIS simulation object: simulation diff --git a/METIS/METIS_IMG_N.yaml b/METIS/METIS_IMG_N.yaml index ed069eb6..a09027a6 100644 --- a/METIS/METIS_IMG_N.yaml +++ b/METIS/METIS_IMG_N.yaml @@ -75,6 +75,14 @@ effects: wave_key: "WAVELENG" bkg_width: -1 + - name: img_n_fits_keywords + descriptions: FITS keywords specific to IMG-N + class: ExtraFitsKeywords + include: True + kwargs: + filename: headers/FITS_img_n_keywords.yaml + + --- ### default simulation parameters needed for a METIS simulation object: simulation diff --git a/METIS/METIS_LMS.yaml b/METIS/METIS_LMS.yaml index c45952ed..1fe02c57 100644 --- a/METIS/METIS_LMS.yaml +++ b/METIS/METIS_LMS.yaml @@ -56,7 +56,12 @@ effects: col_number_start: 1 slice_samples: 5 # number of samples along slice width - + - name: lms_fits_keywords + description: FITS keywords specific to LMS elements + class: ExtraFitsKeywords + include: True + kwargs: + filename: headers/FITS_lms_keywords.yaml --- ### default simulation parameters needed for a METIS simulation diff --git a/METIS/METIS_LSS.yaml b/METIS/METIS_LSS.yaml index 6d8db5f1..5b045800 100644 --- a/METIS/METIS_LSS.yaml +++ b/METIS/METIS_LSS.yaml @@ -34,6 +34,13 @@ effects: s_colname: "xi" col_number_start: 1 + - name: lss_fits_keywords + descriptions: FITS keywords specific to LSS + class: ExtraFitsKeywords + include: True + kwargs: + filename: headers/FITS_lss_keywords.yaml + --- ### default simulation parameters needed for a METIS simulation object: simulation diff --git a/METIS/default.yaml b/METIS/default.yaml index cbc381d4..fc10a0ad 100644 --- a/METIS/default.yaml +++ b/METIS/default.yaml @@ -74,6 +74,7 @@ mode_yamls: - METIS_IMG_LM.yaml - METIS_DET_IMG_LM.yaml properties: + ins_mode: IMG_LM # use as FITS header keyword psf_file: PSF_SCAO_9mag_06seeing.fits filter_name: Lp nd_filter_name: open @@ -93,6 +94,7 @@ mode_yamls: - METIS_IMG_N.yaml - METIS_DET_IMG_N_GeoSnap.yaml properties: + ins_mode: IMG_N # use as FITS header keyword psf_file: PSF_SCAO_9mag_06seeing.fits filter_name: N2 nd_filter_name: open @@ -115,11 +117,14 @@ mode_yamls: - METIS_LSS.yaml - METIS_DET_IMG_LM.yaml properties: + ins_mode: LSS_L # use as FITS header keyword psf_file: PSF_LM_9mag_06seeing.fits trace_file: TRACE_LSS_L.fits efficiency_file: TER_grating_L.fits slit: C-38_1 adc: const_90 + grism_opti9: GRISM_L + grism_opti12: open filter_name: L_spec nd_filter_name: open detector_readout_mode: slow @@ -137,11 +142,14 @@ mode_yamls: - METIS_LSS.yaml - METIS_DET_IMG_LM.yaml properties: + ins_mode: IMG_M # use as FITS header keyword psf_file: PSF_LM_9mag_06seeing.fits trace_file: TRACE_LSS_M.fits efficiency_file: TER_grating_M.fits slit: C-38_1 adc: const_90 + grism_opti9: GRISM_M + grism_opti12: open filter_name: M_spec nd_filter_name: open detector_readout_mode: slow @@ -159,13 +167,18 @@ mode_yamls: - METIS_LSS.yaml - METIS_DET_IMG_N_GeoSnap.yaml properties: + ins_mode: IMG_N # use as FITS header keyword psf_file: PSF_N_9mag_06seeing.fits trace_file: TRACE_LSS_N.fits efficiency_file: TER_grating_N.fits slit: D-57_1 adc: false + grism_opti9: open + grism_opti12: GRISM_N filter_name: N_spec nd_filter_name: open + chop_offsets: [3, 0] # perpendicular chopping and nodding + nod_offsets: [0, 3] detector_readout_mode: low_capacity - object: observation @@ -180,6 +193,7 @@ mode_yamls: - METIS_LMS.yaml - METIS_DET_IFU.yaml properties: + ins_mode: LMS # use as FITS header keyword psf_file: PSF_LM_9mag_06seeing.fits slit: false adc: false @@ -199,6 +213,7 @@ mode_yamls: - METIS_LMS_EXT.yaml - METIS_DET_IFU.yaml properties: + ins_mode: LMS # use as FITS header keyword slit: false adc: false detector_readout_mode: slow @@ -213,6 +228,7 @@ mode_yamls: - METIS_IMG_LM.yaml - METIS_DET_IMG_LM.yaml properties: + ins_mode: IMG_LM # use as FITS header keyword psf_file: PSF_SCAO_9mag_06seeing.fits # REPLACE! filter_name: Lp nd_filter_name: open @@ -230,6 +246,7 @@ mode_yamls: - METIS_IMG_N.yaml - METIS_DET_IMG_N_GeoSnap.yaml properties: + ins_mode: IMG_N # use as FITS header keyword psf_file: PSF_SCAO_9mag_06seeing.fits # REPLACE! filter_name: N2 nd_filter_name: open @@ -250,11 +267,14 @@ mode_yamls: - METIS_LSS.yaml - METIS_DET_IMG_LM.yaml properties: + ins_mode: LSS_L # use as FITS header keyword psf_file: PSF_LM_9mag_06seeing.fits # REPLACE! trace_file: TRACE_LSS_L.fits efficiency_file: TER_grating_L.fits slit: C-38_1 adc: const_90 + grism_opti9: GRISM_L + grism_opti12: open filter_name: L_spec nd_filter_name: open detector_readout_mode: slow @@ -270,11 +290,14 @@ mode_yamls: - METIS_LSS.yaml - METIS_DET_IMG_LM.yaml properties: + ins_mode: LSS_M # use as FITS header keyword psf_file: PSF_LM_9mag_06seeing.fits # REPLACE! trace_file: TRACE_LSS_M.fits efficiency_file: TER_grating_M.fits slit: C-38_1 adc: const_90 + grism_opti9: GRISM_M + grism_opti12: open filter_name: M_spec nd_filter_name: open detector_readout_mode: slow @@ -290,13 +313,18 @@ mode_yamls: - METIS_LSS.yaml - METIS_DET_IMG_N_GeoSnap.yaml properties: + ins_mode: LSS_N # use as FITS header keyword psf_file: PSF_N_9mag_06seeing.fits # REPLACE! trace_file: TRACE_LSS_N.fits efficiency_file: TER_grating_N.fits slit: D-57_1 adc: false + grism_opti9: open + grism_opti12: GRISM_N filter_name: N_spec nd_filter_name: open + chop_offsets: [3, 0] # perpendicular chopping and nodding + nod_offsets: [0, 3] detector_readout_mode: low_capacity - object: observation @@ -309,6 +337,7 @@ mode_yamls: - METIS_LMS.yaml - METIS_DET_IFU.yaml properties: + ins_mode: LMS # use as FITS header keyword psf_file: PSF_LM_9mag_06seeing.fits # REPLACE! slit: false adc: false @@ -326,6 +355,7 @@ mode_yamls: - METIS_LMS_EXT.yaml - METIS_DET_IFU.yaml properties: + ins_mode: LMS # use as FITS header keyword slit: false adc: false detector_readout_mode: slow diff --git a/METIS/headers/FITS_cfo_keywords.yaml b/METIS/headers/FITS_cfo_keywords.yaml new file mode 100644 index 00000000..94687a88 --- /dev/null +++ b/METIS/headers/FITS_cfo_keywords.yaml @@ -0,0 +1,18 @@ +- ext_type: PrimaryHDU + keywords: + + HIERARCH: + ESO: + INS: + OPTI1: # CFO PP1 mask wheel + # TODO: There are no names yet. We use the + # transmission, which is returned as an + # inconvenient list. + DESC: "CFO PP1 mask wheel" + NAME: "#cold_stop.transmission!" + OPTI2: # CFO PP1 ADC wheel + DESC: "ADC wheel" + NAME: "#adc_wheel.current_adc!" + OPTI3: # CFO FP2 mask/slit wheel + DESC: "Slit wheel" + NAME: "#slit_wheel.current_slit!" diff --git a/METIS/headers/FITS_common_keywords.yaml b/METIS/headers/FITS_common_keywords.yaml index c776b9e8..1fb8d6aa 100644 --- a/METIS/headers/FITS_common_keywords.yaml +++ b/METIS/headers/FITS_common_keywords.yaml @@ -87,7 +87,7 @@ # # Many more are defined in E-LIS-KUL-MET-1002. Not all possible INS # keywords are applicable to all observation modes. - # + MODE: "!OBS.ins_mode" # Instrument mode # TODO: Add the OPTI keywords, but probably in separate yaml files # for each mode. #OPTI6: diff --git a/METIS/headers/FITS_det_ifu_keywords.yaml b/METIS/headers/FITS_det_ifu_keywords.yaml new file mode 100644 index 00000000..09fb3048 --- /dev/null +++ b/METIS/headers/FITS_det_ifu_keywords.yaml @@ -0,0 +1,24 @@ +- ext_type: PrimaryHDU + keywords: + HIERARCH: + ESO: + DET3: + DIT: "!OBS.dit" + NDIT: "!OBS.ndit" + CUBE: + MODE: "F" + +- ext_type: ImageHDU + keywords: + + HIERARCH: + ESO: + DET3: + CHIP: + ID: "!DET.detector" + #MODE: "#detector_readout_parameters.mode_properties" + MINDIT: "!DET.mindit" + FULLWELL: "!DET.full_well" + RON: "!DET.readout_noise" + DARK: "!DET.dark_current" + #GAIN: "!DET.gain" diff --git a/METIS/headers/FITS_det_lm_keywords.yaml b/METIS/headers/FITS_det_lm_keywords.yaml new file mode 100644 index 00000000..39422dae --- /dev/null +++ b/METIS/headers/FITS_det_lm_keywords.yaml @@ -0,0 +1,23 @@ +- ext_type: PrimaryHDU + keywords: + HIERARCH: + ESO: + DET1: + DIT: "!OBS.dit" + NDIT: "!OBS.ndit" + CUBE: + MODE: "F" + +- ext_type: ImageHDU + keywords: + HIERARCH: + ESO: + DET1: + CHIP: + ID: "!DET.detector" + MODE: "!OBS.detector_readout_mode!" + MINDIT: "!DET.mindit" + FULLWELL: "!DET.full_well" + RON: "!DET.readout_noise" + DARK: "!DET.dark_current" + #GAIN: "!DET.gain" diff --git a/METIS/headers/FITS_det_n_keywords.yaml b/METIS/headers/FITS_det_n_keywords.yaml new file mode 100644 index 00000000..bfe85680 --- /dev/null +++ b/METIS/headers/FITS_det_n_keywords.yaml @@ -0,0 +1,29 @@ +- ext_type: PrimaryHDU + keywords: + HIERARCH: + ESO: + DET2: + DIT: "!OBS.dit" + NDIT: "!OBS.ndit" + CUBE: + MODE: "F" + SEQ: + CHOPNOD: + ST: "#chop_nod.include" + OFFSCHOP: ["!OBS.chop_offsets", "[arcsec]"] + OFFSNOD: ["!OBS.nod_offsets", "[arcsec"] + +- ext_type: ImageHDU + keywords: + + HIERARCH: + ESO: + DET2: + CHIP: + ID: "!DET.detector" + MODE: "!OBS.detector_readout_mode!" + MINDIT: "!DET.mindit" + FULLWELL: "!DET.full_well" + RON: "!DET.readout_noise" + DARK: "!DET.dark_current" + #GAIN diff --git a/METIS/headers/FITS_img_lm_keywords.yaml b/METIS/headers/FITS_img_lm_keywords.yaml new file mode 100644 index 00000000..854d157f --- /dev/null +++ b/METIS/headers/FITS_img_lm_keywords.yaml @@ -0,0 +1,20 @@ +- ext_type: PrimaryHDU + keywords: + + HIERARCH: + ESO: + DPR: + TECH: "IMAGE,LM" + INS: + OPTI4: # LMS beamsplitter pickoff wheel + DESC: "LMS pickoff" + NAME: "OUT" # could be IN for parallel observing + OPTI9: # IMG-LM mask/grism wheel + DESC: "IMG-LM mask/grism" + NAME: "open" + OPTI10: # IMG-LM science filter wheel + DESC: "IMG-LM science filter" + NAME: "#filter_wheel.current_filter!" + OPTI11: # IMG-LM neutral density filter wheel + DESC: "IMG-LM neutral density filter" + NAME: "#nd_filter_wheel.current_filter!" diff --git a/METIS/headers/FITS_img_n_keywords.yaml b/METIS/headers/FITS_img_n_keywords.yaml new file mode 100644 index 00000000..f1f25553 --- /dev/null +++ b/METIS/headers/FITS_img_n_keywords.yaml @@ -0,0 +1,20 @@ +- ext_type: PrimaryHDU + keywords: + + HIERARCH: + ESO: + DPR: + TECH: "IMAGE,N" + INS: + OPTI4: # LMS beamsplitter pickoff wheel + DESC: "LMS pickoff" + NAME: "OUT" # could be IN for parallel observing + OPTI12: # IMG-N mask/grism wheel + DESC: "IMG-N mask/grism" + NAME: "open" + OPTI13: # IMG-N science filter wheel + DESC: "IMG-N science filter" + NAME: "#filter_wheel.current_filter!" + OPTI14: # IMG-N neutral-density filter wheel + DESC: "IMG-N neutral density filter" + NAME: "#nd_filter_wheel.current_filter!" diff --git a/METIS/headers/FITS_lms_keywords.yaml b/METIS/headers/FITS_lms_keywords.yaml new file mode 100644 index 00000000..2a4b80ff --- /dev/null +++ b/METIS/headers/FITS_lms_keywords.yaml @@ -0,0 +1,30 @@ +- ext_type: PrimaryHDU + keywords: + + HIERARCH: + ESO: + DPR: + TECH: "IFU" + INS: + LMS: # LMS mode (Nominal or Extended) + MODE: "Nominal" + WLEN: # LMS central wavelength and range + CEN: ["!OBS.wavelen", "Central wavelength [um]"] + START: "TBD" # "#lms_spectral_traces.wave_min" ain't workin' + END: "TBD" + GRAT: + ANGLE: "TBD" + OPTI4: # LMS beamsplitter pickoff wheel + DESC: "LMS pickoff" + NAME: "IN" + OPTI5: # LMS PP1 mask wheel + DESC: "LMS PP1 mask wheel" + NAME: "open" # TODO: not defined in irdb + OPTI6: # LMS spectral IFU mechanism + DESC: "LMS spectral IFU mechanism" + NAME: "OUT" + OPTI7: # LMS pre-disperser + DESC: "LMS pre-disperser" + NAME: "TBD" + OPTI8: # LMS main disperser + NAME: "TBD" # identical to GRAT.ANGLE? diff --git a/METIS/headers/FITS_lss_keywords.yaml b/METIS/headers/FITS_lss_keywords.yaml new file mode 100644 index 00000000..6199bb2d --- /dev/null +++ b/METIS/headers/FITS_lss_keywords.yaml @@ -0,0 +1,17 @@ +- ext_type: PrimaryHDU + keywords: + + HIERARCH: + ESO: + DPR: + TECH: "LSS" # TODO: How to add the filter name? + INS: + OPTI4: # LMS beamsplitter pickoff wheel + DESC: "LMS pickoff" + NAME: "OUT" # could be IN for parallel observing + OPTI9: # IMG-LM mask/grism wheel + DESC: "IMG-LM mask/grism" + NAME: "!OBS.grism_opti9" + OPTI12: # IMG-N mask/grism wheel + DESC: "IMG-N mask/grism" + NAME: "!OBS.grism_opti12" diff --git a/METIS/headers/FITS_wcu_keywords.yaml b/METIS/headers/FITS_wcu_keywords.yaml index 90e0a36b..d5c7c13d 100644 --- a/METIS/headers/FITS_wcu_keywords.yaml +++ b/METIS/headers/FITS_wcu_keywords.yaml @@ -16,8 +16,12 @@ OPTI20: # WCU FP2.1 mask wheel DESC: "WCU FP2.1 mask" NAME: "#wcu_source.current_fpmask" - WCU_LAMP: # WCU lamp TODO: made up keyword - DESC: "WCU lamp" - NAME: "#wcu_source.current_lamp" SEQ: WCU_BB_TEMP: "#wcu_source.bb_temp" + WCU: + LASER1: "ON" + LASER2: "ON" # TODO: need a wavelength + LASER3: "ON" + LAMP: # WCU lamp TODO: made up keyword + DESC: "WCU lamp" + NAME: "#wcu_source.current_lamp"