Source code for marvin.tools.quantities.analysis_props

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# @Author: Brian Cherinka, José Sánchez-Gallego, and Brett Andrews
# @Date: 2016-06-13
# @Filename: analysis_props.py
# @License: BSD 3-clause (http://www.opensource.org/licenses/BSD-3-Clause)
#
# @Last modified by: José Sánchez-Gallego (gallegoj@uw.edu)
# @Last modified time: 2018-07-22 01:52:54


from __future__ import absolute_import, division, print_function

from astropy.units import Quantity, dimensionless_unscaled

from .base_quantity import QuantityMixIn


__all__ = ['AnalysisProperty']


[docs]class AnalysisProperty(Quantity, QuantityMixIn): """A class describing a measurement with additional information. Represents a quantity with an associated unit and possibly an associated error and mask. Parameters: value (float): The value of the quantity. unit (astropy.unit.Unit, optional): The unit of the quantity. scale (float, optional): The scale factor of the quantity value. ivar (float or None): The inverse variance associated with ``value``, or ``None`` if not defined. mask (int or None): The mask value associated with ``value``, or ``None`` if not defined. pixmask_flag (str): The maskbit flag to be used to convert from mask bits to labels (e.g., MANGA_DAPPIXMASK). """ def __new__(cls, value, unit=dimensionless_unscaled, scale=1, ivar=None, mask=None, pixmask_flag=None, dtype=None, copy=True): obj = Quantity(value, unit=unit, dtype=dtype, copy=copy) obj = obj.view(cls) obj._set_unit(unit) obj.ivar = ivar obj.mask = mask obj.pixmask_flag = pixmask_flag return obj def __array_finalize__(self, obj): if obj is None: return self.ivar = getattr(obj, 'ivar', None) self.mask = getattr(obj, 'mask', None) self._set_unit(getattr(obj, 'unit', None)) @property def std(self): """The standard deviation of the measurement.""" return self.error