lsst.meas.modelfit
g9a9c865167+311602a9c2
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
meas
modelfit
cmodel
cmodelContinued.py
Go to the documentation of this file.
1
#
2
# LSST Data Management System
3
# Copyright 2008-2017 LSST/AURA.
4
#
5
# This product includes software developed by the
6
# LSST Project (http://www.lsst.org/).
7
#
8
# This program is free software: you can redistribute it and/or modify
9
# it under the terms of the GNU General Public License as published by
10
# the Free Software Foundation, either version 3 of the License, or
11
# (at your option) any later version.
12
#
13
# This program is distributed in the hope that it will be useful,
14
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
# GNU General Public License for more details.
17
#
18
# You should have received a copy of the LSST License Statement and
19
# the GNU General Public License along with this program. If not,
20
# see <http://www.lsstcorp.org/LegalNotices/>.
21
#
22
23
# The Plugin classes here are accessed via registries, not direct imports.
24
__all__ = (
"CModelStageConfig"
,
"CModelConfig"
)
25
26
import
logging
27
28
import
lsst.meas.base
29
from
lsst.pex.config
import
makeConfigClass
30
31
from
.._modelfitLib
import
CModelAlgorithm, CModelControl, CModelStageControl
32
33
CModelStageConfig = makeConfigClass(CModelStageControl)
34
CModelConfig = makeConfigClass(CModelControl)
35
36
apCorrList = (
"modelfit_CModel"
,
"modelfit_CModel_initial"
,
"modelfit_CModel_exp"
,
"modelfit_CModel_dev"
)
37
38
39
class
CModelSingleFrameConfig
(lsst.meas.base.SingleFramePluginConfig, CModelConfig):
40
41
def
setDefaults
(self):
42
lsst.meas.base.SingleFramePluginConfig.setDefaults(self)
43
CModelConfig.setDefaults(self)
44
45
46
@lsst.meas.base.register("modelfit_CModel", apCorrList=apCorrList)
47
class
CModelSingleFramePlugin
(lsst.meas.base.SingleFramePlugin):
48
"""Single-frame measurement interface for CModelAlgorithm.
49
50
This class simply provides __init__ and measure methods that matched the SingleFramePlugin signatures
51
and delegate to the CModelAlgorithm's methods.
52
"""
53
ConfigClass = CModelSingleFrameConfig
54
55
@staticmethod
56
def
getExecutionOrder
():
57
return
3.0
58
59
def
__init__
(self, config, name, schema, metadata):
60
lsst.meas.base.SingleFramePlugin.__init__(self, config, name, schema, metadata)
61
self.
algorithm
=
CModelAlgorithm
(name, config.makeControl(), schema)
62
63
def
measure
(self, measRecord, exposure):
64
self.
algorithm
.
measure
(measRecord, exposure)
65
66
def
fail
(self, measRecord, error=None):
67
self.
algorithm
.
fail
(measRecord, error.cpp
if
error
is
not
None
else
None
)
68
69
70
class
CModelForcedConfig
(lsst.meas.base.ForcedPluginConfig, CModelConfig):
71
72
def
setDefaults
(self):
73
lsst.meas.base.ForcedPluginConfig.setDefaults(self)
74
CModelConfig.setDefaults(self)
75
76
77
@lsst.meas.base.register("modelfit_CModel", apCorrList=apCorrList)
78
class
CModelForcedPlugin
(lsst.meas.base.ForcedPlugin):
79
"""Forced measurement interface for CModelAlgorithm
80
81
This class simply provides __init__ and measure methods that matched the ForcedPlugin signatures
82
and delegate to CModelAlgorithm implementations.
83
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.
87
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
92
"""
93
ConfigClass = CModelForcedConfig
94
hasLogName =
True
95
96
@staticmethod
97
def
getExecutionOrder
():
98
return
3.0
99
100
def
__init__
(self, config, name, schemaMapper, metadata, logName=None):
101
lsst.meas.base.ForcedPlugin.__init__(self, config, name, schemaMapper, metadata, logName=logName)
102
self.
algorithm
=
CModelAlgorithm
(name, config.makeControl(), schemaMapper)
103
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())
108
logger.debug(
109
"The measurement and reference WCS are not equal, but have the same"
110
"string representation."
111
)
112
else
:
113
raise
lsst.meas.base.FatalAlgorithmError
(
114
"CModel forced measurement currently requires the measurement image to have the same"
115
" Wcs as the reference catalog (this is a temporary limitation)."
116
)
117
self.
algorithm
.
measure
(measRecord, exposure, refRecord)
118
119
def
fail
(self, measRecord, error=None):
120
self.
algorithm
.
fail
(measRecord, error.cpp
if
error
is
not
None
else
None
)
lsst::meas::base::FatalAlgorithmError
lsst::meas::modelfit::CModelAlgorithm
Main public interface class for CModel algorithm.
Definition
CModel.h:391
lsst::meas::modelfit.cmodel.cmodelContinued.CModelForcedConfig
Definition
cmodelContinued.py:70
lsst::meas::modelfit.cmodel.cmodelContinued.CModelForcedConfig.setDefaults
setDefaults(self)
Definition
cmodelContinued.py:72
lsst::meas::modelfit.cmodel.cmodelContinued.CModelForcedPlugin
Definition
cmodelContinued.py:78
lsst::meas::modelfit.cmodel.cmodelContinued.CModelForcedPlugin.__init__
__init__(self, config, name, schemaMapper, metadata, logName=None)
Definition
cmodelContinued.py:100
lsst::meas::modelfit.cmodel.cmodelContinued.CModelForcedPlugin.getExecutionOrder
getExecutionOrder()
Definition
cmodelContinued.py:97
lsst::meas::modelfit.cmodel.cmodelContinued.CModelForcedPlugin.algorithm
algorithm
Definition
cmodelContinued.py:102
lsst::meas::modelfit.cmodel.cmodelContinued.CModelForcedPlugin.fail
fail(self, measRecord, error=None)
Definition
cmodelContinued.py:119
lsst::meas::modelfit.cmodel.cmodelContinued.CModelForcedPlugin.measure
measure(self, measRecord, exposure, refRecord, refWcs)
Definition
cmodelContinued.py:104
lsst::meas::modelfit.cmodel.cmodelContinued.CModelSingleFrameConfig
Definition
cmodelContinued.py:39
lsst::meas::modelfit.cmodel.cmodelContinued.CModelSingleFrameConfig.setDefaults
setDefaults(self)
Definition
cmodelContinued.py:41
lsst::meas::modelfit.cmodel.cmodelContinued.CModelSingleFramePlugin
Definition
cmodelContinued.py:47
lsst::meas::modelfit.cmodel.cmodelContinued.CModelSingleFramePlugin.getExecutionOrder
getExecutionOrder()
Definition
cmodelContinued.py:56
lsst::meas::modelfit.cmodel.cmodelContinued.CModelSingleFramePlugin.algorithm
algorithm
Definition
cmodelContinued.py:61
lsst::meas::modelfit.cmodel.cmodelContinued.CModelSingleFramePlugin.measure
measure(self, measRecord, exposure)
Definition
cmodelContinued.py:63
lsst::meas::modelfit.cmodel.cmodelContinued.CModelSingleFramePlugin.__init__
__init__(self, config, name, schema, metadata)
Definition
cmodelContinued.py:59
lsst::meas::modelfit.cmodel.cmodelContinued.CModelSingleFramePlugin.fail
fail(self, measRecord, error=None)
Definition
cmodelContinued.py:66
lsst::meas::base
lsst::pex::config
Generated on
for lsst.meas.modelfit by
1.17.0