Base class for transforming/standardizing a catalog by applying functors
that convert units and apply calibrations.
The purpose of this task is to perform a set of computations on an input
``DeferredDatasetHandle`` or ``InMemoryDatasetHandle`` that holds a
``DataFrame`` dataset (such as ``deepCoadd_obj``), and write the results to
a new dataset (which needs to be declared in an ``outputDataset``
attribute).
The calculations to be performed are defined in a YAML file that specifies
a set of functors to be computed, provided as a ``--functorFile`` config
parameter. An example of such a YAML file is the following:
funcs:
sourceId:
functor: Index
x:
functor: Column
args: slot_Centroid_x
y:
functor: Column
args: slot_Centroid_y
psfFlux:
functor: LocalNanojansky
args:
- slot_PsfFlux_instFlux
- slot_PsfFlux_instFluxErr
- base_LocalPhotoCalib
- base_LocalPhotoCalibErr
psfFluxErr:
functor: LocalNanojanskyErr
args:
- slot_PsfFlux_instFlux
- slot_PsfFlux_instFluxErr
- base_LocalPhotoCalib
- base_LocalPhotoCalibErr
flags:
- detect_isPrimary
The names for each entry under "func" will become the names of columns in
the output dataset. All the functors referenced are defined in
`~lsst.pipe.tasks.functors`. Positional arguments to be passed to each
functor are in the `args` list, and any additional entries for each column
other than "functor" or "args" (e.g., ``'filt'``, ``'dataset'``) are
treated as keyword arguments to be passed to the functor initialization.
The "flags" entry is the default shortcut for `Column` functors.
All columns listed under "flags" will be copied to the output table
untransformed. They can be of any datatype.
In the special case of transforming a multi-level oject table with
band and dataset indices (deepCoadd_obj), these will be taked from the
`meas` dataset and exploded out per band.
There are two special shortcuts that only apply when transforming
multi-level Object (deepCoadd_obj) tables:
- The "refFlags" entry is shortcut for `Column` functor
taken from the `'ref'` dataset if transforming an ObjectTable.
- The "forcedFlags" entry is shortcut for `Column` functors.
taken from the ``forced_src`` dataset if transforming an ObjectTable.
These are expanded out per band.
This task uses the `lsst.pipe.tasks.postprocess.PostprocessAnalysis` object
to organize and excecute the calculations.
Definition at line 802 of file postprocess.py.
lsst.pipe.tasks.postprocess.TransformCatalogBaseTask.run |
( |
|
self, |
|
|
|
handle, |
|
|
|
funcs = None , |
|
|
|
dataId = None , |
|
|
|
band = None |
|
) |
| |
Do postprocessing calculations
Takes a ``DeferredDatasetHandle`` or ``InMemoryDatasetHandle`` or
``DataFrame`` object and dataId,
returns a dataframe with results of postprocessing calculations.
Parameters
----------
handles : `~lsst.daf.butler.DeferredDatasetHandle` or
`~lsst.pipe.base.InMemoryDatasetHandle` or
`~pandas.DataFrame`, or list of these.
DataFrames from which calculations are done.
funcs : `~lsst.pipe.tasks.functors.Functor`
Functors to apply to the table's columns
dataId : dict, optional
Used to add a `patchId` column to the output dataframe.
band : `str`, optional
Filter band that is being processed.
Returns
-------
df : `pandas.DataFrame`
Definition at line 904 of file postprocess.py.