xarray 创建变量属性

xarray create variables attributes

我想用 xarray 创建一个数据集,并想在创建数据集时向变量添加属性。 xarray documentation 提供了一种添加全局属性的方法。 例如如下:

ds = xr.Dataset(
data_vars=dict(
    'temperature'=(["x", "y", "time"], temperature),
    'precipitation'=(["x", "y", "time"], precipitation),
),
coords=dict(
    lon=(["x", "y"], lon),
    lat=(["x", "y"], lat),
    time=time,
    reference_time=reference_time,
),
attrs=dict(description="Weather related data."),)

添加变量属性的一种方法是这样的:

ds['temperature'].attrs = {"units": K, '_FillValue': -999}

但是,在我看来,这更像是更新属性。有没有办法在直接使用 xr.Dataset 创建数据集时直接分配属性?

是的,可以在定义data_vars时直接定义变量属性。您只需要以字典形式提供属性。 另见:https://xarray.pydata.org/en/stable/internals/variable-objects.html

在你上面的例子中是:

ds = xr.Dataset(
data_vars=dict(
    temperature=(["x", "y", "time"], temperature,{'units':'K'}),
    precipitation=(["x", "y", "time"], precipitation,{'units':'mm/day'}),
),
coords=dict(
    lon=(["x", "y"], lon),
    lat=(["x", "y"], lat),
    time=time,
    reference_time=reference_time,
),
attrs=dict(description="Weather related data."),)