最近、Python で netcdf ファイルを読み取るために、netcdf4 から iris に切り替えました (Python 2.7 を使用しています)。これにより多くの面でコードが改善されましたが、一部のデータセットでパフォーマンスの問題が発生しています。一部のファイル (すべてではない) の読み取りは、以前は netcdf4 では数秒しかかからず、iris では 1 分以上かかりました。
これは私が使用した簡単なテストです。最初の読み取りは、netcdf4 で 4 秒、アイリスで約 90 秒かかります。通常、1 回の実行で多くのファイルを読み取るため、これによりコードのパフォーマンスが大幅に低下します。
from datetime import datetime
import iris
import netCDF4 as nc
nr = 3
ifile = 'myfile.nc'
print('IRIS read\n')
for i in range(nr):
t1 = datetime.now()
fh = iris.load(ifile)
data = fh[0].data
t2 = datetime.now()
diff = (t2-t1).total_seconds()
print('Data loaded in {:8.3f} s\n'.format(diff))
print('NetCDF read\n')
for i in range(nr):
t1 = datetime.now()
fh = nc.Dataset(ifile, mode='r')
data = fh.variables.values()[-1][:]
t2 = datetime.now()
diff = (t2-t1).total_seconds()
print('Data loaded in {:8.3f} s\n'.format(diff))
誰かが同じ行動を見つけましたか?それは私が虹彩で間違っていることですか?