|
LSST Applications g00d0e8bbd7+8c5ae1fdc5,g013ef56533+603670b062,g083dd6704c+2e189452a7,g199a45376c+0ba108daf9,g1c5cce2383+bc9f6103a4,g1fd858c14a+cd69ed4fc1,g210f2d0738+c4742f2e9e,g262e1987ae+612fa42d85,g29ae962dfc+83d129e820,g2cef7863aa+aef1011c0b,g35bb328faa+8c5ae1fdc5,g3fd5ace14f+5eaa884f2a,g47891489e3+e32160a944,g53246c7159+8c5ae1fdc5,g5b326b94bb+dcc56af22d,g64539dfbff+c4742f2e9e,g67b6fd64d1+e32160a944,g74acd417e5+c122e1277d,g786e29fd12+668abc6043,g87389fa792+8856018cbb,g88cb488625+47d24e4084,g89139ef638+e32160a944,g8d7436a09f+d14b4ff40a,g8ea07a8fe4+b212507b11,g90f42f885a+e1755607f3,g97be763408+34be90ab8c,g98df359435+ec1fa61bf1,ga2180abaac+8c5ae1fdc5,ga9e74d7ce9+43ac651df0,gbf99507273+8c5ae1fdc5,gc2a301910b+c4742f2e9e,gca7fc764a6+e32160a944,gd7ef33dd92+e32160a944,gdab6d2f7ff+c122e1277d,gdb1e2cdc75+1b18322db8,ge410e46f29+e32160a944,ge41e95a9f2+c4742f2e9e,geaed405ab2+0d91c11c6d,w.2025.44
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.