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

Обсуждение материалов сайта: вопросы, замечания, предложения
Ответить
updates-bot
Bot
Сообщения: 276
Зарегистрирован: 03 фев 2008, 23:13
Репутация: 3

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

Сообщение updates-bot » 30 апр 2011, 21:10

Обсуждение статьи "Создание скрипта на Python для ГИС GRASS"

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

Александр Мурый
Гуру
Сообщения: 5039
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 712
Ваше звание: званий не имею
Откуда: Москва

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

Сообщение Александр Мурый » 02 май 2011, 22:43

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

Александр Мурый
Гуру
Сообщения: 5039
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 712
Ваше звание: званий не имею
Откуда: Москва

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, так?
Редактор материалов, модератор форума

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Статьи: 31
Проекты: 4/1
Репутация: 32
Откуда: Ukraine

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

Сообщение Voltron » 03 июн 2011, 14:13

Судя по ошибке не установлен или не находится пакет-обертка над GRASS grass.script.

Александр Мурый
Гуру
Сообщения: 5039
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 712
Ваше звание: званий не имею
Откуда: Москва

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
то работает "как мне надо". Мелочь, а приятно :)
Редактор материалов, модератор форума

KolesovDmitry
Гуру
Сообщения: 809
Зарегистрирован: 22 авг 2007, 14:58
Статьи: 18
Проекты: 4
Репутация: 119
Откуда: Казань

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

Сообщение KolesovDmitry » 03 июн 2011, 19:14

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

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Статьи: 4
Проекты: 1
Репутация: 235
Откуда: Ханты-Мансийск
Контактная информация:

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

Сообщение bolotoved » 06 май 2012, 18:28

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

Александр Мурый
Гуру
Сообщения: 5039
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 712
Ваше звание: званий не имею
Откуда: Москва

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

Сообщение Александр Мурый » 06 май 2012, 18:44

bolotoved, запускать нужно из-под работающей GRASS из командной строки. Будет ли скрипт работать под Win как надо, точно сказать не могу.
Редактор материалов, модератор форума

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Статьи: 4
Проекты: 1
Репутация: 235
Откуда: Ханты-Мансийск
Контактная информация:

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

Сообщение bolotoved » 07 май 2012, 07:48

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

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

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

KolesovDmitry
Гуру
Сообщения: 809
Зарегистрирован: 22 авг 2007, 14:58
Статьи: 18
Проекты: 4
Репутация: 119
Откуда: Казань

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

Сообщение KolesovDmitry » 27 мар 2014, 20:19

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

Ответить

Вернуться в «Материалы сайта»