Команды Grass для веб-сервисов

этот вопрос больше касается веб-сервисов, чем программного обеспечения Grass. Есть ли у вас какие-либо предложения о том, как разрешить доступ к команде (Linux) как к веб-службе?

На самом деле я работаю с NodeJS, но приветствуются и другие решения.

Спасибо,

С уважением,

SB.


person Sofiane    schedule 17.09.2014    source источник


Ответы (1)


Это старый пост, но я надеюсь, что мои предложения могут быть кому-то полезны.

Вероятно, наиболее распространенным способом является использование WPS с использованием PyWPS или Zoo Project оба проекта предлагают привязку к GRASS GIS.

Другим вариантом является вызов GRASS GIS непосредственно из вашего серверного приложения. Это можно сделать вручную, настроив среду GRASS GIS (поскольку для работы модулей GRASS требуется сеанс GRASS). Это описано в вики пользователей GRASS, в документация и, наконец, на SE (Не удается запустить инструменты травы из скрипта Python (трава 6.4, Python 2.7, Win7)).

Наконец, в разрабатываемой версии GRASS GIS есть новый способ вызова модулей GRASS или любые сценарии, предназначенные для работы в среде/сеансе GRASS. Вот пример Python:

import subprocess
grassbin = 'grass71'  # we expect grass71 to be on path
mapset = '/home/john/grassdata/nc_spm_08_grass7_tests/PERMANENT/'
subprocess.check_call([grassbin, mapset, '--exec', 'g.version', '-g'])"

Я не уверен, как именно это выглядит в NodeJS, но вы можете посмотреть Выполнить двоичный файл командной строки с помощью Node.js. Интерфейс был добавлен совсем недавно, и он еще не в стабильной версии, однако вполне пригоден для использования. В более старых версиях вы можете получить аналогичную, но ограниченную функциональность, установив переменную среды GRASS_BATCH_JOB. Вы можете узнать больше в документации или запустив grass71 --help. Общий синтаксис:

grass_executable full/path/to/mapset --exec module module=parameters -andflags
grass_executable full/path/to/mapset --exec custom_script.py
grass_executable -standard -flags full/path/to/mapset --exec ...

Обратите внимание, что, как правило, модули и сценарии GRASS, написанные специально для GRASS, требуют, чтобы сеанс GRASS был активен. Стандартным способом является запуск программы GRASS, которая запускает/устанавливает сеанс. Сеанс обычно является интерактивным (командная строка и/или графический интерфейс). При использовании функций GRASS из других программ необходимо каким-либо образом настроить сеанс/среду. PyWPS и Zoo Project помогут вам в этом, или вы можете сделать это полностью самостоятельно (второй предложенный вариант), или в идеале вы можете использовать фактический исполняемый файл GRASS, который будет запускать указанный модуль или скрипт в соответствующем сеансе, используя новый флаг --exec или GRASS_BATCH_JOB переменная (это последний предложенный вариант).

person wenzeslaus    schedule 02.06.2015