Skip to content

Commit

Permalink
Merge pull request #30 from lsst-camera-dh/u/jchiang/brighter_fatter_…
Browse files Browse the repository at this point in the history
…raft

add raft-level brighter-fatter task
  • Loading branch information
jchiang87 authored Apr 29, 2019
2 parents 66dbacd + f7b1086 commit 4c2eaf3
Show file tree
Hide file tree
Showing 6 changed files with 114 additions and 9 deletions.
3 changes: 3 additions & 0 deletions harnessed_jobs/brighter_fatter_raft/v0/modulefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#%Module1.0 #-*-tcl-*-#
source "$::env(LCATR_MODULES)/lcatr.tcl"
lcatr_package producer_brighter_fatter_raft.py validator_brighter_fatter_raft.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/usr/bin/env python
"""
Producer script for raft-level brighter-fatter analysis.
"""
from __future__ import print_function
import lsst.eotest.sensor as sensorTest
import siteUtils
import eotestUtils
from multiprocessor_execution import sensor_analyses

def run_bf_task(sensor_id):
file_prefix = '%s_%s' % (sensor_id, siteUtils.getRunNumber())
flat_files = siteUtils.dependency_glob('S*/%s_flat*flat1*.fits' % sensor_id,
jobname=siteUtils.getProcessName('flat_pair_raft_acq'),
description='Flat files:')
bias_frame = siteUtils.dependency_glob('S*/%s_*bias*.fits' % sensor_id,
jobname='fe55_raft_analysis',
description='Superbias files:')[0]
mask_files = \
eotestUtils.glob_mask_files(pattern='%s_*mask.fits' % sensor_id)

task = sensorTest.BFTask()
task.run(sensor_id, flat_files, mask_files=mask_files,
bias_frame=bias_frame)

results_file = '%s_eotest_results.fits' % sensor_id
plots = sensorTest.EOTestPlots(sensor_id, results_file=results_file)
siteUtils.make_png_file(plots.bf_curves,
'%s_brighter-fatter.png' % file_prefix,
bf_file='%s_bf.fits' % sensor_id)

if __name__ == '__main__':
sensor_analyses(run_bf_task)
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/usr/bin/env python
"""
Validator script for raft-level brighter-fatter analysis.
"""
import lsst.eotest.sensor as sensorTest
import lcatr.schema
import siteUtils
import eotestUtils
import camera_components

raft_id = siteUtils.getUnitId()
raft = camera_components.Raft.create_from_etrav(raft_id)

results = []
for slot, sensor_id in raft.items():
ccd_vendor = sensor_id.split('-')[0].upper()

bf_results = '%s_bf.fits' % sensor_id
eotestUtils.addHeaderData(bf_results, LSST_NUM=sensor_id, TESTTYPE='FLAT',
DATE=eotestUtils.utc_now_isoformat(),
CCD_MANU=ccd_vendor)

results.append(siteUtils.make_fileref(bf_results, folder=slot))

results_file = '%s_eotest_results.fits' % sensor_id
data = sensorTest.EOTestResults(results_file)
columns = (data['AMP'], data['BF_XCORR'], data['BF_XCORR_ERR'],
data['BF_YCORR'], data['BF_YCORR_ERR'], data['BF_MEAN'])
schema = lcatr.schema.get('brighter_fatter_raft')
for amp, bf_xcorr, bf_xcorr_err, bf_ycorr, bf_ycorr_err, bf_mean \
in zip(*columns):
results.append(lcatr.schema.valid(
schema, amp=amp, bf_xcorr=bf_xcorr, bf_xcorr_err=bf_xcorr_err,
bf_ycorr=bf_ycorr, bf_ycorr_err=bf_ycorr_err, bf_mean=bf_mean,
slot=slot, sensor_id=sensor_id))

# Persist the png files.
metadata = dict(CCD_MANU=ccd_vendor, LSST_NUM=sensor_id,
TESTTYPE='FLAT', TEST_CATEGORY='EO')
results.extend(siteUtils.persist_png_files('%s*.png' % sensor_id,
sensor_id, folder=slot,
metadata=metadata))

results.extend(siteUtils.jobInfo())
lcatr.schema.write_file(results)
lcatr.schema.validate_file()
23 changes: 14 additions & 9 deletions harnessed_jobs/ptc_raft/v0/validator_ptc_raft.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,20 @@

results_file = '%s_eotest_results.fits' % sensor_id
data = sensorTest.EOTestResults(results_file)
amps = data['AMP']
ptc_gains = data['PTC_GAIN']
ptc_gain_errors = data['PTC_GAIN_ERROR']
for amp, gain, gain_error in zip(amps, ptc_gains, ptc_gain_errors):
results.append(lcatr.schema.valid(lcatr.schema.get('ptc_raft'),
amp=amp, ptc_gain=gain,
ptc_gain_error=gain_error,
slot=slot,
sensor_id=sensor_id))
columns = (data['AMP'], data['PTC_GAIN'], data['PTC_GAIN_ERROR'],
data['PTC_A00'], data['PTC_A00_ERROR'],
data['PTC_NOISE'], data['PTC_NOISE_ERROR'],
data['PTC_TURNOFF'])
schema = lcatr.schema.get('ptc_raft')
for (amp, ptc_gain, ptc_gain_error, ptc_a00, ptc_a00_error,
ptc_noise, ptc_noise_error, ptc_turnoff) in zip(*columns):
results.append(lcatr.schema.valid(
schema, amp=amp,
ptc_gain=ptc_gain, ptc_gain_error=ptc_gain_error,
ptc_a00=ptc_a00, ptc_a00_error=ptc_a00_error,
ptc_noise=ptc_noise, ptc_noise_error=ptc_noise_error,
ptc_turnoff=ptc_turnoff, slot=slot, sensor_id=sensor_id))

# Persist the png files.
metadata = dict(CCD_MANU=ccd_vendor, LSST_NUM=sensor_id,
TESTTYPE='FLAT', TEST_CATEGORY='EO')
Expand Down
13 changes: 13 additions & 0 deletions schemas/brighter_fatter_raft.schema
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# -*- python -*-
{
'schema_name' : 'brighter_fatter_raft',
'schema_version' : 0,
'amp' : int,
'bf_xcorr' : float,
'bf_xcorr_err' : float,
'bf_ycorr' : float,
'bf_ycorr_err' : float,
'bf_mean' : float,
'slot' : str,
'sensor_id' : str
}
5 changes: 5 additions & 0 deletions schemas/ptc_raft.schema
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
'amp' : int,
'ptc_gain' : float,
'ptc_gain_error' : float,
'ptc_a00': float,
'ptc_a00_error': float,
'ptc_noise': float,
'ptc_noise_error': float,
'ptc_turnoff': float,
'slot' : str,
'sensor_id' : str
}

0 comments on commit 4c2eaf3

Please sign in to comment.