PythonでnetCDF4を使用して読んでいる非常に大きなnetCDFファイルがあります
このファイルのサイズ (1200 x 720 x 1440) は、ファイル全体を一度にメモリに入れるには大きすぎるため、一度にすべてを読み取ることはできません。最初の次元は時間を表し、次の 2 次元はそれぞれ緯度と経度を表します。
import netCDF4
nc_file = netCDF4.Dataset(path_file, 'r', format='NETCDF4')
for yr in years:
nc_file.variables[variable_name][int(yr), :, :]
しかし、一度に 1 年ずつ読むのは非常に遅いです。以下のユースケースでこれを高速化するにはどうすればよいですか?
- 編集
チャンクサイズは 1
年の範囲を読み取ることができます: nc_file.variables[変数名][0:100, :, :]
いくつかのユースケースがあります:
年の年:
numpy.ma.sum(nc_file.variables[variable_name][int(yr), :, :])
# Multiply each year by a 2D array of shape (720 x 1440)
for yr in years:
numpy.ma.sum(nc_file.variables[variable_name][int(yr), :, :] * arr_2d)
# Add 2 netcdf files together
for yr in years:
numpy.ma.sum(nc_file.variables[variable_name][int(yr), :, :] +
nc_file2.variables[variable_name][int(yr), :, :])