From 799e9c11396faab7be88dd20152df91730341084 Mon Sep 17 00:00:00 2001 From: Sophie Reed Date: Wed, 26 Jul 2023 14:58:20 -0700 Subject: [PATCH] Update sky plots to show the patch outlines as the default --- python/lsst/analysis/tools/actions/plot/skyPlot.py | 11 ++++++++--- .../analysis/tools/atools/astrometricRepeatability.py | 1 + .../analysis/tools/atools/astrometryWithReference.py | 2 ++ python/lsst/analysis/tools/atools/magDiff.py | 2 ++ python/lsst/analysis/tools/atools/photometry.py | 3 +++ python/lsst/analysis/tools/atools/simpleDiaPlot.py | 1 + python/lsst/analysis/tools/atools/skyObject.py | 4 +++- 7 files changed, 20 insertions(+), 4 deletions(-) diff --git a/python/lsst/analysis/tools/actions/plot/skyPlot.py b/python/lsst/analysis/tools/actions/plot/skyPlot.py index 03a95d22e..39942ff33 100644 --- a/python/lsst/analysis/tools/actions/plot/skyPlot.py +++ b/python/lsst/analysis/tools/actions/plot/skyPlot.py @@ -29,12 +29,13 @@ import matplotlib.pyplot as plt import numpy as np from lsst.pex.config import Field, ListField +from lsst.skymap import BaseSkyMap from matplotlib.figure import Figure from matplotlib.patches import Rectangle from ...interfaces import KeyedData, KeyedDataSchema, PlotAction, Scalar, Vector from ...statistics import nansigmaMad -from .plotUtils import addPlotInfo, mkColormap, plotProjectionWithBinning, sortAllArrays +from .plotUtils import addPlotInfo, generateSummaryStats, mkColormap, plotProjectionWithBinning, sortAllArrays class SkyPlot(PlotAction): @@ -92,6 +93,9 @@ def getInputSchema(self, **kwargs) -> KeyedDataSchema: base.append(("z", Vector)) base.append(("statMask", Vector)) + if self.plotOutlines: + base.append(("patch", Vector)) + return base def __call__(self, data: KeyedData, **kwargs) -> Mapping[str, Figure] | Figure: @@ -136,6 +140,7 @@ def statsAndText(self, arr, mask=None): def makePlot( self, data: KeyedData, + skymap: BaseSkyMap, plotInfo: Optional[Mapping[str, str]] = None, sumStats: Optional[Mapping] = None, **kwargs, @@ -204,8 +209,8 @@ def makePlot( fig = plt.figure(dpi=300) ax = fig.add_subplot(111) - if sumStats is None: - sumStats = {} + if self.plotOutlines: + sumStats = generateSummaryStats(data, skymap, plotInfo) if plotInfo is None: plotInfo = {} diff --git a/python/lsst/analysis/tools/atools/astrometricRepeatability.py b/python/lsst/analysis/tools/atools/astrometricRepeatability.py index 6acbcfc10..3377aa392 100644 --- a/python/lsst/analysis/tools/atools/astrometricRepeatability.py +++ b/python/lsst/analysis/tools/atools/astrometricRepeatability.py @@ -109,6 +109,7 @@ def setDefaults(self): self.process.buildActions.residual.buildAction.buildAction = RAcosDec() self.process.buildActions.x = LoadVector(vectorKey="coord_ra") self.process.buildActions.y = LoadVector(vectorKey="coord_dec") + self.process.buildActions.patch = LoadVector(vectorKey="patch") self.produce = SkyPlot() diff --git a/python/lsst/analysis/tools/atools/astrometryWithReference.py b/python/lsst/analysis/tools/atools/astrometryWithReference.py index 191f1ba34..2bddb72ea 100644 --- a/python/lsst/analysis/tools/atools/astrometryWithReference.py +++ b/python/lsst/analysis/tools/atools/astrometryWithReference.py @@ -165,6 +165,8 @@ def setDefaults(self, coordinate): self.process.buildActions.xStars.vectorKey = "coord_ra_target" self.process.buildActions.yStars = LoadVector() self.process.buildActions.yStars.vectorKey = "coord_dec_target" + self.process.buildActions.patch = LoadVector() + self.process.buildActions.patch.vectorKey = "patch" self.produce = SkyPlot() self.produce.plotTypes = ["stars"] diff --git a/python/lsst/analysis/tools/atools/magDiff.py b/python/lsst/analysis/tools/atools/magDiff.py index 763c34814..44f7a566f 100644 --- a/python/lsst/analysis/tools/atools/magDiff.py +++ b/python/lsst/analysis/tools/atools/magDiff.py @@ -52,6 +52,8 @@ def setDefaults(self): self.process.buildActions.xGalaxies.vectorKey = "coord_ra" self.process.buildActions.yGalaxies = LoadVector() self.process.buildActions.yGalaxies.vectorKey = "coord_dec" + self.process.buildActions.patch = LoadVector() + self.process.buildActions.patch.vectorKey = "patch" self.process.buildActions.galaxyStatMask = SnSelector() self.process.buildActions.galaxyStatMask.fluxType = "{band}_psfFlux" diff --git a/python/lsst/analysis/tools/atools/photometry.py b/python/lsst/analysis/tools/atools/photometry.py index 03b569311..22e0fdb07 100644 --- a/python/lsst/analysis/tools/atools/photometry.py +++ b/python/lsst/analysis/tools/atools/photometry.py @@ -56,6 +56,9 @@ def setDefaults(self): self.process.buildActions.xStars.vectorKey = "coord_ra" self.process.buildActions.yStars = LoadVector() self.process.buildActions.yStars.vectorKey = "coord_dec" + self.process.buildActions.patch = LoadVector() + self.process.buildActions.patch.vectorKey = "patch" + self.process.buildActions.starStatMask = SnSelector() self.process.buildActions.starStatMask.fluxType = "{band}_psfFlux" diff --git a/python/lsst/analysis/tools/atools/simpleDiaPlot.py b/python/lsst/analysis/tools/atools/simpleDiaPlot.py index b8db0d5c6..1f3dc0546 100644 --- a/python/lsst/analysis/tools/atools/simpleDiaPlot.py +++ b/python/lsst/analysis/tools/atools/simpleDiaPlot.py @@ -36,6 +36,7 @@ def setDefaults(self): self.process.buildActions.ras.vectorKey = "ra" self.process.buildActions.decs = LoadVector() self.process.buildActions.decs.vectorKey = "decl" + # TODO: update column name to 'dec' once column names are standardized, # i.e., RFC-863 diff --git a/python/lsst/analysis/tools/atools/skyObject.py b/python/lsst/analysis/tools/atools/skyObject.py index 2d5e0f7d2..4781ed039 100644 --- a/python/lsst/analysis/tools/atools/skyObject.py +++ b/python/lsst/analysis/tools/atools/skyObject.py @@ -44,6 +44,8 @@ def setDefaults(self): self.process.buildActions.statMask = SnSelector() self.process.buildActions.statMask.threshold = -1e12 self.process.buildActions.statMask.fluxType = "{band}_psfFlux" + self.process.buildActions.patch = LoadVector() + self.process.buildActions.patch.vectorKey = "patch" self.produce.plot = SkyPlot() self.produce.plot.plotTypes = ["any"] @@ -51,7 +53,7 @@ def setDefaults(self): self.produce.plot.xAxisLabel = "R.A. (degrees)" self.produce.plot.yAxisLabel = "Dec. (degrees)" self.produce.plot.zAxisLabel = "Sky Object ap09Flux (nJy)" - self.produce.plot.plotOutlines = False + self.produce.plot.plotOutlines = True self.produce.plot.fixAroundZero = True