这个问题可能有两部分,但如果第一部分可以被第二部分封装,则可能只有一部分。我正在使用python与numpy和netCDF4
首先:
我有四个不同变量值的列表(以下称为高程值),每个变量值的长度为28.这四个列表是一组5个不同的纬度值,其中一组是24个不同的时间值。
所以24次......每次有5个纬度...每个纬度有4个列表......每个列表有28个值。
我想创建一个具有以下尺寸的数组(高程,纬度,时间,变量)
总之,我希望能够指定我访问的四个列表中的哪一个,列表中的哪个索引,并指定特定的时间和纬度。所以这个数组的索引如下所示:
array(0,1,2,3)其中0指定由3指定的第4个列表的第一个索引.1指定第2个纬度,2指定第3个时间,输出是该点的值
我不会在这部分中包含我的代码,因为从字面上看,唯一提到的是列表
list1的= [...]
list2中= [...]
项目list3 = [...]
list4 = [...]
我怎么能这样做,是否有一个更简单的阵列结构,还是我还缺少其他什么?
第二
我创建了一个包含这四个维度的变量的netCDF文件。我需要将这些变量设置为上面的数组结构。我不知道如何做到这一点,netCDF4文档以一种相当神秘的方式执行一维数组。如果数组可以直接进入netCDF文件,绕过首先使用numpy的需要,通过各种方式告诉我如何。
谢谢!
答案 0 :(得分:0)
在与我工作的几个人交谈后,我们提出了这个解决方案:
首先,我们使用以下参数创建了一个零数组:
ARRAY1 = np.zeros((28,5,24,4))
然后通过指定我们想要更改的数组中的位置来附加此数组:
ARRAY1 [:,0,0,0] = list1的
这会将列表的值插入到数组的第一个条目中。
接下来将数组写入netCDF文件,我在创建数组的同一程序中创建了一个netCDF,创建了一个变量并给它这样的值:
netcdfvariable [:] = ARRAY1
希望能帮到找到这个的人。