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