|
LSST Applications g00d0e8bbd7+edbf708997,g03191d30f7+9ce8016dbd,g1955dfad08+0bd186d245,g199a45376c+5137f08352,g1fd858c14a+a888a50aa2,g262e1987ae+45f9aba685,g29ae962dfc+1c7d47a24f,g2cef7863aa+73c82f25e4,g35bb328faa+edbf708997,g3fd5ace14f+eed17d2c67,g47891489e3+6dc8069a4c,g53246c7159+edbf708997,g64539dfbff+c4107e45b5,g67b6fd64d1+6dc8069a4c,g74acd417e5+f452e9c21a,g786e29fd12+af89c03590,g7ae74a0b1c+a25e60b391,g7aefaa3e3d+2025e9ce17,g7cc15d900a+2d158402f9,g87389fa792+a4172ec7da,g89139ef638+6dc8069a4c,g8d4809ba88+c4107e45b5,g8d7436a09f+e96c132b44,g8ea07a8fe4+db21c37724,g98df359435+aae6d409c1,ga2180abaac+edbf708997,gac66b60396+966efe6077,gb632fb1845+88945a90f8,gbaa8f7a6c5+38b34f4976,gbf99507273+edbf708997,gca7fc764a6+6dc8069a4c,gd7ef33dd92+6dc8069a4c,gda68eeecaf+7d1e613a8d,gdab6d2f7ff+f452e9c21a,gdbb4c4dda9+c4107e45b5,ge410e46f29+6dc8069a4c,ge41e95a9f2+c4107e45b5,geaed405ab2+e194be0d2b,w.2025.47
LSST Data Management Base Package
|
Classes | |
| class | SpatiallySampledMetricsConnections |
Variables | |
| science : `lsst.afw.image.ExposureF` | |
| matchedTemplate : `lsst.afw.image.ExposureF` | |
| template : `lsst.afw.image.ExposureF` | |
| difference : `lsst.afw.image.ExposureF` | |
| diaSources : `lsst.afw.table.SourceCatalog` | |
| psfMatchingKernel : `~lsst.afw.math.LinearCombinationKernel` | |
| results : `lsst.pipe.base.Struct` | |
| src : `lsst.afw.table.SourceRecord` | |
| metricsMaskPlanes : `list` of `str` | |
| lsst.ip.diffim.computeSpatiallySampledMetrics.diaSources : `lsst.afw.table.SourceCatalog` |
Definition at line 213 of file computeSpatiallySampledMetrics.py.
| lsst.ip.diffim.computeSpatiallySampledMetrics.difference : `lsst.afw.image.ExposureF` |
Definition at line 211 of file computeSpatiallySampledMetrics.py.
| lsst.ip.diffim.computeSpatiallySampledMetrics.matchedTemplate : `lsst.afw.image.ExposureF` |
Definition at line 205 of file computeSpatiallySampledMetrics.py.
| lsst.ip.diffim.computeSpatiallySampledMetrics.metricsMaskPlanes : `list` of `str` |
Definition at line 262 of file computeSpatiallySampledMetrics.py.
| lsst.ip.diffim.computeSpatiallySampledMetrics.psfMatchingKernel : `~lsst.afw.math.LinearCombinationKernel` |
Definition at line 215 of file computeSpatiallySampledMetrics.py.
| lsst.ip.diffim.computeSpatiallySampledMetrics.results : `lsst.pipe.base.Struct` |
Definition at line 220 of file computeSpatiallySampledMetrics.py.
| lsst.ip.diffim.computeSpatiallySampledMetrics.science : `lsst.afw.image.ExposureF` |
metricsMaskPlanes = lsst.pex.config.ListField(
dtype=str,
doc="List of mask planes to include in metrics",
default=('BAD', 'CLIPPED', 'CR', 'DETECTED', 'DETECTED_NEGATIVE', 'EDGE',
'INEXACT_PSF', 'INJECTED', 'INJECTED_TEMPLATE', 'INTRP', 'NOT_DEBLENDED',
'NO_DATA', 'REJECTED', 'SAT', 'SAT_TEMPLATE', 'SENSOR_EDGE', 'STREAK', 'SUSPECT',
'UNMASKEDNAN',
),
)
metricSources = pexConfig.ConfigurableField(
target=SkyObjectsTask,
doc="Generate QA metric sources",
)
def setDefaults(self):
self.metricSources.avoidMask = ["NO_DATA", "EDGE"]
class SpatiallySampledMetricsTask(lsst.pipe.base.PipelineTask):
ConfigClass = SpatiallySampledMetricsConfig
_DefaultName = "spatiallySampledMetrics"
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.makeSubtask("metricSources")
self.schema = afwTable.SourceTable.makeMinimalSchema()
self.schema.addField(
"x", "F",
"X location of the metric evaluation.",
units="pixel")
self.schema.addField(
"y", "F",
"Y location of the metric evaluation.",
units="pixel")
self.metricSources.skySourceKey = self.schema.addField("sky_source", type="Flag",
doc="Metric evaluation objects.")
self.schema.addField(
"source_density", "F",
"Density of diaSources at location.",
units="count/degree^2")
self.schema.addField(
"dipole_density", "F",
"Density of dipoles at location.",
units="count/degree^2")
self.schema.addField(
"dipole_direction", "F",
"Mean dipole orientation.",
units="radian")
self.schema.addField(
"dipole_separation", "F",
"Mean dipole separation.",
units="pixel")
self.schema.addField(
"template_value", "F",
"Median of template at location.",
units="nJy")
self.schema.addField(
"science_value", "F",
"Median of science at location.",
units="nJy")
self.schema.addField(
"diffim_value", "F",
"Median of diffim at location.",
units="nJy")
self.schema.addField(
"science_psfSize", "F",
"Width of the science image PSF at location.",
units="pixel")
self.schema.addField(
"template_psfSize", "F",
"Width of the template image PSF at location.",
units="pixel")
for maskPlane in self.config.metricsMaskPlanes:
self.schema.addField(
"%s_mask_fraction"%maskPlane.lower(), "F",
"Fraction of pixels with %s mask"%maskPlane
)
self.schema.addField(
"psfMatchingKernel_sum", "F",
"PSF matching kernel sum at location.")
self.schema.addField(
"psfMatchingKernel_dx", "F",
"PSF matching kernel centroid offset in x at location.",
units="pixel")
self.schema.addField(
"psfMatchingKernel_dy", "F",
"PSF matching kernel centroid offset in y at location.",
units="pixel")
self.schema.addField(
"psfMatchingKernel_length", "F",
"PSF matching kernel centroid offset module.",
units="arcsecond")
self.schema.addField(
"psfMatchingKernel_position_angle", "F",
"PSF matching kernel centroid offset position angle.",
units="radian")
self.schema.addField(
"psfMatchingKernel_direction", "F",
"PSF matching kernel centroid offset direction in detector plane.",
units="radian")
@timeMethod
def run(self, science, matchedTemplate, template, difference, diaSources, psfMatchingKernel):
Definition at line 203 of file computeSpatiallySampledMetrics.py.
| lsst.ip.diffim.computeSpatiallySampledMetrics.src : `lsst.afw.table.SourceRecord` |
idFactory = lsst.meas.base.IdGenerator().make_table_id_factory()
spatiallySampledMetrics = afwTable.SourceCatalog(self.schema)
spatiallySampledMetrics.getTable().setIdFactory(idFactory)
self.metricSources.run(mask=science.mask, seed=difference.info.id, catalog=spatiallySampledMetrics)
metricsMaskPlanes = []
for maskPlane in self.config.metricsMaskPlanes:
try:
metricsMaskPlanes.append(maskPlane)
except InvalidParameterError:
self.log.info("Unable to calculate metrics for mask plane %s: not in image"%maskPlane)
for src in spatiallySampledMetrics:
self._evaluateLocalMetric(src, science, matchedTemplate, template, difference, diaSources,
metricsMaskPlanes=metricsMaskPlanes,
psfMatchingKernel=psfMatchingKernel)
return pipeBase.Struct(spatiallySampledMetrics=spatiallySampledMetrics.asAstropy())
def _evaluateLocalMetric(self, src, science, matchedTemplate, template, difference, diaSources,
metricsMaskPlanes, psfMatchingKernel):
Definition at line 252 of file computeSpatiallySampledMetrics.py.
| lsst.ip.diffim.computeSpatiallySampledMetrics.template : `lsst.afw.image.ExposureF` |
Definition at line 208 of file computeSpatiallySampledMetrics.py.