Arithmetic mixin¶
Overview¶
The NDArithmeticMixin
adds methods for performing basic
operations on NDData
objects:
add()
,
subtract()
,
multiply()
and
divide()
.
The operations are permitted only if the two operands have the same WCS and shape and the units, if any, consistent with the operation performed. The result is masked at a particular grid point if either of the operands is masked at that point.
The operations include a framework to propagate uncertainties that are based
on the classes NDUncertainty
.
Warning
Uncertainty propagation is still experimental, and does not take into account correlated uncertainties.
Usage¶
As with other mixins, using the arithmetic mixin starts with defining your own class:
>>> from astropy.nddata import NDData, NDArithmeticMixin
>>> class MyNDDataArithmetic(NDArithmeticMixin, NDData): pass
Then, create instances of this new object with your data the way you would
with a plain NDData
object:
>>> ndd1 = MyNDDataArithmetic([1, 2])
>>> ndd2 = MyNDDataArithmetic([3, 4])
The mixin adds methods on these instances for combining them:
>>> ndd1.add(ndd2)
MyNDDataArithmetic([4, 6])
>>> ndd2.multiply(ndd1)
MyNDDataArithmetic([3, 8])
One important note: the order you list the mixins and NDData
matters; the base class, NDData
should be on the far
right.