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:
TaskAssociate 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_objects
pandas.DataFrame Catalog of DIAObjects to attempt to associate the input DIASources into.
- dia_sources
pandas.DataFrame DIASources to associate into the DIAObjectCollection.
Returns#
- result
lsst.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)
- dia_objects
- 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_sources
pandas.DataFrame Input DiaSources to check for NaN values.
Returns#
- trimmed_sources
pandas.DataFrame DataFrame of DiaSources trimmed of all entries with NaN values for RA/DEC.
- dia_sources
- match(dia_objects, dia_sources, score_struct)#
Match DIAsources to DiaObjects given a score.
Parameters#
- dia_objects
pandas.DataFrame A SourceCatalog of DIAObjects to associate to DIASources.
- dia_sources
pandas.DataFrame A contiguous catalog of dia_sources for which the set of scores has been computed on with DIAObjectCollection.score.
- score_struct
lsst.pipe.base.Struct Results struct with components:
"scores": array of floats of match qualityupdated DIAObjects (array-like of
float).
"obj_ids": array of floats of match qualityupdated 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#
- result
lsst.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)
- dia_objects
- run(diaSources, diaObjects)#
Associate the new DiaSources with existing DiaObjects.
Parameters#
- diaSources
pandas.DataFrame New DIASources to be associated with existing DIAObjects.
- diaObjects
pandas.DataFrame Existing diaObjects from the Apdb.
Returns#
- result
lsst.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)
- diaSources
- 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_distsets 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_objects
pandas.DataFrame A contiguous catalog of DIAObjects to score against dia_sources.
- dia_sources
pandas.DataFrame A contiguous catalog of dia_sources to “score” based on distance and (in the future) other metrics.
- max_dist
lsst.geom.Angle Maximum allowed distance to compute a score for a given DIAObject DIASource pair.
Returns#
- result
lsst.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.
- dia_objects