@@ -366,17 +366,18 @@ def quantify(self, units=_default, unit_registry=None, **unit_kwargs):
366
366
)
367
367
368
368
def dequantify (self , format = None ):
369
- """
369
+ r """
370
370
Convert the units of the DataArray to string attributes.
371
371
372
372
Will replace ``.attrs['units']`` on each variable with a string
373
373
representation of the ``pint.Unit`` instance.
374
374
375
375
Parameters
376
376
----------
377
- format : str, optional
377
+ format : str, default: None
378
378
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.
380
381
381
382
Returns
382
383
-------
@@ -391,23 +392,34 @@ def dequantify(self, format=None):
391
392
Examples
392
393
--------
393
394
>>> da = xr.DataArray([0, 1], dims="x")
394
- >>> q = da.pint.quantify("m")
395
+ >>> q = da.pint.quantify("m / s ")
395
396
>>> q
396
397
<xarray.DataArray (x: 2)>
397
- <Quantity([0 1], 'meter')>
398
+ <Quantity([0 1], 'meter / second ')>
398
399
Dimensions without coordinates: x
400
+
399
401
>>> q.pint.dequantify(format="P")
400
402
<xarray.DataArray (x: 2)>
401
403
array([0, 1])
402
404
Dimensions without coordinates: x
403
405
Attributes:
404
- units: meter
406
+ units: meter/second
405
407
>>> q.pint.dequantify(format="~P")
406
408
<xarray.DataArray (x: 2)>
407
409
array([0, 1])
408
410
Dimensions without coordinates: x
409
411
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}}
411
423
"""
412
424
units = conversion .extract_unit_attributes (self .da )
413
425
units .update (conversion .extract_units (self .da ))
@@ -1044,17 +1056,18 @@ def quantify(self, units=_default, unit_registry=None, **unit_kwargs):
1044
1056
)
1045
1057
1046
1058
def dequantify (self , format = None ):
1047
- """
1059
+ r """
1048
1060
Convert units from the Dataset to string attributes.
1049
1061
1050
1062
Will replace ``.attrs['units']`` on each variable with a string
1051
1063
representation of the ``pint.Unit`` instance.
1052
1064
1053
1065
Parameters
1054
1066
----------
1055
- format : str, optional
1067
+ format : str, default: None
1056
1068
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.
1058
1071
1059
1072
Returns
1060
1073
-------
@@ -1069,13 +1082,13 @@ def dequantify(self, format=None):
1069
1082
Examples
1070
1083
--------
1071
1084
>>> 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"})
1073
1086
>>> q
1074
1087
<xarray.Dataset>
1075
1088
Dimensions: (x: 2, y: 3)
1076
1089
Dimensions without coordinates: x, y
1077
1090
Data variables:
1078
- a (x) int64 [m] 0 1
1091
+ a (x) int64 [m/s ] 0 1
1079
1092
b (y) int64 [s] 2 3 4
1080
1093
1081
1094
>>> d = q.pint.dequantify(format="P")
@@ -1084,7 +1097,7 @@ def dequantify(self, format=None):
1084
1097
array([0, 1])
1085
1098
Dimensions without coordinates: x
1086
1099
Attributes:
1087
- units: meter
1100
+ units: meter/second
1088
1101
>>> d.b
1089
1102
<xarray.DataArray 'b' (y: 3)>
1090
1103
array([2, 3, 4])
@@ -1098,13 +1111,30 @@ def dequantify(self, format=None):
1098
1111
array([0, 1])
1099
1112
Dimensions without coordinates: x
1100
1113
Attributes:
1101
- units: m
1114
+ units: m/s
1102
1115
>>> d.b
1103
1116
<xarray.DataArray 'b' (y: 3)>
1104
1117
array([2, 3, 4])
1105
1118
Dimensions without coordinates: y
1106
1119
Attributes:
1107
1120
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}
1108
1138
"""
1109
1139
units = conversion .extract_unit_attributes (self .ds )
1110
1140
units .update (conversion .extract_units (self .ds ))
0 commit comments