@@ -143,14 +143,26 @@ def __init__(self, **kwargs):
143143 "template_value" , "F" ,
144144 "Median of template at location." ,
145145 units = "nJy" )
146+ self .schema .addField (
147+ "template_variance" , "F" ,
148+ "Median of template variance at location." ,
149+ units = "nJy^2" )
146150 self .schema .addField (
147151 "science_value" , "F" ,
148152 "Median of science at location." ,
149153 units = "nJy" )
154+ self .schema .addField (
155+ "science_variance" , "F" ,
156+ "Median of science variance at location." ,
157+ units = "nJy^2" )
150158 self .schema .addField (
151159 "diffim_value" , "F" ,
152160 "Median of diffim at location." ,
153161 units = "nJy" )
162+ self .schema .addField (
163+ "diffim_variance" , "F" ,
164+ "Median of diffim variance at location." ,
165+ units = "nJy^2" )
154166 self .schema .addField (
155167 "science_psfSize" , "F" ,
156168 "Width of the science image PSF at location." ,
@@ -231,8 +243,8 @@ def run(self, science, template, difference, diaSources, psfMatchingKernel):
231243 self ._evaluateLocalMetric (src , science , template , difference , diaSources ,
232244 metricsMaskPlanes = metricsMaskPlanes ,
233245 psfMatchingKernel = psfMatchingKernel )
234-
235- return pipeBase .Struct (spatiallySampledMetrics = spatiallySampledMetrics . asAstropy () )
246+ spatiallySampledMetrics = spatiallySampledMetrics . copy ( deep = True ). asAstropy ()
247+ return pipeBase .Struct (spatiallySampledMetrics = spatiallySampledMetrics )
236248
237249 def _evaluateLocalMetric (self , src , science , template , difference , diaSources ,
238250 metricsMaskPlanes , psfMatchingKernel ):
@@ -283,13 +295,19 @@ def _evaluateLocalMetric(self, src, science, template, difference, diaSources,
283295 src .set ('dipole_separation' , meanDipoleSeparation )
284296
285297 templateVal = np .median (template [bbox ].image .array )
298+ templateVar = np .median (template [bbox ].variance .array )
286299 scienceVal = np .median (science [bbox ].image .array )
300+ scienceVar = np .median (science [bbox ].variance .array )
287301 diffimVal = np .median (difference [bbox ].image .array )
302+ diffimVar = np .median (difference [bbox ].variance .array )
288303 src .set ('source_density' , sourceDensity )
289304 src .set ('dipole_density' , dipoleDensity )
290305 src .set ('template_value' , templateVal )
306+ src .set ('template_variance' , templateVar )
291307 src .set ('science_value' , scienceVal )
308+ src .set ('science_variance' , scienceVar )
292309 src .set ('diffim_value' , diffimVal )
310+ src .set ('diffim_variance' , diffimVar )
293311 for maskPlane in metricsMaskPlanes :
294312 src .set ("%s_mask_fraction" % maskPlane .lower (),
295313 evaluateMaskFraction (difference .mask [bbox ], maskPlane )
0 commit comments