我正在使用与网格化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]
这里的数据值是正确的,但我希望输出只包含“data”中包含的整数。目标是传递多个x,y点,如上面链接的示例中所示,并将它们连接到单个列表中。
关于如何添加到代码中以使其可实现的任何建议都会很棒。
在数据集中的单步执行x,y列表中调用特定值的解决方案可以按如下方式完成:
dataset_list = []
for i, j in point_list:
dataset_list.append(fh.variables['TMAX2M'][:][i,j])
前面链接的示例包含[0,16]的索引变量,[:]可以在这种情况下使用。
我建议像这样转换为NumPy数组:
for i, j in point_list:
dataset_list.append(np.array(fh.variables['TMAX2M'][i,j]))