Пример #1
0
def main(args):

    from desispec.io import meta
    from desispec.qa.qa_plots import exposure_fiberflat, exposure_s2n
    from desispec.qa.qa_exposure import QA_Exposure
    from desispec.io.meta import find_exposure_night

    log = get_logger()

    log.info("starting")

    # Setup
    if args.specprod_dir is None:
        specprod_dir = meta.specprod_root()
    else:
        specprod_dir = args.specprod_dir
    if args.qaprod_dir is None:
        qaprod_dir = meta.qaprod_root(specprod_dir=specprod_dir)
    else:
        qaprod_dir = args.qaprod_dir
    if args.channels is None:
        channels = ['b', 'r', 'z']
    else:
        channels = [iarg for iarg in args.channels.split(',')]

    # Find night
    night = find_exposure_night(args.expid, specprod_dir=specprod_dir)

    # Instantiate
    qa_exp = QA_Exposure(args.expid,
                         night,
                         specprod_dir=specprod_dir,
                         qaprod_dir=qaprod_dir,
                         no_load=args.rebuild,
                         multi_root=args.qamulti_root)
    # Rebuild?
    if args.rebuild:
        qa_exp.build_qa_data(rebuild=True)

    # Fiber QA
    if args.qatype == 'fiberflat':
        for channel in channels:
            exposure_fiberflat(channel, args.expid, 'meanflux')

    # S/N
    if args.qatype == 's2n':
        # S2N table
        qa_exp.s2n_table()
        # Figure time
        exposure_s2n(qa_exp, 'resid', specprod_dir=specprod_dir)

    # Slurp into a file?
    if args.slurp is not None:
        qa_exp.slurp_into_file(args.slurp)
Пример #2
0
 def test_qa_exposure_load_write_data(self):
     #- Test loading data
     self._write_qaframes()
     qaexp = QA_Exposure(self.expid,
                         self.night,
                         'dark',
                         specprod_dir=self.testDir)
     assert 'b0' in qaexp.data['frames']
     assert 'b1' in qaexp.data['frames']
     # Write
     write_qa_exposure(self.qafile_exp, qaexp)
Пример #3
0
 def test_qa_exposure_load_write_data(self):
     #- Test loading data
     self._write_qaframes()
     expid, night = self.expids[0], self.nights[0]
     qaexp = QA_Exposure(expid, night, specprod_dir=self.testDir)
     assert 'b0' in qaexp.data['frames']
     assert 'b1' in qaexp.data['frames']
     assert qaexp.flavor == 'science'
     # Write
     qafile_exp_file = self.testDir+'/exposures/'+night+'/{:08d}/qa-{:08d}'.format(self.id,self.id)
     write_qa_exposure(qafile_exp_file, qaexp)
     self.files_written.append(qafile_exp_file)
Пример #4
0
 def test_init_qa_exposure(self):
     """Test simple init.
     """
     from os import environ
     cache_env = {'SPECPROD': None, 'DESI_SPECTRO_REDUX': None}
     for k in cache_env:
         if k in environ:
             cache_env[k] = environ[k]
         environ[k] = './'
     qaexp = QA_Exposure(1, '20150211', 'arc')
     self.assertEqual(qaexp.expid, 1)
     for k in cache_env:
         if cache_env[k] is None:
             del environ[k]
         else:
             environ[k] = cache_env[k]
Пример #5
0
def main(args) :

    from desispec.io import meta
    from desispec.qa.qa_plots import exposure_fiberflat, exposure_s2n
    from desispec.qa.qa_exposure import QA_Exposure
    from desispec.io.meta import find_exposure_night

    log=get_logger()

    log.info("starting")

    # Setup
    if args.reduxdir is None:
        specprod_dir = meta.specprod_root()
    else:
        specprod_dir = args.reduxdir
    if args.channels is None:
        channels = ['b','r','z']
    else:
        channels = [iarg for iarg in args.channels.split(',')]

    # Find night
    night = find_exposure_night(args.expid)

    # Instantiate
    qa_exp = QA_Exposure(args.expid, night, specprod_dir=specprod_dir,
                         no_load=args.rebuild, multi_root=args.qamulti_root)
    # Rebuild?
    if args.rebuild:
        qa_exp.build_qa_data(rebuild=True)

    # Fiber QA
    if args.qatype == 'fiberflat':
        for channel in channels:
            exposure_fiberflat(channel, args.expid, 'meanflux')

    # S/N
    if args.qatype == 's2n':
        # S2N table
        qa_exp.s2n_table()
        # Figure time
        exposure_s2n(qa_exp, 'resid')

    # Slurp into a file?
    if args.slurp is not None:
        qa_exp.slurp_into_file(args.slurp)