【发布时间】:2016-05-24 10:27:32
【问题描述】:
我需要将大型 (+15GB) NetCDF 文件读入一个程序,该程序包含一个 3D 变量(等时间作为记录维度,数据是纬度乘经度)。
我在 3 级嵌套循环中处理数据(检查 NetCDF 的每个块是否通过特定条件。例如;
from netCDF4 import Dataset
import numpy as np
File = Dataset('Somebigfile.nc', 'r')
Data = File.variables['Wind'][:]
Getdimensions = np.shape(Data)
Time = Getdimensions[0]
Latdim = Getdimensions[1]
Longdim = Getdimensions[2]
for t in range(0,Time):
for i in range(0,Latdim):
for j in range(0,Longdim):
if Data[t,i,j] > Somethreshold:
#Do something
我是否可以一次读取 NetCDF 文件中的一次记录?大大减少内存使用。非常感谢任何帮助。
我知道 NCO 操作员,但不希望在使用脚本之前使用这些方法来分解文件。
【问题讨论】:
-
自己解决了;在循环内使用 Data = File.variables['Wind'][:]。