Я ищу эффективный способ загрузить файл растровых данных (GeoTiff) размером 20 ГБ в PyTables для дальнейшего вычисления ядра.
В настоящее время я читаю его как массив numpy с помощью Gdal и записываю массив numpy в pytables, используя следующий код:
import gdal, numpy as np, tables as tb
inraster = gdal.Open('infile.tif').ReadAsArray().astype(np.float32)
f = tb.openFile('myhdf.h5','w')
dataset = f.createCArray(f.root, 'mydata', atom=tb.Float32Atom(),shape=np.shape(inraster)
dataset[:] = inraster
dataset.flush()
dataset.close()
f.close()
inraster = None
К сожалению, поскольку мой входной файл чрезвычайно велик, при чтении его в качестве ошибки numpy на моем ПК отображается ошибка памяти. Есть ли альтернативный способ подачи данных в PyTables или какие-либо предложения по улучшению моего кода?