DiaPipelineTask¶
- class lsst.ap.association.DiaPipelineTask(initInputs=None, **kwargs)¶
- Bases: - PipelineTask- Task for loading, associating and storing Difference Image Analysis (DIA) Objects and Sources. - Attributes Summary - Methods Summary - associateDiaSources(diaSourceTable, ...)- Associate DiaSources with DiaObjects. - checkTableIndex(dataFrame, index)- createNewDiaObjects(unassociatedDiaSources)- Loop through the set of DiaSources and create new DiaObjects for unassociated DiaSources. - Empty (clear) the metadata for this Task and all sub-Tasks. - filterSources(sources[, snrThreshold, ...])- Select good sources out of a catalog. - Get metadata for all tasks. - Get the task name as a hierarchical name including parent task names. - getName()- Get the name of the task. - Get a dictionary of all tasks as a shallow copy. - makeField(doc)- Make a - lsst.pex.config.ConfigurableFieldfor this task.- makeSubtask(name, **keyArgs)- Create a subtask as a new instance as the - nameattribute of this task.- mergeAssociatedCatalogs(preloadedDiaSources, ...)- Merge the associated diaSource and diaObjects to their previous history. - mergeCatalogs(originalCatalog, newCatalog, ...)- Combine two catalogs, ensuring that the columns of the new catalog have the same dtype as the original. - purgeDiaObjects(bbox, wcs, diaObjCat[, ...])- Drop diaObjects that are outside the exposure bounding box. - run(diaSourceTable, legacySolarSystemTable, ...)- Process DiaSources and DiaObjects. - runForcedMeasurement(diaObjects, ...)- Forced Source Measurement - runQuantum(butlerQC, inputRefs, outputRefs)- Do butler IO and transform to provide in memory objects for tasks - runmethod.- Test the sorted DataFrame index for duplicates. - timer(name[, logLevel])- Context manager to log performance data for an arbitrary block of code. - updateObjectTable(diaObjects, diaSources)- Update the diaObject table with the new diaSource records. - writeToApdb(updatedDiaObjects, ...)- Write to the Alert Production Database (Apdb). - Attributes Documentation - Methods Documentation - associateDiaSources(diaSourceTable, solarSystemObjectTable, diffIm, diaObjects)¶
- Associate DiaSources with DiaObjects. - Associate new DiaSources with existing DiaObjects. Create new DiaObjects fron unassociated DiaSources. Index DiaSource catalogue after associations. Append new DiaObjects and DiaSources to their previous history. Test for DiaSource and DiaObject duplications. Compute DiaObject Summary statistics from their full DiaSource history. Test for duplication in the updated DiaObjects. - Parameters:
- diaSourceTablepandas.DataFrame
- Newly detected DiaSources. 
- solarSystemObjectTableastropy.table.Table
- Preloaded Solar System objects expected to be visible in the image. 
- diffImlsst.afw.image.ExposureF
- Difference image exposure in which the sources in - diaSourceCatwere detected.
- diaObjectspandas.DataFrame
- Table of DiaObjects from preloaded DiaObjects. 
 
- diaSourceTable
- Returns:
- resultslsst.pipe.base.Struct
- Results struct containing: - associatedDiaSourcespandas.DataFrame
- Associated DiaSources with DiaObjects. 
 
- associatedDiaSources
- newDiaObjectspandas.DataFrame
- Table of new DiaObjects after association. 
 
- newDiaObjects
- associatedSsSourcesastropy.table.Table
- Table of new ssSources after association. 
 
- associatedSsSources
- unassociatedSsObjectsastropy.table.Table
- Table of expected ssSources that were not associated with a diaSource. 
 
- unassociatedSsObjects
- newDiaSourcespandas.DataFrame
- Subset of - associatedDiaSourcesconsisting of only the unassociated diaSources that were added as new diaObjects.
 
- newDiaSources
- marginalDiaSourcespandas.DataFrame
- Unassociated diaSources with marginal detections, which were removed from - associatedDiaSourcesand were not added as new diaObjects.
 
- marginalDiaSources
 
 
- results
 
 - static checkTableIndex(dataFrame, index)¶
 - createNewDiaObjects(unassociatedDiaSources)¶
- Loop through the set of DiaSources and create new DiaObjects for unassociated DiaSources. - Parameters:
- unassociatedDiaSourcespandas.DataFrame
- Set of DiaSources to create new DiaObjects from. 
 
- unassociatedDiaSources
- Returns:
- resultslsst.pipe.base.Struct
- Results struct containing: - diaSourcespandas.DataFrame
- DiaSource catalog with updated DiaObject ids. 
 
- diaSources
- newDiaObjectspandas.DataFrame
- Newly created DiaObjects from the unassociated DiaSources. 
 
- newDiaObjects
- nNewDiaObjectsint
- Number of newly created diaObjects. 
 
- nNewDiaObjects
- marginalDiaSourcespandas.DataFrame
- Unassociated diaSources with low signal-to-noise and/or reliability, which are excluded from the new DiaObjects. 
 
- marginalDiaSources
 
 
- results
 
 - filterSources(sources, snrThreshold=None, lowReliabilitySnrThreshold=None, reliabilityThreshold=None, lowSnrReliabilityThreshold=None, badFlags=None)¶
- Select good sources out of a catalog. - Parameters:
- sourcespandas.DataFrame
- Set of DiaSources to check. 
- snrThresholdfloat, optional
- The minimum signal to noise diaSource to make a new diaObject. Included for unit tests. Uses the task config value if not set. 
- lowReliabilitySnrThresholdfloat, optional
- Use - lowSnrReliabilityThresholdas the reliability threshold for diaSources with- snrThreshold< SNR <- lowReliabilitySnrThresholdIncluded for unit tests. Uses the task config value if not set.
- reliabilityThresholdfloat, optional
- The minimum reliability score diaSource to make a new diaObject Included for unit tests. Uses the task config value if not set. 
- lowSnrReliabilityThresholdfloat, optional
- Use - lowSnrReliabilityThresholdas the reliability threshold for diaSources with- snrThreshold< SNR <- lowReliabilitySnrThresholdIncluded for unit tests. Uses the task config value if not set.
- badFlagslistofstr, optional
- Do not create new diaObjects for any diaSource with any of these flags set. Included for unit tests. Uses the task config value if not set. 
 
- sources
- Returns:
- resultslsst.pipe.base.Struct
- Results struct containing: - goodSourcespandas.DataFrame
- Subset of the input sources that pass all checks. 
 
- goodSources
- badSourcespandas.DataFrame
- Subset of the input sources that fail any check. 
 
- badSources
 
 
- results
 
 - getFullMetadata() TaskMetadata¶
- Get metadata for all tasks. - Returns:
- metadataTaskMetadata
- The keys are the full task name. Values are metadata for the top-level task and all subtasks, sub-subtasks, etc. 
 
- metadata
 - Notes - The returned metadata includes timing information (if - @timer.timeMethodis used) and any metadata set by the task. The name of each item consists of the full task name with- .replaced by- :, followed by- .and the name of the item, e.g.:- topLevelTaskName:subtaskName:subsubtaskName.itemName - using - :in the full task name disambiguates the rare situation that a task has a subtask and a metadata item with the same name.
 - getFullName() str¶
- Get the task name as a hierarchical name including parent task names. - Returns:
- fullNamestr
- The full name consists of the name of the parent task and each subtask separated by periods. For example: - The full name of top-level task “top” is simply “top”. 
- The full name of subtask “sub” of top-level task “top” is “top.sub”. 
- The full name of subtask “sub2” of subtask “sub” of top-level task “top” is “top.sub.sub2”. 
 
 
- fullName
 
 - getName() str¶
- Get the name of the task. - Returns:
- taskNamestr
- Name of the task. 
 
- taskName
 - See also - getFullName
- Get the full name of the task. 
 
 - getTaskDict() dict[str, weakref.ReferenceType[lsst.pipe.base.task.Task]]¶
- Get a dictionary of all tasks as a shallow copy. - Returns:
- taskDictdict
- Dictionary containing full task name: task object for the top-level task and all subtasks, sub-subtasks, etc. 
 
- taskDict
 
 - classmethod makeField(doc: str) ConfigurableField¶
- Make a - lsst.pex.config.ConfigurableFieldfor this task.- Parameters:
- docstr
- Help text for the field. 
 
- doc
- Returns:
- configurableFieldlsst.pex.config.ConfigurableField
- A - ConfigurableFieldfor this task.
 
- configurableField
 - Examples - Provides a convenient way to specify this task is a subtask of another task. - Here is an example of use: - class OtherTaskConfig(lsst.pex.config.Config): aSubtask = ATaskClass.makeField("brief description of task") 
 - makeSubtask(name: str, **keyArgs: Any) None¶
- Create a subtask as a new instance as the - nameattribute of this task.- Parameters:
- namestr
- Brief name of the subtask. 
- **keyArgs
- Extra keyword arguments used to construct the task. The following arguments are automatically provided and cannot be overridden: - config.
- parentTask.
 
 
- name
 - Notes - The subtask must be defined by - Task.config.name, an instance of- ConfigurableFieldor- RegistryField.
 - mergeAssociatedCatalogs(preloadedDiaSources, associatedDiaSources, diaObjects, newDiaObjects, diffIm)¶
- Merge the associated diaSource and diaObjects to their previous history. - Parameters:
- preloadedDiaSourcespandas.DataFrame
- Previously detected DiaSources, loaded from the APDB. 
- associatedDiaSourcespandas.DataFrame
- Associated DiaSources with DiaObjects. 
- diaObjectspandas.DataFrame
- Table of DiaObjects from preloaded DiaObjects. 
- newDiaObjectspandas.DataFrame
- Table of new DiaObjects after association. 
 
- preloadedDiaSources
- Returns:
- mergedDiaSourceHistorypandas.DataFrame
- The combined catalog, with all of the rows from preloadedDiaSources catalog ordered before the rows of associatedDiaSources catalog. 
- mergedDiaObjectspandas.DataFrame
- Table of new DiaObjects merged with their history. 
- updatedDiaObjectIdsnumpy.Array
- Object Id’s from associated diaSources. 
 
- mergedDiaSourceHistory
- Raises:
- RuntimeError
- Raised if duplicate DiaObjects or duplicate DiaSources are found. 
 
 
 - mergeCatalogs(originalCatalog, newCatalog, catalogName)¶
- Combine two catalogs, ensuring that the columns of the new catalog have the same dtype as the original. - Parameters:
- originalCatalogpandas.DataFrame
- The original catalog to be added to. 
- newCatalogpandas.DataFrame
- The new catalog to append to - originalCatalog
- catalogNamestr, optional
- The name of the catalog to use for logging messages. 
 
- originalCatalog
- Returns:
- mergedCatalogpandas.DataFrame
- The combined catalog, with all of the rows from - originalCatalogordered before the rows of- newCatalog
 
- mergedCatalog
 
 - purgeDiaObjects(bbox, wcs, diaObjCat, diaObjectIds=None, buffer=0)¶
- Drop diaObjects that are outside the exposure bounding box. - Parameters:
- bboxlsst.geom.Box2I
- Bounding box of the exposure. 
- wcslsst.afw.geom.SkyWcs
- Coordinate system definition (wcs) for the exposure. 
- diaObjCatpandas.DataFrame
- DiaObjects loaded from the Apdb. 
- bufferint, optional
- Width, in pixels, to pad the exposure bounding box. 
 
- bbox
- Returns:
- diaObjCatpandas.DataFrame
- DiaObjects loaded from the Apdb, restricted to the exposure bounding box. 
 
- diaObjCat
 
 - run(diaSourceTable, legacySolarSystemTable, diffIm, exposure, template, preloadedDiaObjects, preloadedDiaSources, preloadedDiaForcedSources, band, idGenerator, solarSystemObjectTable=None)¶
- Process DiaSources and DiaObjects. - Load previous DiaObjects and their DiaSource history. Calibrate the values in the diaSourceCat. Associate new DiaSources with previous DiaObjects. Run forced photometry at the updated DiaObject locations. Store the results in the Alert Production Database (Apdb). - Parameters:
- diaSourceTablepandas.DataFrame
- Newly detected DiaSources. 
- legacySolarSystemTablepandas.DataFrame
- Not used 
- diffImlsst.afw.image.ExposureF
- Difference image exposure in which the sources in - diaSourceCatwere detected.
- exposurelsst.afw.image.ExposureF
- Calibrated exposure differenced with a template to create - diffIm.
- templatelsst.afw.image.ExposureF
- Template exposure used to create diffIm. 
- preloadedDiaObjectspandas.DataFrame
- Previously detected DiaObjects, loaded from the APDB. 
- preloadedDiaSourcespandas.DataFrame
- Previously detected DiaSources, loaded from the APDB. 
- preloadedDiaForcedSourcespandas.DataFrame
- Catalog of previously detected forced DiaSources, from the APDB 
- bandstr
- The band in which the new DiaSources were detected. 
- idGeneratorlsst.meas.base.IdGenerator
- Object that generates source IDs and random number generator seeds. 
- solarSystemObjectTableastropy.table.Table
- Preloaded Solar System objects expected to be visible in the image. 
 
- diaSourceTable
- Returns:
- resultslsst.pipe.base.Struct
- Results struct with components. - apdbMarker: Marker dataset to store in the Butler indicating that this ccdVisit has completed successfully. (- lsst.dax.apdb.ApdbConfig)
- associatedDiaSources: Catalog of newly associated DiaSources. (- pandas.DataFrame)
- diaForcedSources: Catalog of new and previously detected forced DiaSources. (- pandas.DataFrame)
- diaObjects: Updated table of DiaObjects. (- pandas.DataFrame)
- associatedSsSources: Catalog of ssSource records. (- pandas.DataFrame)
 
 
- results
- Raises:
- RuntimeError
- Raised if duplicate DiaObjects or duplicate DiaSources are found. 
 
 
 - runForcedMeasurement(diaObjects, updatedDiaObjects, exposure, diffIm, idGenerator)¶
- Forced Source Measurement - Forced photometry on the difference and calibrated exposures using the new and updated DiaObject locations. - Parameters:
- diaObjectspandas.DataFrame
- Catalog of DiaObjects. 
- updatedDiaObjectspandas.DataFrame
- Catalog of updated DiaObjects. 
- exposurelsst.afw.image.ExposureF
- Calibrated exposure differenced with a template to create - diffIm.
- diffImlsst.afw.image.ExposureF
- Difference image exposure in which the sources in - diaSourceCatwere detected.
- idGeneratorlsst.meas.base.IdGenerator
- Object that generates source IDs and random number generator seeds. 
 
- diaObjects
- Returns:
- diaForcedSourcespandas.DataFrame
- Catalog of calibrated forced photometered fluxes on both the difference and direct images at DiaObject locations. 
 
- diaForcedSources
 
 - runQuantum(butlerQC, inputRefs, outputRefs)¶
- Do butler IO and transform to provide in memory objects for tasks - runmethod.- Parameters:
- butlerQCQuantumContext
- A butler which is specialized to operate in the context of a - lsst.daf.butler.Quantum.
- inputRefsInputQuantizedConnection
- Datastructure whose attribute names are the names that identify connections defined in corresponding - PipelineTaskConnectionsclass. The values of these attributes are the- lsst.daf.butler.DatasetRefobjects associated with the defined input/prerequisite connections.
- outputRefsOutputQuantizedConnection
- Datastructure whose attribute names are the names that identify connections defined in corresponding - PipelineTaskConnectionsclass. The values of these attributes are the- lsst.daf.butler.DatasetRefobjects associated with the defined output connections.
 
- butlerQC
 
 - testDataFrameIndex(df)¶
- Test the sorted DataFrame index for duplicates. - Wrapped as a separate function to allow for mocking of the this task in unittesting. Default of a mock return for this test is True. - Parameters:
- dfpandas.DataFrame
- DataFrame to text. 
 
- df
- Returns:
- bool
- True if DataFrame contains duplicate rows. 
 
 
 - timer(name: str, logLevel: int = 10) Iterator[None]¶
- Context manager to log performance data for an arbitrary block of code. - Parameters:
 - See also - lsst.utils.timer.logInfo
- Implementation function. 
 - Examples - Creating a timer context: - with self.timer("someCodeToTime"): pass # code to time 
 - updateObjectTable(diaObjects, diaSources)¶
- Update the diaObject table with the new diaSource records. - Parameters:
- diaObjectspandas.DataFrame
- Table of new DiaObjects merged with their history. 
- diaSourcespandas.DataFrame
- The combined preloaded and associated diaSource catalog. 
 
- diaObjects
- Returns:
- updatedDiaObjectspandas.DataFrame
- Table of DiaObjects updated with the number of associated DiaSources 
 
- updatedDiaObjects
 
 - writeToApdb(updatedDiaObjects, associatedDiaSources, diaForcedSources)¶
- Write to the Alert Production Database (Apdb). - Store DiaSources, updated DiaObjects, and DiaForcedSources in the Alert Production Database (Apdb). - Parameters:
- updatedDiaObjectspandas.DataFrame
- Catalog of updated DiaObjects. 
- associatedDiaSourcespandas.DataFrame
- Associated DiaSources with DiaObjects. 
- diaForcedSourcespandas.DataFrame
- Catalog of calibrated forced photometered fluxes on both the difference and direct images at DiaObject locations. 
 
- updatedDiaObjects