Source code for daops.data_utils.attr_utils

from roocs_utils.xarray_utils import xarray_utils as xu

from .common_utils import handle_derive_str


[docs] def edit_var_attrs(ds_id, ds, **operands): """ :param ds: Xarray DataSet :param operands: sequence of arguments :return: Xarray Dataset Change the attributes of a variable. """ var_id = operands.get("var_id") attrs = operands.get("attrs") for k, v in operands.get("attrs").items(): v = handle_derive_str(v, ds_id, ds) ds[var_id].attrs[k] = v return ds
[docs] def edit_global_attrs(ds_id, ds, **operands): """ :param ds: Xarray DataSet :param operands: sequence of arguments :return: Xarray DataArray Change the gloabl attributes. """ attrs = operands.get("attrs") for k, v in operands.get("attrs").items(): v = handle_derive_str(v, ds_id, ds) ds.attrs[k] = v return ds
[docs] def add_global_attrs_if_needed(ds_id, ds, **operands): """ :param ds: Xarray DataSet :param operands: sequence of arguments :return: Xarray Dataset Add a global attribute if it doesn't already exist. """ attrs = operands.get("attrs") for k, v in operands.get("attrs").items(): # check if the key already exists before setting it v = handle_derive_str(v, ds_id, ds) if not ds.attrs.get(k, None): ds.attrs[k] = v return ds
[docs] def remove_coord_attr(ds_id, ds, **operands): """ :param ds: Xarray DataSet :param operands: sequence of arguments :return: Xarray Dataset Remove coordinate attribute that is added by xarray, for specified variables. """ var_ids = handle_derive_str(operands.get("var_ids"), ds_id, ds) for v in var_ids: ds[v].encoding["coordinates"] = None return ds