我需要能够快速在Python中读取大量的netCDF变量(每个文件1个变量)。我发现netCDF4库中的Dataset函数与其他语言(例如IDL)中的读取工具相比而言速度较慢。
我的变量形状为(2600,5200),类型为float。它们对我来说似乎并不大(文件大小=52Mb)。
这是我的代码:
import numpy as np
from netCDF4 import Dataset
import time
file = '20151120-235839.netcdf'
t0=time.time()
openFile = Dataset(file,'r')
raw_data = openFile.variables['MergedReflectivityQCComposite']
data = np.copy(raw_data)
openFile.close()
print time.time-t0
读取一个变量(一个文件)大约需要3秒钟。我认为主要的减速是由于np.copy引起的。因为raw_data
是<type 'netCDF4.Variable'>
,所以需要拷贝。这是否是在Python中进行netCDF读取的最佳/最快方法?
谢谢。
xarray
- 它可以在更高的级别处理网格数据,使编码更加美观。如果你正在处理大型数组,则可能也更快。请参见 https://dev59.com/3lYN5IYBdhLWcg3wm5Ki 以了解性能讨论。 - naught101