|
LSST Applications g00274db5b6+edbf708997,g00d0e8bbd7+edbf708997,g199a45376c+5137f08352,g1fd858c14a+1d4b6db739,g262e1987ae+f4d9505c4f,g29ae962dfc+7156fb1a53,g2cef7863aa+73c82f25e4,g35bb328faa+edbf708997,g3e17d7035e+5b3adc59f5,g3fd5ace14f+852fa6fbcb,g47891489e3+6dc8069a4c,g53246c7159+edbf708997,g64539dfbff+9f17e571f4,g67b6fd64d1+6dc8069a4c,g74acd417e5+ae494d68d9,g786e29fd12+af89c03590,g7ae74a0b1c+a25e60b391,g7aefaa3e3d+536efcc10a,g7cc15d900a+d121454f8d,g87389fa792+a4172ec7da,g89139ef638+6dc8069a4c,g8d7436a09f+28c28d8d6d,g8ea07a8fe4+db21c37724,g92c671f44c+9f17e571f4,g98df359435+b2e6376b13,g99af87f6a8+b0f4ad7b8d,gac66b60396+966efe6077,gb88ae4c679+7dec8f19df,gbaa8f7a6c5+38b34f4976,gbf99507273+edbf708997,gc24b5d6ed1+9f17e571f4,gca7fc764a6+6dc8069a4c,gcc769fe2a4+97d0256649,gd7ef33dd92+6dc8069a4c,gdab6d2f7ff+ae494d68d9,gdbb4c4dda9+9f17e571f4,ge410e46f29+6dc8069a4c,geaed405ab2+e194be0d2b,w.2025.47
LSST Data Management Base Package
|
Public Member Functions | |
| __init__ (self, filt=None, dataset=None, noDup=None) | |
| noDup (self) | |
| columns (self) | |
| multilevelColumns (self, data, columnIndex=None, returnTuple=False) | |
| __call__ (self, data, dropna=False) | |
| difference (self, data1, data2, **kwargs) | |
| fail (self, df) | |
| name (self) | |
| shortname (self) | |
Public Attributes | |
| filt = filt | |
| str | dataset = dataset if dataset is not None else self._defaultDataset |
| log = logging.getLogger(type(self).__name__) | |
| name | |
Protected Member Functions | |
| _get_data_columnLevels (self, data, columnIndex=None) | |
| _get_data_columnLevelNames (self, data, columnIndex=None) | |
| _colsFromDict (self, colDict, columnIndex=None) | |
| _func (self, df, dropna=True) | |
| _get_columnIndex (self, data) | |
| _get_data (self, data) | |
| _setLevels (self, df) | |
| _dropna (self, vals) | |
Protected Attributes | |
| _noDup = noDup | |
Static Protected Attributes | |
| str | _defaultDataset = 'ref' |
| tuple | _dfLevels = ('column',) |
| bool | _defaultNoDup = False |
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 97 of file functors.py.
| lsst.pipe.tasks.functors.Functor.__init__ | ( | self, | |
| filt = None, | |||
| dataset = None, | |||
| noDup = None ) |
Definition at line 163 of file functors.py.
| lsst.pipe.tasks.functors.Functor.__call__ | ( | self, | |
| data, | |||
| dropna = False ) |
Definition at line 348 of file functors.py.
|
protected |
Converts dictionary column specficiation to a list of columns.
Definition at line 218 of file functors.py.
|
protected |
Definition at line 345 of file functors.py.
|
protected |
Reimplemented in lsst.pipe.tasks.functors.Color, lsst.pipe.tasks.functors.Column, lsst.pipe.tasks.functors.ComputePixelScale, lsst.pipe.tasks.functors.ConvertDetectorAngleToPositionAngle, lsst.pipe.tasks.functors.ConvertPixelSqToArcsecondsSq, lsst.pipe.tasks.functors.ConvertPixelToArcseconds, lsst.pipe.tasks.functors.CoordColumn, 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.LocalDipoleDiffFlux, lsst.pipe.tasks.functors.LocalDipoleDiffFluxErr, lsst.pipe.tasks.functors.LocalDipoleMeanFlux, lsst.pipe.tasks.functors.LocalDipoleMeanFluxErr, lsst.pipe.tasks.functors.LocalNanojansky, lsst.pipe.tasks.functors.LocalNanojanskyErr, lsst.pipe.tasks.functors.Mag, lsst.pipe.tasks.functors.MagDiff, lsst.pipe.tasks.functors.MagErr, lsst.pipe.tasks.functors.MomentsIuuSky, lsst.pipe.tasks.functors.MomentsIuvSky, lsst.pipe.tasks.functors.MomentsIvvSky, lsst.pipe.tasks.functors.MultibandSinglePrecisionFloatColumn, lsst.pipe.tasks.functors.NanoJansky, lsst.pipe.tasks.functors.NanoJanskyErr, lsst.pipe.tasks.functors.PositionAngleFromMoments, lsst.pipe.tasks.functors.PsfHsmTraceSizeDiff, lsst.pipe.tasks.functors.PsfSdssTraceSizeDiff, lsst.pipe.tasks.functors.RADecCovColumn, lsst.pipe.tasks.functors.RadiusFromQuadrupole, lsst.pipe.tasks.functors.ReferenceBand, lsst.pipe.tasks.functors.SdssTraceSize, lsst.pipe.tasks.functors.SemimajorAxisFromMoments, lsst.pipe.tasks.functors.SemiminorAxisFromMoments, and lsst.pipe.tasks.functors.SinglePrecisionFloatColumn.
Definition at line 291 of file functors.py.
|
protected |
Return columnIndex.
Definition at line 294 of file functors.py.
|
protected |
Retrieve DataFrame necessary for calculation. The data argument can be a `~pandas.DataFrame`, a `~lsst.daf.butler.DeferredDatasetHandle`, or an `~lsst.pipe.base.InMemoryDatasetHandle`. Returns a DataFrame upon which `self._func` can act.
Definition at line 302 of file functors.py.
|
protected |
Gets the content of each of the column levels for a multilevel table.
Definition at line 204 of file functors.py.
|
protected |
Gets the names of the column index levels.
This should only be called in the context of a multilevel table.
Parameters
----------
data : various
The data to be read, can be a
`~lsst.daf.butler.DeferredDatasetHandle` or
`~lsst.pipe.base.InMemoryDatasetHandle`.
columnIndex (optional): pandas `~pandas.Index` object
If not passed, then it is read from the
`~lsst.daf.butler.DeferredDatasetHandle`
for `~lsst.pipe.base.InMemoryDatasetHandle`.
Definition at line 184 of file functors.py.
|
protected |
Definition at line 340 of file functors.py.
| lsst.pipe.tasks.functors.Functor.columns | ( | self | ) |
Columns required to perform calculation.
Reimplemented in lsst.pipe.tasks.functors.Color, lsst.pipe.tasks.functors.Column, lsst.pipe.tasks.functors.CompositeFunctor, lsst.pipe.tasks.functors.ComputePixelScale, lsst.pipe.tasks.functors.ConvertDetectorAngleToPositionAngle, lsst.pipe.tasks.functors.ConvertPixelSqToArcsecondsSq, lsst.pipe.tasks.functors.ConvertPixelToArcseconds, lsst.pipe.tasks.functors.CustomFunctor, lsst.pipe.tasks.functors.E1, lsst.pipe.tasks.functors.E2, lsst.pipe.tasks.functors.LocalDipoleDiffFlux, lsst.pipe.tasks.functors.LocalDipoleDiffFluxErr, lsst.pipe.tasks.functors.LocalDipoleMeanFlux, lsst.pipe.tasks.functors.LocalDipoleMeanFluxErr, lsst.pipe.tasks.functors.LocalNanojansky, lsst.pipe.tasks.functors.LocalNanojanskyErr, lsst.pipe.tasks.functors.Mag, lsst.pipe.tasks.functors.MagDiff, lsst.pipe.tasks.functors.MagErr, lsst.pipe.tasks.functors.MomentsBase, lsst.pipe.tasks.functors.NanoJanskyErr, lsst.pipe.tasks.functors.Photometry, lsst.pipe.tasks.functors.RadiusFromQuadrupole, and lsst.pipe.tasks.functors.ReferenceBand.
Definition at line 178 of file functors.py.
| lsst.pipe.tasks.functors.Functor.difference | ( | self, | |
| data1, | |||
| data2, | |||
| ** | kwargs ) |
Computes difference between functor called on two different DataFrame/Handle objects.
Definition at line 360 of file functors.py.
| lsst.pipe.tasks.functors.Functor.fail | ( | self, | |
| df ) |
Definition at line 366 of file functors.py.
| 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.Color, and lsst.pipe.tasks.functors.CompositeFunctor.
Definition at line 237 of file functors.py.
| lsst.pipe.tasks.functors.Functor.name | ( | self | ) |
Full name of functor (suitable for figure labels).
Reimplemented in lsst.pipe.tasks.functors.Color, lsst.pipe.tasks.functors.Column, lsst.pipe.tasks.functors.ConvertPixelSqToArcsecondsSq, lsst.pipe.tasks.functors.ConvertPixelToArcseconds, lsst.pipe.tasks.functors.CustomFunctor, lsst.pipe.tasks.functors.LocalDipoleDiffFlux, lsst.pipe.tasks.functors.LocalDipoleDiffFluxErr, lsst.pipe.tasks.functors.LocalDipoleMeanFlux, lsst.pipe.tasks.functors.LocalDipoleMeanFluxErr, lsst.pipe.tasks.functors.LocalNanojansky, lsst.pipe.tasks.functors.LocalNanojanskyErr, lsst.pipe.tasks.functors.Mag, lsst.pipe.tasks.functors.MagDiff, lsst.pipe.tasks.functors.MagErr, and lsst.pipe.tasks.functors.Photometry.
Definition at line 370 of file functors.py.
| lsst.pipe.tasks.functors.Functor.noDup | ( | self | ) |
Do not explode by band if used on object table.
Definition at line 170 of file functors.py.
| lsst.pipe.tasks.functors.Functor.shortname | ( | self | ) |
Short name of functor (suitable for column name/dict key).
Reimplemented in lsst.pipe.tasks.functors.Color, and lsst.pipe.tasks.functors.MagDiff.
Definition at line 375 of file functors.py.
|
staticprotected |
Definition at line 159 of file functors.py.
|
staticprotected |
Definition at line 161 of file functors.py.
|
staticprotected |
Definition at line 160 of file functors.py.
|
protected |
Definition at line 166 of file functors.py.
| str lsst.pipe.tasks.functors.Functor.dataset = dataset if dataset is not None else self._defaultDataset |
Definition at line 165 of file functors.py.
| lsst.pipe.tasks.functors.Functor.filt = filt |
Reimplemented in lsst.pipe.tasks.functors.Color, lsst.pipe.tasks.functors.Color, lsst.pipe.tasks.functors.CompositeFunctor, and lsst.pipe.tasks.functors.CompositeFunctor.
Definition at line 164 of file functors.py.
| lsst.pipe.tasks.functors.Functor.log = logging.getLogger(type(self).__name__) |
Definition at line 167 of file functors.py.
| lsst.pipe.tasks.functors.Functor.name |
Reimplemented in lsst.pipe.tasks.functors.Color, lsst.pipe.tasks.functors.Column, lsst.pipe.tasks.functors.ConvertPixelSqToArcsecondsSq, lsst.pipe.tasks.functors.ConvertPixelToArcseconds, lsst.pipe.tasks.functors.CustomFunctor, lsst.pipe.tasks.functors.LocalDipoleDiffFlux, lsst.pipe.tasks.functors.LocalDipoleDiffFluxErr, lsst.pipe.tasks.functors.LocalDipoleMeanFlux, lsst.pipe.tasks.functors.LocalDipoleMeanFluxErr, lsst.pipe.tasks.functors.LocalNanojansky, lsst.pipe.tasks.functors.LocalNanojanskyErr, lsst.pipe.tasks.functors.Mag, lsst.pipe.tasks.functors.MagDiff, lsst.pipe.tasks.functors.MagErr, and lsst.pipe.tasks.functors.Photometry.
Definition at line 353 of file functors.py.