Skip to content

Commit

Permalink
Make IsrTask a valid CmdLineTask.
Browse files Browse the repository at this point in the history
The IsrTask was not usable as a CmdLineTask, as it was written to be
called as a subtask of ProcessCcdTask.  This allows the default
IsrTask to be retargeted to camera-specific versions of the ISR
processing.  A new IsrWrapperTask now exists to hold IsrTask for
retargetting in standalone processing, and both processCcd.py and
runIsr.py now read from the same configuration files for each obs_
package.  This has involved migrating configuration values from
config/processCcd.py to config/isr.py for many obs_ packages.
  • Loading branch information
czwa committed Sep 10, 2018
1 parent 2c09753 commit 5bc46c5
Show file tree
Hide file tree
Showing 10 changed files with 97 additions and 51 deletions.
10 changes: 7 additions & 3 deletions config/hsc/isr.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# Configuration for HSC ISR
# Note that config should be an instance of SubaruIsrConfig
"""
HSC-specific overrides for IsrTask
"""
import os.path

from lsst.utils import getPackageDir

from lsst.obs.subaru.crosstalk import CrosstalkTask

config.crosstalk.retarget(CrosstalkTask)

config.overscanFitType = "AKIMA_SPLINE"
Expand All @@ -13,6 +14,9 @@
config.doDark = True # Required especially around CCD 33
config.doFringe = True
config.fringe.filters = ['y', 'N921', 'N926', 'N973', 'N1010']

# Do not use NO_DATA pixels for fringe subtraction.
config.fringe.stats.badMaskPlanes = ['SAT', 'NO_DATA']
config.fringe.stats.badMaskPlanes += ["SUSPECT"] # stray light correction unavailable
config.doWrite = False
config.doCrosstalk = True
Expand Down
12 changes: 12 additions & 0 deletions config/hsc/isrWrap.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
"""
HSC-specific overrides for IsrWrapperTask
"""
import os.path

from lsst.utils import getPackageDir
from lsst.obs.subaru.isr import SubaruIsrTask

obsConfigDir = os.path.join(getPackageDir("obs_subaru"), "config", "hsc")

config.isr.retarget(SubaruIsrTask)
config.isr.load(os.path.join(obsConfigDir, "isr.py"))
13 changes: 6 additions & 7 deletions config/hsc/processCcd.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,19 @@
from lsst.utils import getPackageDir
from lsst.obs.subaru.isr import SubaruIsrTask

hscConfigDir = os.path.join(getPackageDir("obs_subaru"), "config", "hsc")
ObsConfigDir = os.path.join(getPackageDir("obs_subaru"), "config", "hsc")

config.isr.retarget(SubaruIsrTask)
config.isr.load(os.path.join(hscConfigDir, 'isr.py'))
config.calibrate.photoCal.colorterms.load(os.path.join(hscConfigDir, 'colorterms.py'))
config.isr.load(os.path.join(ObsConfigDir, 'isr.py'))

config.calibrate.photoCal.colorterms.load(os.path.join(ObsConfigDir, 'colorterms.py'))
config.charImage.measurePsf.starSelector["objectSize"].widthMin = 0.9
config.charImage.measurePsf.starSelector["objectSize"].fluxMin = 4000
for refObjLoader in (config.calibrate.astromRefObjLoader,
config.calibrate.photoRefObjLoader,
config.charImage.refObjLoader,
):
refObjLoader.load(os.path.join(hscConfigDir, "filterMap.py"))
refObjLoader.load(os.path.join(ObsConfigDir, "filterMap.py"))

# Set to match defaults curretnly used in HSC production runs (e.g. S15B)
config.calibrate.astrometry.wcsFitter.numRejIter = 3
Expand All @@ -31,8 +33,5 @@
matcher.maxMatchDistArcSec = 2.0
matcher.maxOffsetPix = 250

# Do not use NO_DATA pixels for fringe subtraction.
config.isr.fringe.stats.badMaskPlanes = ['SAT', 'NO_DATA']

config.charImage.measurement.plugins["base_Jacobian"].pixelScale = 0.168
config.calibrate.measurement.plugins["base_Jacobian"].pixelScale = 0.168
21 changes: 11 additions & 10 deletions config/processCcd.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
from lsst.meas.algorithms import LoadIndexedReferenceObjectsTask
from lsst.meas.algorithms import ColorLimit

configDir = os.path.join(getPackageDir("obs_subaru"), "config")
bgFile = os.path.join(configDir, "background.py")
ObsConfigDir = os.path.join(getPackageDir("obs_subaru"), "config")

bgFile = os.path.join(ObsConfigDir, "background.py")

# Cosmic rays and background estimation
config.charImage.repair.cosmicray.nCrPixelMax = 1000000
Expand Down Expand Up @@ -67,18 +68,18 @@
config.calibrate.detection.isotropicGrow = True

# Activate calibration of measurements: required for aperture corrections
config.charImage.load(os.path.join(configDir, "cmodel.py"))
config.charImage.measurement.load(os.path.join(configDir, "apertures.py"))
config.charImage.measurement.load(os.path.join(configDir, "kron.py"))
config.charImage.measurement.load(os.path.join(configDir, "convolvedFluxes.py"))
config.charImage.measurement.load(os.path.join(configDir, "hsm.py"))
config.charImage.load(os.path.join(ObsConfigDir, "cmodel.py"))
config.charImage.measurement.load(os.path.join(ObsConfigDir, "apertures.py"))
config.charImage.measurement.load(os.path.join(ObsConfigDir, "kron.py"))
config.charImage.measurement.load(os.path.join(ObsConfigDir, "convolvedFluxes.py"))
config.charImage.measurement.load(os.path.join(ObsConfigDir, "hsm.py"))
if "ext_shapeHSM_HsmShapeRegauss" in config.charImage.measurement.plugins:
# no deblending has been done
config.charImage.measurement.plugins["ext_shapeHSM_HsmShapeRegauss"].deblendNChild = ""

config.calibrate.measurement.load(os.path.join(configDir, "apertures.py"))
config.calibrate.measurement.load(os.path.join(configDir, "kron.py"))
config.calibrate.measurement.load(os.path.join(configDir, "hsm.py"))
config.calibrate.measurement.load(os.path.join(ObsConfigDir, "apertures.py"))
config.calibrate.measurement.load(os.path.join(ObsConfigDir, "kron.py"))
config.calibrate.measurement.load(os.path.join(ObsConfigDir, "hsm.py"))

# Deblender
config.charImage.deblend.maskLimits["NO_DATA"] = 0.25 # Ignore sources that are in the vignetted region
Expand Down
24 changes: 11 additions & 13 deletions config/suprimecam-mit/isr.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
# Configuration for Suprime-Cam-MIT ISR
"""
SuprimeCam (MIT)-specific overrides for IsrTask
"""
config.doBias = False
config.doDark = False
config.doCrosstalk = False
config.doLinearize = False
config.doWrite = False
config.doDefect = True

from lsst.obs.subaru.isr import SuprimeCamMitIsrTask
config.isr.retarget(SuprimeCamMitIsrTask)

config.isr.doBias = False
config.isr.doDark = False
config.isr.doCrosstalk = False
config.isr.doLinearize = False
config.isr.doWrite = False
config.isr.doDefect = True

config.isr.doFringe = True
config.isr.fringe.filters = ["I", "i", "z"]
config.doFringe = True
config.fringe.filters = ["I", "i", "z"]
12 changes: 12 additions & 0 deletions config/suprimecam-mit/isrWrap.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
"""
SuprimeCam (MIT)-specific overrides for IsrWrapperTask
"""
import os.path

from lsst.utils import getPackageDir
from lsst.obs.subaru.isr import SuprimeCamIsrTask

obsConfigDir = os.path.join(getPackageDir("obs_subaru"), "config", "suprimecam-mit")

config.isr.retarget(SuprimeCamIsrTask)
config.isr.load(os.path.join(obsConfigDir, "isr.py"))
10 changes: 7 additions & 3 deletions config/suprimecam-mit/processCcd.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,14 @@
import os.path

from lsst.utils import getPackageDir
from lsst.obs.subaru.isr import SuprimeCamIsrTask

suprimecamMitConfigDir = os.path.join(getPackageDir("obs_subaru"), "config", "suprimecam-mit")
config.load(os.path.join(suprimecamMitConfigDir, 'isr.py'))
config.calibrate.photoCal.colorterms.load(os.path.join(suprimecamMitConfigDir, 'colorterms.py'))
ObsConfigDir = os.path.join(getPackageDir("obs_subaru"), "config", "suprimecam-mit")

config.isr.retarget(SuprimeCamIsrTask)
config.isr.load(os.path.join(ObsConfigDir, 'isr.py'))

config.calibrate.photoCal.colorterms.load(os.path.join(ObsConfigDir, 'colorterms.py'))

config.charImage.measurement.plugins["base_Jacobian"].pixelScale = 0.2
config.calibrate.measurement.plugins["base_Jacobian"].pixelScale = 0.2
23 changes: 11 additions & 12 deletions config/suprimecam/isr.py
Original file line number Diff line number Diff line change
@@ -1,35 +1,34 @@
# Configuration for Suprime-Cam ISR

from lsst.obs.subaru.isr import SuprimeCamIsrTask

config.isr.retarget(SuprimeCamIsrTask) # custom task that adds guider correction
config.isr.doBias = True
config.isr.doDark = False
config.isr.doWrite = False
"""
Suprimecam-specific overrides for IsrTask
(applied after Subaru overrides in ../processCcd.py)
"""
config.doBias = True
config.doDark = False
config.doWrite = False

if False:
# Crosstalk coefficients for SuprimeCam, as crudely measured by RHL
config.isr.crosstalk.coeffs = [
config.crosstalk.coeffs = [
0.00e+00, -8.93e-05, -1.11e-04, -1.18e-04,
-8.09e-05, 0.00e+00, -7.15e-06, -1.12e-04,
-9.90e-05, -2.28e-05, 0.00e+00, -9.64e-05,
-9.59e-05, -9.85e-05, -8.77e-05, 0.00e+00,
]

# Crosstalk coefficients derived from Yagi+ 2012
config.isr.crosstalk.coeffs.crossTalkCoeffs1 = [
config.crosstalk.coeffs.crossTalkCoeffs1 = [
0, -0.000148, -0.000162, -0.000167, # cAA,cAB,cAC,cAD
-0.000148, 0, -0.000077, -0.000162, # cBA,cBB,cBC,cBD
-0.000162, -0.000077, 0, -0.000148, # cCA,cCB,cCC,cCD
-0.000167, -0.000162, -0.000148, 0, # cDA,cDB,cDC,cDD
]
config.isr.crosstalk.coeffs.crossTalkCoeffs2 = [
config.crosstalk.coeffs.crossTalkCoeffs2 = [
0, 0.000051, 0.000050, 0.000053,
0.000051, 0, 0, 0.000050,
0.000050, 0, 0, 0.000051,
0.000053, 0.000050, 0.000051, 0,
]
config.isr.crosstalk.coeffs.relativeGainsPreampAndSigboard = [
config.crosstalk.coeffs.relativeGainsPreampAndSigboard = [
0.949, 0.993, 0.976, 0.996,
0.973, 0.984, 0.966, 0.977,
1.008, 0.989, 0.970, 0.976,
Expand Down
13 changes: 13 additions & 0 deletions config/suprimecam/isrWrap.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""
Suprimecam-specific overrides for IsrWrapperTask
(applied after Subaru overrides in ../processCcd.py)
"""
import os.path

from lsst.utils import getPackageDir
from lsst.obs.subaru.isr import SuprimeCamIsrTask

obsConfigDir = os.path.join(getPackageDir("obs_subaru"), "config", "suprimecam")

config.isr.retarget(SuprimeCamIsrTask)
config.isr.load(os.path.join(obsConfigDir, "isr.py"))
10 changes: 7 additions & 3 deletions config/suprimecam/processCcd.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,14 @@
import os.path

from lsst.utils import getPackageDir
from lsst.obs.subaru.isr import SuprimeCamIsrTask

suprimecamConfigDir = os.path.join(getPackageDir("obs_subaru"), "config", "suprimecam")
config.load(os.path.join(suprimecamConfigDir, 'isr.py'))
config.calibrate.photocal.colorterms.load(os.path.join(suprimecamConfigDir, 'colorterms.py'))
ObsConfigDir = os.path.join(getPackageDir("obs_subaru"), "config", "suprimecam")

config.isr.retarget(SuprimeCamIsrTask)
config.isr.load(os.path.join(ObsConfigDir, 'isr.py'))

config.calibrate.photocal.colorterms.load(os.path.join(ObsConfigDir, 'colorterms.py'))

config.charImage.measurement.plugins["base_Jacobian"].pixelScale = 0.2
config.calibrate.measurement.plugins["base_Jacobian"].pixelScale = 0.2

0 comments on commit 5bc46c5

Please sign in to comment.