Graphical Modeler - не получается задать переменные

Ответить
Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Graphical Modeler - не получается задать переменные

Сообщение rhot » 30 янв 2012, 16:14

Здравствуйте!

Цель:
создать мультиспектральный растр с увеличением пространственного разрешения по алгоритму Brovey в системе координат lan-lon WGS84.
Исходные данные: набор растров LANDSAT в системе координат UTM WGS84.
Проблема: сцен с каналами LANDSAT около 50.

Решил реализовать это с помощью Graphical Modeler, написанным чехом Martin Landa. Диаграмма связей и скриншот более подробного содержания модели приведены во вложении.

Собственно мой вопрос:
Под номером 11 задан модуль i.fusion.brovey; я указывал ему входные данные ms1=toar.2 ms2=toar.4 ms3=toar.5 а Graphical Modeler почему-то прибавляет к этим значениям ещё и местоположение! то есть вот так = toar.2@l7_20000421 ms2=toar.4@l7_20000421 ms3=toar.5@l7_20000421 pan=toar.8@l7_20000421 :evil:
Пробовал менять исходник *.gxm вне сессии GRASS с помощью текстового редактора, всё равно - при запуске графического интерфейса, эти входные данные снова меняются!!
Что же такое с этим Graphical Modeler?? Как заставить его принимать те параметры, которые задаю я?

Версия GRASS 7.0.svn50461 (2012)
Система: Linux V 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686 i686 i386 GNU/Linux
Вложения
Скрин.png
Скрин содержания модели
Скрин.png (94.57 КБ) 10277 просмотров
Диаграмма связей.png
Диаграмма связей
Диаграмма связей.png (41.5 КБ) 10277 просмотров
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

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

Re: Graphical Modeler - не получается задать переменные

Сообщение KolesovDmitry » 30 янв 2012, 16:57

Я правильно понимаю, что вас смущает то, что вы задаете название карты в виде "raster_name", а получаете на выходе название вида "raster_name@mapset_name"?

Если все дело в этом, то ничего страшного здесь нет, просто модуль сгенерировал полное имя растра. Если же дело в том, что такое именование порождает какие-либо проблемы, то опишите, пожалуйста, какие именно.

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

Re: Graphical Modeler - не получается задать переменные

Сообщение Александр Мурый » 30 янв 2012, 17:07

Сразу скажу: лично не работал с Graphical Modeler.
rhot писал(а):
Под номером 11 задан модуль i.fusion.brovey; я указывал ему входные данные ms1=toar.2 ms2=toar.4 ms3=toar.5 а Graphical Modeler почему-то прибавляет к этим значениям ещё и местоположение! то есть вот так = toar.2@l7_20000421
Не понял, в чём проблема.. Моделлер не работает и выдаёт ошибки или работает, но просто добавляет имя набора?
А чем не нравятся полные пути (с указанием набора)? Это нормально для GRASS, другое дело, что при работе в одном и том же наборе это часто лишнее.

Если позволите, несколько замечаний: для стабильной работы лучше исп-ть GRASS 6.4.* (лучше всего свежую 6.4.2 из SVN); до "моделлеров" (ИМХО) лучше попрактиковаться на shell-скриптах.

Опишите подробнее задачу словами, т.к. диаграмма не прояснила все пункты.
Редактор материалов, модератор форума

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Graphical Modeler - не получается задать переменные

Сообщение rhot » 30 янв 2012, 17:09

Единственные переменные, которые я задаю, это: %target_mapset, %source_loc, %sensor.
Все они каждый раз разные, а он мне один и тот же набор карт подсовывает l7_20000421. У меня таких наборов ещё десятка три-четыре наберётся. На последнем этапе, шаг №11, я хочу чтобы Graphical Modeler брал откорретированные растры в текущем рабочем наборе карт, т.е. toar.2, toar.4, toar.5.
Другими словами, текущий рабочий набор карт будет каждый раз разный, и задаваться переменной %target_mapset
Этот модуль, i.fusion.brovey, требует только имя растра и никакого набора карт.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Graphical Modeler - не получается задать переменные

Сообщение rhot » 30 янв 2012, 17:27

лучше попрактиковаться на shell-скриптах
уж лучше тогда сразу на питоне)))

Опишу задачу в деталях.
1) перепроицировать растры (7-8 каналов в каждом из 46 наборов карт) из UTM (в метрах) в географическую систему координат, датум тот же - WGS84;
2) скорректировать спектральные характеристики снимков по атмосфере;
3) рассчитать возможное облачное покрытие над каждой из сцен;
4) создать мультиспектральные растры (brovey, 742, 453, 543, 754, 745 - цифры означают номер канала LANDSAT).

Порядок моих действий:
а) запускаю GRASS с исходным набором карт;
б) оттуда вызываю Graphical Modeler.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

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

Re: Graphical Modeler - не получается задать переменные

Сообщение Александр Мурый » 30 янв 2012, 17:30

rhot писал(а): текущий рабочий набор карт будет каждый раз разный, и задаваться переменной %target_mapset
После шагов 3/4 я не вижу команды создания новой области, например, для WGS84 Lat/Long это может быть "g.proj -c location=new_location epsg=4326". Куда вы перепроецируете растры и вектор на шагах 5 и 7? А исходная область точно в UTM?

А вообще, огласите, пож-та, весь список (т.е. вывод команд):
eval $(g.gisenv) && echo $LOCATION_NAME/$MAPSET
g.proj -p
g.region -p
g.list rast
Редактор материалов, модератор форума

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Graphical Modeler - не получается задать переменные

Сообщение rhot » 30 янв 2012, 17:45

После шагов 3/4 я не вижу команды создания новой области
ваша правда, но только не области, а набора карт (mapset)
Надо было добавить: g.mapset -c mapset=%target_mapset до того как перейти в этот самый набор. :oops:
Результат команды (g.gisenv) && echo $LOCATION_NAME/$MAPSET
MAPSET=PERMANENT
GISDBASE=/home/geo/grass_lan
LOCATION_NAME=utm_ll
GUI=wxpython

Результат команды g.proj -p
-PROJ_INFO-------------------------------------------------
name : Lat/Lon
proj : ll
datum : wgs84
ellps : wgs84
towgs84 : 0,0,0,0,0,0,0
no_defs : defined
-PROJ_UNITS------------------------------------------------
unit : degree
units : degrees
meters : 1.0

Результат команды g.region -p
projection: 3 (Latitude-Longitude)
zone: 0
datum: wgs84
ellipsoid: wgs84
north: 61:08:52N
south: 59:00:43N
west: 47:24:59E
east: 52:04:41E
nsres: 0:00:01
ewres: 0:00:01
rows: 7689
cols: 16782
cells: 129036798

Результат команды g.list rast
raster files available in mapset <PERMANENT>:
B.1 B.3 B.5 B.62 B.8
B.2 B.4 B.61 B.7 l7_20000421_451

raster files available in mapset <l7_20000421>:
453 B.1 B.61 brovey toar.2 toar.62
543 B.2 B.62 brovey.blue toar.3 toar.7
742 B.3 B.7 brovey.green toar.4 toar.8
745 B.4 B.8 brovey.red toar.5
754 B.5 acca toar.1 toar.61

P.S.: прошу прощения за длинный пост - спойлер не врубился :?
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

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

Re: Graphical Modeler - не получается задать переменные

Сообщение Александр Мурый » 30 янв 2012, 18:00

rhot писал(а):
лучше попрактиковаться на shell-скриптах
уж лучше тогда сразу на питоне)))
Вопрос спорный, т.к. нормальная поддержка питона была добавлена недавно, а шелл-скрипты никто не отменял (и не отменят, как бы не пытались излишне продвинутые личности типа вышеупомянутого чеха Мартина). Ладно, оставим вопросы религии :)

Как бы сделал я.

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

-- создаём конечную область в WGS84 Lat/Long любым способом
-- в скрипте заходим в каждый набор в UTM-области, в котором делаем:
     -- корректируем спектральные характеристики снимков по атмосфере 
     -- рассчитываем возможное облачное покрытие над каждой из сцен
     -- создаём  мультиспектральные растры
     -- создаём векторные границы региона для каждого растра (v.in.region)
     
-- заходим в конечную область:
     -- перепроецируем каждую векторную границу для каждой сцены в конечную область, задаём по ней регион с нужным разрешением
     -- перепроецируем каждый растр в конечную область
  -- сшиваем (если нужно) все обработанные растры (r.patch, как я понимаю).
И да, исходная область у вас в WGS84 Lat/Long, откуда UTM? И зачем тогда конечная область?
Последний раз редактировалось Александр Мурый 30 янв 2012, 21:40, всего редактировалось 1 раз.
Редактор материалов, модератор форума

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Graphical Modeler - не получается задать переменные

Сообщение rhot » 30 янв 2012, 18:53

Исходная область и правда WGS84 Lat/Long =)
Просто я выбрал её, не задумываясь (не собирался запускать скрипт). А так я выбираю ту, исходную, куда импортировал все каналы LANDSAT. Они-то точно в UTM.

Попробую завтра ваш алгоритм воплотить в жизнь, быть может он более совершенен ;-)

Ещё вопрос: стоит ли создавать для каждого растра векторные границы региона? т.е. не одинаковы ли они для одной сцены??
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

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

Re: Graphical Modeler - не получается задать переменные

Сообщение Александр Мурый » 30 янв 2012, 20:37

rhot писал(а):Исходная область и правда WGS84 Lat/Long =)
Просто я выбрал её, не задумываясь (не собирался запускать скрипт). А так я выбираю ту, исходную, куда импортировал все каналы LANDSAT. Они-то точно в UTM.
И сами исходные ландсаты в чём были? Наверное, в WGS84 Lat/Long и были. Просто не понимаю, зачем тогда UTM.. Какие-то из используемых модулей не работают в географ. координатах? Т.е. нужно ли вообще перепроецирование?
rhot писал(а): Ещё вопрос: стоит ли создавать для каждого растра векторные границы региона? т.е. не одинаковы ли они для одной сцены??
В таком случае одна граница для каждой сцены.
Редактор материалов, модератор форума

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Graphical Modeler - не получается задать переменные

Сообщение rhot » 30 янв 2012, 21:03

И сами исходные ландсаты в чём были? Наверное, в WGS84 Lat/Long и были. Просто не понимаю, зачем тогда UTM.. Какие-то из используемых модулей не работают в географ. координатах? Т.е. нужно ли вообще перепроецирование?
Почти все стандартные сцены LANDSAT приводятся к общей системе координат, принятой в США - UTM. Поэтому мне и требуется перепроицировать растры, т.к. исследуемая зона работ охватывает 4 зоны по системе координат UTM.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Graphical Modeler - не получается задать переменные

Сообщение rhot » 02 фев 2012, 12:27

Нашёл РЕШЕНИЕ!

Возможно оно корявое и не самое совершенное, и если кто знает как можно сделать лучше, пожалуйста, делитесь идеями. :)

В общем, модель необходимо запускать из исходного района (откуда требуется перепроицировать растры), а в целевом районе не должен быть создан набор карт (mapset), по имени совпадающий с исходным набором.
По совету amuriy добавил команду создания нового (целевого) набора карт перед собственно перепроицированием.
Вложения
Скрин2.png
Команды в модели
Скрин2.png (142.34 КБ) 10124 просмотра
Диаграмма.png
Диаграмма окончательная
Диаграмма.png (107.2 КБ) 10124 просмотра
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Graphical Modeler - не получается задать переменные

Сообщение Максим Дубинин » 02 фев 2012, 12:57

было бы здорово, если бы вы изложили как пользоваться моделлером в ГРАСС в виде описания в вики, прямо на вашем примере.
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Graphical Modeler - не получается задать переменные

Сообщение rhot » 02 фев 2012, 13:17

попробую =)
потом здесь ссылку дам.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Ответить

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

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

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