def MasterWaveCalib(self, fitsdict, sc, det): """ Generate Master 1D Wave Solution (down slit center) Parameters ---------- fitsdict : dict Contains relevant information from fits header files det : int Index of the detector Returns ------- boolean : bool Should other ScienceExposure classes be updated? """ from pypit import ararc if self._wvcalib[det-1] is not None: msgs.info("An identical master wave calib frame already exists") return False if self._argflag['reduce']['usewave'] in ['wave']: # Attempt to load the Master Frame if self._argflag['masters']['use']: mswv_calib_name = armasters.master_name(self._argflag['run']['masterdir'], 'wave_calib', self._argflag['masters']['setup']) try: wv_calib = arload.load_master(mswv_calib_name, frametype="wv_calib") except IOError: msgs.warn("No MasterWave1D data found {:s}".format(mswv_calib_name)) else: self._argflag['masters']['loaded'].append('wave_calib'+self._argflag['masters']['setup']) if 'wave_calib'+self._argflag['masters']['setup'] not in self._argflag['masters']['loaded']: # Setup arc parameters (e.g. linelist) arcparam = ararc.setup_param(self, sc, det, fitsdict) self.SetFrame(self._arcparam, arcparam, det) ############### # Extract arc and identify lines wv_calib = ararc.simple_calib(self, det) # else: # It must be the name of a file the user wishes to load msgs.error("Not prepared to read a user-specified wave file") #mswv_calib_name = self._argflag['run']['masterdir']+'/'+self._argflag['reduce']['usewavecalib'] #wv_calib = arload.load_master(mswv_calib_name, frametype="wv_calib") # Set if wv_calib is not None: self.SetFrame(self._wvcalib, wv_calib, det) del wv_calib return True
def MasterWaveCalib(self, fitsdict, sc, det): """ Generate Master 1D Wave Solution (down slit center) Parameters ---------- fitsdict : dict Contains relevant information from fits header files det : int Index of the detector Returns ------- boolean : bool Should other ScienceExposure classes be updated? """ from pypit import ararc if self._wvcalib[det - 1] is not None: msgs.info("An identical master wave calib frame already exists") return False else: wv_calib = None # Attempt to load the Master Frame try: wv_calib = armasters.get_master_frame(self, "wv_calib") except IOError: if settings.argflag["reduce"]["calibrate"][ "wavelength"] == "pixel": msgs.info("A wavelength calibration will not be performed") else: # Setup arc parameters (e.g. linelist) arcparam = ararc.setup_param(self, sc, det, fitsdict) self.SetFrame(self._arcparam, arcparam, det) ############### # Extract arc and identify lines if settings.argflag['arc']['calibrate']['method'] == 'simple': wv_calib = ararc.simple_calib(self, det) elif settings.argflag['arc']['calibrate'][ 'method'] == 'arclines': wv_calib = ararc.calib_with_arclines(self, det) # Set if wv_calib is not None: self.SetFrame(self._wvcalib, wv_calib, det) armasters.save_masters(self, det, mftype='wv_calib') del wv_calib return True
def test_setup_param(): """ Run the parameter setup script Returns ------- """ # Initialize some settings arut.dummy_settings() # Load Dummy self slf = arut.dummy_self() settings.argflag['run']['spectrograph'] = 'shane_kast_blue' settings.spect['arc'] = {} settings.spect['arc']['index'] = [[0]] fitsdict = arut.dummy_fitsdict() # Run arcparm = pyarc.setup_param(slf, 0, 1, fitsdict) for key in ['llist', 'disp', 'wvmnx']: assert key in arcparm
def test_setup_param(): """ Run the parameter setup script Returns ------- """ # Load # Dummy self slf = arut.dummy_self() slf._argflag['run']['spectrograph'] = 'kast_blue' slf._spect['arc'] = {} slf._spect['arc']['index'] = [[0]] fitsdict = {} fitsdict["disperser"] = ['600/4310'] fitsdict["binning"] = [[None]] # Run arcparm = pyarc.setup_param(slf, 0, 1, fitsdict) for key in ['llist','disp','wvmnx']: assert key in arcparm