LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Functions
lsst.meas.base.measurementInvestigationLib Namespace Reference

Functions

def rebuildNoiseReplacer (exposure, measCat)
 
def makeRerunCatalog (schema, oldCatalog, idList, fields=None, resetParents=True, addParents=False)
 

Function Documentation

◆ makeRerunCatalog()

def lsst.meas.base.measurementInvestigationLib.makeRerunCatalog (   schema,
  oldCatalog,
  idList,
  fields = None,
  resetParents = True,
  addParents = False 
)
Create a catalog prepopulated with IDs.

This function is used to generate a `~lsst.afw.table.SourceCatalog`
containing blank records with IDs as specified in the ``idList``
parameter.

This function is primarily used when re-running measurements on a
particular footprint. Specifying IDs in the new measurement catalog which
correspond to IDs in the old catalog makes comparing results much easier.

The ``resetParents`` and ``addParents`` options are needed because
`SingleFrameMeasurementTask.runPlugins` will skip child
objects whose parents are not in the catalog.

Parameters
----------
schema : `lsst.afw.table.Schema`
    Schema used to describe the fields in the resulting catalog.

oldCatalog : `lsst.afw.table.SourceCatalog`
    Catalog containing previous measurements.

idList : iterable of `int`
    Iterable whose values should be numbers corresponding to measurement
    IDs which exist in ``oldCatalog``.

fields : iterable of `str`
    Iterable whose entries should be strings corresponding to schema keys
    that exist in both the old catalog and input schema. Fields listed
    will be copied from the old catalog into the new catalog.

resetParents : `bool`
    If `True`, child objects whose parents are not in the ``idList``
    will have their parents reset to zero.

addParents : `bool`
    If `True`, parents of child objects will be added to ``idList`` if
    they are not already present.

Returns
-------
measCat : `lsst.afw.table.SourceCatalog`
    Catalog prepopulated with entries with the IDs specified.

Definition at line 71 of file measurementInvestigationLib.py.

72  resetParents=True, addParents=False):
73  """Create a catalog prepopulated with IDs.
74 
75  This function is used to generate a `~lsst.afw.table.SourceCatalog`
76  containing blank records with IDs as specified in the ``idList``
77  parameter.
78 
79  This function is primarily used when re-running measurements on a
80  particular footprint. Specifying IDs in the new measurement catalog which
81  correspond to IDs in the old catalog makes comparing results much easier.
82 
83  The ``resetParents`` and ``addParents`` options are needed because
84  `SingleFrameMeasurementTask.runPlugins` will skip child
85  objects whose parents are not in the catalog.
86 
87  Parameters
88  ----------
89  schema : `lsst.afw.table.Schema`
90  Schema used to describe the fields in the resulting catalog.
91 
92  oldCatalog : `lsst.afw.table.SourceCatalog`
93  Catalog containing previous measurements.
94 
95  idList : iterable of `int`
96  Iterable whose values should be numbers corresponding to measurement
97  IDs which exist in ``oldCatalog``.
98 
99  fields : iterable of `str`
100  Iterable whose entries should be strings corresponding to schema keys
101  that exist in both the old catalog and input schema. Fields listed
102  will be copied from the old catalog into the new catalog.
103 
104  resetParents : `bool`
105  If `True`, child objects whose parents are not in the ``idList``
106  will have their parents reset to zero.
107 
108  addParents : `bool`
109  If `True`, parents of child objects will be added to ``idList`` if
110  they are not already present.
111 
112  Returns
113  -------
114  measCat : `lsst.afw.table.SourceCatalog`
115  Catalog prepopulated with entries with the IDs specified.
116  """
117 
118  if not isinstance(schema, Schema):
119  raise RuntimeError("schema must be an instance of "
120  "lsst.afw.table.Schema")
121 
122  if not isinstance(oldCatalog, SourceCatalog):
123  raise RuntimeError("oldCatalog must be an instance of "
124  "lsst.afw.table.SourceCatalogiterable")
125 
126  if fields is None:
127  fields = []
128  if not isinstance(fields, Iterable):
129  raise RuntimeError("fields list must be an iterable with string"
130  "elements")
131  for entry in fields:
132  if entry not in schema:
133  schema.addField(oldCatalog.schema.find(entry).field)
134 
135  if addParents:
136  newIdList = set()
137  for srcId in idList:
138  newIdList.add(srcId)
139  parentId = oldCatalog.find(srcId).getParent()
140  if parentId:
141  newIdList.add(parentId)
142  idList = newIdList
143  idList = sorted(idList)
144 
145  measCat = SourceCatalog(schema)
146  for srcId in idList:
147  oldSrc = oldCatalog.find(srcId)
148  src = measCat.addNew()
149  src.setId(srcId)
150  src.setFootprint(oldSrc.getFootprint())
151  parent = oldSrc.getParent()
152  if resetParents and parent and parent not in idList:
153  parent = 0
154  src.setParent(parent)
155  src.setCoord(oldSrc.getCoord())
156  for entry in fields:
157  src[entry] = oldSrc[entry]
158  return measCat
daf::base::PropertySet * set
Definition: fits.cc:912
SortedCatalogT< SourceRecord > SourceCatalog
Definition: fwd.h:85

◆ rebuildNoiseReplacer()

def lsst.meas.base.measurementInvestigationLib.rebuildNoiseReplacer (   exposure,
  measCat 
)
Recreate the `NoiseReplacer` used in measurement.

Given a measurement catalog and the exposure on which the measurements
were made, reconstruct the `NoiseReplacer` object that was used to mask
out sources during measurement.

Parameters
----------
exposure : `lsst.afw.exposure.Exposure`
    The image on which measurements were made.

measCat : `lsst.afw.table.SourceCatalog`
    Catalog containing the results measurements on each source.

Returns
-------
noiseReplacer : `NoiseReplacer`
    Object used to replace and/or restore sources in the exposure with
    deterministic noise.

Definition at line 29 of file measurementInvestigationLib.py.

29 def rebuildNoiseReplacer(exposure, measCat):
30  """Recreate the `NoiseReplacer` used in measurement.
31 
32  Given a measurement catalog and the exposure on which the measurements
33  were made, reconstruct the `NoiseReplacer` object that was used to mask
34  out sources during measurement.
35 
36  Parameters
37  ----------
38  exposure : `lsst.afw.exposure.Exposure`
39  The image on which measurements were made.
40 
41  measCat : `lsst.afw.table.SourceCatalog`
42  Catalog containing the results measurements on each source.
43 
44  Returns
45  -------
46  noiseReplacer : `NoiseReplacer`
47  Object used to replace and/or restore sources in the exposure with
48  deterministic noise.
49  """
50 
51  algMetadata = measCat.getMetadata()
52  noiseReplacerConf = NoiseReplacerConfig()
53  noiseReplacerConf.noiseSeedMultiplier = \
54  algMetadata.getScalar(SFMT.NOISE_SEED_MULTIPLIER)
55  noiseReplacerConf.noiseSource = algMetadata.getScalar(SFMT.NOISE_SOURCE)
56  noiseReplacerConf.noiseOffset = algMetadata.getScalar(SFMT.NOISE_OFFSET)
57 
58  footprints = {src.getId(): (src.getParent(), src.getFootprint())
59  for src in measCat}
60 
61  try:
62  exposureId = algMetadata.getScalar(SFMT.NOISE_EXPOSURE_ID)
63  except Exception:
64  exposureId = None
65 
66  noiseReplacer = NoiseReplacer(noiseReplacerConf, exposure, footprints,
67  exposureId=exposureId)
68  return noiseReplacer
69 
70