Вызов GRASS GIS из скрипта на Python
Чаще всего работа с GRASS GIS происходит в интерактивном режиме, когда пользователь вводит команды в консоли или вызывает их через графический интерфейс пользователя. При необходимости автоматизировать свои действия пользователь может написать скрипт, который будет доступен для повторного использования. Пример создания такого скрипта описывается в статье Создание скрипта на Python для ГИС GRASS. После создания скрипта пользователь может запускать его из консоли, в которой запущена ГИС GRASS.
Однако, иногда может потребоваться полностью автономный скрипт, который может работать, даже если GRASS GIS не запущена, например, при вызове скрипта из какой-либо программы, для того, чтобы выполнить некоторый анализ. Это может быть также полезным при автоматической обработке, когда нужно по расписанию обновлять или генерировать данные и т.д. Возможно также создание таких скриптов, которые автоматически создают проект GRASS, выполняют определенную работу (импортируют данные, анализируют их), и по завершении обработки удаляют проекты. Методика создания подобных скриптов подробно описана в статье On scripting GRASS GIS: Building location-independent command line tools, в данной работе рассматривает лишь небольшая ее часть -- создание скрипта, способного использовать готовые проекты GRASS.
Пример подобного скрипта, написанного на shell, приводится в рецепте, данная статья описывает решение данной задачи для языка Python. Нужно отметить, что описываемый подход можно применить к любому языку программирования, а не только к shell или Python.
Этапы работы
Внешний по отношению к ГИС GRASS скрипт должен реализовать следующие основные этапы обработки:
- Задать значения переменным окружения, которые используются в GRASS GIS (PATH, GISRC и т.д.). Этот этап служит инициализацией и необходим для того, чтобы скрипт был в состоянии определить, где находятся файлы проекта и модули ГИС GRASS и, как следствие, мог их использовать в своей работе.
- Собственно сама обработка данных, состоящая из последовательности команд GRASS GIS. Это основная часть скрипта, в которой пользователь задает последовательность действий, необходимых для того, чтобы выполнить планируемую обработку данных.
- Очистка системы от временных файлов. После выполнения необходимого анализа или действий над исходными данными все вспомогательные файлы следует удалить, чтобы не "мусорить" в системе.