def flat_pairs_task(run, det_name, flat_files, gains, mask_files=(), flat2_finder=find_flat2_bot, linearity_spec_range=(1e4, 9e4), use_exptime=False, bias_frame=None, mondiode_func=None, dark_frame=None): """Single sensor execution of the flat pairs task.""" file_prefix = make_file_prefix(run, det_name) task = sensorTest.FlatPairTask() task.run(file_prefix, flat_files, mask_files, gains, linearity_spec_range=linearity_spec_range, use_exptime=use_exptime, flat2_finder=flat2_finder, bias_frame=bias_frame, mondiode_func=mondiode_func, linearity_correction=get_nlc_func(det_name), dark_frame=dark_frame) results_file = '%s_eotest_results.fits' % file_prefix plots = sensorTest.EOTestPlots(file_prefix, results_file=results_file) detresp_file = '%s_det_response.fits' % file_prefix siteUtils.make_png_file(plots.linearity, '%s_linearity.png' % file_prefix, detresp_file=detresp_file, max_dev=0.03, use_exptime=use_exptime, Ne_bounds=linearity_spec_range) siteUtils.make_png_file(plots.linearity_resids, '%s_linearity_resids.png' % file_prefix, detresp_file=detresp_file, max_dev=0.03, Ne_bounds=linearity_spec_range, use_exptime=use_exptime) siteUtils.make_png_file(row_means_var_plot, f'{file_prefix}_row_means_variance.png', detresp_file, file_prefix)
def run_flat_pair_task(sensor_id): import lsst.eotest.sensor as sensorTest import siteUtils import eotestUtils file_prefix = '%s_%s' % (sensor_id, siteUtils.getRunNumber()) flat_files = siteUtils.dependency_glob('S*/%s_flat*flat?_*.fits' % sensor_id, jobname=siteUtils.getProcessName('flat_pair_raft_acq'), description='Flat files:') bias_frame = siteUtils.dependency_glob('%s_sflat*median_bias.fits' % sensor_id, description='Super bias frame:')[0] mask_files = \ eotestUtils.glob_mask_files(pattern='%s_*mask.fits' % sensor_id) gains = eotestUtils.getSensorGains(jobname='fe55_raft_analysis', sensor_id=sensor_id) use_exptime = True if siteUtils.getSiteName() == 'SLAC': # Since slit-width can be set individually for each exposure # on TS-8 at IR-2 (LSSTTD-1231), we need to use the MONDIODE # keyword for computing the integrated incident flux. use_exptime = False task = sensorTest.FlatPairTask() task.run(sensor_id, flat_files, mask_files, gains, linearity_spec_range=(1e4, 9e4), use_exptime=use_exptime, bias_frame=bias_frame) results_file = '%s_eotest_results.fits' % sensor_id plots = sensorTest.EOTestPlots(sensor_id, results_file=results_file) Ne_bounds = (1e4, 9e4) detresp_file = '%s_det_response.fits' % sensor_id siteUtils.make_png_file(plots.linearity, '%s_linearity.png' % file_prefix, detresp_file=detresp_file, max_dev=0.03, use_exptime=use_exptime, Ne_bounds=Ne_bounds) siteUtils.make_png_file(plots.linearity_resids, '%s_linearity_resids.png' % file_prefix, detresp_file=detresp_file, max_dev=0.03, Ne_bounds=Ne_bounds, use_exptime=use_exptime)
#!/usr/bin/env python import lsst.eotest.sensor as sensorTest import siteUtils import eotestUtils siteUtils.aggregate_job_ids() sensor_id = siteUtils.getUnitId() flat_files = siteUtils.dependency_glob('*_flat*flat?_*.fits', jobname=siteUtils.getProcessName('flat_acq'), description='Flat files:') mask_files = eotestUtils.glob_mask_files() gains = eotestUtils.getSensorGains() task = sensorTest.FlatPairTask() task.run(sensor_id, flat_files, mask_files, gains, use_exptime=True)