微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决将新变量添加到 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 举报,一经查实,本站将立刻删除。