xarray.Dataset.pint.dequantify

Dataset.pint.dequantify(format=None)

Convert units from the Dataset to string attributes.

Will replace .attrs['units'] on each variable with a string representation of the pint.Unit instance.

Parameters

format (str, default: None) – The format specification (as accepted by pint’s unit formatter) used for the string representations. If None, the registry’s default (pint.UnitRegistry.default_format) is used instead.

Returns

dequantified – Dataset whose data variables are unitless, and of the type that was previously wrapped by pint.Quantity.

Return type

Dataset

See also

String formatting

pint’s string formatting guide

Examples

>>> ds = xr.Dataset({"a": ("x", [0, 1]), "b": ("y", [2, 3, 4])})
>>> q = ds.pint.quantify({"a": "m / s", "b": "s"})
>>> q
<xarray.Dataset>
Dimensions:  (x: 2, y: 3)
Dimensions without coordinates: x, y
Data variables:
    a        (x) int64 [m/s] 0 1
    b        (y) int64 [s] 2 3 4
>>> d = q.pint.dequantify(format="P")
>>> d.a
<xarray.DataArray 'a' (x: 2)>
array([0, 1])
Dimensions without coordinates: x
.. attribute:: units

meter/second

>>> d.b
<xarray.DataArray 'b' (y: 3)>
array([2, 3, 4])
Dimensions without coordinates: y
.. attribute:: units

second

>>> d = q.pint.dequantify(format="~P")
>>> d.a
<xarray.DataArray 'a' (x: 2)>
array([0, 1])
Dimensions without coordinates: x
.. attribute:: units

m/s

>>> d.b
<xarray.DataArray 'b' (y: 3)>
array([2, 3, 4])
Dimensions without coordinates: y
.. attribute:: units

s

Use the registry’s default format

>>> pint_xarray.unit_registry.default_format = "~L"
>>> d = q.pint.dequantify()
>>> d.a
<xarray.DataArray 'a' (x: 2)>
array([0, 1])
Dimensions without coordinates: x
.. attribute:: units

frac{mathrm{m}}{mathrm{s}}

>>> d.b
<xarray.DataArray 'b' (y: 3)>
array([2, 3, 4])
Dimensions without coordinates: y
.. attribute:: units

mathrm{s}