lsst.pipe.tasks g540474b770+1ce96500e5
Loading...
Searching...
No Matches
lsst.pipe.tasks.functors.CompositeFunctor Class Reference
Inheritance diagram for lsst.pipe.tasks.functors.CompositeFunctor:
lsst.pipe.tasks.functors.Functor

Public Member Functions

 __init__ (self, funcs, **kwargs)
 
 filt (self)
 
 filt (self, filt)
 
 update (self, new)
 
 columns (self)
 
 multilevelColumns (self, data, **kwargs)
 
 __call__ (self, data, **kwargs)
 
 renameCol (cls, col, renameRules)
 
 from_file (cls, filename, **kwargs)
 
 from_yaml (cls, translationDefinition, **kwargs)
 
 name (self)
 
 noDup (self)
 
 difference (self, data1, data2, **kwargs)
 
 fail (self, df)
 
 shortname (self)
 

Public Attributes

dict funcDict = funcs
 
str dataset = dataset if dataset is not None else self._defaultDataset
 
 log = logging.getLogger(type(self).__name__)
 
 name
 

Protected Member Functions

 _get_data_columnLevels (self, data, columnIndex=None)
 
 _get_data_columnLevelNames (self, data, columnIndex=None)
 
 _colsFromDict (self, colDict, columnIndex=None)
 
 _func (self, df, dropna=True)
 
 _get_columnIndex (self, data)
 
 _get_data (self, data)
 
 _setLevels (self, df)
 
 _dropna (self, vals)
 

Protected Attributes

 _filt = None
 
 _noDup = noDup
 

Static Protected Attributes

str _defaultDataset = 'ref'
 
tuple _dfLevels = ('column',)
 
bool _defaultNoDup = False
 

Detailed Description

Perform multiple calculations at once on a catalog.

The role of a `CompositeFunctor` is to group together computations from
multiple functors.
Instead of returning `~pandas.Series` a `CompositeFunctor` returns a
`~pandas.DataFrame`, with the column names being the keys of ``funcDict``.

The `columns` attribute of a `CompositeFunctor` is the union of all columns
in all the component functors.

A `CompositeFunctor` does not use a `_func` method itself; rather, when a
`CompositeFunctor` is called, all its columns are loaded at once, and the
resulting DataFrame is passed to the `_func` method of each component
functor.
This has the advantage of only doing I/O (reading from parquet file) once,
and works because each individual `_func` method of each component functor
does not care if there are *extra* columns in the DataFrame being passed;
only that it must contain *at least* the `columns` it expects.

An important and useful class method is `from_yaml`, which takes as an
argument the path to a YAML file specifying a collection of functors.

Parameters
----------
funcs : `dict` or `list`
    Dictionary or list of functors.
    If a list, then it will be converted into a dictonary according to the
    `.shortname` attribute of each functor.

Definition at line 385 of file functors.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.pipe.tasks.functors.CompositeFunctor.__init__ ( self,
funcs,
** kwargs )

Definition at line 418 of file functors.py.

Member Function Documentation

◆ __call__()

lsst.pipe.tasks.functors.CompositeFunctor.__call__ ( self,
data,
** kwargs )
Apply the functor to the data table.

Parameters
----------
data : various
    The data represented as `~lsst.daf.butler.DeferredDatasetHandle`,
    `~lsst.pipe.base.InMemoryDatasetHandle`, or `~pandas.DataFrame`.
    The table or a pointer to a table on disk from which columns can
    be accessed.

Definition at line 472 of file functors.py.

◆ _colsFromDict()

lsst.pipe.tasks.functors.Functor._colsFromDict ( self,
colDict,
columnIndex = None )
protectedinherited
Converts dictionary column specficiation to a list of columns.

Definition at line 223 of file functors.py.

◆ _dropna()

lsst.pipe.tasks.functors.Functor._dropna ( self,
vals )
protectedinherited

Definition at line 350 of file functors.py.

◆ _func()

lsst.pipe.tasks.functors.Functor._func ( self,
df,
dropna = True )
protectedinherited

Reimplemented in lsst.pipe.tasks.functors.Color, lsst.pipe.tasks.functors.Column, lsst.pipe.tasks.functors.ComputePixelScale, lsst.pipe.tasks.functors.ConvertDetectorAngleToPositionAngle, lsst.pipe.tasks.functors.ConvertPixelSqToArcsecondsSq, lsst.pipe.tasks.functors.ConvertPixelToArcseconds, lsst.pipe.tasks.functors.CoordColumn, lsst.pipe.tasks.functors.CustomFunctor, lsst.pipe.tasks.functors.DeconvolvedMoments, lsst.pipe.tasks.functors.E1, lsst.pipe.tasks.functors.E2, lsst.pipe.tasks.functors.Ebv, lsst.pipe.tasks.functors.HsmFwhm, lsst.pipe.tasks.functors.HsmTraceSize, lsst.pipe.tasks.functors.HtmIndex20, lsst.pipe.tasks.functors.Index, lsst.pipe.tasks.functors.LocalDipoleDiffFlux, lsst.pipe.tasks.functors.LocalDipoleDiffFluxErr, lsst.pipe.tasks.functors.LocalDipoleMeanFlux, lsst.pipe.tasks.functors.LocalDipoleMeanFluxErr, lsst.pipe.tasks.functors.LocalNanojansky, lsst.pipe.tasks.functors.LocalNanojanskyErr, lsst.pipe.tasks.functors.Mag, lsst.pipe.tasks.functors.MagDiff, lsst.pipe.tasks.functors.MagErr, lsst.pipe.tasks.functors.MomentsG1Sky, lsst.pipe.tasks.functors.MomentsG2Sky, lsst.pipe.tasks.functors.MomentsIuuSky, lsst.pipe.tasks.functors.MomentsIuvSky, lsst.pipe.tasks.functors.MomentsIvvSky, lsst.pipe.tasks.functors.MomentsTraceSky, lsst.pipe.tasks.functors.MultibandSinglePrecisionFloatColumn, lsst.pipe.tasks.functors.NanoJansky, lsst.pipe.tasks.functors.NanoJanskyErr, lsst.pipe.tasks.functors.PositionAngleFromMoments, lsst.pipe.tasks.functors.PsfHsmTraceSizeDiff, lsst.pipe.tasks.functors.PsfSdssTraceSizeDiff, lsst.pipe.tasks.functors.RADecCovColumn, lsst.pipe.tasks.functors.RadiusFromQuadrupole, lsst.pipe.tasks.functors.ReferenceBand, lsst.pipe.tasks.functors.SdssTraceSize, lsst.pipe.tasks.functors.SemimajorAxisFromMoments, lsst.pipe.tasks.functors.SemiminorAxisFromMoments, and lsst.pipe.tasks.functors.SinglePrecisionFloatColumn.

Definition at line 296 of file functors.py.

◆ _get_columnIndex()

lsst.pipe.tasks.functors.Functor._get_columnIndex ( self,
data )
protectedinherited
Return columnIndex.

Definition at line 299 of file functors.py.

◆ _get_data()

lsst.pipe.tasks.functors.Functor._get_data ( self,
data )
protectedinherited
Retrieve DataFrame necessary for calculation.

The data argument can be a `~pandas.DataFrame`, a
`~lsst.daf.butler.DeferredDatasetHandle`, or
an `~lsst.pipe.base.InMemoryDatasetHandle`.

Returns a DataFrame upon which `self._func` can act.

Definition at line 307 of file functors.py.

◆ _get_data_columnLevelNames()

lsst.pipe.tasks.functors.Functor._get_data_columnLevelNames ( self,
data,
columnIndex = None )
protectedinherited
Gets the content of each of the column levels for a multilevel
table.

Definition at line 209 of file functors.py.

◆ _get_data_columnLevels()

lsst.pipe.tasks.functors.Functor._get_data_columnLevels ( self,
data,
columnIndex = None )
protectedinherited
Gets the names of the column index levels.

This should only be called in the context of a multilevel table.

Parameters
----------
data : various
    The data to be read, can be a
    `~lsst.daf.butler.DeferredDatasetHandle` or
    `~lsst.pipe.base.InMemoryDatasetHandle`.
columnIndex (optional): pandas `~pandas.Index` object
    If not passed, then it is read from the
    `~lsst.daf.butler.DeferredDatasetHandle`
    for `~lsst.pipe.base.InMemoryDatasetHandle`.

Definition at line 189 of file functors.py.

◆ _setLevels()

lsst.pipe.tasks.functors.Functor._setLevels ( self,
df )
protectedinherited

Definition at line 345 of file functors.py.

◆ columns()

lsst.pipe.tasks.functors.CompositeFunctor.columns ( self)
Columns required to perform calculation.

Reimplemented from lsst.pipe.tasks.functors.Functor.

Definition at line 454 of file functors.py.

◆ difference()

lsst.pipe.tasks.functors.Functor.difference ( self,
data1,
data2,
** kwargs )
inherited
Computes difference between functor called on two different
DataFrame/Handle objects.

Definition at line 365 of file functors.py.

◆ fail()

lsst.pipe.tasks.functors.Functor.fail ( self,
df )
inherited

Definition at line 371 of file functors.py.

◆ filt() [1/2]

lsst.pipe.tasks.functors.CompositeFunctor.filt ( self)

Reimplemented from lsst.pipe.tasks.functors.Functor.

Definition at line 430 of file functors.py.

◆ filt() [2/2]

lsst.pipe.tasks.functors.CompositeFunctor.filt ( self,
filt )

Reimplemented from lsst.pipe.tasks.functors.Functor.

Definition at line 434 of file functors.py.

◆ from_file()

lsst.pipe.tasks.functors.CompositeFunctor.from_file ( cls,
filename,
** kwargs )

Definition at line 547 of file functors.py.

◆ from_yaml()

lsst.pipe.tasks.functors.CompositeFunctor.from_yaml ( cls,
translationDefinition,
** kwargs )

Definition at line 556 of file functors.py.

◆ multilevelColumns()

lsst.pipe.tasks.functors.CompositeFunctor.multilevelColumns ( self,
data,
** columnIndex )
Returns columns needed by functor from multilevel dataset.

To access tables with multilevel column structure, the
`~lsst.daf.butler.DeferredDatasetHandle` or
`~lsst.pipe.base.InMemoryDatasetHandle` needs to be passed
either a list of tuples or a dictionary.

Parameters
----------
data : various
    The data as either `~lsst.daf.butler.DeferredDatasetHandle`, or
    `~lsst.pipe.base.InMemoryDatasetHandle`.
columnIndex (optional): pandas `~pandas.Index` object
    Either passed or read in from
    `~lsst.daf.butler.DeferredDatasetHandle`.
`returnTuple` : `bool`
    If true, then return a list of tuples rather than the column
    dictionary specification.
    This is set to `True` by `CompositeFunctor` in order to be able to
    combine columns from the various component functors.

Reimplemented from lsst.pipe.tasks.functors.Functor.

Definition at line 457 of file functors.py.

◆ name()

◆ noDup()

lsst.pipe.tasks.functors.Functor.noDup ( self)
inherited
Do not explode by band if used on object table.

Definition at line 175 of file functors.py.

◆ renameCol()

lsst.pipe.tasks.functors.CompositeFunctor.renameCol ( cls,
col,
renameRules )

Definition at line 538 of file functors.py.

◆ shortname()

lsst.pipe.tasks.functors.Functor.shortname ( self)
inherited
Short name of functor (suitable for column name/dict key).

Reimplemented in lsst.pipe.tasks.functors.Color, and lsst.pipe.tasks.functors.MagDiff.

Definition at line 380 of file functors.py.

◆ update()

lsst.pipe.tasks.functors.CompositeFunctor.update ( self,
new )
Update the functor with new functors.

Definition at line 440 of file functors.py.

Member Data Documentation

◆ _defaultDataset

str lsst.pipe.tasks.functors.Functor._defaultDataset = 'ref'
staticprotectedinherited

Definition at line 164 of file functors.py.

◆ _defaultNoDup

bool lsst.pipe.tasks.functors.Functor._defaultNoDup = False
staticprotectedinherited

Definition at line 166 of file functors.py.

◆ _dfLevels

tuple lsst.pipe.tasks.functors.Functor._dfLevels = ('column',)
staticprotectedinherited

Definition at line 165 of file functors.py.

◆ _filt

lsst.pipe.tasks.functors.CompositeFunctor._filt = None
protected

Definition at line 425 of file functors.py.

◆ _noDup

lsst.pipe.tasks.functors.Functor._noDup = noDup
protectedinherited

Definition at line 171 of file functors.py.

◆ dataset

str lsst.pipe.tasks.functors.Functor.dataset = dataset if dataset is not None else self._defaultDataset
inherited

Definition at line 170 of file functors.py.

◆ funcDict

dict lsst.pipe.tasks.functors.CompositeFunctor.funcDict = funcs

Definition at line 421 of file functors.py.

◆ log

lsst.pipe.tasks.functors.Functor.log = logging.getLogger(type(self).__name__)
inherited

Definition at line 172 of file functors.py.

◆ name


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