Растровая арифметика в QGIS с помощью RasterCalc: различия между версиями
Voltron (обсуждение | вклад) (Новая страница: «{{Статья|Опубликована|rastercalc}} {{Аннотация|Растровая арифметика в QGIS.}} RasterCalc — легкий в ис…») |
Vveco (обсуждение | вклад) |
||
(не показано 5 промежуточных версий 2 участников) | |||
Строка 15: | Строка 15: | ||
Если эти модули отсутсвуют, при попыке запуска расширения появится сообщение об ошибке. | Если эти модули отсутсвуют, при попыке запуска расширения появится сообщение об ошибке. | ||
Проще всего тем, кто пользуется инсталлятором OSGeo4W — в нем есть все необходимое. Нужные пакеты называются pyparsing и gdal-python. Если используется официальный установщик «все-в-одном» (не OSGeo4W): потребуется скачать и установить pyparsing, все остальные модули уже включены в инсталлятор. | Проще всего тем, кто пользуется инсталлятором OSGeo4W — в нем есть все необходимое. Нужные пакеты называются pyparsing и gdal-python. Если используется официальный установщик «все-в-одном» (не OSGeo4W): потребуется скачать и установить [http://pyparsing.wikispaces.com pyparsing], все остальные модули уже включены в инсталлятор. | ||
Исходный код модуля можно получить выполнив команду | Исходный код модуля можно получить через [https://github.com/nextgis/RasterCalc репозиторий на GitHub] или выполнив команду: | ||
<pre> | <pre>git clone git@github.com:nextgis/RasterCalc.git</pre> | ||
=== Работа с расширением === | === Работа с расширением === | ||
Строка 40: | Строка 40: | ||
# выпадающий список для управления форматом пикселей итогового растра | # выпадающий список для управления форматом пикселей итогового растра | ||
# поле для ввода имени итогового файла | # поле для ввода имени итогового файла | ||
# флажок, позволяющий | # флажок, позволяющий загрузить результат вычислений на карту | ||
# кнопки запуска вычислений и закрытия окна | # кнопки запуска вычислений и закрытия окна | ||
Строка 47: | Строка 47: | ||
Некоторые распространенные операции доступны в виде «шаблонов». После выбора такого «шаблона» из выпадающего списка, в область ввода вставляется заготовка, в которой условные растры нужно заменить своими. | Некоторые распространенные операции доступны в виде «шаблонов». После выбора такого «шаблона» из выпадающего списка, в область ввода вставляется заготовка, в которой условные растры нужно заменить своими. | ||
В процессе набора выражения осуществляется его проверка. При наличии ошибок в строку сообщений выводится | В процессе набора выражения осуществляется его проверка. При наличии ошибок в строку сообщений выводится соответствующий текст, а кнопка «Рассчитать» блокируется. | ||
При помощи кнопок быстрого ввода доступны: | При помощи кнопок быстрого ввода доступны: | ||
Строка 87: | Строка 87: | ||
=== Контакты === | === Контакты === | ||
Если вы нашли ошибку | Если вы нашли ошибку или у вас есть предложения по улучшению расширения — воспользуйтесь [http://hub.qgis.org/projects/rastercalc багтрекером]. | ||
=== Ссылки по теме === | === Ссылки по теме === | ||
* [http://gis-lab.info/qa/qgis-install-plugin.html Установка модулей расширения в QGIS] | |||
* [http://gis-lab.info/docs/qgis Документация по QGIS] | * [http://gis-lab.info/docs/qgis Документация по QGIS] |
Текущая версия от 17:40, 20 ноября 2013
по адресу http://gis-lab.info/qa/rastercalc.html
Растровая арифметика в QGIS.
RasterCalc — легкий в использовании и функциональный калькулятор растров реализованный как расширение для свободной ГИС с открытым кодом — QGIS.
Замечания по установке
Расширение доступно из официального репозитория.
RasterCalc разработан для QGIS версии 1.0.0 и старше. Для своей работы требует наличия следующих Python-модулей:
- pyparsing — библиотека синтаксического анализа
- osgeo.gdal — Python интерфейс к библиотеке GDAL
Если эти модули отсутсвуют, при попыке запуска расширения появится сообщение об ошибке.
Проще всего тем, кто пользуется инсталлятором OSGeo4W — в нем есть все необходимое. Нужные пакеты называются pyparsing и gdal-python. Если используется официальный установщик «все-в-одном» (не OSGeo4W): потребуется скачать и установить pyparsing, все остальные модули уже включены в инсталлятор.
Исходный код модуля можно получить через репозиторий на GitHub или выполнив команду:
git clone git@github.com:nextgis/RasterCalc.git
Работа с расширением
После подключения и запуска расширения с помощью кнопки
появится окно, похожее на калькулятор:
В окне расположены следующие элементы:
- список растров, загруженных в проект. Растры сгруппированы по размерам
- список каналов растра, заполняется автоматически при выборе растра
- кнопки для быстрой вставки функций. Тут же находится выпадающий список шаблонов выражений
- область ввода, в которой по мере набора отображается выражение. Поддерживается копирование и вставка текста
- строка сообщений, в которой отображаются ошибки, предупреждения и информационные сообщения
- кнопка очистки области ввода
- выпадающий список для управления форматом пикселей итогового растра
- поле для ввода имени итогового файла
- флажок, позволяющий загрузить результат вычислений на карту
- кнопки запуска вычислений и закрытия окна
Формат выражений — традиционный, как в математике; есть поддержка скобок, в том числе вложенных. Имена растров должны заключаться в квадратные скобки («[]»), после имени растра через «собаку» («@») обязательно указывается номер канала. Вставка имени растра выполняется по двойному клику на соответствующем элементе списка растров, при этом автоматически будет использован (и добавлен к имени) 1й канал. Вставка выбранного растра вместе с нужным номером канала возможна по двойному клику на нужный номер канала в списке каналов.
Некоторые распространенные операции доступны в виде «шаблонов». После выбора такого «шаблона» из выпадающего списка, в область ввода вставляется заготовка, в которой условные растры нужно заменить своими.
В процессе набора выражения осуществляется его проверка. При наличии ошибок в строку сообщений выводится соответствующий текст, а кнопка «Рассчитать» блокируется.
При помощи кнопок быстрого ввода доступны:
- арифметические действия (+, -, *, /)
- тригонометрические функции (sin, cos, tan, asin, acos, atan)
- натуральный логарифм (log), экспонента (exp) и возведение в степень (^)
- вставка скобок, знак взятия канала
Реализованы, но не имеют кнопок быстрой вставки (т.е. вводить необходимо вручную):
- операторы сравнения (<, >, =, !=, <=, >=)
- условные операторы (lt — меньше, gt — больше, eq — равно, ne — не равно, le — меньше или равно, ge — больше или равно)
Операторы сравнения позволяют попиксельно сравнить канал растра с некоторой величиной или другим каналом этого же или любого другого растра. Результатом сравнения будет растр, в котором все пиксели, удовлетворяющие условию получат значение 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.
Контакты
Если вы нашли ошибку или у вас есть предложения по улучшению расширения — воспользуйтесь багтрекером.