From 7469329515712072006c6dd87457279491bff949 Mon Sep 17 00:00:00 2001 From: James Chiang Date: Wed, 16 Sep 2020 21:51:46 -0700 Subject: [PATCH] make superflat file specifically for divisadero tearing analysis --- data/BOT_jh_glob_patterns.ini | 1 + .../tearing_BOT/v0/raft_divisidero_tearing.py | 26 +++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/data/BOT_jh_glob_patterns.ini b/data/BOT_jh_glob_patterns.ini index 25de11a..355a9f0 100644 --- a/data/BOT_jh_glob_patterns.ini +++ b/data/BOT_jh_glob_patterns.ini @@ -17,6 +17,7 @@ overscan = flat_*_flat?_* brighter_fatter = flat_*_flat?_* qe = lambda_flat_* tearing = sflat_flat_*[LH]* +divisadero_tearing = sflat_flat_*L* scan_mode = scan_*_* persistence_bias = bot_persistence_bias_* persistence_dark = bot_persistence_dark_* diff --git a/harnessed_jobs/tearing_BOT/v0/raft_divisidero_tearing.py b/harnessed_jobs/tearing_BOT/v0/raft_divisidero_tearing.py index 53b48bb..73e243f 100755 --- a/harnessed_jobs/tearing_BOT/v0/raft_divisidero_tearing.py +++ b/harnessed_jobs/tearing_BOT/v0/raft_divisidero_tearing.py @@ -4,21 +4,37 @@ """ def raft_divisidero_tearing(raft_name): """JH version of divisidero tearing analysis of BOT data.""" + from collections import defaultdict import json import matplotlib.pyplot as plt import siteUtils + from lsst.eotest.sensor.cteTask import superflat import lsst.eotest.raft as raftTest - from bot_eo_analyses import get_raft_files_by_slot + from bot_eo_analyses import glob_pattern, bias_filename run = siteUtils.getRunNumber() - try: - sflat_files = get_raft_files_by_slot(raft_name, 'median_sflat.fits') - except FileNotFoundError: + pattern = glob_pattern('divisadero_tearing', f'{raft_name}_*') + acq_jobname = siteUtils.getProcessName('BOT_acq') + bot_data = siteUtils.dependency_glob(pattern, acq_jobname=acq_jobname) + if not bot_data: return + sflat_files = defaultdict(list) + for item in bot_data: + slot = item.split('.')[0].split('_')[-1] + sflat_files[slot].append(item) + + median_sflats = dict() + for slot, files in sflat_files.items(): + det_name = '_'.join((raft_name, slot)) + outfile = f'{det_name}_{run}_median_sflat.fits' + bias_frame = bias_filename(run, det_name) + median_sflats[slot] = superflat(files, outfile=outfile, + bias_frame=bias_frame) + max_divisidero_tearing \ - = raftTest.ana_divisidero_tearing(sflat_files, raft_name, run) + = raftTest.ana_divisidero_tearing(median_sflats, raft_name, run) plt.savefig(f'{raft_name}_{run}_divisidero.png') with open(f'{raft_name}_{run}_max_divisidero.json', 'w') as fd: