LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | Public Attributes | List of all members
lsst.pipe.tasks.functors.Color Class Reference
Inheritance diagram for lsst.pipe.tasks.functors.Color:
lsst.pipe.tasks.functors.Functor

Public Member Functions

def __init__ (self, col, filt2, filt1, **kwargs)
 
def filt (self)
 
def filt (self, filt)
 
def columns (self)
 
def multilevelColumns (self, parq, **kwargs)
 
def name (self)
 
def shortname (self)
 
def noDup (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)
 

Public Attributes

 col
 
 filt2
 
 filt1
 
 mag2
 
 mag1
 
 filt
 
 dataset
 

Detailed Description

Compute the color between two filters

Computes color by initializing two different `Mag`
functors based on the `col` and filters provided, and
then returning the difference.

This is enabled by the `_func` expecting a dataframe with a
multilevel column index, with both `'band'` and `'column'`,
instead of just `'column'`, which is the `Functor` default.
This is controlled by the `_dfLevels` attribute.

Also of note, the default dataset for `Color` is `forced_src'`,
whereas for `Mag` it is `'meas'`.

Parameters
----------
col : str
    Name of flux column from which to compute; same as would be passed to
    `lsst.pipe.tasks.functors.Mag`.

filt2, filt1 : str
    Filters from which to compute magnitude difference.
    Color computed is `Mag(filt2) - Mag(filt1)`.

Definition at line 897 of file functors.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.pipe.tasks.functors.Color.__init__ (   self,
  col,
  filt2,
  filt1,
**  kwargs 
)

Definition at line 926 of file functors.py.

926  def __init__(self, col, filt2, filt1, **kwargs):
927  self.col = fluxName(col)
928  if filt2 == filt1:
929  raise RuntimeError("Cannot compute Color for %s: %s - %s " % (col, filt2, filt1))
930  self.filt2 = filt2
931  self.filt1 = filt1
932 
933  self.mag2 = Mag(col, filt=filt2, **kwargs)
934  self.mag1 = Mag(col, filt=filt1, **kwargs)
935 
936  super().__init__(**kwargs)
937 

Member Function Documentation

◆ __call__()

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

Definition at line 340 of file functors.py.

340  def __call__(self, data, dropna=False):
341  try:
342  df = self._get_data(data)
343  vals = self._func(df)
344  except Exception:
345  vals = self.fail(df)
346  if dropna:
347  vals = self._dropna(vals)
348 
349  return vals
350 

◆ columns()

def lsst.pipe.tasks.functors.Color.columns (   self)
Columns required to perform calculation

Reimplemented from lsst.pipe.tasks.functors.Functor.

Definition at line 952 of file functors.py.

952  def columns(self):
953  return [self.mag1.col, self.mag2.col]
954 

◆ difference()

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

Definition at line 351 of file functors.py.

351  def difference(self, data1, data2, **kwargs):
352  """Computes difference between functor called on two different ParquetTable objects
353  """
354  return self(data1, **kwargs) - self(data2, **kwargs)
355 

◆ fail()

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

Definition at line 356 of file functors.py.

356  def fail(self, df):
357  return pd.Series(np.full(len(df), np.nan), index=df.index)
358 

◆ filt() [1/2]

def lsst.pipe.tasks.functors.Color.filt (   self)

Definition at line 939 of file functors.py.

939  def filt(self):
940  return None
941 

◆ filt() [2/2]

def lsst.pipe.tasks.functors.Color.filt (   self,
  filt 
)

Definition at line 943 of file functors.py.

943  def filt(self, filt):
944  pass
945 

◆ multilevelColumns() [1/2]

def lsst.pipe.tasks.functors.Functor.multilevelColumns (   self,
  data,
  columnIndex = None,
  returnTuple = False 
)
inherited
Returns columns needed by functor from multilevel dataset

To access tables with multilevel column structure, the `MultilevelParquetTable`
or `DeferredDatasetHandle` need to be passed either a list of tuples or a
dictionary.

Parameters
----------
data : `MultilevelParquetTable` or `DeferredDatasetHandle`

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.

Definition at line 229 of file functors.py.

229  def multilevelColumns(self, data, columnIndex=None, returnTuple=False):
230  """Returns columns needed by functor from multilevel dataset
231 
232  To access tables with multilevel column structure, the `MultilevelParquetTable`
233  or `DeferredDatasetHandle` need to be passed either a list of tuples or a
234  dictionary.
235 
236  Parameters
237  ----------
238  data : `MultilevelParquetTable` or `DeferredDatasetHandle`
239 
240  columnIndex (optional): pandas `Index` object
241  either passed or read in from `DeferredDatasetHandle`.
242 
243  `returnTuple` : bool
244  If true, then return a list of tuples rather than the column dictionary
245  specification. This is set to `True` by `CompositeFunctor` in order to be able to
246  combine columns from the various component functors.
247 
248  """
249  if isinstance(data, DeferredDatasetHandle) and columnIndex is None:
250  columnIndex = data.get(component="columns")
251 
252  # Confirm that the dataset has the column levels the functor is expecting it to have.
253  columnLevels = self._get_data_columnLevels(data, columnIndex)
254 
255  columnDict = {'column': self.columns,
256  'dataset': self.dataset}
257  if self.filt is None:
258  columnLevelNames = self._get_data_columnLevelNames(data, columnIndex)
259  if "band" in columnLevels:
260  if self.dataset == "ref":
261  columnDict["band"] = columnLevelNames["band"][0]
262  else:
263  raise ValueError(f"'filt' not set for functor {self.name}"
264  f"(dataset {self.dataset}) "
265  "and ParquetTable "
266  "contains multiple filters in column index. "
267  "Set 'filt' or set 'dataset' to 'ref'.")
268  else:
269  columnDict['band'] = self.filt
270 
271  if isinstance(data, MultilevelParquetTable):
272  return data._colsFromDict(columnDict)
273  elif isinstance(data, DeferredDatasetHandle):
274  if returnTuple:
275  return self._colsFromDict(columnDict, columnIndex=columnIndex)
276  else:
277  return columnDict
278 

◆ multilevelColumns() [2/2]

def lsst.pipe.tasks.functors.Color.multilevelColumns (   self,
  parq,
**  kwargs 
)

Definition at line 955 of file functors.py.

955  def multilevelColumns(self, parq, **kwargs):
956  return [(self.dataset, self.filt1, self.col), (self.dataset, self.filt2, self.col)]
957 

◆ name()

def lsst.pipe.tasks.functors.Color.name (   self)
Full name of functor (suitable for figure labels)

Reimplemented from lsst.pipe.tasks.functors.Functor.

Definition at line 959 of file functors.py.

959  def name(self):
960  return f'{self.filt2} - {self.filt1} ({self.col})'
961 
table::Key< std::string > name
Definition: Amplifier.cc:116

◆ noDup()

def lsst.pipe.tasks.functors.Functor.noDup (   self)
inherited

Definition at line 148 of file functors.py.

148  def noDup(self):
149  if self._noDup is not None:
150  return self._noDup
151  else:
152  return self._defaultNoDup
153 

◆ shortname()

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

Reimplemented from lsst.pipe.tasks.functors.Functor.

Definition at line 963 of file functors.py.

963  def shortname(self):
964  return f"{self.col}_{self.filt2.replace('-', '')}m{self.filt1.replace('-', '')}"
965 
966 

Member Data Documentation

◆ col

lsst.pipe.tasks.functors.Color.col

Definition at line 927 of file functors.py.

◆ dataset

lsst.pipe.tasks.functors.Functor.dataset
inherited

Definition at line 144 of file functors.py.

◆ filt

lsst.pipe.tasks.functors.Functor.filt
inherited

Definition at line 143 of file functors.py.

◆ filt1

lsst.pipe.tasks.functors.Color.filt1

Definition at line 931 of file functors.py.

◆ filt2

lsst.pipe.tasks.functors.Color.filt2

Definition at line 930 of file functors.py.

◆ mag1

lsst.pipe.tasks.functors.Color.mag1

Definition at line 934 of file functors.py.

◆ mag2

lsst.pipe.tasks.functors.Color.mag2

Definition at line 933 of file functors.py.


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