我正在使用与网格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点,并将它们合并为一个列表。
任何有关将什么添加到代码中以实现此目标的建议都是很好的。
答案 0 :(得分:1)
可以按照以下步骤在数据集的单个步骤中从x,y列表中调用特定值的解决方案:
dataset_list = []
for i, j in point_list:
dataset_list.append(fh.variables['TMAX2M'][:][i,j])
前面的链接示例包含索引变量的[0,16],在这种情况下可以使用[:]。
答案 1 :(得分:0)
我建议像这样转换为NumPy数组:
|---------------------|------------------|------------------|
| special_price | price | product_id |
|---------------------|------------------|------------------|
| 550.0 | 699.95 | 1 |
|---------------------|------------------|------------------|
| 0.0 | 260.0 | 2 |
|---------------------|------------------|------------------|
| 250.0 | 332.66 | 3 |
|---------------------|------------------|------------------|