lsst.pipe.tasks g36c42b5980+6eadf5d1c4
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
lsst.pipe.tasks.functors.Functor Class Reference
Inheritance diagram for lsst.pipe.tasks.functors.Functor:
lsst.pipe.tasks.functors.Color lsst.pipe.tasks.functors.Column lsst.pipe.tasks.functors.CompositeFunctor lsst.pipe.tasks.functors.CustomFunctor lsst.pipe.tasks.functors.DeconvolvedMoments lsst.pipe.tasks.functors.E1 lsst.pipe.tasks.functors.E2 lsst.pipe.tasks.functors.Ebv lsst.pipe.tasks.functors.HsmFwhm lsst.pipe.tasks.functors.HsmTraceSize lsst.pipe.tasks.functors.HtmIndex20 lsst.pipe.tasks.functors.Index lsst.pipe.tasks.functors.LocalPhotometry lsst.pipe.tasks.functors.LocalWcs lsst.pipe.tasks.functors.Mag lsst.pipe.tasks.functors.MagDiff lsst.pipe.tasks.functors.Photometry lsst.pipe.tasks.functors.PsfHsmTraceSizeDiff lsst.pipe.tasks.functors.PsfSdssTraceSizeDiff lsst.pipe.tasks.functors.RadiusFromQuadrupole lsst.pipe.tasks.functors.ReferenceBand lsst.pipe.tasks.functors.SdssTraceSize

Public Member Functions

def __init__ (self, filt=None, dataset=None, noDup=None)
 
def noDup (self)
 
def columns (self)
 
def multilevelColumns (self, data, columnIndex=None, returnTuple=False)
 
def __call__ (self, data, dropna=False)
 
def difference (self, data1, data2, **kwargs)
 
def fail (self, df)
 
def name (self)
 
def shortname (self)
 

Public Attributes

 filt
 
 dataset
 
 log
 

Detailed Description

Define and execute a calculation on a DataFrame or Handle holding a
DataFrame.

The `__call__` method accepts either a `~pandas.DataFrame` object or a
`~lsst.daf.butler.DeferredDatasetHandle` or
`~lsst.pipe.base.InMemoryDatasetHandle`, and returns the
result of the calculation as a single column.
Each functor defines what columns are needed for the calculation, and only
these columns are read from the dataset handle.

The action of `__call__` consists of two steps: first, loading the
necessary columns from disk into memory as a `~pandas.DataFrame` object;
and second, performing the computation on this DataFrame and returning the
result.

To define a new `Functor`, a subclass must define a `_func` method,
that takes a `~pandas.DataFrame` and returns result in a `~pandas.Series`.
In addition, it must define the following attributes:

* `_columns`: The columns necessary to perform the calculation
* `name`: A name appropriate for a figure axis label
* `shortname`: A name appropriate for use as a dictionary key

On initialization, a `Functor` should declare what band (``filt`` kwarg)
and dataset (e.g. ``'ref'``, ``'meas'``, ``'forced_src'``) it is intended
to be applied to.
This enables the `_get_data` method to extract the proper columns from the
underlying data.
If not specified, the dataset will fall back on the `_defaultDataset`
attribute.
If band is not specified and ``dataset`` is anything other than ``'ref'``,
then an error will be raised when trying to perform the calculation.

Originally, `Functor` was set up to expect datasets formatted like the
``deepCoadd_obj`` dataset; that is, a DataFrame with a multi-level column
index, with the levels of the column index being ``band``, ``dataset``, and
``column``.
It has since been generalized to apply to DataFrames without multi-level
indices and multi-level indices with just ``dataset`` and ``column``
levels.
In addition, the `_get_data` method that reads the columns from the
underlying data will return a DataFrame with column index levels defined by
the `_dfLevels` attribute; by default, this is ``column``.

The `_dfLevels` attributes should generally not need to be changed, unless
`_func` needs columns from multiple filters or datasets to do the
calculation.
An example of this is the `~lsst.pipe.tasks.functors.Color` functor, for
which `_dfLevels = ('band', 'column')`, and `_func` expects the DataFrame
it gets to have those levels in the column index.

Parameters
----------
filt : str
    Band upon which to do the calculation.

dataset : str
    Dataset upon which to do the calculation (e.g., 'ref', 'meas',
    'forced_src').

Definition at line 94 of file functors.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.pipe.tasks.functors.Functor.__init__ (   self,
  filt = None,
  dataset = None,
  noDup = None 
)

Member Function Documentation

◆ __call__()

def lsst.pipe.tasks.functors.Functor.__call__ (   self,
  data,
  dropna = False 
)

◆ columns()

def lsst.pipe.tasks.functors.Functor.columns (   self)

◆ difference()

def lsst.pipe.tasks.functors.Functor.difference (   self,
  data1,
  data2,
**  kwargs 
)
Computes difference between functor called on two different
DataFrame/Handle objects.

Definition at line 357 of file functors.py.

◆ fail()

def lsst.pipe.tasks.functors.Functor.fail (   self,
  df 
)

Definition at line 363 of file functors.py.

◆ multilevelColumns()

def lsst.pipe.tasks.functors.Functor.multilevelColumns (   self,
  data,
  columnIndex = None,
  returnTuple = False 
)
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 in lsst.pipe.tasks.functors.CompositeFunctor, and lsst.pipe.tasks.functors.Color.

Definition at line 234 of file functors.py.

◆ name()

def lsst.pipe.tasks.functors.Functor.name (   self)

◆ noDup()

def lsst.pipe.tasks.functors.Functor.noDup (   self)
Do not explode by band if used on object table.

Definition at line 167 of file functors.py.

◆ shortname()

def lsst.pipe.tasks.functors.Functor.shortname (   self)
Short name of functor (suitable for column name/dict key).

Reimplemented in lsst.pipe.tasks.functors.MagDiff, and lsst.pipe.tasks.functors.Color.

Definition at line 372 of file functors.py.

Member Data Documentation

◆ dataset

lsst.pipe.tasks.functors.Functor.dataset

Definition at line 162 of file functors.py.

◆ filt

lsst.pipe.tasks.functors.Functor.filt

◆ log

lsst.pipe.tasks.functors.Functor.log

Definition at line 164 of file functors.py.


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