From 81b6fb7bba31c95c3da406bc90f3a20fbcac4f79 Mon Sep 17 00:00:00 2001 From: Frederick Davies Date: Wed, 22 May 2024 10:01:28 +0200 Subject: [PATCH 1/3] hotfix for fors2 sensfunc --- pypeit/spectrographs/vlt_fors.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pypeit/spectrographs/vlt_fors.py b/pypeit/spectrographs/vlt_fors.py index aff71e4f86..51c7b4b417 100644 --- a/pypeit/spectrographs/vlt_fors.py +++ b/pypeit/spectrographs/vlt_fors.py @@ -336,9 +336,12 @@ def config_specific_par(self, scifile, inp_par=None): par['flexure']['spec_method'] = 'skip' #par['reduce']['skysub']['bspline_spacing'] = 0.6 - if 'lSlit' in self.get_meta_value(scifile, 'decker') or 'LSS' in self.get_meta_value(scifile, 'decker'): - par['calibrations']['slitedges']['sync_predict'] = 'nearest' - + try: + if 'lSlit' in self.get_meta_value(scifile, 'decker') or 'LSS' in self.get_meta_value(scifile, 'decker'): + par['calibrations']['slitedges']['sync_predict'] = 'nearest' + except: + # if the above fails, we are probably in pypeit_sensfunc + msgs.info('Decker not detected; if you are running pypeit_sensfunc, do not panic!') return par From d8be90acb581e58196e5c8c55957630cda19ec00 Mon Sep 17 00:00:00 2001 From: Frederick Davies Date: Tue, 4 Jun 2024 13:30:02 +0200 Subject: [PATCH 2/3] cleaner fix, checking for decker keyword first --- pypeit/spectrographs/vlt_fors.py | 37 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/pypeit/spectrographs/vlt_fors.py b/pypeit/spectrographs/vlt_fors.py index 51c7b4b417..58cabd1aae 100644 --- a/pypeit/spectrographs/vlt_fors.py +++ b/pypeit/spectrographs/vlt_fors.py @@ -121,20 +121,23 @@ def compound_meta(self, headarr, meta_key): binning = parse.binning2string(binspec, binspatial) return binning elif meta_key == 'decker': - mode = headarr[0]['HIERARCH ESO INS MODE'] - if mode in ['LSS', 'MOS']: - try: # Science - return headarr[0]['HIERARCH ESO INS SLIT NAME'] - except KeyError: # Standard! - try: - return headarr[0]['HIERARCH ESO SEQ SPEC TARG'] - except KeyError: - return headarr[0]['HIERARCH ESO INS MOS CHECKSUM'] - elif mode == 'IMG': - # This is for the bias frames - return None - else: - msgs.error(f"PypeIt does not currently support VLT/FORS2 '{mode}' data reduction.") + try: + return headarr[0]['DECKER'] + except KeyError: + mode = headarr[0]['HIERARCH ESO INS MODE'] + if mode in ['LSS', 'MOS']: + try: # Science + return headarr[0]['HIERARCH ESO INS SLIT NAME'] + except KeyError: # Standard! + try: + return headarr[0]['HIERARCH ESO SEQ SPEC TARG'] + except KeyError: + return headarr[0]['HIERARCH ESO INS MOS CHECKSUM'] + elif mode == 'IMG': + # This is for the bias frames + return None + else: + msgs.error(f"PypeIt does not currently support VLT/FORS2 '{mode}' data reduction.") else: msgs.error("Not ready for this compound meta") @@ -336,12 +339,8 @@ def config_specific_par(self, scifile, inp_par=None): par['flexure']['spec_method'] = 'skip' #par['reduce']['skysub']['bspline_spacing'] = 0.6 - try: - if 'lSlit' in self.get_meta_value(scifile, 'decker') or 'LSS' in self.get_meta_value(scifile, 'decker'): + if 'lSlit' in self.get_meta_value(scifile, 'decker') or 'LSS' in self.get_meta_value(scifile, 'decker'): par['calibrations']['slitedges']['sync_predict'] = 'nearest' - except: - # if the above fails, we are probably in pypeit_sensfunc - msgs.info('Decker not detected; if you are running pypeit_sensfunc, do not panic!') return par From 430eb4d7102f78c3ef5eb7f37c3e0ad9d4c91254 Mon Sep 17 00:00:00 2001 From: Frederick Davies Date: Tue, 4 Jun 2024 21:37:59 +0200 Subject: [PATCH 3/3] pr comments --- pypeit/spectrographs/vlt_fors.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pypeit/spectrographs/vlt_fors.py b/pypeit/spectrographs/vlt_fors.py index 58cabd1aae..dd327fedc4 100644 --- a/pypeit/spectrographs/vlt_fors.py +++ b/pypeit/spectrographs/vlt_fors.py @@ -121,9 +121,9 @@ def compound_meta(self, headarr, meta_key): binning = parse.binning2string(binspec, binspatial) return binning elif meta_key == 'decker': - try: + if 'DECKER' in headarr[0]: return headarr[0]['DECKER'] - except KeyError: + else: mode = headarr[0]['HIERARCH ESO INS MODE'] if mode in ['LSS', 'MOS']: try: # Science @@ -339,8 +339,9 @@ def config_specific_par(self, scifile, inp_par=None): par['flexure']['spec_method'] = 'skip' #par['reduce']['skysub']['bspline_spacing'] = 0.6 - if 'lSlit' in self.get_meta_value(scifile, 'decker') or 'LSS' in self.get_meta_value(scifile, 'decker'): - par['calibrations']['slitedges']['sync_predict'] = 'nearest' + decker = self.get_meta_value(scifile, 'decker') + if 'lSlit' in decker or 'LSS' in decker: + par['calibrations']['slitedges']['sync_predict'] = 'nearest' return par