24__all__ = (
"CModelStageConfig",
"CModelConfig")
31from .._modelfitLib
import CModelAlgorithm, CModelControl, CModelStageControl
33CModelStageConfig = makeConfigClass(CModelStageControl)
34CModelConfig = makeConfigClass(CModelControl)
36apCorrList = (
"modelfit_CModel",
"modelfit_CModel_initial",
"modelfit_CModel_exp",
"modelfit_CModel_dev")
42 lsst.meas.base.SingleFramePluginConfig.setDefaults(self)
43 CModelConfig.setDefaults(self)
46@lsst.meas.base.register("modelfit_CModel", apCorrList=apCorrList)
48 """Single-frame measurement interface for CModelAlgorithm.
50 This class simply provides __init__ and measure methods that matched the SingleFramePlugin signatures
51 and delegate to the CModelAlgorithm's methods.
53 ConfigClass = CModelSingleFrameConfig
59 def __init__(self, config, name, schema, metadata):
60 lsst.meas.base.SingleFramePlugin.__init__(self, config, name, schema, metadata)
66 def fail(self, measRecord, error=None):
67 self.
algorithm.
fail(measRecord, error.cpp
if error
is not None else None)
73 lsst.meas.base.ForcedPluginConfig.setDefaults(self)
74 CModelConfig.setDefaults(self)
77@lsst.meas.base.register("modelfit_CModel", apCorrList=apCorrList)
79 """Forced measurement interface for CModelAlgorithm
81 This class simply provides __init__ and measure methods that matched the ForcedPlugin signatures
82 and delegate to CModelAlgorithm implementations.
84 The CModel algorithm currently cannot be run in forced mode when the measurement WCS is different
85 from the reference WCS (as is the case in CCD forced photometry). This is a temporary limitation
86 that will be addressed on DM-5405.
88 CModel forced measurement when the measurement image is the same as the reference image should be
89 almost -- but not quite -- identical to unforced measurement. The primary difference is that
90 the final fit region from the reference measurement will be used for the initial fit in forced mode
91 as well as the exp, dev, and combined exp+dev fits
93 ConfigClass = CModelForcedConfig
100 def __init__(self, config, name, schemaMapper, metadata, logName=None):
101 lsst.meas.base.ForcedPlugin.__init__(self, config, name, schemaMapper, metadata, logName=logName)
104 def measure(self, measRecord, exposure, refRecord, refWcs):
105 if refWcs != exposure.getWcs():
106 if str(refWcs) == str(exposure.getWcs()):
107 logger = logging.getLogger(self.getLogName())
109 "The measurement and reference WCS are not equal, but have the same"
110 "string representation."
114 "CModel forced measurement currently requires the measurement image to have the same"
115 " Wcs as the reference catalog (this is a temporary limitation)."
119 def fail(self, measRecord, error=None):
120 self.
algorithm.
fail(measRecord, error.cpp
if error
is not None else None)
Main public interface class for CModel algorithm.
__init__(self, config, name, schemaMapper, metadata, logName=None)
fail(self, measRecord, error=None)
measure(self, measRecord, exposure, refRecord, refWcs)
measure(self, measRecord, exposure)
__init__(self, config, name, schema, metadata)
fail(self, measRecord, error=None)