@@ -366,17 +366,18 @@ def quantify(self, units=_default, unit_registry=None, **unit_kwargs):
366366 )
367367
368368 def dequantify (self , format = None ):
369- """
369+ r """
370370 Convert the units of the DataArray to string attributes.
371371
372372 Will replace ``.attrs['units']`` on each variable with a string
373373 representation of the ``pint.Unit`` instance.
374374
375375 Parameters
376376 ----------
377- format : str, optional
377+ format : str, default: None
378378 The format specification (as accepted by pint) used for the string
379- representations.
379+ representations. If ``None``, the registry's default
380+ (:py:attr:`pint.UnitRegistry.default_format`) is used instead.
380381
381382 Returns
382383 -------
@@ -391,23 +392,34 @@ def dequantify(self, format=None):
391392 Examples
392393 --------
393394 >>> da = xr.DataArray([0, 1], dims="x")
394- >>> q = da.pint.quantify("m")
395+ >>> q = da.pint.quantify("m / s ")
395396 >>> q
396397 <xarray.DataArray (x: 2)>
397- <Quantity([0 1], 'meter')>
398+ <Quantity([0 1], 'meter / second ')>
398399 Dimensions without coordinates: x
400+
399401 >>> q.pint.dequantify(format="P")
400402 <xarray.DataArray (x: 2)>
401403 array([0, 1])
402404 Dimensions without coordinates: x
403405 Attributes:
404- units: meter
406+ units: meter/second
405407 >>> q.pint.dequantify(format="~P")
406408 <xarray.DataArray (x: 2)>
407409 array([0, 1])
408410 Dimensions without coordinates: x
409411 Attributes:
410- units: m
412+ units: m/s
413+
414+ Use the registry's default format
415+
416+ >>> pint_xarray.unit_registry.default_format = "~L"
417+ >>> q.pint.dequantify()
418+ <xarray.DataArray (x: 2)>
419+ array([0, 1])
420+ Dimensions without coordinates: x
421+ Attributes:
422+ units: \frac{\mathrm{m}}{\mathrm{s}}
411423 """
412424 units = conversion .extract_unit_attributes (self .da )
413425 units .update (conversion .extract_units (self .da ))
@@ -1044,17 +1056,18 @@ def quantify(self, units=_default, unit_registry=None, **unit_kwargs):
10441056 )
10451057
10461058 def dequantify (self , format = None ):
1047- """
1059+ r """
10481060 Convert units from the Dataset to string attributes.
10491061
10501062 Will replace ``.attrs['units']`` on each variable with a string
10511063 representation of the ``pint.Unit`` instance.
10521064
10531065 Parameters
10541066 ----------
1055- format : str, optional
1067+ format : str, default: None
10561068 The format specification (as accepted by pint) used for the string
1057- representations.
1069+ representations. If ``None``, the registry's default
1070+ (:py:attr:`pint.UnitRegistry.default_format`) is used instead.
10581071
10591072 Returns
10601073 -------
@@ -1069,13 +1082,13 @@ def dequantify(self, format=None):
10691082 Examples
10701083 --------
10711084 >>> ds = xr.Dataset({"a": ("x", [0, 1]), "b": ("y", [2, 3, 4])})
1072- >>> q = ds.pint.quantify({"a": "m", "b": "s"})
1085+ >>> q = ds.pint.quantify({"a": "m / s ", "b": "s"})
10731086 >>> q
10741087 <xarray.Dataset>
10751088 Dimensions: (x: 2, y: 3)
10761089 Dimensions without coordinates: x, y
10771090 Data variables:
1078- a (x) int64 [m] 0 1
1091+ a (x) int64 [m/s ] 0 1
10791092 b (y) int64 [s] 2 3 4
10801093
10811094 >>> d = q.pint.dequantify(format="P")
@@ -1084,7 +1097,7 @@ def dequantify(self, format=None):
10841097 array([0, 1])
10851098 Dimensions without coordinates: x
10861099 Attributes:
1087- units: meter
1100+ units: meter/second
10881101 >>> d.b
10891102 <xarray.DataArray 'b' (y: 3)>
10901103 array([2, 3, 4])
@@ -1098,13 +1111,30 @@ def dequantify(self, format=None):
10981111 array([0, 1])
10991112 Dimensions without coordinates: x
11001113 Attributes:
1101- units: m
1114+ units: m/s
11021115 >>> d.b
11031116 <xarray.DataArray 'b' (y: 3)>
11041117 array([2, 3, 4])
11051118 Dimensions without coordinates: y
11061119 Attributes:
11071120 units: s
1121+
1122+ Use the registry's default format
1123+
1124+ >>> pint_xarray.unit_registry.default_format = "~L"
1125+ >>> d = q.pint.dequantify()
1126+ >>> d.a
1127+ <xarray.DataArray 'a' (x: 2)>
1128+ array([0, 1])
1129+ Dimensions without coordinates: x
1130+ Attributes:
1131+ units: \frac{\mathrm{m}}{\mathrm{s}}
1132+ >>> d.b
1133+ <xarray.DataArray 'b' (y: 3)>
1134+ array([2, 3, 4])
1135+ Dimensions without coordinates: y
1136+ Attributes:
1137+ units: \mathrm{s}
11081138 """
11091139 units = conversion .extract_unit_attributes (self .ds )
11101140 units .update (conversion .extract_units (self .ds ))
0 commit comments