Graphical Modeler - не получается задать переменные
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Graphical Modeler - не получается задать переменные
Здравствуйте!
Цель:
создать мультиспектральный растр с увеличением пространственного разрешения по алгоритму 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
Пробовал менять исходник *.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
Цель:
создать мультиспектральный растр с увеличением пространственного разрешения по алгоритму 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
Пробовал менять исходник *.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 (94.57 КБ) 10277 просмотров
-
- Диаграмма связей
- Диаграмма связей.png (41.5 КБ) 10277 просмотров
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Graphical Modeler - не получается задать переменные
Я правильно понимаю, что вас смущает то, что вы задаете название карты в виде "raster_name", а получаете на выходе название вида "raster_name@mapset_name"?
Если все дело в этом, то ничего страшного здесь нет, просто модуль сгенерировал полное имя растра. Если же дело в том, что такое именование порождает какие-либо проблемы, то опишите, пожалуйста, какие именно.
Если все дело в этом, то ничего страшного здесь нет, просто модуль сгенерировал полное имя растра. Если же дело в том, что такое именование порождает какие-либо проблемы, то опишите, пожалуйста, какие именно.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Graphical Modeler - не получается задать переменные
Сразу скажу: лично не работал с Graphical Modeler.
А чем не нравятся полные пути (с указанием набора)? Это нормально для GRASS, другое дело, что при работе в одном и том же наборе это часто лишнее.
Если позволите, несколько замечаний: для стабильной работы лучше исп-ть GRASS 6.4.* (лучше всего свежую 6.4.2 из SVN); до "моделлеров" (ИМХО) лучше попрактиковаться на shell-скриптах.
Опишите подробнее задачу словами, т.к. диаграмма не прояснила все пункты.
Не понял, в чём проблема.. Моделлер не работает и выдаёт ошибки или работает, но просто добавляет имя набора?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 - не получается задать переменные
Единственные переменные, которые я задаю, это: %target_mapset, %source_loc, %sensor.
Все они каждый раз разные, а он мне один и тот же набор карт подсовывает l7_20000421. У меня таких наборов ещё десятка три-четыре наберётся. На последнем этапе, шаг №11, я хочу чтобы Graphical Modeler брал откорретированные растры в текущем рабочем наборе карт, т.е. toar.2, toar.4, toar.5.
Другими словами, текущий рабочий набор карт будет каждый раз разный, и задаваться переменной %target_mapset
Этот модуль, i.fusion.brovey, требует только имя растра и никакого набора карт.
Все они каждый раз разные, а он мне один и тот же набор карт подсовывает 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 - не получается задать переменные
уж лучше тогда сразу на питоне)))лучше попрактиковаться на 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 - не получается задать переменные
После шагов 3/4 я не вижу команды создания новой области, например, для WGS84 Lat/Long это может быть "g.proj -c location=new_location epsg=4326". Куда вы перепроецируете растры и вектор на шагах 5 и 7? А исходная область точно в UTM?rhot писал(а): текущий рабочий набор карт будет каждый раз разный, и задаваться переменной %target_mapset
А вообще, огласите, пож-та, весь список (т.е. вывод команд):
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 - не получается задать переменные
ваша правда, но только не области, а набора карт (mapset)После шагов 3/4 я не вижу команды создания новой области
Надо было добавить: g.mapset -c mapset=%target_mapset до того как перейти в этот самый набор.
Результат команды (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 - не получается задать переменные
Вопрос спорный, т.к. нормальная поддержка питона была добавлена недавно, а шелл-скрипты никто не отменял (и не отменят, как бы не пытались излишне продвинутые личности типа вышеупомянутого чеха Мартина). Ладно, оставим вопросы религииrhot писал(а):уж лучше тогда сразу на питоне)))лучше попрактиковаться на shell-скриптах
Как бы сделал я.
Код: Выделить всё
-- создаём конечную область в WGS84 Lat/Long любым способом
-- в скрипте заходим в каждый набор в UTM-области, в котором делаем:
-- корректируем спектральные характеристики снимков по атмосфере
-- рассчитываем возможное облачное покрытие над каждой из сцен
-- создаём мультиспектральные растры
-- создаём векторные границы региона для каждого растра (v.in.region)
-- заходим в конечную область:
-- перепроецируем каждую векторную границу для каждой сцены в конечную область, задаём по ней регион с нужным разрешением
-- перепроецируем каждый растр в конечную область
-- сшиваем (если нужно) все обработанные растры (r.patch, как я понимаю).
Последний раз редактировалось Александр Мурый 30 янв 2012, 21:40, всего редактировалось 1 раз.
Редактор материалов, модератор форума
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Graphical Modeler - не получается задать переменные
Исходная область и правда WGS84 Lat/Long =)
Просто я выбрал её, не задумываясь (не собирался запускать скрипт). А так я выбираю ту, исходную, куда импортировал все каналы LANDSAT. Они-то точно в UTM.
Попробую завтра ваш алгоритм воплотить в жизнь, быть может он более совершенен
Ещё вопрос: стоит ли создавать для каждого растра векторные границы региона? т.е. не одинаковы ли они для одной сцены??
Просто я выбрал её, не задумываясь (не собирался запускать скрипт). А так я выбираю ту, исходную, куда импортировал все каналы LANDSAT. Они-то точно в UTM.
Попробую завтра ваш алгоритм воплотить в жизнь, быть может он более совершенен
Ещё вопрос: стоит ли создавать для каждого растра векторные границы региона? т.е. не одинаковы ли они для одной сцены??
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Graphical Modeler - не получается задать переменные
И сами исходные ландсаты в чём были? Наверное, в WGS84 Lat/Long и были. Просто не понимаю, зачем тогда UTM.. Какие-то из используемых модулей не работают в географ. координатах? Т.е. нужно ли вообще перепроецирование?rhot писал(а):Исходная область и правда WGS84 Lat/Long =)
Просто я выбрал её, не задумываясь (не собирался запускать скрипт). А так я выбираю ту, исходную, куда импортировал все каналы LANDSAT. Они-то точно в UTM.
В таком случае одна граница для каждой сцены.rhot писал(а): Ещё вопрос: стоит ли создавать для каждого растра векторные границы региона? т.е. не одинаковы ли они для одной сцены??
Редактор материалов, модератор форума
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Graphical Modeler - не получается задать переменные
Почти все стандартные сцены LANDSAT приводятся к общей системе координат, принятой в США - UTM. Поэтому мне и требуется перепроицировать растры, т.к. исследуемая зона работ охватывает 4 зоны по системе координат UTM.И сами исходные ландсаты в чём были? Наверное, в WGS84 Lat/Long и были. Просто не понимаю, зачем тогда UTM.. Какие-то из используемых модулей не работают в географ. координатах? Т.е. нужно ли вообще перепроецирование?
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Graphical Modeler - не получается задать переменные
Нашёл РЕШЕНИЕ!
Возможно оно корявое и не самое совершенное, и если кто знает как можно сделать лучше, пожалуйста, делитесь идеями.
В общем, модель необходимо запускать из исходного района (откуда требуется перепроицировать растры), а в целевом районе не должен быть создан набор карт (mapset), по имени совпадающий с исходным набором.
По совету amuriy добавил команду создания нового (целевого) набора карт перед собственно перепроицированием.
Возможно оно корявое и не самое совершенное, и если кто знает как можно сделать лучше, пожалуйста, делитесь идеями.
В общем, модель необходимо запускать из исходного района (откуда требуется перепроицировать растры), а в целевом районе не должен быть создан набор карт (mapset), по имени совпадающий с исходным набором.
По совету amuriy добавил команду создания нового (целевого) набора карт перед собственно перепроицированием.
- Вложения
-
- Команды в модели
- Скрин2.png (142.34 КБ) 10124 просмотра
-
- Диаграмма окончательная
- Диаграмма.png (107.2 КБ) 10124 просмотра
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Graphical Modeler - не получается задать переменные
было бы здорово, если бы вы изложили как пользоваться моделлером в ГРАСС в виде описания в вики, прямо на вашем примере.
пристегивайтесь, турбулентность прямо по курсу
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Graphical Modeler - не получается задать переменные
попробую =)
потом здесь ссылку дам.
потом здесь ссылку дам.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя