CompositeFunctor¶
- class lsst.pipe.tasks.functors.CompositeFunctor(funcs, **kwargs)¶
Bases:
Functor
Perform multiple calculations at once on a catalog.
The role of a
CompositeFunctor
is to group together computations from multiple functors. Instead of returningpandas.Series
aCompositeFunctor
returns apandas.Dataframe
, with the column names being the keys offuncDict
.The
columns
attribute of aCompositeFunctor
is the union of all columns in all the component functors.A
CompositeFunctor
does not use a_func
method itself; rather, when aCompositeFunctor
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 thecolumns
it expects.An important and useful class method is
from_yaml
, which takes as argument the path to a YAML file specifying a collection of functors.- Parameters:
Attributes Summary
Columns required to perform calculation
Short name of functor (suitable for column name/dict key)
Methods Summary
__call__
(data, **kwargs)Apply the functor to the data table
difference
(data1, data2, **kwargs)Computes difference between functor called on two different DataFrame/Handle objects
fail
(df)from_file
(filename, **kwargs)from_yaml
(translationDefinition, **kwargs)multilevelColumns
(data, **kwargs)Returns columns needed by functor from multilevel dataset
renameCol
(col, renameRules)update
(new)Attributes Documentation
- columns¶
- dataset = None¶
- filt¶
- name = 'CompositeFunctor'¶
- noDup¶
- shortname¶
Short name of functor (suitable for column name/dict key)
Methods Documentation
- __call__(data, **kwargs)¶
Apply the functor to the data table
- Parameters:
- datavarious
The data represented as
lsst.daf.butler.DeferredDatasetHandle
,lsst.pipe.base.InMemoryDatasetHandle
, orpandas.DataFrame
. The table or a pointer to a table on disk from which columns can be accessed
- difference(data1, data2, **kwargs)¶
Computes difference between functor called on two different DataFrame/Handle objects
- fail(df)¶
- classmethod from_file(filename, **kwargs)¶
- classmethod from_yaml(translationDefinition, **kwargs)¶
- multilevelColumns(data, **kwargs)¶
Returns columns needed by functor from multilevel dataset
To access tables with multilevel column structure, the
DeferredDatasetHandle
orInMemoryDatasetHandle
need to be passed either a list of tuples or a dictionary.- Parameters:
- datavarious
The data as either
DeferredDatasetHandle
, orInMemoryDatasetHandle
.- columnIndex (optional): pandas `Index` object
either passed or read in from
DeferredDatasetHandle
.- `returnTuple`
bool
If true, then return a list of tuples rather than the column dictionary specification. This is set to
True
byCompositeFunctor
in order to be able to combine columns from the various component functors.
- classmethod renameCol(col, renameRules)¶
- update(new)¶