这个问题可能有两个部分,但如果第一个部分可以被第二个部分封装,那么可能只有一个部分。我将python与numpy和netCDF4一起使用
第一个:
我有四个不同变量值的列表(以下简称高程值),每个变量的长度为28。这四个列表是一组5个不同的纬度值,其中一组是24个不同的时间值。在
所以24次…每次5个纬度…每个纬度有4个列表…每个列表有28个值。在
我想创建一个具有以下维度(高程、纬度、时间、变量)的数组
换句话说,我希望能够指定我访问的四个列表中的哪一个,列表中的哪个索引,并指定特定的时间和纬度。因此,该数组的索引如下所示:
数组(0,1,2,3),其中0指定由3指定的第4个列表的第一个索引。1指定第2个纬度,2指定第3个时间,输出为该点的值。在
我将不包括我的代码这一部分,因为字面上唯一提到的是列表
列表1=[…]
列表2=[…]
列表3=[…]
列表4=[…]
我该怎么做呢?这个数组有没有一个更简单的结构,或者我还缺少什么呢?在
第二:
我用这四个维度的变量创建了一个netCDF文件。我需要将这些变量设置为上面的数组结构。我不知道如何做到这一点,netCDF4文档以一种相当隐秘的方式创建了一个一维数组。如果数组可以直接生成到netCDF文件中,而不需要先使用numpy,那么一定要告诉我怎么做。在
谢谢!在
在与我工作的几个人交谈后,我们想出了一个解决方案:
首先,我们使用以下参数生成一个零数组:
阵列1=np.零(28,5,24,4)
然后通过指定要更改的数组中的位置来附加此数组:
array1[:,0,0,0]=列表1
这会将列表的值插入数组的第一个条目中。在
接下来将数组写入netCDF文件,我在创建数组的同一个程序中创建了netCDF,创建了一个变量,并给了它如下值:
netcdfvariable[:]=array1
希望能帮助任何发现这个的人。在
相关问题 更多 >
编程相关推荐