Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions python/lsst/ip/diffim/computeSpatiallySampledMetrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,14 +143,26 @@ def __init__(self, **kwargs):
"template_value", "F",
"Median of template at location.",
units="nJy")
self.schema.addField(
"template_variance", "F",
"Median of template variance at location.",
units="nJy^2")
self.schema.addField(
"science_value", "F",
"Median of science at location.",
units="nJy")
self.schema.addField(
"science_variance", "F",
"Median of science variance at location.",
units="nJy^2")
self.schema.addField(
"diffim_value", "F",
"Median of diffim at location.",
units="nJy")
self.schema.addField(
"diffim_variance", "F",
"Median of diffim variance at location.",
units="nJy^2")
self.schema.addField(
"science_psfSize", "F",
"Width of the science image PSF at location.",
Expand Down Expand Up @@ -231,8 +243,8 @@ def run(self, science, template, difference, diaSources, psfMatchingKernel):
self._evaluateLocalMetric(src, science, template, difference, diaSources,
metricsMaskPlanes=metricsMaskPlanes,
psfMatchingKernel=psfMatchingKernel)

return pipeBase.Struct(spatiallySampledMetrics=spatiallySampledMetrics.asAstropy())
spatiallySampledMetrics = spatiallySampledMetrics.copy(deep=True).asAstropy()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is the additional copy necessary?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without the copy, it fails with a "memory is not contiguous" error on the .asAstropy() when # sources is not 100.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aha! So this is the part that fixes that bug. Thanks!

return pipeBase.Struct(spatiallySampledMetrics=spatiallySampledMetrics)

def _evaluateLocalMetric(self, src, science, template, difference, diaSources,
metricsMaskPlanes, psfMatchingKernel):
Expand Down Expand Up @@ -283,13 +295,19 @@ def _evaluateLocalMetric(self, src, science, template, difference, diaSources,
src.set('dipole_separation', meanDipoleSeparation)

templateVal = np.median(template[bbox].image.array)
templateVar = np.median(template[bbox].variance.array)
scienceVal = np.median(science[bbox].image.array)
scienceVar = np.median(science[bbox].variance.array)
diffimVal = np.median(difference[bbox].image.array)
diffimVar = np.median(difference[bbox].variance.array)
src.set('source_density', sourceDensity)
src.set('dipole_density', dipoleDensity)
src.set('template_value', templateVal)
src.set('template_variance', templateVar)
src.set('science_value', scienceVal)
src.set('science_variance', scienceVar)
src.set('diffim_value', diffimVal)
src.set('diffim_variance', diffimVar)
for maskPlane in metricsMaskPlanes:
src.set("%s_mask_fraction"%maskPlane.lower(),
evaluateMaskFraction(difference.mask[bbox], maskPlane)
Expand Down
Loading