Python 将新变量添加到IRIS多维数据集并存储到NetCDF

Python 将新变量添加到IRIS多维数据集并存储到NetCDF,python,python-xarray,python-iris,Python,Python Xarray,Python Iris,我将3D转换为,添加坐标和属性,并保存到NetCDF文件。我保存的数据是海洋的三维(时间、纬度、长)温度或盐度。我想在同一个NetCDF文件中添加二维(横向、纵向)掩模阵列和测深,但我不确定如何做到这一点。我执行以下操作以转换为多维数据集并保存: ds_cube = data_array.to_iris() lat.standard_name = "latitude" lon.standard_name = "longitude" lat.units =

我将3D转换为,添加坐标和属性,并保存到NetCDF文件。我保存的数据是海洋的三维(时间、纬度、长)温度或盐度。我想在同一个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, name,
          saver=iris.fileformats.netcdf.save,
          unlimited_dimensions=['time'],
          fill_value=1.e20, zlib=True,
          complevel=1, chunksizes=chunksizes)
如果我能将一个xarray数据集转换成IRIS cube,这将是很简单的,但我相信如果有人能给我指出正确的方向,也有一种方法可以使用xarray数据阵列来实现这一点