SourceDetectionTask¶
SourceDetectionTask
Detect positive and negative sources on an exposure
and return a new table.SourceCatalog
Python API summary¶
from lsst.meas.algorithms.detection import SourceDetectionTask
-
class
(schema=None, **kwds)SourceDetectionTask
Create the detection task. Most arguments are simply passed onto pipe.base.Task
...
-
attribute
config
Access configuration fields and retargetable subtasks.
-
method
(table, exposure, doSmooth=True, sigma=None, clearMask=True, expId=None)run
Run source detection and create a SourceCatalog of detections
...
See also
See the SourceDetectionTask
API reference for complete details.
Retargetable subtasks¶
background¶
- Default
lsst.meas.algorithms.subtractBackground.SubtractBackgroundTask
- Field type
ConfigurableField
tempLocalBackground¶
- Default
lsst.meas.algorithms.subtractBackground.SubtractBackgroundTask
- Field type
ConfigurableField
tempWideBackground¶
- Default
lsst.meas.algorithms.subtractBackground.SubtractBackgroundTask
- Field type
ConfigurableField
Configuration fields¶
adjustBackground¶
combinedGrow¶
doTempLocalBackground¶
doTempWideBackground¶
includeThresholdMultiplier¶
- Default
1.0
- Field type
float
RangeField
- Range
- [0.0,inf)
isotropicGrow¶
minPixels¶
- Default
1
- Field type
int
RangeField
- Range
- [0,inf)
nPeaksMaxSimple¶
nSigmaForKernel¶
nSigmaToGrow¶
reEstimateBackground¶
returnOriginalFootprints¶
statsMask¶
thresholdPolarity¶
- Default
'positive'
- Field type
str
ChoiceField
- Choices
'positive'
- detect only positive sources
'negative'
- detect only negative sources
'both'
- detect both positive and negative sources
thresholdType¶
- Default
'stdev'
- Field type
str
ChoiceField
- Choices
'variance'
- threshold applied to image variance
'stdev'
- threshold applied to image std deviation
'value'
- threshold applied to image value
'pixel_stdev'
- threshold applied to per-pixel std deviation
thresholdValue¶
- Default
5.0
- Field type
float
RangeField
- Range
- [0.0,inf)
Examples¶
This code is in measAlgTasks.py
in the examples directory, and can be run as e.g.
examples/measAlgTasks.py --doDisplay
The example also runs the SingleFrameMeasurementTask; see meas_algorithms_measurement_Example for more explanation.
Import the task (there are some other standard imports; read the file if you’re confused)
from lsst.meas.algorithms.detection import SourceDetectionTask
We need to create our task before processing any data as the task constructor can add an extra column to the schema, but first we need an almost-empty Schema
schema = afwTable.SourceTable.makeMinimalSchema()
after which we can call the constructor:
config = SourceDetectionTask.ConfigClass()
config.thresholdPolarity = "both"
config.background.isNanSafe = True
config.thresholdValue = 3
detectionTask = SourceDetectionTask(config=config, schema=schema)
We’re now ready to process the data (we could loop over multiple exposure/catalogues using the same task objects). First create the output table:
table = afwTable.SourceTable.make(schema)
And process the image
result = detectionTask.run(table, exposure)
(You may not be happy that the threshold was set in the config before creating the Task rather than being set separately for each exposure. You can reset it just before calling the run method if you must, but we should really implement a better solution).
We can then unpack the results:
sources = result.sources
print("Found %d sources (%d +ve, %d -ve)" % (len(sources), result.fpSets.numPos,
result.fpSets.numNeg))
Debugging¶
The lsst.pipe.base.cmdLineTask.cmdLineTask
command line task interface
supports a flag -d
to to import debug.py
from your PYTHONPATH
; see
lsstDebug
for more about debug.py
files.
The available variables in SourceDetectionTask
are:
display
- If True, display the exposure of afwDisplay.Display’s frame 0. Positive detections in blue, negative detections in cyan.
- If display > 1, display the convolved exposure on frame 1