From c2a0a1e2a0e63ea399b90907d71f95c41252621b Mon Sep 17 00:00:00 2001 From: Alex Broughton Date: Mon, 13 Jan 2025 18:01:06 -0800 Subject: [PATCH] Add CTI pipelines for simulated instruments --- pipelines/LSSTComCamSim/cpCti.yaml | 4 ++++ pipelines/_ingredients/cpCti.yaml | 2 +- python/lsst/cp/pipe/cpCtiSolve.py | 14 +++++++------- 3 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 pipelines/LSSTComCamSim/cpCti.yaml diff --git a/pipelines/LSSTComCamSim/cpCti.yaml b/pipelines/LSSTComCamSim/cpCti.yaml new file mode 100644 index 00000000..142981fd --- /dev/null +++ b/pipelines/LSSTComCamSim/cpCti.yaml @@ -0,0 +1,4 @@ +description: LSSTCam cti calibration construction +instrument: lsst.obs.lsst.LsstComCamSim +imports: + - location: $CP_PIPE_DIR/pipelines/_ingredients/cpCtiLSST.yaml diff --git a/pipelines/_ingredients/cpCti.yaml b/pipelines/_ingredients/cpCti.yaml index d14bd0c2..5b7b00f4 100644 --- a/pipelines/_ingredients/cpCti.yaml +++ b/pipelines/_ingredients/cpCti.yaml @@ -26,6 +26,6 @@ tasks: class: lsst.cp.pipe.CpCtiSolveTask config: connections.inputMeasurements: "cpCtiStatistics" - connections.outputCalib: "cpCtiCalib" + connections.outputCalib: "cti" contracts: - cpCtiSolve.connections.inputMeasurements == cpCtiIsr.connections.outputStatistics diff --git a/python/lsst/cp/pipe/cpCtiSolve.py b/python/lsst/cp/pipe/cpCtiSolve.py index 8fa6ab92..84da731b 100644 --- a/python/lsst/cp/pipe/cpCtiSolve.py +++ b/python/lsst/cp/pipe/cpCtiSolve.py @@ -112,20 +112,20 @@ class CpCtiSolveConfig(pipeBase.PipelineTaskConfig, ) globalCtiColumnRange = pexConfig.ListField( dtype=int, - default=[1, 2], - doc="First and last serialoverscan column to use for " - "global CTI fit.", + default=[1, 15], + doc="First and last serial overscan column to use for " + "serial EPER estimate.", ) globalCtiRowRange = pexConfig.ListField( dtype=int, default=[1, 2], doc="First and last parallel overscan row to use for " - "global CTI fit.", + "parallel EPER estimate.", ) trapColumnRange = pexConfig.ListField( dtype=int, - default=[1, 20], + default=[1, 2], doc="First and last overscan column to use for serial trap fit.", ) @@ -841,10 +841,10 @@ def calcEper(self, mode, inputMeasurements, amp): data = data[ind] # This looks at the charge that has leaked into - # the first few columns of the overscan. + # the first few columns or rows of the overscan. overscan1 = data[:, 0] overscan2 = data[:, 1] - ctiEstimate = (np.array(overscan1) + np.array(overscan2))/(nShifts*np.array(signal)) + ctiEstimate = (overscan1 + overscan2)/(nShifts*np.array(signal)) return signal, ctiEstimate