MCPcopy
hub / github.com/pydata/xarray / strip_units

Function strip_units

xarray/tests/test_units.py:148–183  ·  view source on GitHub ↗
(obj)

Source from the content-addressed store, hash-verified

146
147
148def strip_units(obj):
149 if isinstance(obj, xr.Dataset):
150 data_vars = {
151 strip_units(name): strip_units(value)
152 for name, value in obj.data_vars.items()
153 }
154 coords = {
155 strip_units(name): strip_units(value) for name, value in obj.coords.items()
156 }
157
158 new_obj = xr.Dataset(data_vars=data_vars, coords=coords)
159 elif isinstance(obj, xr.DataArray):
160 data = array_strip_units(obj.variable._data)
161 coords = {
162 strip_units(name): (
163 (value.dims, array_strip_units(value.variable._data))
164 if isinstance(value.data, Quantity)
165 else value # to preserve multiindexes
166 )
167 for name, value in obj.coords.items()
168 }
169
170 new_obj = xr.DataArray( # type: ignore[assignment]
171 name=strip_units(obj.name), data=data, coords=coords, dims=obj.dims
172 )
173 elif isinstance(obj, xr.Variable):
174 data = array_strip_units(obj.data)
175 new_obj = obj.copy(data=data) # type: ignore[assignment]
176 elif isinstance(obj, unit_registry.Quantity):
177 new_obj = obj.magnitude
178 elif isinstance(obj, list | tuple):
179 return type(obj)(strip_units(elem) for elem in obj)
180 else:
181 new_obj = obj
182
183 return new_obj
184
185
186def attach_units(obj, units):

Callers 15

test_apply_ufunc_datasetFunction · 0.85
test_align_dataarrayFunction · 0.85
test_align_datasetFunction · 0.85
test_broadcast_dataarrayFunction · 0.85
test_broadcast_datasetFunction · 0.85
test_combine_by_coordsFunction · 0.85
test_combine_nestedFunction · 0.85
test_concat_dataarrayFunction · 0.85
test_concat_datasetFunction · 0.85
test_merge_dataarrayFunction · 0.85
test_merge_datasetFunction · 0.85

Calls 4

array_strip_unitsFunction · 0.85
typeFunction · 0.85
itemsMethod · 0.80
copyMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…