在创建netCDF文件时匹配Numpy和NetCDF4索引

时间:2014-10-28 12:38:49

标签: python-2.7 numpy netcdf matrix-indexing

我正在尝试将值从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]

这些分配是动态循环的一部分,该动态循环确定x,y在{1000}时间步骤为ncVar创建值

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

0 个答案:

没有答案