LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+bd2ed33bd6,g1470d8bcf6+c6d6eb38e2,g14a832a312+9d12ad093c,g2079a07aa2+86d27d4dc4,g2305ad1205+91a32aca49,g295015adf3+88246b6574,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+c34e8be1fa,g487adcacf7+85dcfbcc36,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ea1711114f,g5a732f18d5+53520f316c,g64a986408d+bd2ed33bd6,g858d7b2824+bd2ed33bd6,g8a8a8dda67+585e252eca,g99cad8db69+016a06b37a,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+ef4e3a5875,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+b6d7b42999,gc120e1dc64+f745648b3a,gc28159a63d+0e5473021a,gcf0d15dbbd+c34e8be1fa,gdaeeff99f8+f9a426f77a,ge6526c86ff+508d0e0a30,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf18bd8381d+8d59551888,gf1cff7945b+bd2ed33bd6,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
Classes | Functions
lsst.pipe.tasks.coaddBase Namespace Reference

Classes

class  CoaddBaseConfig
 
class  CoaddBaseTask
 

Functions

 makeSkyInfo (skyMap, tractId, patchId)
 
 scaleVariance (maskedImage, maskPlanes, log=None)
 
 reorderAndPadList (inputList, inputKeys, outputKeys, padWith=None)
 
 subBBoxIter (bbox, subregionSize)
 

Function Documentation

◆ makeSkyInfo()

lsst.pipe.tasks.coaddBase.makeSkyInfo ( skyMap,
tractId,
patchId )
Constructs SkyInfo used by coaddition tasks for multiple
patchId formats.

Parameters
----------
skyMap : `lsst.skyMap.SkyMap`
    Sky map.
tractId : `int`
    The ID of the tract.
patchId : `str` or `int` or `tuple` of `int`
    Either Gen2-style comma delimited string (e.g. '4,5'),
    tuple of integers (e.g (4, 5), Gen3-style integer.

Returns
-------
makeSkyInfo : `lsst.pipe.base.Struct`
    pipe_base Struct with attributes:

    ``skyMap``
        Sky map (`lsst.skyMap.SkyMap`).
    ``tractInfo``
        Information for chosen tract of sky map (`lsst.skyMap.TractInfo`).
    ``patchInfo``
        Information about chosen patch of tract (`lsst.skyMap.PatchInfo`).
    ``wcs``
        WCS of tract (`lsst.afw.image.SkyWcs`).
    ``bbox``
        Outer bbox of patch, as an geom Box2I (`lsst.afw.geom.Box2I`).

Definition at line 104 of file coaddBase.py.

104def makeSkyInfo(skyMap, tractId, patchId):
105 """Constructs SkyInfo used by coaddition tasks for multiple
106 patchId formats.
107
108 Parameters
109 ----------
110 skyMap : `lsst.skyMap.SkyMap`
111 Sky map.
112 tractId : `int`
113 The ID of the tract.
114 patchId : `str` or `int` or `tuple` of `int`
115 Either Gen2-style comma delimited string (e.g. '4,5'),
116 tuple of integers (e.g (4, 5), Gen3-style integer.
117
118 Returns
119 -------
120 makeSkyInfo : `lsst.pipe.base.Struct`
121 pipe_base Struct with attributes:
122
123 ``skyMap``
124 Sky map (`lsst.skyMap.SkyMap`).
125 ``tractInfo``
126 Information for chosen tract of sky map (`lsst.skyMap.TractInfo`).
127 ``patchInfo``
128 Information about chosen patch of tract (`lsst.skyMap.PatchInfo`).
129 ``wcs``
130 WCS of tract (`lsst.afw.image.SkyWcs`).
131 ``bbox``
132 Outer bbox of patch, as an geom Box2I (`lsst.afw.geom.Box2I`).
133 """
134 tractInfo = skyMap[tractId]
135
136 if isinstance(patchId, str) and ',' in patchId:
137 # patch format is "xIndex,yIndex"
138 patchIndex = tuple(int(i) for i in patchId.split(","))
139 else:
140 patchIndex = patchId
141
142 patchInfo = tractInfo.getPatchInfo(patchIndex)
143
144 return pipeBase.Struct(
145 skyMap=skyMap,
146 tractInfo=tractInfo,
147 patchInfo=patchInfo,
148 wcs=tractInfo.getWcs(),
149 bbox=patchInfo.getOuterBBox(),
150 )
151
152

◆ reorderAndPadList()

lsst.pipe.tasks.coaddBase.reorderAndPadList ( inputList,
inputKeys,
outputKeys,
padWith = None )
Match the order of one list to another, padding if necessary

Parameters
----------
inputList : `list`
    List to be reordered and padded. Elements can be any type.
inputKeys :  `iterable`
    Iterable of values to be compared with outputKeys. Length must match `inputList`.
outputKeys : `iterable`
    Iterable of values to be compared with inputKeys.
padWith : `Unknown`
    Any value to be inserted where inputKey not in outputKeys.

Returns
-------
outputList : `list`
    Copy of inputList reordered per outputKeys and padded with `padWith`
    so that the length matches length of outputKeys.

Definition at line 187 of file coaddBase.py.

187def reorderAndPadList(inputList, inputKeys, outputKeys, padWith=None):
188 """Match the order of one list to another, padding if necessary
189
190 Parameters
191 ----------
192 inputList : `list`
193 List to be reordered and padded. Elements can be any type.
194 inputKeys : `iterable`
195 Iterable of values to be compared with outputKeys. Length must match `inputList`.
196 outputKeys : `iterable`
197 Iterable of values to be compared with inputKeys.
198 padWith : `Unknown`
199 Any value to be inserted where inputKey not in outputKeys.
200
201 Returns
202 -------
203 outputList : `list`
204 Copy of inputList reordered per outputKeys and padded with `padWith`
205 so that the length matches length of outputKeys.
206 """
207 outputList = []
208 for d in outputKeys:
209 if d in inputKeys:
210 outputList.append(inputList[inputKeys.index(d)])
211 else:
212 outputList.append(padWith)
213 return outputList
214
215

◆ scaleVariance()

lsst.pipe.tasks.coaddBase.scaleVariance ( maskedImage,
maskPlanes,
log = None )
Scale the variance in a maskedImage

This is deprecated. Use the ScaleVarianceTask instead.

Parameters
----------
maskedImage : `lsst.afw.image.MaskedImage`
    MaskedImage to operate on; variance will be scaled.
maskPlanes : `list`
    List of mask planes for pixels to reject.
log : `Unknown`
    Log for reporting the renormalization factor; or None.

Returns
-------
task.run : `Unknown`
    Renormalization factor.

Notes
-----
The variance plane in a convolved or warped image (or a coadd derived
from warped images) does not accurately reflect the noise properties of
the image because variance has been lost to covariance. This function
attempts to correct for this by scaling the variance plane to match
the observed variance in the image. This is not perfect (because we're
not tracking the covariance) but it's simple and is often good enough.

Definition at line 153 of file coaddBase.py.

153def scaleVariance(maskedImage, maskPlanes, log=None):
154 """Scale the variance in a maskedImage
155
156 This is deprecated. Use the ScaleVarianceTask instead.
157
158 Parameters
159 ----------
160 maskedImage : `lsst.afw.image.MaskedImage`
161 MaskedImage to operate on; variance will be scaled.
162 maskPlanes : `list`
163 List of mask planes for pixels to reject.
164 log : `Unknown`
165 Log for reporting the renormalization factor; or None.
166
167 Returns
168 -------
169 task.run : `Unknown`
170 Renormalization factor.
171
172 Notes
173 -----
174 The variance plane in a convolved or warped image (or a coadd derived
175 from warped images) does not accurately reflect the noise properties of
176 the image because variance has been lost to covariance. This function
177 attempts to correct for this by scaling the variance plane to match
178 the observed variance in the image. This is not perfect (because we're
179 not tracking the covariance) but it's simple and is often good enough.
180 """
181 config = ScaleVarianceTask.ConfigClass()
182 config.maskPlanes = maskPlanes
183 task = ScaleVarianceTask(config=config, name="scaleVariance", log=log)
184 return task.run(maskedImage)
185
186

◆ subBBoxIter()

lsst.pipe.tasks.coaddBase.subBBoxIter ( bbox,
subregionSize )
Iterate over subregions of a bbox.

Parameters
----------
bbox : `lsst.geom.Box2I`
    Bounding box over which to iterate.
subregionSize : `lsst.geom.Extent2I`
    Size of sub-bboxes.

Yields
------
subBBox : `lsst.geom.Box2I`
    Next sub-bounding box of size ``subregionSize`` or smaller; each ``subBBox``
    is contained within ``bbox``, so it may be smaller than ``subregionSize`` at
    the edges of ``bbox``, but it will never be empty.

Raises
------
RuntimeError
    Raised if any of the following occur:
    - The given bbox is empty.
    - The subregionSize is 0.

Definition at line 216 of file coaddBase.py.

216def subBBoxIter(bbox, subregionSize):
217 """Iterate over subregions of a bbox.
218
219 Parameters
220 ----------
221 bbox : `lsst.geom.Box2I`
222 Bounding box over which to iterate.
223 subregionSize : `lsst.geom.Extent2I`
224 Size of sub-bboxes.
225
226 Yields
227 ------
228 subBBox : `lsst.geom.Box2I`
229 Next sub-bounding box of size ``subregionSize`` or smaller; each ``subBBox``
230 is contained within ``bbox``, so it may be smaller than ``subregionSize`` at
231 the edges of ``bbox``, but it will never be empty.
232
233 Raises
234 ------
235 RuntimeError
236 Raised if any of the following occur:
237 - The given bbox is empty.
238 - The subregionSize is 0.
239 """
240 if bbox.isEmpty():
241 raise RuntimeError("bbox %s is empty" % (bbox,))
242 if subregionSize[0] < 1 or subregionSize[1] < 1:
243 raise RuntimeError("subregionSize %s must be nonzero" % (subregionSize,))
244
245 for rowShift in range(0, bbox.getHeight(), subregionSize[1]):
246 for colShift in range(0, bbox.getWidth(), subregionSize[0]):
247 subBBox = geom.Box2I(bbox.getMin() + geom.Extent2I(colShift, rowShift), subregionSize)
248 subBBox.clip(bbox)
249 if subBBox.isEmpty():
250 raise RuntimeError("Bug: empty bbox! bbox=%s, subregionSize=%s, "
251 "colShift=%s, rowShift=%s" %
252 (bbox, subregionSize, colShift, rowShift))
253 yield subBBox
An integer coordinate rectangle.
Definition Box.h:55