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 | Static Public Attributes | List of all members
lsst.pipe.tasks.functors.Photometry Class Reference
Inheritance diagram for lsst.pipe.tasks.functors.Photometry:
lsst.pipe.tasks.functors.Functor lsst.pipe.tasks.functors.Magnitude lsst.pipe.tasks.functors.MagnitudeErr lsst.pipe.tasks.functors.NanoJansky lsst.pipe.tasks.functors.NanoJanskyErr

Public Member Functions

def __init__ (self, colFlux, colFluxErr=None, calib=None, **kwargs)
 
def columns (self)
 
def name (self)
 
def hypot (cls, a, b)
 
def dn2flux (self, dn, fluxMag0)
 
def dn2mag (self, dn, fluxMag0)
 
def dn2fluxErr (self, dn, dnErr, fluxMag0, fluxMag0Err)
 
def dn2MagErr (self, dn, dnErr, fluxMag0, fluxMag0Err)
 
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)
 
def shortname (self)
 

Public Attributes

 vhypot
 
 col
 
 colFluxErr
 
 calib
 
 fluxMag0Err
 
 fluxMag0
 
 filt
 
 dataset
 

Static Public Attributes

tuple AB_FLUX_SCALE = (0 * u.ABmag).to_value(u.nJy)
 
float LOG_AB_FLUX_SCALE = 12.56
 
float FIVE_OVER_2LOG10 = 1.085736204758129569
 
int COADD_ZP = 27
 

Detailed Description

Definition at line 1414 of file functors.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.pipe.tasks.functors.Photometry.__init__ (   self,
  colFlux,
  colFluxErr = None,
  calib = None,
**  kwargs 
)

Definition at line 1422 of file functors.py.

1422  def __init__(self, colFlux, colFluxErr=None, calib=None, **kwargs):
1423  self.vhypot = np.vectorize(self.hypot)
1424  self.col = colFlux
1425  self.colFluxErr = colFluxErr
1426 
1427  self.calib = calib
1428  if calib is not None:
1429  self.fluxMag0, self.fluxMag0Err = calib.getFluxMag0()
1430  else:
1431  self.fluxMag0 = 1./np.power(10, -0.4*self.COADD_ZP)
1432  self.fluxMag0Err = 0.
1433 
1434  super().__init__(**kwargs)
1435 

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.Photometry.columns (   self)
Columns required to perform calculation

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

Reimplemented in lsst.pipe.tasks.functors.MagnitudeErr, and lsst.pipe.tasks.functors.NanoJanskyErr.

Definition at line 1437 of file functors.py.

1437  def columns(self):
1438  return [self.col]
1439 

◆ 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 

◆ dn2flux()

def lsst.pipe.tasks.functors.Photometry.dn2flux (   self,
  dn,
  fluxMag0 
)

Definition at line 1453 of file functors.py.

1453  def dn2flux(self, dn, fluxMag0):
1454  return self.AB_FLUX_SCALE * dn / fluxMag0
1455 

◆ dn2fluxErr()

def lsst.pipe.tasks.functors.Photometry.dn2fluxErr (   self,
  dn,
  dnErr,
  fluxMag0,
  fluxMag0Err 
)

Definition at line 1462 of file functors.py.

1462  def dn2fluxErr(self, dn, dnErr, fluxMag0, fluxMag0Err):
1463  retVal = self.vhypot(dn * fluxMag0Err, dnErr * fluxMag0)
1464  retVal *= self.AB_FLUX_SCALE / fluxMag0 / fluxMag0
1465  return retVal
1466 

◆ dn2mag()

def lsst.pipe.tasks.functors.Photometry.dn2mag (   self,
  dn,
  fluxMag0 
)

Definition at line 1456 of file functors.py.

1456  def dn2mag(self, dn, fluxMag0):
1457  with np.warnings.catch_warnings():
1458  np.warnings.filterwarnings('ignore', r'invalid value encountered')
1459  np.warnings.filterwarnings('ignore', r'divide by zero')
1460  return -2.5 * np.log10(dn/fluxMag0)
1461 

◆ dn2MagErr()

def lsst.pipe.tasks.functors.Photometry.dn2MagErr (   self,
  dn,
  dnErr,
  fluxMag0,
  fluxMag0Err 
)

Definition at line 1467 of file functors.py.

1467  def dn2MagErr(self, dn, dnErr, fluxMag0, fluxMag0Err):
1468  retVal = self.dn2fluxErr(dn, dnErr, fluxMag0, fluxMag0Err) / self.dn2flux(dn, fluxMag0)
1469  return self.FIVE_OVER_2LOG10 * retVal
1470 
1471 

◆ 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 

◆ hypot()

def lsst.pipe.tasks.functors.Photometry.hypot (   cls,
  a,
  b 
)

Definition at line 1445 of file functors.py.

1445  def hypot(cls, a, b):
1446  if np.abs(a) < np.abs(b):
1447  a, b = b, a
1448  if a == 0.:
1449  return 0.
1450  q = b/a
1451  return np.abs(a) * np.sqrt(1. + q*q)
1452 

◆ multilevelColumns()

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 

◆ name()

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

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

Definition at line 1441 of file functors.py.

1441  def name(self):
1442  return f'mag_{self.col}'
1443 
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.Functor.shortname (   self)
inherited
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 366 of file functors.py.

366  def shortname(self):
367  """Short name of functor (suitable for column name/dict key)
368  """
369  return self.name
370 
371 

Member Data Documentation

◆ AB_FLUX_SCALE

tuple lsst.pipe.tasks.functors.Photometry.AB_FLUX_SCALE = (0 * u.ABmag).to_value(u.nJy)
static

Definition at line 1416 of file functors.py.

◆ calib

lsst.pipe.tasks.functors.Photometry.calib

Definition at line 1427 of file functors.py.

◆ COADD_ZP

int lsst.pipe.tasks.functors.Photometry.COADD_ZP = 27
static

Definition at line 1420 of file functors.py.

◆ col

lsst.pipe.tasks.functors.Photometry.col

Definition at line 1424 of file functors.py.

◆ colFluxErr

lsst.pipe.tasks.functors.Photometry.colFluxErr

Definition at line 1425 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.

◆ FIVE_OVER_2LOG10

float lsst.pipe.tasks.functors.Photometry.FIVE_OVER_2LOG10 = 1.085736204758129569
static

Definition at line 1418 of file functors.py.

◆ fluxMag0

lsst.pipe.tasks.functors.Photometry.fluxMag0

Definition at line 1431 of file functors.py.

◆ fluxMag0Err

lsst.pipe.tasks.functors.Photometry.fluxMag0Err

Definition at line 1429 of file functors.py.

◆ LOG_AB_FLUX_SCALE

float lsst.pipe.tasks.functors.Photometry.LOG_AB_FLUX_SCALE = 12.56
static

Definition at line 1417 of file functors.py.

◆ vhypot

lsst.pipe.tasks.functors.Photometry.vhypot

Definition at line 1423 of file functors.py.


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