Skip to content

Commit

Permalink
Merge pull request #293 from lsst-ts/tickets/DM-47133
Browse files Browse the repository at this point in the history
tickets/DM-47133: Fix DonutStamps so CalcZernikesTask runs when running WEP interactively
  • Loading branch information
jbkalmbach authored Nov 20, 2024
2 parents ca7bba6 + 485021b commit c184c45
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 21 deletions.
8 changes: 8 additions & 0 deletions doc/versionHistory.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@
Version History
##################

.. _lsst.ts.wep-13.0.2:

-------------
13.0.2
-------------

* Use _refresh_metadata in cutOutStamps function so DonutStamps have correct set of metadata when running cutOutDonuts tasks interactively.

.. _lsst.ts.wep-13.0.1:

-------------
Expand Down
30 changes: 9 additions & 21 deletions python/lsst/ts/wep/task/cutOutDonutsBase.py
Original file line number Diff line number Diff line change
Expand Up @@ -690,20 +690,10 @@ def cutOutStamps(self, exposure, donutCatalog, defocalType, cameraName):

finalStamps.append(donutStamp)

# Calculate the difference between original centroid and final centroid
# Add additional information into metadata
catalogLength = len(donutCatalog)
stampsMetadata = PropertyList()
stampsMetadata["RA_DEG"] = np.degrees(donutCatalog["coord_ra"].value)
stampsMetadata["DEC_DEG"] = np.degrees(donutCatalog["coord_dec"].value)
stampsMetadata["DET_NAME"] = np.array([detectorName] * catalogLength, dtype=str)
stampsMetadata["CAM_NAME"] = np.array([cameraName] * catalogLength, dtype=str)
stampsMetadata["VISIT"] = np.array([visitId] * catalogLength, dtype=int)
stampsMetadata["DFC_TYPE"] = np.array(
[defocalType.value] * catalogLength, dtype=str
)
stampsMetadata["DFC_DIST"] = np.array(
[instrument.defocalOffset * 1e3] * catalogLength
)
# Save the donut flux as magnitude
if len(donutCatalog["source_flux"]) > 0:
stampsMetadata["MAG"] = (
Expand All @@ -714,21 +704,12 @@ def cutOutStamps(self, exposure, donutCatalog, defocalType, cameraName):
# Save the original centroid values
stampsMetadata["CENT_X0"] = np.array(donutCatalog["centroid_x"].value)
stampsMetadata["CENT_Y0"] = np.array(donutCatalog["centroid_y"].value)
# Save the centroid values
stampsMetadata["CENT_X"] = donutCatalog["finalDonutX"]
stampsMetadata["CENT_Y"] = donutCatalog["finalDonutY"]
# Save the centroid shift
stampsMetadata["CENT_DX"] = donutCatalog["xShift"]
stampsMetadata["CENT_DY"] = donutCatalog["yShift"]
stampsMetadata["CENT_DR"] = np.sqrt(
donutCatalog["xShift"] ** 2 + donutCatalog["yShift"] ** 2
)
# Save the centroid positions of blended sources
stampsMetadata["BLEND_CX"] = np.array(finalBlendXList, dtype=str)
stampsMetadata["BLEND_CY"] = np.array(finalBlendYList, dtype=str)
# Save the corner values
stampsMetadata["X0"] = donutCatalog["xCorner"]
stampsMetadata["Y0"] = donutCatalog["yCorner"]
# Save visit info
stampsMetadata["BORESIGHT_ROT_ANGLE_RAD"] = (
donutCatalog.meta["visit_info"]["boresight_rot_angle"].to(u.rad).value
Expand Down Expand Up @@ -801,4 +782,11 @@ def cutOutStamps(self, exposure, donutCatalog, defocalType, cameraName):
# Save the fraction of bad pixels
stampsMetadata["FRAC_BAD_PIX"] = np.array(fracBadPixels).astype(float)

return DonutStamps(finalStamps, metadata=stampsMetadata, use_archive=True)
finalDonutStamps = DonutStamps(
finalStamps, metadata=stampsMetadata, use_archive=True
)
# Refresh to pull original metadata into stamps
# Necessary when running full pipeline interactively.
finalDonutStamps._refresh_metadata()

return finalDonutStamps
1 change: 1 addition & 0 deletions tests/task/test_cutOutDonutsBase.py
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,7 @@ def testCutOutStampsTaskRunNormal(self):
"BORESIGHT_AZ_RAD",
"BORESIGHT_RA_RAD",
"BORESIGHT_DEC_RAD",
"BANDPASS",
]
self.assertCountEqual(metadata, expectedMetadata)

Expand Down
1 change: 1 addition & 0 deletions tests/task/test_cutOutDonutsScienceSensorTask.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,7 @@ def testTaskRun(self):
"BORESIGHT_AZ_RAD",
"BORESIGHT_RA_RAD",
"BORESIGHT_DEC_RAD",
"BANDPASS",
]
# Test that all expected metadata is included in the butler
self.assertEqual(
Expand Down

0 comments on commit c184c45

Please sign in to comment.