Форум сайта python.su
Здравствуйте!
Занимаюсь обработкой космических снимков, возникла такая проблема.
Необходимо объединить несколько отдельных слоев изображения в один массив. Каждый слой представляет собой Numpy-массив arr1, arr2 и т.п. размерностью (x,y). Необходимо, имея несколько таких массивов, получить массив arr размерности (x, y, n), т.е. склеить слои так, что arr = [arr1, arr2 …] (вектор).
Как сделать это максимально эффективно? Пробовал формировать массив в цикле - на больших размерностях время выполнения переходит все разумные границы.
Офлайн
Трудно что-либо посоветовать не посмотрев кода. Я бы создал пустной массив нужной размерности и копировал в него в цикле каждый слой (не забывая затем удалять их из памяти).
Есть еще “ускоритель” для numpy, хотя не уверен что поможет но попробовать можно - http://code.google.com/p/numexpr/
Если массив занимает много памяти - ищите на форуме недавно было отдельное обсуждение.
Офлайн
m1stТам и расход памяти должен переходить все разумные границы. А нет возможности хранить на диске и обрабатывать кусками? Может подойдет PyTables?
Пробовал формировать массив в цикле - на больших размерностях время выполнения переходит все разумные границы.
Отредактировано (Март 3, 2010 06:35:52)
Офлайн
PooH +1. Там же рекурсия получается. У нас в Виннице тоже такое предприятие есть - “Геосистемы” называется. Спрошу как они снимки обрабатывают.
Офлайн
Можно попробовать, где это возможно, сделать код как можно более ленивым (использовать map вместо цикла, итераторы и генераторы вместо массивов).
Офлайн
Спросил. Оказывается они там машины на ночь оставляют включенными(все!) и они целую ночь эти снимки колбасят. Используют самый лучший язык(по их мнению) - Делфи.
Офлайн
да делфи нормальный язык, че вы его чмырите. Простой, быстрый, гуевый… для самописного софта состоящего из 1й функции чего еще желать +)
Офлайн
Он вообще вполне нормальный. Проблема в программистах в не в делфи. Да и дорого.
Топикстартеру - исследуй что так долго обрабатывается. Может есть смысл вынести в сишный модуль…
Офлайн
helm2004Ровно та же фигня у компании в Москве, для которой я это делаю. Целая геоинформационная система на Делфи, причем, кажется, процедурном.
Спросил. Оказывается они там машины на ночь оставляют включенными(все!) и они целую ночь эти снимки колбасят. Используют самый лучший язык(по их мнению) - Делфи.
Офлайн
Viam supervadet vadens.
Офлайн