LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
Loading...
Searching...
No Matches
Functions
lsst.meas.base.measurementInvestigationLib Namespace Reference

Functions

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

Function Documentation

◆ makeRerunCatalog()

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

◆ rebuildNoiseReplacer()

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.

29def 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