# Using Measurements

If you have the Uncertainties package installed, you can use Pint to keep track of measurements with specified uncertainty, and not just exact physical quantities.

Measurements are the combination of two quantities: the mean value and the error (or uncertainty). The easiest ways to generate a measurement object is from a quantity using the `plus_minus()` method.

    >>> import numpy as np
    >>> from pint import UnitRegistry
    >>> ureg = UnitRegistry()
    >>> book_length = (20. * ureg.centimeter).plus_minus(2.)
    >>> print(book_length)
    (20.0 +/- 2.0) centimeter

You can inspect the mean value, the absolute error and the relative error:

    >>> print(book_length.value)
    20.0 centimeter
    >>> print(book_length.error)
    2.0 centimeter
    >>> print(book_length.rel)
    0.1

You can also create a Measurement object giving the relative error:

    >>> book_length = (20. * ureg.centimeter).plus_minus(.1, relative=True)
    >>> print(book_length)
    (20.0 +/- 2.0) centimeter

Measurements support the same formatting codes as Quantity. For example, to pretty print a measurement with 2 decimal positions:

    >>> print('{:.02fP}'.format(book_length))
    (20.00 ± 2.00) centimeter

Mathematical operations with Measurements, return new measurements following the Propagation of uncertainty rules.

    >>> print(2 * book_length)
    (40 +/- 4) centimeter
    >>> width = (10 * ureg.centimeter).plus_minus(1)
    >>> print('{:.02f}'.format(book_length + width))
    (30.00 +/- 2.24) centimeter

Note

Only linear combinations are currently supported.