lsst.pipe.tasks  13.0-66-gfbf2f2ce+5
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
lsst.pipe.tasks.multiBand.MergeDetectionsTask Class Reference

Merge coadd detections from multiple bands. More...

Inheritance diagram for lsst.pipe.tasks.multiBand.MergeDetectionsTask:
lsst.pipe.tasks.multiBand.MergeSourcesTask

Public Member Functions

def __init__ (self, butler=None, schema=None, kwargs)
 Initialize the merge detections task. More...
 
def mergeCatalogs (self, catalogs, patchRef)
 Merge multiple catalogs. More...
 
def cullPeaks (self, catalog)
 Attempt to remove garbage peaks (mostly on the outskirts of large blends). More...
 
def getSchemaCatalogs (self)
 Return a dict of empty catalogs for each catalog dataset produced by this task. More...
 
def getSkySourceFootprints (self, mergedList, skyInfo, growDetectedFootprints=0)
 Return a list of Footprints of sky objects which don't overlap with anything in mergedList. More...
 
def getInputSchema (self, butler=None, schema=None)
 Obtain the input schema either directly or froma butler reference. More...
 
def run (self, patchRefList)
 Merge coadd sources from multiple bands. More...
 
def readCatalog (self, patchRef)
 Read input catalog. More...
 
def write (self, patchRef, catalog)
 Write the output. More...
 
def writeMetadata (self, dataRefList)
 No metadata to write, and not sure how to write it for a list of dataRefs. More...
 

Public Attributes

 schema
 
 merged
 

Static Public Attributes

 ConfigClass = MergeDetectionsConfig
 
string inputDataset = "det"
 
string outputDataset = "mergeDet"
 
 makeIdFactory = _makeMakeIdFactory("MergedCoaddId")
 
 RunnerClass = MergeSourcesRunner
 
 getSchemaCatalogs = None
 

Detailed Description

Merge coadd detections from multiple bands.

Contents

Description

Command-line task that merges sources detected in coadds of exposures obtained with different filters.

To perform photometry consistently across coadds in multiple filter bands, we create a master catalog of sources from all bands by merging the sources (peaks & footprints) detected in each coadd, while keeping track of which band each source originates in.

The catalog merge is performed by getMergedSourceCatalog. Spurious peaks detected around bright objects are culled as described in CullPeaksConfig_.

Inputs:
deepCoadd_det{tract,patch,filter}: SourceCatalog (only parent Footprints)
Outputs:
deepCoadd_mergeDet{tract,patch}: SourceCatalog (only parent Footprints)
Data Unit:
tract, patch

MergeDetectionsTask subclasses MergeSourcesTask.

Task initialisation

Initialize the merge detections task. A FootprintMergeList will be used to merge the source catalogs.

Additional keyword arguments (forwarded to MergeSourcesTask.__init__):

Parameters
[in]schemathe schema of the detection catalogs used as input to this one
[in]butlera butler used to read the input schema from disk, if schema is None
[in]**kwargskeyword arguments to be passed to MergeSourcesTask.__init__

The task will set its own self.schema attribute to the schema of the output merged catalog.

Invoking the Task

Merge coadd sources from multiple bands. Calls mergeCatalogs which must be defined in subclasses that inherit from MergeSourcesTask.

Parameters
[in]patchRefListlist of data references for each filter

Configuration parameters

See MergeDetectionsConfig_

Debug variables

The command line task interface supports a flag -d to import debug.py from your PYTHONPATH; see baseDebug for more about debug.py files.

MergeDetectionsTask has no debug variables.

A complete example of using MergeDetectionsTask

MergeDetectionsTask is meant to be run after detecting sources in coadds generated for the chosen subset of the available bands. The purpose of the task is to merge sources (peaks & footprints) detected in the coadds generated from the chosen subset of filters. Subsequent tasks in the multi-band processing procedure will deblend the generated master list of sources and, eventually, perform forced photometry. Command-line usage of MergeDetectionsTask expects data references for all the coadds to be processed. A list of the available optional arguments can be obtained by calling mergeCoaddDetections.py with the --help command line argument:

mergeCoaddDetections.py --help

To demonstrate usage of the DetectCoaddSourcesTask in the larger context of multi-band processing, we will process HSC data in the ci_hsc package. Assuming one has finished step 5 at High-level Overview of Multi-Band Coadd Processing, one may merge the catalogs of sources from each coadd as follows:

mergeCoaddDetections.py $CI_HSC_DIR/DATA --id patch=5,4 tract=0 filter=HSC-I^HSC-R

This will merge the HSC-I & -R band parent source catalogs and write the results to $CI_HSC_DIR/DATA/deepCoadd-results/merged/0/5,4/mergeDet-0-5,4.fits.

The next step in the multi-band processing procedure is MeasureMergedCoaddSourcesTask

Definition at line 595 of file multiBand.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.pipe.tasks.multiBand.MergeDetectionsTask.__init__ (   self,
  butler = None,
  schema = None,
  kwargs 
)

Initialize the merge detections task.

A FootprintMergeList will be used to merge the source catalogs.

Additional keyword arguments (forwarded to MergeSourcesTask.__init__):

Parameters
[in]schemathe schema of the detection catalogs used as input to this one
[in]butlera butler used to read the input schema from disk, if schema is None
[in]**kwargskeyword arguments to be passed to MergeSourcesTask.__init__

The task will set its own self.schema attribute to the schema of the output merged catalog.

Definition at line 682 of file multiBand.py.

Member Function Documentation

◆ cullPeaks()

def lsst.pipe.tasks.multiBand.MergeDetectionsTask.cullPeaks (   self,
  catalog 
)

Attempt to remove garbage peaks (mostly on the outskirts of large blends).

Parameters
[in]catalogSource catalog

Definition at line 758 of file multiBand.py.

◆ getInputSchema()

def lsst.pipe.tasks.multiBand.MergeSourcesTask.getInputSchema (   self,
  butler = None,
  schema = None 
)
inherited

Obtain the input schema either directly or froma butler reference.

Parameters
[in]butlerbutler reference to obtain the input schema from
[in]schemathe input schema

Definition at line 432 of file multiBand.py.

◆ getSchemaCatalogs()

def lsst.pipe.tasks.multiBand.MergeDetectionsTask.getSchemaCatalogs (   self)

Return a dict of empty catalogs for each catalog dataset produced by this task.

Parameters
[out]dictionaryof empty catalogs

Definition at line 786 of file multiBand.py.

◆ getSkySourceFootprints()

def lsst.pipe.tasks.multiBand.MergeDetectionsTask.getSkySourceFootprints (   self,
  mergedList,
  skyInfo,
  growDetectedFootprints = 0 
)

Return a list of Footprints of sky objects which don't overlap with anything in mergedList.

Parameters
mergedListThe merged Footprints from all the input bands
skyInfoA description of the patch
growDetectedFootprintsThe number of pixels to grow the detected footprints

Definition at line 797 of file multiBand.py.

◆ mergeCatalogs()

def lsst.pipe.tasks.multiBand.MergeDetectionsTask.mergeCatalogs (   self,
  catalogs,
  patchRef 
)

Merge multiple catalogs.

After ordering the catalogs and filters in priority order, getMergedSourceCatalog of the FootprintMergeList created by __init__ is used to perform the actual merging. Finally, cullPeaks is used to remove garbage peaks detected around bright objects.

Parameters
[in]catalogs
[in]patchRef
[out]mergedList

Definition at line 704 of file multiBand.py.

◆ readCatalog()

def lsst.pipe.tasks.multiBand.MergeSourcesTask.readCatalog (   self,
  patchRef 
)
inherited

Read input catalog.

We read the input dataset provided by the 'inputDataset' class variable.

Parameters
[in]patchRefdata reference for patch
Returns
tuple consisting of the filter name and the catalog

Definition at line 469 of file multiBand.py.

◆ run()

def lsst.pipe.tasks.multiBand.MergeSourcesTask.run (   self,
  patchRefList 
)
inherited

Merge coadd sources from multiple bands.

Calls mergeCatalogs which must be defined in subclasses that inherit from MergeSourcesTask.

Parameters
[in]patchRefListlist of data references for each filter

Definition at line 458 of file multiBand.py.

◆ write()

def lsst.pipe.tasks.multiBand.MergeSourcesTask.write (   self,
  patchRef,
  catalog 
)
inherited

Write the output.

Parameters
[in]patchRefdata reference for patch
[in]catalogcatalog

We write as the dataset provided by the 'outputDataset' class variable.

Definition at line 495 of file multiBand.py.

◆ writeMetadata()

def lsst.pipe.tasks.multiBand.MergeSourcesTask.writeMetadata (   self,
  dataRefList 
)
inherited

No metadata to write, and not sure how to write it for a list of dataRefs.

Definition at line 512 of file multiBand.py.

Member Data Documentation

◆ ConfigClass

lsst.pipe.tasks.multiBand.MergeDetectionsTask.ConfigClass = MergeDetectionsConfig
static

Definition at line 676 of file multiBand.py.

◆ getSchemaCatalogs

lsst.pipe.tasks.multiBand.MergeSourcesTask.getSchemaCatalogs = None
staticinherited

Definition at line 415 of file multiBand.py.

◆ inputDataset

string lsst.pipe.tasks.multiBand.MergeDetectionsTask.inputDataset = "det"
static

Definition at line 678 of file multiBand.py.

◆ makeIdFactory

lsst.pipe.tasks.multiBand.MergeDetectionsTask.makeIdFactory = _makeMakeIdFactory("MergedCoaddId")
static

Definition at line 680 of file multiBand.py.

◆ merged

lsst.pipe.tasks.multiBand.MergeDetectionsTask.merged

Definition at line 702 of file multiBand.py.

◆ outputDataset

string lsst.pipe.tasks.multiBand.MergeDetectionsTask.outputDataset = "mergeDet"
static

Definition at line 679 of file multiBand.py.

◆ RunnerClass

lsst.pipe.tasks.multiBand.MergeSourcesTask.RunnerClass = MergeSourcesRunner
staticinherited

Definition at line 412 of file multiBand.py.

◆ schema

lsst.pipe.tasks.multiBand.MergeDetectionsTask.schema

Definition at line 697 of file multiBand.py.


The documentation for this class was generated from the following file: