CompositeFunctor#
- class lsst.pipe.tasks.functors.CompositeFunctor(funcs, **kwargs)#
Bases:
FunctorPerform multiple calculations at once on a catalog.
The role of a
CompositeFunctoris to group together computations from multiple functors. Instead of returningSeriesaCompositeFunctorreturns aDataFrame, with the column names being the keys offuncDict.The
columnsattribute of aCompositeFunctoris the union of all columns in all the component functors.A
CompositeFunctordoes not use a_funcmethod itself; rather, when aCompositeFunctoris called, all its columns are loaded at once, and the resulting DataFrame is passed to the_funcmethod of each component functor. This has the advantage of only doing I/O (reading from parquet file) once, and works because each individual_funcmethod of each component functor does not care if there are extra columns in the DataFrame being passed; only that it must contain at least thecolumnsit 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
dictorlist Dictionary or list of functors. If a list, then it will be converted into a dictonary according to the
shortnameattribute of each functor.
Attributes Summary
Methods Summary
__call__(data, **kwargs)Apply the functor to the data table.
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'#
Methods Documentation
- __call__(data, **kwargs)#
Apply the functor to the data table.
Parameters#
- datavarious
The data represented as
DeferredDatasetHandle,InMemoryDatasetHandle, orDataFrame. The table or a pointer to a table on disk from which columns can be accessed.
- 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
DeferredDatasetHandleorInMemoryDatasetHandleneeds to be passed either a list of tuples or a dictionary.Parameters#
- datavarious
The data as either
DeferredDatasetHandle, orInMemoryDatasetHandle.- columnIndex (optional): pandas
Indexobject Either passed or read in from
DeferredDatasetHandle.returnTupleboolIf true, then return a list of tuples rather than the column dictionary specification. This is set to
TruebyCompositeFunctorin order to be able to combine columns from the various component functors.
- classmethod renameCol(col, renameRules)#
- update(new)#
Update the functor with new functors.
- funcs