Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DM-44889: Investigate feasibility of resurrecting matchBackgrounds.py background fitting algorithms #956

Draft
wants to merge 11 commits into
base: main
Choose a base branch
from

Conversation

aemerywatkins
Copy link
Contributor

The matchBackgrounds.py script was an initial attempt at matching multiple warped visit-level images to a given reference image. Taking the difference images between the reference and each subsequent image allows for each of these images to be modified to match the background of the reference image. These images may then be stacked (coadded), and a single background estimation made on the combined (and, importantly, deeper) coadd image.

The existing matchBackgroundsTask has not been utilized in some time. This ticket aims to explore the feasibility of resurrecting this code base, with a mind towards testing on HSC in the near-term.

aemerywatkins and others added 11 commits December 16, 2024 11:04
Initial version of this task is written using old architecture, and so
needs updating.  In MatchBackgroundsTask, and its method
selectRefExposure, required parameters were equally outdated: DataId,
DatasetType, and ImageScaler.  All of these now seem consolidated under
lsst.afw.image.Exposure, so separate calls to DataId and DatasetType are
now single calls for Exposure objects.  ImageScaler calls were replaced
in-line with Exposure.getPhotoCalib() calls, to scale all image flux to
the same zeropoint (nJy).

Also, we want to process visit-level images using this, so a
MatchBackgroundsConnections class was created, MatchBackgroundsConfig
was updated to inherit from PipelineTaskConfig (and those connections),
and a rudimentary runQuantum method was added to MatchBackgroundsTask.
Code now runs without complaint through self.matchBackgrounds.
Also added a self._fluxScale method to replace repeat code blocks.
Will decide later if scaling to nJy is the best way to do this.
Code is now functional, in that it accepts images and returns
difference image background models as "psfMatchedWarpBackground_diff"
(name likely to be altered later).  Uses a fit to a blank image for
that corresponding to the reference image.
Difference background models are now formatted properly, to allow
for image creation from the spline parameters.  Also did some
adjustments to documentation for Flake8 formatting.
_defineWarps() now rejects any image with all NaNs along any image
edge, and creates the cost function using a sky-subtracted image.
This sky-subtraction fits a 1st order Chebyshev polynomial to the
masked image background.

Also fixed a bug from LSK refactor by inserting a blank sky model
into the background model list at the chosen reference image index.
Otherwise, changes are clean-up from previous refactoring to restore
functionality, plus a bug fix.  Bug fix was the restoration of two
lines of code in MatchBackgroundsTask.matchBackgrounds() which
produced a difference image to work from.
All images and background models now returned in counts, not nJy.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants