72 def __init__(self, config, name, schema, metadata):
73 CatalogCalculationPlugin.__init__(self, config, name, schema, metadata)
75 doc=
"Set to 1 for extended sources, 0 for point sources.")
76 self.
keyFlag = schema.addField(name +
"_flag", type=
"Flag", doc=
"Set to 1 for any fatal failure.")
79 modelFlux = measRecord.getModelInstFlux()
80 psfFlux = measRecord.getPsfInstFlux()
81 modelFluxFlag = (measRecord.getModelFluxFlag()
82 if measRecord.table.getModelFluxSlot().isValid()
84 psfFluxFlag = (measRecord.getPsfFluxFlag()
85 if measRecord.table.getPsfFluxSlot().isValid()
87 flux1 = self.
config.fluxRatio*modelFlux
88 if self.
config.modelErrFactor != 0:
89 flux1 += self.
config.modelErrFactor*measRecord.getModelInstFluxErr()
91 if not self.
config.psfErrFactor == 0:
92 flux2 += self.
config.psfErrFactor*measRecord.getPsfInstFluxErr()
98 if np.isnan(flux1)
or np.isnan(flux2)
or modelFluxFlag
or psfFluxFlag:
101 measRecord.set(self.
keyProbability, 0.0
if flux1 < flux2
else 1.0)