在netCDF-Fi中创建和存储多维数组

2024-03-29 09:43:04 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题可能有两个部分,但如果第一个部分可以被第二个部分封装,那么可能只有一个部分。我将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,那么一定要告诉我怎么做。在

谢谢!在


Tags: 文件代码文档numpy列表方式时间netcdf
1条回答
网友
1楼 · 发布于 2024-03-29 09:43:04

在与我工作的几个人交谈后,我们想出了一个解决方案:

首先,我们使用以下参数生成一个零数组:

阵列1=np.零(28,5,24,4)

然后通过指定要更改的数组中的位置来附加此数组:

array1[:,0,0,0]=列表1

这会将列表的值插入数组的第一个条目中。在

接下来将数组写入netCDF文件,我在创建数组的同一个程序中创建了netCDF,创建了一个变量,并给了它如下值:

netcdfvariable[:]=array1

希望能帮助任何发现这个的人。在

相关问题 更多 >