ReserveSourcesTask#

class lsst.meas.algorithms.ReserveSourcesTask(columnName=None, schema=None, doc=None, **kwargs)#

Bases: Task

Reserve sources from analysis

We randomly select a fraction of sources that will be reserved from analysis. This allows evaluation of the quality of model fits using sources that were not involved in the fitting process.

Parameters#

columnNamestr, required

Name of flag column to add; we will suffix this with “_reserved”.

schemalsst.afw.table.Schema, required

Catalog schema.

docstr

Documentation for column to add.

configReserveSourcesConfig

Configuration.

Methods Summary

applySelectionPrior(prior, selection)

Apply selection to full catalog

markSources(sources, selection)

Mark sources in a list or catalog

run(sources[, prior, expId])

Select sources to be reserved

select(numSources[, expId])

Randomly select some sources

Methods Documentation

applySelectionPrior(prior, selection)#

Apply selection to full catalog

The select method makes a random selection of sources. If those sources don’t represent the full population (because a sub-selection has already been made), then we need to generate a selection covering the entire population.

Parameters#

priornumpy.ndarray of type bool

Prior selection of sources, identifying the subset from which the random selection has been made.

selectionnumpy.ndarray of type bool

Selection of sources in subset identified by prior.

Returns#

fullnumpy.ndarray of type bool

Selection applied to full population.

markSources(sources, selection)#

Mark sources in a list or catalog

This requires iterating through the list and setting the flag in each source individually. Even if the sources is a Catalog with contiguous records, it’s not currently possible to set a boolean column (DM-6981) so we need to iterate.

Parameters#

cataloglsst.afw.table.Catalog or list of lsst.afw.table.Record

Catalog in which to flag selected sources.

selectionnumpy.ndarray of type bool

Selection of sources to mark.

run(sources, prior=None, expId=0)#

Select sources to be reserved

Reserved sources will be flagged in the catalog, and we will return boolean arrays that identify the sources to be reserved from and used in the analysis. Typically you’ll want to use the sources from the use array in your fitting, and use the sources from the reserved array as an independent test of your fitting.

Parameters#

sourceslsst.afw.table.Catalog or list of lsst.afw.table.Record

Sources from which to select some to be reserved.

priornumpy.ndarray of type bool, optional

Prior selection of sources. Should have the same length as sources. If set, we will only consider for reservation sources that are flagged True in this array.

expIdint

Exposure identifier; used for seeding the random number generator.

Returns#

resultslsst.pipe.base.Struct

The results in a Struct:

reserved

Sources to be reserved are flagged True in this array. (numpy.ndarray of type bool)

use

Sources the user should use in analysis are flagged True. (numpy.ndarray of type bool)

select(numSources, expId=0)#

Randomly select some sources

We return a boolean array with a random selection. The fraction of sources selected is specified by the config parameter fraction.

Parameters#

numSourcesint

Number of sources in catalog from which to select.

expIdint

Exposure identifier; used for seeding the random number generator.

Returns#

selectionnumpy.ndarray of type bool

Selected sources are flagged True in this array.