Страница 1 из 1
Как работать с GRASS GUI из терминала?
Добавлено: 31 июл 2010, 16:22
alexkarta
Такой вопрос, хочу из терминала выполнить скрипт, в процессе работы которого определенные данные будут грузится на дисплее 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, хотелось бы выполнять такие скриптики и отображать данные на дисплее гис менеджера. Как это сделать?
Re: Как работать с GRASS GUI из терминала?
Добавлено: 01 авг 2010, 12:08
KolesovDmitry
Сразу вопрос: какая версия грасс и какая операционная система?
Re: Как работать с GRASS GUI из терминала?
Добавлено: 01 авг 2010, 14:09
Александр Мурый
Работа идет в 6.4.0RC6 или 6.4.0RC5 под линуксом, так?
Как я понял, хочется управлять дисплеем wxgui так же, как обычным, включаемым через d.mon..
Думаю, не получится. Тут надо выбирать: для скриптов -- d.mon и товарищи, для "ручной", "мышечной" работы -- wxgui.
Поддержку прямого вывода скриптов на дисплей wxgui добавят (если я правильно понял) в grass7, пока там все очень сыро. Хотя попробовать можно..
Re: Как работать с GRASS GUI из терминала?
Добавлено: 03 авг 2010, 22:16
alexkarta
grass 6.4.0rc6 ubuntu 10.04. странно,что не предусмотрено. немного лучше ситуация в tcltk, там хоть и нельзя прямо в командной строке грасс шелл скриптик выполнить,зато есть кнопка в выводе gis.m `запустить в x-term`, т.о. можно выполнить свой скрипт записанный в файл, но в tcltk, в отличии от wx, команда d.rast не добавляет новый слой в список. в общем, ситуация довольно запутана
[Сообщение с мобильного устройства] 
Re: Как работать с GRASS GUI из терминала?
Добавлено: 03 авг 2010, 22:19
alexkarta
grass 7 с первого раза не получилось скомпилировать
[Сообщение с мобильного устройства] 
Re: Как работать с GRASS GUI из терминала?
Добавлено: 04 авг 2010, 12:26
KolesovDmitry
alexkarta писал(а):grass 6.4.0rc6 ubuntu 10.04. странно,что не предусмотрено. немного лучше ситуация в tcltk, там хоть и нельзя прямо в командной строке грасс шелл скриптик выполнить,зато есть кнопка в выводе gis.m `запустить в x-term`, т.о. можно выполнить свой скрипт записанный в файл, но в tcltk, в отличии от wx, команда d.rast не добавляет новый слой в список.
Попробуйте еще попробовать запустить GRASS со другой версией GUI:
Там с работа с мониторами более прозрачна
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 (236.18 КБ) 10737 просмотров
Поискал, почитал вот это:
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?
Re: Как работать с GRASS GUI из терминала?
Добавлено: 18 авг 2010, 15:43
alexkarta
KolesovDmitry писал(а):Какие ошибки при компиляции grass7?
Там какой-то конфликт библиотек был, сейчас уже не вспомнить. grass7 пока использовать не хочу, все и так хорошо работает.
Спасибо за
g.gui oldtcltk, вполне приемлемое решение, вроде работает, буду дальше тестировать