GIS-LAB

Географические информационные системы и дистанционное зондирование


Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли


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

Обсуждение материалов сайта: вопросы, замечания, предложения

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

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

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

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

updates-bot
Bot
 
Зарегистрирован: 03 фев 2008
 
Сообщения: 276
Репутация: 3

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

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

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

Редактор материалов, модератор форума
Александр Мурый
званий не имею
 
Зарегистрирован: 26 сен 2009
Откуда: Москва (на карте)
 
Сообщения: 4912
Репутация: 676
Статьи: 3
Проекты: 5/1

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, так?
  • 0

Редактор материалов, модератор форума
Александр Мурый
званий не имею
 
Зарегистрирован: 26 сен 2009
Откуда: Москва (на карте)
 
Сообщения: 4912
Репутация: 676
Статьи: 3
Проекты: 5/1

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

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

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

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

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
 

то работает "как мне надо". Мелочь, а приятно :)
  • 0

Редактор материалов, модератор форума
Александр Мурый
званий не имею
 
Зарегистрирован: 26 сен 2009
Откуда: Москва (на карте)
 
Сообщения: 4912
Репутация: 676
Статьи: 3
Проекты: 5/1

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

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

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


Все, обновил скрипт. Спасибо.
  • 0

Последний раз редактировалось KolesovDmitry 03 июн 2011, 19:16, всего редактировалось 1 раз.
KolesovDmitry
Гуру
 
Зарегистрирован: 22 авг 2007
Откуда: Казань (на карте)
 
Сообщения: 806
Репутация: 116
Статьи: 18
Проекты: 4

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

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

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

bolotoved
Гуру
 
Зарегистрирован: 30 дек 2008
Откуда: Ханты-Мансийск (на карте)
 
Сообщения: 920
Репутация: 234
Статьи: 4
Проекты: 1

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

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

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

Редактор материалов, модератор форума
Александр Мурый
званий не имею
 
Зарегистрирован: 26 сен 2009
Откуда: Москва (на карте)
 
Сообщения: 4912
Репутация: 676
Статьи: 3
Проекты: 5/1

Кто-нибудь запускал 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" %*
  • 0

bolotoved
Гуру
 
Зарегистрирован: 30 дек 2008
Откуда: Ханты-Мансийск (на карте)
 
Сообщения: 920
Репутация: 234
Статьи: 4
Проекты: 1

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

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

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

KolesovDmitry
Гуру
 
Зарегистрирован: 22 авг 2007
Откуда: Казань (на карте)
 
Сообщения: 806
Репутация: 116
Статьи: 18
Проекты: 4


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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


(Геокруг)

© GIS-Lab и авторы, 2002-2013. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов (подробнее).