Project: datamanagement
Issue DM-6490: Investigate calibration zeropoint offset between HSC vs. LSST processCcd.py runs
As reported in DM-4730, while the scatter between single frame processing measurements of the same dataset on the HSC vs. LSST stacks is quite good (rms = 0.009 mag between Gaussian fluxes, for example, in the figure shown on that ticket), there is a clear offset (0.0166 mag in the figure shown) in the zeropoint between the two stacks (it is systematic, i.e. no trend with magnitude). The cause may well be due to slight differences in the reference stars selected for calibration. We also speculated about differences in slot definitions used in the calibrations steps (e.g. for aperture corrections, psfex, etc...), so I have rerun visit 1322 through both stacks having forced all apertures used in calibration to be the same, namely a circular aperture of 12 pixels measured using the sinc algorithm (as opposed to "naive"). I have attached the *processCcd.py* config files for the two runs so my settings can be reproduced. Also of note, I am using a {{meas_algorithms}} branch on the HSC stack with the following commit: {code} commit 173ad0b32ed4f4ab074f1a942d2d3f758e189917 Author: Lauren MacArthur Date: Wed Jan 13 16:35:59 2016 -0500 Hack to allow flux.aperture to be used in apCorr Since it does not seem possible to access the nth element of a schema element that is an array in the context of setting a config override, this allows for flux.aperture to be set as calibrate.measureApCorr.reference and it sets it to index 4 (which corresponds to a radius of 12 pixels) in the __init__. This was selected to match the current LSST default. diff --git a/python/lsst/meas/algorithms/measureApCorr.py b/python/lsst/meas/algorithms/measureApCorr.py index 9f6c599..f1fa99d 100644 --- a/python/lsst/meas/algorithms/measureApCorr.py +++ b/python/lsst/meas/algorithms/measureApCorr.py @@ -81,6 +81,9 @@ class MeasureApCorrTask(lsst.pipe.base.Task): def __init__(self, schema, **kwds): lsst.pipe.base.Task.__init__(self, **kwds) self.reference = KeyTuple(self.config.reference, schema) + if self.config.reference == 'flux.aperture': + print "NOTE: setting aperture correction flux to flux.aperture[4] ==> radius = 12 pixels" + self.reference.flux = self.reference.flux[4] self.toCorrect = {} {code} I attach some of the figures comparing the PSF fluxes from these runs which compare the output of the two stacks having matched the two src catalogs. There are two sets: 1) having adjusted the flux for each source to the zeropoint calculated in the calibration and stored as *FLUXMAG0* 2) having adjusted the flux for all sources to a common zeropoint (zp=33.0, chosen to roughly match the calibrated zp). Note that my figures do include aperture corrections (in DM-5301, many of the plots show fluxes pre-aperture correction). I have also included plots that directly compare the aperture corrections applied (difference in mag units). Finally, I also include plots comparing the 12 pixel circular aperture mags (i.e. to which no apCorr is added). Clearly, the zeropoint determined in the calibration of the two stacks differs between the two stacks and, in particular, there seem to be some very problematic CCDs where the differences are particularly significant (~0.05 mag, and not always in the same direction). Please investigate the source of this discrepancy.
Story points: 8