将新变量添加到 IRIS 立方体并存储到 NetCDF

问题描述

我将 3D xarray DataArray 转换为 IRIS cube添加坐标和属性并保存到 NetCDF 文件。我保存的数据是海洋的 3 维(时间、纬度、经度)温度或盐度。我想将面罩和水深测量的二维(经纬度)阵列添加到同一个 NetCDF 文件中,但我不确定如何执行此操作。我执行以下操作以转换为立方体并保存:

ds_cube = data_array.to_iris()
lat.standard_name = "latitude"
lon.standard_name = "longitude"
lat.units = "degrees"
lon.units = "degrees"

cube.add_dim_coord(lat,1)
cube.add_dim_coord(lon,2)
cube.units = units

a = cube.attributes
a[version'] = 'version tag'

with warnings.catch_warnings():
   iris.save(cube,name,saver=iris.fileformats.netcdf.save,unlimited_dimensions=['time'],fill_value=1.e20,zlib=True,complevel=1,chunksizes=chunksizes)

这很有效,但我还想将两个二维数组添加到同一个 NetCDF 文件中,其中包含每个网格点的掩码和底部深度。我尝试在保存之前将额外的立方体添加到列表中,但我想这会因 3D 和 2D 字段之间的尺寸差异而失败:

mask_cube = mask_2darray.to_iris()
cubes=[cube,mask_cube]
with warnings.catch_warnings():
   iris.save(cubes,chunksizes=chunksizes)

如果我可以将 xarray 数据集转换为 IRIS 立方体,这将很简单,但我相信如果有人指出正确的方向,也有一种方法可以使用 xarray DataArrays 做到这一点。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)