Skip to content

Commit 204d9c0

Browse files
committed
Introduce a new summary value for normalized sky background range
1 parent cd58aa4 commit 204d9c0

File tree

1 file changed

+5
-48
lines changed

1 file changed

+5
-48
lines changed

python/lsst/pipe/tasks/computeExposureSummaryStats.py

Lines changed: 5 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -535,63 +535,20 @@ def update_background_stats(self, summary, background):
535535
as well.
536536
"""
537537
if background is not None:
538-
# bgStats = [bg[0].getStatsImage().getImage().array for bg in background] # Main
539-
540538
bgStats = []
541-
bgStatsFull = []
542-
statsImageFs = []
543-
fullImageFs = []
544539
for bg in background:
545-
# Binned image.
546540
statsImageF = bg[0].getStatsImage().getImage()
547-
statsImageFs.append(statsImageF)
548541
bgArray = statsImageF.array
549542
bgArray[~np.isfinite(bgArray)] = np.nan
550543
bgStats.append(bgArray)
551-
# Full image.
552-
fullImageF = bg[0].getImageF()
553-
fullImageFs.append(fullImageF)
554-
bgArrayFull = fullImageF.array
555-
bgArrayFull[~np.isfinite(bgArrayFull)] = np.nan
556-
bgStatsFull.append(bgArrayFull)
557-
558-
# summary.skyBg = float(sum(np.median(bg[np.isfinite(bg)]) for bg in bgStats)) # Main
559544
summary.skyBg = float(sum(np.nanmedian(bg) for bg in bgStats))
560-
summary.skyBgFull = float(sum(np.median(bg[np.isfinite(bg)]) for bg in bgStatsFull))
561-
print("Background stats over all 4 elements in the BackgroundList:\n"+"-"*80)
562-
print(f"skyBg: {summary.skyBg}, skyBgFull: {summary.skyBgFull}")
563-
print("\nIndividual background stats from each element in the BackgroundList:\n"+"-"*80)
564-
skyBgList = [float(np.nanmedian(bg)) for bg in bgStats]
565-
skyBgListFull = [float(np.nanmedian(bg)) for bg in bgStatsFull]
566-
nan_range = lambda x: np.nanmax(x) - np.nanmin(x)
567-
skyMaxMinDiffList = [float(nan_range(bg)) for bg in bgStats]
568-
skyMaxMinDiffListFull = [float(nan_range(bg)) for bg in bgStatsFull]
569-
print(f"skyBgList: {skyBgList}\nskyBgListFull: {skyBgListFull}")
570-
print(f"skyMaxMinDiffList: {skyMaxMinDiffList}\nskyMaxMinDiffListFull: {skyMaxMinDiffListFull}")
571-
572-
# Visualization of the background.
573-
from tau import aimage # Installed locally!
574-
from matplotlib import pyplot as plt
575-
fig, ax = plt.subplots(2, 2, figsize=(8, 8), dpi=200)
576-
pc = 100
577-
cmap = "viridis"
578-
579-
# Show stats images.
580-
_ = aimage(statsImageFs[0], pc=pc, fig=fig, ax=ax[0, 0], title="statsImage[0]", title_loc="center", cmap=cmap)
581-
_ = aimage(statsImageFs[1], pc=pc, fig=fig, ax=ax[0, 1], title="statsImage[1]", title_loc="center", cmap=cmap)
582-
_ = aimage(statsImageFs[2], pc=pc, fig=fig, ax=ax[1, 0], title="statsImage[2]", title_loc="center", cmap=cmap)
583-
_ = aimage(statsImageFs[3], pc=pc, fig=fig, ax=ax[1, 1], title="statsImage[3]", title_loc="center", cmap=cmap)
584-
fig.savefig("background_statsImages.png", dpi=200, bbox_inches="tight")
585-
586-
# Same for full background images.
587-
fig, ax = plt.subplots(2, 2, figsize=(8, 8), dpi=200)
588-
_ = aimage(fullImageFs[0], pc=pc, fig=fig, ax=ax[0, 0], title="fullImage[0]", title_loc="center", cmap=cmap)
589-
_ = aimage(fullImageFs[1], pc=pc, fig=fig, ax=ax[0, 1], title="fullImage[1]", title_loc="center", cmap=cmap)
590-
_ = aimage(fullImageFs[2], pc=pc, fig=fig, ax=ax[1, 0], title="fullImage[2]", title_loc="center", cmap=cmap)
591-
_ = aimage(fullImageFs[3], pc=pc, fig=fig, ax=ax[1, 1], title="fullImage[3]", title_loc="center", cmap=cmap)
592-
fig.savefig("background_fullImages.png", dpi=200, bbox_inches="tight")
545+
skyBgSumImage = np.sum(np.array(bgStats), axis=0)
546+
summary.skyBgNormRange = float(
547+
(np.nanmax(skyBgSumImage) - np.nanmin(skyBgSumImage)) / np.nanmedian(skyBgSumImage)
548+
)
593549
else:
594550
summary.skyBg = float("nan")
551+
summary.skyBgNormRange = float("nan")
595552

596553
def update_masked_image_stats(self, summary, masked_image):
597554
"""Compute summary-statistic fields that depend on the masked image

0 commit comments

Comments
 (0)