Однако, иногда может потребоваться полностью автономный скрипт, который может работать, даже если GRASS GIS не запущена, например, при вызове скрипта из какой-либо программы, для того, чтобы выполнить некоторый анализ. Это может быть также полезным при автоматической обработке, когда нужно по расписанию обновлять или генерировать данные и т.д.
Здесь рассматривается пример создания скрипта (на shell), в котором производится инициализация GRASS с последующим вызовом команд GRASS GIS. Подробности описаны тут, ниже идут "выжимки"
Итак, что потребуется сделать:
1) Задать значения переменным окружения, которые используются в GRASS GIS (PATH, GISRC и т.д.).
2) Собственно сама обработка данных, состоящая из последовательности команд GRASS GIS
3) Очистка системы от временных файлов
Здесь пример такого скрипта:
Спойлер
Код: Выделить всё
#!/bin/bash
# Это пример запуска команд GRASS из внешнего скприта
###########################################
# Настройка параметров перед запуском GRASS
###########################################
# $GISBASE определяет каталог, в который установлена GRASS
# Если не знаете, где этот каталог, то можно запустить GRASS
# и выполнить команду: echo $GISBASE
GISBASE=/usr/lib/grass64
export GISBASE
# Добавим в $PATH пути, где искать скрипты и команды GRASS:
PATH=$PATH:$GISBASE/bin:$GISBASE/scripts
export PATH
# Добавим библиотеки GRASS к LD_LIBRARY_PATH.
# (Для этого проверим, существует ли такая переменная
# и добавим в конец пути к библиотекам GRASS)
if [ -z "$LD_LIBRARY_PATH" ]
then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GISBASE/lib
else
LD_LIBRARY_PATH=$GISBASE/lib
fi
export LD_LIBRARY_PATH
# Используем идентификатор процесса (PID) в файле блокировки:
GIS_LOCK=$$
# Прописываем пути к набору, области и ГИС-БД
THE_GISDBASE="/пути/к/каталогу/GRASSDATA"
THE_LOCATION="spearfish60"
THE_MAPSET="PERMANENT"
# Создаем файл настроек GRASS
# и прописываем к нему путь:
THE_GRASSRC="/tmp/grassrc.$$"
echo "GISDBASE: $THE_GISDBASE
LOCATION_NAME: $THE_LOCATION
MAPSET: $THE_MAPSET
" > "$THE_GRASSRC"
export GISRC="$THE_GRASSRC"
##########################################################
# Настройка параметров завершена, можно использовать GRASS
##########################################################
############################
# Пример вызова команд GRASS
############################
# Выведем список растров в данном наборе:
g.mlist rast
# Выведем информацию о первом растре из списка:
first=`g.mlist rast | head -1`
r.info $first
##########################################################
# Удаляем файл с настройками, чтобы не мусорить в системе:
##########################################################
rm "$THE_GRASSRC"