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 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 argument the path to a YAML file specifying a collection of functors.

Parameters:
funcsdict 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.

Attributes Summary

columns

Columns required to perform calculation

dataset

filt

name

noDup

shortname

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, or pandas.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 or InMemoryDatasetHandle need to be passed either a list of tuples or a dictionary.

Parameters:
datavarious

The data as either DeferredDatasetHandle, or InMemoryDatasetHandle.

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 by CompositeFunctor in order to be able to combine columns from the various component functors.

classmethod renameCol(col, renameRules)
update(new)