Недавно я переключился с netcdf4 на iris для чтения файлов netcdf в Python (я использую Python 2.7). Во многих отношениях это улучшило мой код, но у меня возникли проблемы с производительностью некоторых наборов данных. Чтение некоторых файлов (не всех) раньше занимало всего несколько секунд с netcdf4 и одну или несколько минут с iris.
Это простой тест, который я использовал. Первое чтение занимает 4 секунды с netcdf4 и около 90 секунд с iris! Это значительно ухудшает производительность моего кода, так как я обычно читаю много файлов за один прогон.
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))
Кто-то нашел такое же поведение? Я что-то не так делаю с ирисом?