Страница 1 из 1

Создание скрипта на Python для ГИС GRASS

Добавлено: 30 апр 2011, 21:10
updates-bot
Обсуждение статьи "Создание скрипта на Python для ГИС GRASS"

http://gis-lab.info/qa/grass64-python.html

Re: Создание скрипта на Python для ГИС GRASS

Добавлено: 02 май 2011, 22:43
Александр Мурый
Чисто из любопытства: а при стандартном наборе [bash + awk + ...] это можно было бы реализовать? Как я понял, питон --- это прежде всего это для "кроссплатформенности" скрипта?.. А на страничку http://grass.osgeo.org/wiki/GRASS_AddOns модуль попадёт? :)

Re: Создание скрипта на Python для ГИС GRASS

Добавлено: 03 июн 2011, 13:21
Александр Мурый
При запуске (на Linux) вне окружения GRASS ругается:

Код: Выделить всё

Traceback (most recent call last):
  File "./i.jmdist", line 50, in <module>
    import grass.script as grass
ImportError: No module named grass.script
В то время как (по идее) должен писать:

Код: Выделить всё

You must be in GRASS GIS to run this program.
Т.е., видимо, питон просто не доходит до нужного предупреждения, т.к. не может загрузить модуль grass.script, так?

Re: Создание скрипта на Python для ГИС GRASS

Добавлено: 03 июн 2011, 14:13
Voltron
Судя по ошибке не установлен или не находится пакет-обертка над GRASS grass.script.

Re: Создание скрипта на Python для ГИС GRASS

Добавлено: 03 июн 2011, 14:27
Александр Мурый
Voltron писал(а):Судя по ошибке не установлен или не находится пакет-обертка над GRASS grass.script.
Это понятно -- скрипт работает только из GRASS, там и подгружается grass.script.
Вопрос, вроде, решился: если кусок

Код: Выделить всё


if __name__ == "__main__":                                                                                                                
        if "GISBASE" not in os.environ:                                                                                                   
                print "You must be in GRASS GIS to run this program."                                                                     
                sys.exit(1)
из самого конца перенести в начало после строк

Код: Выделить всё


import os, sys                                                                                                                            
from math import exp, sqrt, log                                                                                                           
import numpy as np
то работает "как мне надо". Мелочь, а приятно :)

Re: Создание скрипта на Python для ГИС GRASS

Добавлено: 03 июн 2011, 19:14
KolesovDmitry
amuriy писал(а): Вопрос, вроде, решился: если кусок
<...>
из самого конца перенести в начало после строк
<...>
то работает "как мне надо". Мелочь, а приятно :)
Все, обновил скрипт. Спасибо.

Re: Создание скрипта на Python для ГИС GRASS

Добавлено: 06 май 2012, 18:28
bolotoved
Скачал я прилагаемый к статье скрипт i.jmdist
Я конечно извиняюсь, но что-то так и не понял, КАК уже готовый скрипт запустить.
Его из GRASS запускают или из Python? Каким методом?

Re: Создание скрипта на Python для ГИС GRASS

Добавлено: 06 май 2012, 18:44
Александр Мурый
bolotoved, запускать нужно из-под работающей GRASS из командной строки. Будет ли скрипт работать под Win как надо, точно сказать не могу.

Кто-нибудь запускал Python-скрипты под Windows?

Добавлено: 07 май 2012, 07:48
bolotoved
amuriy писал(а):bolotoved, запускать нужно из-под работающей GRASS из командной строки. Будет ли скрипт работать под Win как надо, точно сказать не могу.
У меня Windows и тот Грасс, что идет в комплекте с Кугис при установке через Osgeo4w.
Чтобы запустить скрипт нужно создать файл i.jmdist.bat в папке C:\OSGeo4W\apps\grass\grass-6.4.2\bin содержащий следующий код:

Код: Выделить всё

@"%GRASS_PYTHON%" "%GISBASE%/scripts/i.jmdist" %*

Re: Создание скрипта на Python для ГИС GRASS

Добавлено: 27 мар 2014, 20:19
KolesovDmitry
Статья обновлена, исправлены ошибки в формулах расчетов (как в описании модуля, так и в его реализации).