【发布时间】:2018-09-20 13:48:21
【问题描述】:
所以我试图索引一个 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 或索引来加速这个过程?
谢谢!
【问题讨论】:
标签: python python-3.x indexing netcdf