python - python中高效读取netcdf变量

标签 python performance netcdf

我需要能够在 python 中快速读取大量 netCDF 变量(每个文件 1 个变量)。我发现 netCDF4 库中的数据集函数与其他语言(例如 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 读取的最佳/最快方法吗?

谢谢。

最佳答案

Numpy 的强大之处在于,您可以通过它保留的有关数据的元数据创建对内存中现有数据的 View 。因此,通过指针,副本总是比 View 慢。正如 JCOidl 所说,不清楚为什么你不只是使用:

 raw_data = openFile.variables['MergedReflectivityQCComposite'][:] 

有关详细信息,请参阅 SciPy Cookbook所以 View onto a numpy array?

关于python - python中高效读取netcdf变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34159747/

相关文章:

python - 如何从多个 Python dict 条目中动态提取数据

python - BeautifulSoup 抓取新闻文章

python卡住数据类不可变对象(immutable对象).__setattr__

python - 具有填充值/缺失值的 NetCDF 变量

netcdf - 将 Grib 转换为 netcdf4

Python:更改列表类型以进行 json 解码

sql - 生成行组合的最快方法

F# 中 ||> 和 |||> 管道运算符的性能影响

android - 在制作应用程序的最终版本时,Android Studio 如何处理 System.out.print 函数?

python - 如何从存储在 Azure 文件共享上的大型 NetCDF 文件中提取数据并将其发送到 Azure 网页