Как работать с GRASS GUI из терминала?

Ответить
alexkarta
Участник
Сообщения: 91
Зарегистрирован: 27 янв 2009, 00:22
Репутация: 0

Как работать с GRASS GUI из терминала?

Сообщение alexkarta » 31 июл 2010, 16:22

Такой вопрос, хочу из терминала выполнить скрипт, в процессе работы которого определенные данные будут грузится на дисплее GUI. К примеру пытался сделать так: grass -wx, открывается гис менеджер wxPython, в терминале выполняю d.rast -o map=elevation, понятное деле требует запустить какой-либо x0. Если выполнить из командной строки гис менеджера данные отображаются на дисплее, но эта командная строка недоделанная, например там нельзя выполнить скрипт типа такого for t in print_list_of_rasters; do if [условие]; then d.rast -o map=$t; fi ; done, хотелось бы выполнять такие скриптики и отображать данные на дисплее гис менеджера. Как это сделать?

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

Re: Как работать с GRASS GUI из терминала?

Сообщение KolesovDmitry » 01 авг 2010, 12:08

Сразу вопрос: какая версия грасс и какая операционная система?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Как работать с GRASS GUI из терминала?

Сообщение Александр Мурый » 01 авг 2010, 14:09

Работа идет в 6.4.0RC6 или 6.4.0RC5 под линуксом, так?

Как я понял, хочется управлять дисплеем wxgui так же, как обычным, включаемым через d.mon..
Думаю, не получится. Тут надо выбирать: для скриптов -- d.mon и товарищи, для "ручной", "мышечной" работы -- wxgui.

Поддержку прямого вывода скриптов на дисплей wxgui добавят (если я правильно понял) в grass7, пока там все очень сыро. Хотя попробовать можно..
Редактор материалов, модератор форума

alexkarta
Участник
Сообщения: 91
Зарегистрирован: 27 янв 2009, 00:22
Репутация: 0

Re: Как работать с GRASS GUI из терминала?

Сообщение alexkarta » 03 авг 2010, 22:16

grass 6.4.0rc6 ubuntu 10.04. странно,что не предусмотрено. немного лучше ситуация в tcltk, там хоть и нельзя прямо в командной строке грасс шелл скриптик выполнить,зато есть кнопка в выводе gis.m `запустить в x-term`, т.о. можно выполнить свой скрипт записанный в файл, но в tcltk, в отличии от wx, команда d.rast не добавляет новый слой в список. в общем, ситуация довольно запутана

[Сообщение с мобильного устройства] Изображение

alexkarta
Участник
Сообщения: 91
Зарегистрирован: 27 янв 2009, 00:22
Репутация: 0

Re: Как работать с GRASS GUI из терминала?

Сообщение alexkarta » 03 авг 2010, 22:19

grass 7 с первого раза не получилось скомпилировать

[Сообщение с мобильного устройства] Изображение

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

Re: Как работать с GRASS GUI из терминала?

Сообщение KolesovDmitry » 04 авг 2010, 12:26

alexkarta писал(а):grass 6.4.0rc6 ubuntu 10.04. странно,что не предусмотрено. немного лучше ситуация в tcltk, там хоть и нельзя прямо в командной строке грасс шелл скриптик выполнить,зато есть кнопка в выводе gis.m `запустить в x-term`, т.о. можно выполнить свой скрипт записанный в файл, но в tcltk, в отличии от wx, команда d.rast не добавляет новый слой в список.
Попробуйте еще попробовать запустить GRASS со другой версией GUI:

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

g.gui oldtcltk
Там с работа с мониторами более прозрачна

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Как работать с GRASS GUI из терминала?

Сообщение Александр Мурый » 04 авг 2010, 13:27

Проверил (тоже Ubuntu 10.04, GRASS 6.4.0RC6) -- Tcl/Tk не добавляет ни растр, ни вектор на экран (если даешь в окне "Output" команды d.rast и d.vect).
Получилось отобразить растр (и вектор) с помощью "Add command layer" на нижней панели GIS Manager. Надо внимательно следить, чтоб не было пробелов в именах, если они есть -- экранировать обратным слэшем (\).
2010-08-04-131426_1400x1050_scrot.png
2010-08-04-131426_1400x1050_scrot.png (236.18 КБ) 10074 просмотра
Поискал, почитал вот это: http://grass.itc.it/gdp/html_grass64/g.pnmcomp.html
Видимо, дело в разнице устройства "обычных" графических мониторов, tcl/tk и wxgui.
Tcl/Tk использует вывод на экран не напрямую, а через "костыль" в виде служебного модуля g.pnmcomp, из-за своих внутренних ограничений в цвете и прозрачности изображений.

wxPython, вроде, выводит напрямую через d.rast и d.vect. И здесь тоже получается через "Add command layer".

Однако, нормального исполнения шелл-скрипта ни через Tcl/Tk ни через wxPython мне добиться так и не удалось. Может, стоит пускать все-таки через "обычные" мониторы?

-------------------------------
Да, в d.m (он же "oldtcltk") шелл-скрипт с грассовскими командами запустился нормально.

-------------------------------
Какие ошибки при компиляции grass7?
Редактор материалов, модератор форума

alexkarta
Участник
Сообщения: 91
Зарегистрирован: 27 янв 2009, 00:22
Репутация: 0

Re: Как работать с GRASS GUI из терминала?

Сообщение alexkarta » 18 авг 2010, 15:43

KolesovDmitry писал(а):Какие ошибки при компиляции grass7?
Там какой-то конфликт библиотек был, сейчас уже не вспомнить. grass7 пока использовать не хочу, все и так хорошо работает.

Спасибо за g.gui oldtcltk, вполне приемлемое решение, вроде работает, буду дальше тестировать

Ответить

Вернуться в «GRASS»

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

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