LSST Applications g0da5cf3356+25b44625d0,g17e5ecfddb+50a5ac4092,g1c76d35bf8+585f0f68a2,g295839609d+8ef6456700,g2e2c1a68ba+cc1f6f037e,g38293774b4+62d12e78cb,g3b44f30a73+2891c76795,g48ccf36440+885b902d19,g4b2f1765b6+0c565e8f25,g5320a0a9f6+bd4bf1dc76,g56364267ca+403c24672b,g56b687f8c9+585f0f68a2,g5c4744a4d9+78cd207961,g5ffd174ac0+bd4bf1dc76,g6075d09f38+3075de592a,g667d525e37+cacede5508,g6f3e93b5a3+da81c812ee,g71f27ac40c+cacede5508,g7212e027e3+eb621d73aa,g774830318a+18d2b9fa6c,g7985c39107+62d12e78cb,g79ca90bc5c+fa2cc03294,g881bdbfe6c+cacede5508,g91fc1fa0cf+82a115f028,g961520b1fb+2534687f64,g96f01af41f+f2060f23b6,g9ca82378b8+cacede5508,g9d27549199+78cd207961,gb065e2a02a+ad48cbcda4,gb1df4690d6+585f0f68a2,gb35d6563ee+62d12e78cb,gbc3249ced9+bd4bf1dc76,gbec6a3398f+bd4bf1dc76,gd01420fc67+bd4bf1dc76,gd59336e7c4+c7bb92e648,gf46e8334de+81c9a61069,gfed783d017+bd4bf1dc76,v25.0.1.rc3
LSST Data Management Base Package
Loading...
Searching...
No Matches
Classes | Functions
lsst.pipe.drivers.constructCalibs Namespace Reference

Classes

class  BiasConfig
 
class  BiasTask
 
class  CalibArgumentParser
 
class  CalibCombineConfig
 
class  CalibCombineTask
 
class  CalibConfig
 
class  CalibIdAction
 
class  CalibStatsConfig
 
class  CalibStatsTask
 
class  CalibTask
 Base class for constructing calibs. More...
 
class  CalibTaskRunner
 
class  DarkConfig
 
class  DarkTask
 
class  FlatConfig
 
class  FlatTask
 
class  FringeConfig
 
class  FringeTask
 
class  SkyConfig
 
class  SkyTask
 

Functions

def getSize (dimList)
 
def dictToTuple (dict_, keys)
 Return a tuple of specific values from a dict. More...
 
def getCcdIdListFromExposures (expRefList, level="sensor", ccdKeys=["ccd"])
 Determine a list of CCDs from exposure references. More...
 
def mapToMatrix (pool, func, ccdIdLists, *args, **kwargs)
 

Function Documentation

◆ dictToTuple()

def lsst.pipe.drivers.constructCalibs.dictToTuple (   dict_,
  keys 
)

Return a tuple of specific values from a dict.

This provides a hashable representation of the dict from certain keywords.
This can be useful for creating e.g., a tuple of the values in the DataId
that identify the CCD.

@param dict_  dict to parse
@param keys  keys to extract (order is important)
@return tuple of values

Definition at line 185 of file constructCalibs.py.

185def dictToTuple(dict_, keys):
186 """!Return a tuple of specific values from a dict
187
188 This provides a hashable representation of the dict from certain keywords.
189 This can be useful for creating e.g., a tuple of the values in the DataId
190 that identify the CCD.
191
192 @param dict_ dict to parse
193 @param keys keys to extract (order is important)
194 @return tuple of values
195 """
196 return tuple(dict_[k] for k in keys)
197
198

◆ getCcdIdListFromExposures()

def lsst.pipe.drivers.constructCalibs.getCcdIdListFromExposures (   expRefList,
  level = "sensor",
  ccdKeys = ["ccd"] 
)

Determine a list of CCDs from exposure references.

This essentially inverts the exposure-level references (which
provides a list of CCDs for each exposure), by providing
a dataId list for each CCD.  Consider an input list of exposures
[e1, e2, e3], and each exposure has CCDs c1 and c2.  Then this
function returns:

    {(c1,): [e1c1, e2c1, e3c1], (c2,): [e1c2, e2c2, e3c2]}

This is a dict whose keys are tuples of the identifying values of a
CCD (usually just the CCD number) and the values are lists of dataIds
for that CCD in each exposure.  A missing dataId is given the value
None.

@param expRefList   List of data references for exposures
@param level        Level for the butler to generate CCDs
@param ccdKeys      DataId keywords that identify a CCD
@return dict of data identifier lists for each CCD;
        keys are values of ccdKeys in order

Definition at line 199 of file constructCalibs.py.

199def getCcdIdListFromExposures(expRefList, level="sensor", ccdKeys=["ccd"]):
200 """!Determine a list of CCDs from exposure references
201
202 This essentially inverts the exposure-level references (which
203 provides a list of CCDs for each exposure), by providing
204 a dataId list for each CCD. Consider an input list of exposures
205 [e1, e2, e3], and each exposure has CCDs c1 and c2. Then this
206 function returns:
207
208 {(c1,): [e1c1, e2c1, e3c1], (c2,): [e1c2, e2c2, e3c2]}
209
210 This is a dict whose keys are tuples of the identifying values of a
211 CCD (usually just the CCD number) and the values are lists of dataIds
212 for that CCD in each exposure. A missing dataId is given the value
213 None.
214
215 @param expRefList List of data references for exposures
216 @param level Level for the butler to generate CCDs
217 @param ccdKeys DataId keywords that identify a CCD
218 @return dict of data identifier lists for each CCD;
219 keys are values of ccdKeys in order
220 """
221 expIdList = [[ccdRef.dataId for ccdRef in expRef.subItems(
222 level)] for expRef in expRefList]
223
224 # Determine what additional keys make a CCD from an exposure
225 if len(ccdKeys) != len(set(ccdKeys)):
226 raise RuntimeError("Duplicate keys found in ccdKeys: %s" % ccdKeys)
227 ccdNames = set() # Set of tuples which are values for each of the CCDs in an exposure
228 for ccdIdList in expIdList:
229 for ccdId in ccdIdList:
230 name = dictToTuple(ccdId, ccdKeys)
231 ccdNames.add(name)
232
233 # Turn the list of CCDs for each exposure into a list of exposures for
234 # each CCD
235 ccdLists = {}
236 for n, ccdIdList in enumerate(expIdList):
237 for ccdId in ccdIdList:
238 name = dictToTuple(ccdId, ccdKeys)
239 if name not in ccdLists:
240 ccdLists[name] = []
241 ccdLists[name].append(ccdId)
242
243 for ccd in ccdLists:
244 # Sort the list by the dataId values (ordered by key)
245 ccdLists[ccd] = sorted(ccdLists[ccd], key=lambda dd: dictToTuple(dd, sorted(dd.keys())))
246
247 return ccdLists
248
249
daf::base::PropertySet * set
Definition: fits.cc:927

◆ getSize()

def lsst.pipe.drivers.constructCalibs.getSize (   dimList)
Determine a consistent size, given a list of image sizes

Definition at line 176 of file constructCalibs.py.

176def getSize(dimList):
177 """Determine a consistent size, given a list of image sizes"""
178 dim = set((w, h) for w, h in dimList)
179 dim.discard(None)
180 if len(dim) != 1:
181 raise RuntimeError("Inconsistent dimensions: %s" % dim)
182 return dim.pop()
183
184

◆ mapToMatrix()

def lsst.pipe.drivers.constructCalibs.mapToMatrix (   pool,
  func,
  ccdIdLists,
args,
**  kwargs 
)
Generate a matrix of results using pool.map

The function should have the call signature:
    func(cache, dataId, *args, **kwargs)

We return a dict mapping 'ccd name' to a list of values for
each exposure.

@param pool  Process pool
@param func  Function to call for each dataId
@param ccdIdLists  Dict of data identifier lists for each CCD name
@return matrix of results

Definition at line 250 of file constructCalibs.py.

250def mapToMatrix(pool, func, ccdIdLists, *args, **kwargs):
251 """Generate a matrix of results using pool.map
252
253 The function should have the call signature:
254 func(cache, dataId, *args, **kwargs)
255
256 We return a dict mapping 'ccd name' to a list of values for
257 each exposure.
258
259 @param pool Process pool
260 @param func Function to call for each dataId
261 @param ccdIdLists Dict of data identifier lists for each CCD name
262 @return matrix of results
263 """
264 dataIdList = sum(ccdIdLists.values(), [])
265 resultList = pool.map(func, dataIdList, *args, **kwargs)
266 # Piece everything back together
267 data = dict((ccdName, [None] * len(expList)) for ccdName, expList in ccdIdLists.items())
268 indices = dict(sum([[(tuple(dataId.values()) if dataId is not None else None, (ccdName, expNum))
269 for expNum, dataId in enumerate(expList)]
270 for ccdName, expList in ccdIdLists.items()], []))
271 for dataId, result in zip(dataIdList, resultList):
272 if dataId is None:
273 continue
274 ccdName, expNum = indices[tuple(dataId.values())]
275 data[ccdName][expNum] = result
276 return data
277
278