0

我正在尝试将值从 numpy 数组移动到我正在创建的 NetCDF 文件。目前,我正在尝试找到在创建 netCDF 文件时模拟 numpy 数组的“花式索引”的最佳方法,但是当数据集只有两个点时,两个索引系统不匹配。

import netCDF4
import numpy as np

rootgrp = netCDF4.Dataset('Test.nc','w',format='NETCDF4')
time = rootgrp.createDimension('time',None)
dim1 = rootgrp.createDimension('dim1',100)
dim2 = rootgrp.createDimension('dim2',100)
dim3 = rootgrp.createDimension('dim3',100)
ncVar = rootgrp.createVariable('ncVar','f4',('time','dim1','dim2','dim3'))
npArr = np.arange(0,10000)
npArr = np.reshape(npArr,(100,100))

所以这很好用:

x,y=np.array(([1,75,10,99],[40,88,19,2]))
ncVar[0,x,y,0] = npArr[x,y]

虽然这不会:

x,y=np.array(([1,75],[40,88]))
ncVar[0,x,y,0] = npArr[x,y]

这些分配是动态循环的一部分,该循环决定为大约 1000 个时间步x,y创建值ncVar

编辑:问题似乎是第一种情况将 x,y 识别为定义一系列点,因此返回一个 [4,] 大小的数组(尽管有关于 netCDF4 'fancy indexing' 的文档),而第二种情况则以组合方式解释它们因此返回一个 [2,2] 大小的数组(如文档中所述)。有没有人遇到过这个或找到解决方法?

4

0 回答 0