AssociationTask#

class lsst.ap.association.AssociationTask(config: Config | None = None, *, name: str | None = None, parentTask: Task | None = None, log: logging.Logger | lsst.utils.logging.LsstLogAdapter | None = None)#

Bases: Task

Associate DIAOSources into existing DIAObjects.

This task performs the association of detected DIASources in a visit with the previous DIAObjects detected over time. It also creates new DIAObjects out of DIASources that cannot be associated with previously detected DIAObjects.

Methods Summary

associate_sources(dia_objects, dia_sources)

Associate the input DIASources with the catalog of DIAObjects.

check_dia_source_radec(dia_sources)

Check that all DiaSources have non-NaN values for RA/DEC.

match(dia_objects, dia_sources, score_struct)

Match DIAsources to DiaObjects given a score.

run(diaSources, diaObjects)

Associate the new DiaSources with existing DiaObjects.

score(dia_objects, dia_sources, max_dist)

Compute a quality score for each dia_source/dia_object pair between this catalog of DIAObjects and the input DIASource catalog.

Methods Documentation

associate_sources(dia_objects, dia_sources)#

Associate the input DIASources with the catalog of DIAObjects.

DiaObject DataFrame must be indexed on diaObjectId.

Parameters#

dia_objectspandas.DataFrame

Catalog of DIAObjects to attempt to associate the input DIASources into.

dia_sourcespandas.DataFrame

DIASources to associate into the DIAObjectCollection.

Returns#

resultlsst.pipe.base.Struct

Results struct with components.

  • diaSources : Full set of diaSources both matched and not. (pandas.DataFrame)

  • nUpdatedDiaObjects : Number of DiaObjects that were associated. (int)

  • nUnassociatedDiaObjects : Number of DiaObjects that were not matched a new DiaSource. (int)

check_dia_source_radec(dia_sources)#

Check that all DiaSources have non-NaN values for RA/DEC.

If one or more DiaSources are found to have NaN values, throw a warning to the log with the ids of the offending sources. Drop them from the table.

Parameters#

dia_sourcespandas.DataFrame

Input DiaSources to check for NaN values.

Returns#

trimmed_sourcespandas.DataFrame

DataFrame of DiaSources trimmed of all entries with NaN values for RA/DEC.

match(dia_objects, dia_sources, score_struct)#

Match DIAsources to DiaObjects given a score.

Parameters#

dia_objectspandas.DataFrame

A SourceCatalog of DIAObjects to associate to DIASources.

dia_sourcespandas.DataFrame

A contiguous catalog of dia_sources for which the set of scores has been computed on with DIAObjectCollection.score.

score_structlsst.pipe.base.Struct

Results struct with components:

  • "scores": array of floats of match quality

    updated DIAObjects (array-like of float).

  • "obj_ids": array of floats of match quality

    updated DIAObjects (array-like of int).

  • "obj_idxs": indexes of the matched DIAObjects in the catalog.

    (array-like of int)

Default values for these arrays are INF, -1 and -1 respectively for unassociated sources.

Returns#

resultlsst.pipe.base.Struct

Results struct with components.

  • "diaSources" : Full set of diaSources both matched and not. (pandas.DataFrame)

  • "nUpdatedDiaObjects" : Number of DiaObjects that were associated. (int)

  • "nUnassociatedDiaObjects" : Number of DiaObjects that were not matched a new DiaSource. (int)

run(diaSources, diaObjects)#

Associate the new DiaSources with existing DiaObjects.

Parameters#

diaSourcespandas.DataFrame

New DIASources to be associated with existing DIAObjects.

diaObjectspandas.DataFrame

Existing diaObjects from the Apdb.

Returns#

resultlsst.pipe.base.Struct

Results struct with components.

  • matchedDiaSources : DiaSources that were matched. Matched Sources have their diaObjectId updated and set to the id of the diaObject they were matched to. (pandas.DataFrame)

  • unAssocDiaSources : DiaSources that were not matched. Unassociated sources have their diaObject set to 0 as they were not associated with any existing DiaObjects. (pandas.DataFrame)

  • nUpdatedDiaObjects : Number of DiaObjects that were matched to new DiaSources. (int)

  • nUnassociatedDiaObjects : Number of DiaObjects that were not matched a new DiaSource. (int)

score(dia_objects, dia_sources, max_dist)#

Compute a quality score for each dia_source/dia_object pair between this catalog of DIAObjects and the input DIASource catalog.

max_dist sets maximum separation in arcseconds to consider a dia_source a possible match to a dia_object. If the pair is beyond this distance no score is computed.

Parameters#

dia_objectspandas.DataFrame

A contiguous catalog of DIAObjects to score against dia_sources.

dia_sourcespandas.DataFrame

A contiguous catalog of dia_sources to “score” based on distance and (in the future) other metrics.

max_distlsst.geom.Angle

Maximum allowed distance to compute a score for a given DIAObject DIASource pair.

Returns#

resultlsst.pipe.base.Struct

Results struct with components:

  • scores: array of floats of match quality updated DIAObjects

    (array-like of float).

  • obj_idxs: indexes of the matched DIAObjects in the catalog.

    (array-like of int)

  • obj_ids: array of floats of match quality updated DIAObjects

    (array-like of int).

Default values for these arrays are INF, -1, and -1 respectively for unassociated sources.