Skip to content

Commit

Permalink
properly adding attrs after applying conversion from conversion_dict (#…
Browse files Browse the repository at this point in the history
…965)

* properly adding attrs after applying conversion from conversion_dict

* updated whatsnew

* improved test
  • Loading branch information
veenstrajelmer committed Aug 16, 2024
1 parent 860fb03 commit a869dc7
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 3 deletions.
8 changes: 5 additions & 3 deletions dfm_tools/interpolate_grid2bnd.py
Original file line number Diff line number Diff line change
Expand Up @@ -354,9 +354,11 @@ def ds_apply_conversion_dict(data_xr, conversion_dict, quantity):
# TODO: maybe do unit conversion before interp or is that computationally heavy?
if 'conversion' in conversion_dict[quantity].keys(): #if conversion is present, unit key must also be in conversion_dict
print(f'> converting units from [{data_xr[quantity].attrs["units"]}] to [{conversion_dict[quantity]["unit"]}]')
#print(f'attrs are discarded:\n{data_xr_vars[quan].attrs}')
data_xr[quantity] = data_xr[quantity] * conversion_dict[quantity]['conversion'] #conversion drops all attributes of which units (which are changed anyway)
data_xr[quantity].attrs['units'] = conversion_dict[quantity]['unit'] #add unit attribute with resulting unit
# conversion drops all attributes of which units (which are changed anyway)
data_xr[quantity] = data_xr[quantity] * conversion_dict[quantity]['conversion']
# add unit attribute with resulting unit
quantity_attrs = {'units': conversion_dict[quantity]['unit']}
data_xr[quantity] = data_xr[quantity].assign_attrs(quantity_attrs)
return data_xr


Expand Down
6 changes: 6 additions & 0 deletions docs/whats-new.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# What's new

## UNRELEASED

### Fix
- properly assigning units attribute in `ds_apply_conversion_dict()` (it did not always stick) in [#965](https://github.com/Deltares/dfm_tools/pull/965)


## 0.25.0 (2024-08-16)

### Feat
Expand Down
1 change: 1 addition & 0 deletions tests/test_interpolate_grid2bnd.py
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,7 @@ def test_ds_apply_conversion_dict_rename_and_factor():
assert 'o2' in ds_moretime.data_vars
assert 'tracerbndOXY' in ds_converted.data_vars
assert np.allclose(ds_converted['tracerbndOXY'], ds_moretime['o2']*0.032, equal_nan=True)
assert ds_converted['tracerbndOXY'].attrs['units'] == 'g/m3'


@pytest.mark.unittest
Expand Down

0 comments on commit a869dc7

Please sign in to comment.