lsst.pipe.tasks g06b2ea86fd+734f9505a2
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | List of all members
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)
 

Public Attributes

 funcDict
 
 filt
 
 name
 

Static Public Attributes

 dataset = None
 
str name = "CompositeFunctor"
 

Protected Attributes

 _filt
 

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 377 of file functors.py.

Constructor & Destructor Documentation

◆ __init__()

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

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

Definition at line 410 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.

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

Definition at line 464 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 446 of file functors.py.

◆ filt() [1/2]

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

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

Definition at line 422 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 426 of file functors.py.

◆ from_file()

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

Definition at line 539 of file functors.py.

◆ from_yaml()

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

Definition at line 548 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 449 of file functors.py.

◆ renameCol()

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

Definition at line 530 of file functors.py.

◆ update()

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

Definition at line 432 of file functors.py.

Member Data Documentation

◆ _filt

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

Definition at line 417 of file functors.py.

◆ dataset

lsst.pipe.tasks.functors.CompositeFunctor.dataset = None
static

Definition at line 407 of file functors.py.

◆ filt

lsst.pipe.tasks.functors.CompositeFunctor.filt

Definition at line 443 of file functors.py.

◆ funcDict

lsst.pipe.tasks.functors.CompositeFunctor.funcDict

Definition at line 413 of file functors.py.

◆ name [1/2]

str lsst.pipe.tasks.functors.CompositeFunctor.name = "CompositeFunctor"
static

Definition at line 408 of file functors.py.

◆ name [2/2]

lsst.pipe.tasks.functors.CompositeFunctor.name

Definition at line 498 of file functors.py.


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