Skip to content

Commit

Permalink
Merge branch 'tickets/DM-23616'
Browse files Browse the repository at this point in the history
  • Loading branch information
kfindeisen committed Mar 26, 2020
2 parents de1851c + c69408c commit 4648504
Show file tree
Hide file tree
Showing 9 changed files with 55 additions and 66 deletions.
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,3 @@ Documentation of the LSST Science Pipelines is at https://pipelines.lsst.io

from lsst.obs.decam.decamNullIsr import DecamNullIsrTask
config.isr.retarget(DecamNullIsrTask)

7. To process raw data with the Community-Pipeline calibration products, retarget the ISR task to `DecamCpIsrTask` by using the config override file config/processCcdCpIsr.py
8 changes: 2 additions & 6 deletions config/apPipe.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
# Config override for lsst.ap.pipe.ApPipeTask
import os.path
from lsst.utils import getPackageDir

decamConfigDir = os.path.join(getPackageDir('obs_decam'), 'config')
decamConfigDir = os.path.dirname(__file__)

# This default processCcd config assumes calibration products are from the
# DECam Community Pipeline (CP). The config file to use for stack-built
# calibs is "processCcd.py" instead.
config.ccdProcessor.load(os.path.join(decamConfigDir, "processCcdCpIsr.py"))
config.ccdProcessor.load(os.path.join(decamConfigDir, "processCcd.py"))
20 changes: 20 additions & 0 deletions config/calibrate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
"""
DECam-specific overrides for CalibrateTask
"""

# This sets the reference catalog name for Gen2.
for refObjLoader in (config.astromRefObjLoader,
config.photoRefObjLoader,
):
refObjLoader.ref_dataset_name = "ps1_pv3_3pi_20170110"
# Note the u-band results may not be useful without a color term
refObjLoader.filterMap['u'] = 'g'
refObjLoader.filterMap['Y'] = 'y'

# This sets up the reference catalog for Gen3.
config.connections.astromRefCat = "ps1_pv3_3pi_20170110"
config.connections.photoRefCat = "ps1_pv3_3pi_20170110"
config.photoCal.photoCatName = "ps1_pv3_3pi_20170110"

# Set SIP order to 4, the Task default before RFC-577 to maintain same behavior
config.astrometry.wcsFitter.order = 4
12 changes: 12 additions & 0 deletions config/characterizeImage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
"""
DECam-specific overrides for CharacterizeImageTask
"""
config.repair.cosmicray.nCrPixelMax = 100000

# This sets the reference catalog name for Gen2.
# Note that in Gen3, we've stopped pretending (which is what Gen2 does,
# for backwards compatibility) that charImage uses a reference catalog.
config.refObjLoader.ref_dataset_name = "ps1_pv3_3pi_20170110"
# Note the u-band results may not be useful without a color term
config.refObjLoader.filterMap['u'] = 'g'
config.refObjLoader.filterMap['Y'] = 'y'
12 changes: 7 additions & 5 deletions config/isr.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
config.expectWcs = True
config.fwhm = 1.0

config.doConvertIntToFloat = False

config.doSaturation=True
config.saturatedMaskName = "SAT"
config.saturation = float("NaN")
Expand Down Expand Up @@ -49,7 +47,8 @@
config.doTrimToMatchCalib = True

config.doBias = True
config.biasDataProductName = "cpBias"
config.connections.bias = "cpBias"
config.biasDataProductName = config.connections.bias

config.doVariance = True
config.gain = float("NaN")
Expand All @@ -73,12 +72,14 @@
config.numEdgeSuspect=35

config.doDark = False
config.darkDataProductName = "dark"
config.connections.dark = "dark"
config.darkDataProductName = config.connections.dark

config.doStrayLight = False

config.doFlat = True
config.flatDataProductName = "cpFlat"
config.connections.flat = "cpFlat"
config.flatDataProductName = config.connections.flat
config.flatScalingType = "USER"
config.flatUserScale = 1.0
config.doTweakFlat = False
Expand Down Expand Up @@ -107,6 +108,7 @@

# Illumination correction should almost certainly be done,
# but not all decam datasets yet have the necessary calibration products.
# Nor is it supported yet in Gen 3
config.doIlluminationCorrection = False
# config.doIlluminationCorrection = True
config.illuminationCorrectionDataProductName = "cpIllumcor"
Expand Down
31 changes: 3 additions & 28 deletions config/processCcd.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,8 @@
"""
import os.path

from lsst.utils import getPackageDir

obsConfigDir = os.path.join(getPackageDir('obs_decam'), 'config')
obsConfigDir = os.path.dirname(__file__)

config.isr.load(os.path.join(obsConfigDir, 'isr.py'))

config.charImage.repair.cosmicray.nCrPixelMax = 100000

# This sets the reference catalog name for Gen2.
for refObjLoader in (config.calibrate.astromRefObjLoader,
config.calibrate.photoRefObjLoader,
config.charImage.refObjLoader,
):
refObjLoader.ref_dataset_name = "ps1_pv3_3pi_20170110"
# Note the u-band results may not be useful without a color term
refObjLoader.filterMap['u'] = 'g'
refObjLoader.filterMap['Y'] = 'y'

# This sets up the reference catalog for Gen3.
# Note that in Gen3, we've stopped pretending (which is what Gen2 does,
# for backwards compatibility) that charImage uses a reference catalog.
config.calibrate.connections.astromRefCat = "ps1_pv3_3pi_20170110"
config.calibrate.connections.photoRefCat = "ps1_pv3_3pi_20170110"

config.calibrate.photoCal.photoCatName = "ps1_pv3_3pi_20170110"
# this was the default prior to DM-11521. New default is 2000.
config.calibrate.deblend.maxFootprintSize = 0

# Set SIP order to 4, the Task default before RFC-577 to maintain same behavior
config.calibrate.astrometry.wcsFitter.order = 4
config.charImage.load(os.path.join(obsConfigDir, 'characterizeImage.py'))
config.calibrate.load(os.path.join(obsConfigDir, 'calibrate.py'))
25 changes: 7 additions & 18 deletions config/processCcdCpIsr.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,13 @@
DECam-specific overrides for ProcessCcdTask/Community Pipeline products
"""
import os.path
import warnings

from lsst.utils import getPackageDir
obsConfigDir = os.path.dirname(__file__)

obsConfigDir = os.path.join(getPackageDir('obs_decam'), 'config')
config.load(os.path.join(obsConfigDir, 'processCcd.py'))

config.isr.load(os.path.join(obsConfigDir, 'isr.py'))

config.charImage.repair.cosmicray.nCrPixelMax = 100000

for refObjLoader in (config.calibrate.astromRefObjLoader,
config.calibrate.photoRefObjLoader,
config.charImage.refObjLoader,
):
refObjLoader.ref_dataset_name = "ps1_pv3_3pi_20170110"
# Note the u-band results may not be useful without a color term
refObjLoader.filterMap['u'] = 'g'
refObjLoader.filterMap['Y'] = 'y'

config.calibrate.photoCal.photoCatName = "ps1_pv3_3pi_20170110"
config.calibrate.connections.astromRefCat = "ps1_pv3_3pi_20170110"
config.calibrate.connections.photoRefCat = "ps1_pv3_3pi_20170110"
warnings.warn(
'processCcdCpIsr.py is no longer needed, use processCcd.py instead. Will '
'be removed after release 21.0',
category=FutureWarning)
6 changes: 3 additions & 3 deletions python/lsst/obs/decam/crosstalk.py
Original file line number Diff line number Diff line change
Expand Up @@ -197,9 +197,9 @@ def run(self, exposure, crosstalkSources=None):
applied (`lsst.afw.image.Exposure`).
"""
self.log.info('Applying crosstalk correction')
assert crosstalkSources is not None, "Sources are required for DECam crosstalk correction; \
you must run CrosstalkTask via IsrTask which will \
call prepCrosstalk to get the sources."
assert crosstalkSources is not None, "Sources are required for DECam crosstalk correction; " \
"you must run CrosstalkTask via IsrTask which will " \
"call prepCrosstalk to get the sources."
# Load data from crosstalk 'victim' exposure we want to correct
det = exposure.getDetector()
for amp in det:
Expand Down
5 changes: 1 addition & 4 deletions tests/nopytest_test_processCcd.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,10 @@ def setUpClass(cls):

cls.outPath = tempfile.mkdtemp() if OutputName is None else OutputName
cls.dataId = {'visit': 229388, 'ccdnum': 1}
configPath = os.path.join(getPackageDir("obs_decam"), "config")
argsList = [os.path.join(cls.datadir, "rawData"), "--output", cls.outPath, "--id"]
argsList += ["%s=%s" % (key, val) for key, val in cls.dataId.items()]
argsList += ["--calib", os.path.join(cls.datadir, "rawData/cpCalib")]
argsList += ["--config", "calibrate.doPhotoCal=False", "calibrate.doAstrometry=False",
# This test uses CP-MasterCal calibration products
"-C", "%s/processCcdCpIsr.py" % configPath]
argsList += ["--config", "calibrate.doPhotoCal=False", "calibrate.doAstrometry=False"]
argsList.append('--doraise')
disableImplicitThreading() # avoid contention with other processes
fullResult = ProcessCcdTask.parseAndRun(args=argsList, doReturnResults=True)
Expand Down

0 comments on commit 4648504

Please sign in to comment.