所以我正在尝试索引 NetCDF 文件,以获取特定网格单元的流量数据。我使用的 NetCDF 文件具有以下特征:
<class 'netCDF4._netCDF4.Dataset'>
root group (NETCDF3_CLASSIC data model, file format NETCDF3):
CDI: Climate Data Interface version 1.6.4 (http://code.zmaw.de/projects/cdi)
Conventions: CF-1.4
dimensions(sizes): lon(3600), lat(1800), time(31)
variables(dimensions): float64 lon(lon), float64 lat(lat), float64 time(time), float32 dis(time,lat,lon)
我有35年以上的数据,我正在尝试从单个网格获取数据并创建时间序列以比较不同模型的预测。我目前使用的提取网格单元数据的代码如下。
from netCDF4 import Dataset
import numpy as np
root_grp = Dataset(r'C:\Users\wadear\Desktop\ERAIland_daily_dis_198001.nc')
dis = root_grp.variables['dis']
lat = np.round(root_grp.variables['lat'][:], decimals=2).tolist()
lon = np.round(root_grp.variables['lon'][:], decimals=2).tolist()
time = root_grp.variables['time'].shape[0]
lat_index = lat.index(27.95)
lon_index = lon.index(83.55)
for i in range(time):
print(dis[i][lat_index][lon_index])
现在执行这个任务感觉很慢,而且在35年以上的时间跨度内需要很长时间才能完成,如果要处理多个不同的网格单元格,则所需时间将会累积。
是否有工具可以通过更快的I/O或索引来加速此过程?
谢谢!