Example #1
0
    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
Example #2
0
    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
Example #3
0
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
Example #4
0
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