Skip to main content
`Ctrl`+`K`

# VarianceUncertainty

class astropy.nddata.VarianceUncertainty(array=None, copy=True, unit=None)

  Bases: `_VariancePropagationMixin`, `NDUncertainty`

  Variance uncertainty assuming first order Gaussian error propagation.

  This class implements uncertainty propagation for `addition`, `subtraction`, `multiplication` and `division` with other instances of `VarianceUncertainty`. The class can handle if the uncertainty has a unit that differs from (but is convertible to) the parents `NDData` unit. The unit of the resulting uncertainty will be the square of the unit of the resulting data. Also support for correlation is possible but requires the correlation as input. It cannot handle correlation determination itself.

  Parameters:
    args, kwargs

      see `NDUncertainty`

  Examples

  Compare this example to that in `StdDevUncertainty`; the uncertainties in the examples below are equivalent to the uncertainties in `StdDevUncertainty`.

  `VarianceUncertainty` should always be associated with an `NDData`-like instance, either by creating it during initialization:

      >>> from astropy.nddata import NDData, VarianceUncertainty
      >>> ndd = NDData([1,2,3], unit='m',
      ...              uncertainty=VarianceUncertainty([0.01, 0.01, 0.01]))
      >>> ndd.uncertainty
      VarianceUncertainty([0.01, 0.01, 0.01])

  or by setting it manually on the `NDData` instance:

      >>> ndd.uncertainty = VarianceUncertainty([0.04], unit='m^2', copy=True)
      >>> ndd.uncertainty
      VarianceUncertainty([0.04])

  the uncertainty `array` can also be set directly:

      >>> ndd.uncertainty.array = 4
      >>> ndd.uncertainty
      VarianceUncertainty(4)

  Note

  The unit will not be displayed.

  Attributes Summary

  `supports_correlated` | `True` : `VarianceUncertainty` allows to propagate correlated uncertainties.
  `uncertainty_type` | `"var"` : `VarianceUncertainty` implements variance.

  Attributes Documentation

  supports_correlated

    `True` : `VarianceUncertainty` allows to propagate correlated uncertainties.

    `correlation` must be given, this class does not implement computing it by itself.

  uncertainty_type

    `"var"` : `VarianceUncertainty` implements variance.