2013-12-23 3 views
2

Мне нужно прочитать большой растровый файл GIS (162000 * 105000). Я хочу преобразовать этот растровый массив в массив Numpy (2 * 2 и двойной тип), а затем использовать этот массив numpy для моего нескольких анализов. Моя ОС - это Windows 64 и у меня 32Gb память. Однако, python не может использовать память, и я получаю «Ошибка памяти» Есть ли способ выделить больше памяти для Python, чтобы избежать этой ошибки? СпасибоОшибка памяти при создании больших списков или словарей или массивов

+0

Выполняйте обработку в небольших кусках ..... и вы можете использовать многопроцессорную обработку для скорости ... –

ответ

3

32Gb недостаточно для хранения изображения, чтобы вы не могли полностью загрузить изображение в память вашего компьютера.

С каждым пикселем, занимающим 64 бита (если он является одиночным каналом или умножается на d для объемного гиперспектрального изображения), вам требуется примерно 162000 * 105000 * 64 (бит)/(1024^3 бит) = 1013 Гбит (или примерно 126 Гб) для вашего изображения.

Вам лучше использовать библиотеку обработки изображений GIS, которая может выполнять ваши задачи обработки изображений из-за ядра или загружать только в определенные субрегионы изображения. Геообработка - это очень специфическая область обработки изображений, и лучше всего использовать соответствующие библиотеки для работы. Зайдите в this сообщение для получения дополнительной информации об использовании библиотеки gdal для геообработки.

Смежные вопросы