【问题标题】:Extract Data From NetCDF4 File Using List使用列表从 NetCDF4 文件中提取数据
【发布时间】:2019-02-21 15:58:29
【问题描述】:

我正在使用与网格化 NetCDF 数组的 x,y 索引对应的整数列表来提取特定值,初始代码源自here。我的 NetCDF 文件在单个时间步长上有一个维度,名为 TMAX2M。我编写的执行代码如下(请注意,我没有在脚本顶部显示 netCDF4 的调用):

# grid point lists
lat = [914]
lon = [2141]

# Open netCDF File
fh = Dataset('/pathtofile/temperaturedataset.nc', mode='r')

# Variable Extraction
point_list = zip(lat,lon)
dataset_list = []
for i, j in point_list:
    dataset_list.append(fh.variables['TMAX2M'][i,j])

print(dataset_list)

代码执行,结果如下:

masked_array(data=73,mask=False,fill_value=999999,dtype=int16]

这里的数据值是正确的,但是我希望输出只包含“数据”中包含的整数。目标是传递如上面链接示例中所示的多个 x,y 点,并将它们连接到一个列表中。

任何关于在代码中添加什么以实现这一点的建议都会很棒。

【问题讨论】:

    标签: arrays python-3.x indexing netcdf netcdf4


    【解决方案1】:

    在数据集中单步调用 x,y 列表中的特定值的解决方案可以如下完成:

    dataset_list = []
    for i, j in point_list:
        dataset_list.append(fh.variables['TMAX2M'][:][i,j])
    

    上一个链接示例包含索引变量的 [0,16],在这种情况下可以使用 [:]。

    【讨论】:

      【解决方案2】:

      我建议像这样转换为 NumPy 数组:

      for i, j in point_list:
          dataset_list.append(np.array(fh.variables['TMAX2M'][i,j]))
      

      【讨论】:

        猜你喜欢
        • 2020-08-09
        • 1970-01-01
        • 2021-03-23
        • 1970-01-01
        • 1970-01-01
        • 2021-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多