Обсудить в форуме Комментариев 17Редактировать в вики
Растровая арифметика в QGIS.
RasterCalc — легкий в использовании и функциональный калькулятор растров реализованный как расширение для свободной ГИС с открытым кодом — QGIS.
Содержание |
Расширение доступно из официального репозитория.
RasterCalc разработан для QGIS версии 1.0.0 и старше. Для своей работы требует наличия следующих Python-модулей:
Если эти модули отсутсвуют, при попыке запуска расширения появится сообщение об ошибке.
Проще всего тем, кто пользуется инсталлятором OSGeo4W — в нем есть все необходимое. Нужные пакеты называются pyparsing и gdal-python. Если используется официальный установщик «все-в-одном» (не OSGeo4W): потребуется скачать и установить pyparsing, все остальные модули уже включены в инсталлятор.
Исходный код модуля можно получить через репозиторий на GitHub или выполнив команду:
git clone git@github.com:nextgis/RasterCalc.git
После подключения и запуска расширения с помощью кнопки
появится окно, похожее на калькулятор:
В окне расположены следующие элементы:
Формат выражений — традиционный, как в математике; есть поддержка скобок, в том числе вложенных. Имена растров должны заключаться в квадратные скобки («[]»), после имени растра через «собаку» («@») обязательно указывается номер канала. Вставка имени растра выполняется по двойному клику на соответствующем элементе списка растров, при этом автоматически будет использован (и добавлен к имени) 1й канал. Вставка выбранного растра вместе с нужным номером канала возможна по двойному клику на нужный номер канала в списке каналов.
Некоторые распространенные операции доступны в виде «шаблонов». После выбора такого «шаблона» из выпадающего списка, в область ввода вставляется заготовка, в которой условные растры нужно заменить своими.
В процессе набора выражения осуществляется его проверка. При наличии ошибок в строку сообщений выводится соответствующий текст, а кнопка «Рассчитать» блокируется.
При помощи кнопок быстрого ввода доступны:
Реализованы, но не имеют кнопок быстрой вставки (т.е. вводить необходимо вручную):
Операторы сравнения позволяют попиксельно сравнить канал растра с некоторой величиной или другим каналом этого же или любого другого растра. Результатом сравнения будет растр, в котором все пиксели, удовлетворяющие условию получат значение 1, а все остальные, соответственно, 0.
Условные операторы являются дальнейшим развитием операторов сравнения. Оператор принимает три аргумента:
Второй и третий аргументы могут быть числом, произвольным каналом растра (в этом случае выполняется попиксельное сравнение и/или замена), выражением.
Рассмотрим использование условных операторов на примерах. Конструкцию
le( [relief]@1, 50, 200 )
следует читать так: всем пикселям 1го канала растра relief, значение которых меньше или равно 50, присвоить значение 200. Еще два примера
eq( [relief]@1, [mask]@4, 150 )
пиксели растра relief, значение которых равно соответствующим пикселям растра mask станут равны 150.
gt( [relief]@1, [mask]@4, [base]@2 )
пиксели растра relief, значение которых больше или равно соответствующим пикселям растра mask будут заменены соответствующими пикселями растра base.
Если вы нашли ошибку или у вас есть предложения по улучшению расширения — воспользуйтесь багтрекером.
Обсудить в форуме Комментариев 17Редактировать в вики
Последнее обновление: 2014-05-14 22:26
Дата создания: 27.01.2010
Автор(ы): Александр Бруй
© GIS-Lab и авторы, 2002-2021. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).