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)
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)
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)
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]
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)