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 Series a CompositeFunctor returns a 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:
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

Do not explode by band if used on object table.

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)

Update the functor with new functors.

Attributes Documentation

columns
dataset = None
filt
name = 'CompositeFunctor'
noDup

Do not explode by band if used on object table.

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

Parameters:
datavarious

The data as either DeferredDatasetHandle, or InMemoryDatasetHandle.

columnIndex (optional): pandas `~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)

Update the functor with new functors.