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 thepint.Unit
instance.- Parameters:
format (
str
, default:None
) – The format specification (as accepted by pint’s unit formatter) used for the string representations. IfNone
, 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:
See also
- String formatting specification
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> Size: 40B Dimensions: (x: 2, y: 3) Dimensions without coordinates: x, y Data variables: a (x) int64 16B [m/s] 0 1 b (y) int64 24B [s] 2 3 4
>>> d = q.pint.dequantify(format="P") >>> d.a <xarray.DataArray 'a' (x: 2)> Size: 16B array([0, 1]) Dimensions without coordinates: x .. attribute:: units
meter/second
>>> d.b <xarray.DataArray 'b' (y: 3)> Size: 24B array([2, 3, 4]) Dimensions without coordinates: y .. attribute:: units
second
>>> d = q.pint.dequantify(format="~P") >>> d.a <xarray.DataArray 'a' (x: 2)> Size: 16B array([0, 1]) Dimensions without coordinates: x .. attribute:: units
m/s
>>> d.b <xarray.DataArray 'b' (y: 3)> Size: 24B 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)> Size: 16B array([0, 1]) Dimensions without coordinates: x .. attribute:: units
frac{mathrm{m}}{mathrm{s}}
>>> d.b <xarray.DataArray 'b' (y: 3)> Size: 24B array([2, 3, 4]) Dimensions without coordinates: y .. attribute:: units
mathrm{s}