Проблема с модулем r.fill.dir
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 23 май 2011, 21:06
- Репутация: 5
Проблема с модулем r.fill.dir
Уважаемые Господа!
Столкнулся со следующей проблемой:
модуль r.fill.dir при загрузке цмр ASTER GDEM v2 (разрешение примерно 22 м, объем растра 105 мегабайт, версия GRASS 6.4.2 Win 7 pro x64 rus) очень долго работает и не выдает никакого результата. Загружает одно из ядер процессора примерно от 25 до 50 % и больше никакой информации. Ни полоски на прогресс-баре, ни чего.
Как быть ?
Заранее благодарен за ответы и подсказки!
Столкнулся со следующей проблемой:
модуль r.fill.dir при загрузке цмр ASTER GDEM v2 (разрешение примерно 22 м, объем растра 105 мегабайт, версия GRASS 6.4.2 Win 7 pro x64 rus) очень долго работает и не выдает никакого результата. Загружает одно из ядер процессора примерно от 25 до 50 % и больше никакой информации. Ни полоски на прогресс-баре, ни чего.
Как быть ?
Заранее благодарен за ответы и подсказки!
- Вложения
-
- Clipboard-1.jpg (263.55 КБ) 9796 просмотров
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Проблема с модулем r.fill.dir
Ничего не могу сказать по существу дела, никогда не пользовался этим модулем, но все-таки задам стандартный вопрос: попробуйте запустить модуль на значительно меньшей территории -- изменится ли поведение программы?
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 23 май 2011, 21:06
- Репутация: 5
Re: Проблема с модулем r.fill.dir
Благодарю за подсказку! При обработке данных SRTM объемом примерно 10 мегабайт, такого не происходит. Может проблема в значениях nodata? На моих данных есть участки с отрицательными высотами (-10--15 м ниже уровня моря , просто местность такая).
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Проблема с модулем r.fill.dir
Ремесленник, опишите последовательность ваших действий с ASTER GDEM v2.
Какие-то странные ошибки выдаёт Питон...
Какие-то странные ошибки выдаёт Питон...
Редактор материалов, модератор форума
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 23 май 2011, 21:06
- Репутация: 5
Re: Проблема с модулем r.fill.dir
Последовательность примерно следующая
1. Тайлы скачаны с http://reverb.echo.nasa.gov (одноградусные фрагменты в формате Geotiff)
2. Объединил в единый фрагмент примерно 100 мегабайт объемом, в Global mapper 13, перепроецировал в UTM 38N WGS84.
3. Открываю Grass 6.4.2, который идет в составе с NextGIS (сборка NextGIS-QGIS-c64bb9d-22.10.2012.exe).
4.Открываю рабочий набор в который уже импортирован Aster GDEM.
5.Загружаю в GRASS GIS Layer Manager тот самый слой.
6. Набираю во вкладке Command console комманду r.fill.dir.
7. Указываю в открывшемся интерфейсе мой растр в раскрывающемся списке "Имя существующего растрового слоя содержащего поверхность высот"
8. Даю название в "Вывести растровый слой высот после заполнения"
9. Даю название в "Вывести растровый слой направлений"
10. Ставлю галочку "Закрыть диалоговое окно после окончания операции"
Нажимаю выполнить... и ждууууу.
Когда открываешь диспетчер задач, в списке процессов, процесс r.fill.dir.exe*32 занимает примерно 19-20 мегабайт и загружает процессор на 25 процентов.
Необходимо отметить, что в GRASS 7 ситуация повторяется (кроме сообщений на черном экране) .
1. Тайлы скачаны с http://reverb.echo.nasa.gov (одноградусные фрагменты в формате Geotiff)
2. Объединил в единый фрагмент примерно 100 мегабайт объемом, в Global mapper 13, перепроецировал в UTM 38N WGS84.
3. Открываю Grass 6.4.2, который идет в составе с NextGIS (сборка NextGIS-QGIS-c64bb9d-22.10.2012.exe).
4.Открываю рабочий набор в который уже импортирован Aster GDEM.
5.Загружаю в GRASS GIS Layer Manager тот самый слой.
6. Набираю во вкладке Command console комманду r.fill.dir.
7. Указываю в открывшемся интерфейсе мой растр в раскрывающемся списке "Имя существующего растрового слоя содержащего поверхность высот"
8. Даю название в "Вывести растровый слой высот после заполнения"
9. Даю название в "Вывести растровый слой направлений"
10. Ставлю галочку "Закрыть диалоговое окно после окончания операции"
Нажимаю выполнить... и ждууууу.
Когда открываешь диспетчер задач, в списке процессов, процесс r.fill.dir.exe*32 занимает примерно 19-20 мегабайт и загружает процессор на 25 процентов.
Необходимо отметить, что в GRASS 7 ситуация повторяется (кроме сообщений на черном экране) .
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Проблема с модулем r.fill.dir
-- Операции с растрами очень ресурсоёмкие, поэтому (и в GRASS тоже) часто лучше обрабатывать по частям, а потом сшивать выходные растры (модуль r.patch);
-- перед запуском <r.fill.dir> надо задать текущий регион по нужному растру, для этого вызовите модуль <g.region> и укажите на входе растр, или в командной строке:
-- перед запуском <r.fill.dir> надо задать текущий регион по нужному растру, для этого вызовите модуль <g.region> и укажите на входе растр, или в командной строке:
Код: Выделить всё
g.region rast=my_raster
Редактор материалов, модератор форума
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 23 май 2011, 21:06
- Репутация: 5
Re: Проблема с модулем r.fill.dir
Надо пробовать. Но боюсь возможны артефакты в местах стыковки.
Интересно, а как макросы (или скрипты. Как это правильно ?) создают?
Фрагментов будет много...
Интересно, а как макросы (или скрипты. Как это правильно ?) создают?
Фрагментов будет много...
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Проблема с модулем r.fill.dir
Вам интересно, как создаются модули GRASS или как обработать много растровых фрагментов в скрипте?Ремесленник писал(а): Интересно, а как макросы (или скрипты. Как это правильно ?) создают?
Фрагментов будет много...
Редактор материалов, модератор форума
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 23 май 2011, 21:06
- Репутация: 5
Re: Проблема с модулем r.fill.dir
Как обработать много фрагментов с помощью скрипта. (Спасибо , что поправили ).
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Проблема с модулем r.fill.dir
Можно сделать такой Python-скрипт с одним циклом внутри:Ремесленник писал(а):Как обработать много фрагментов с помощью скрипта.
Код: Выделить всё
import sys,os
import grass.script as grass
for raster in grass.read_command('g.mlist',
type = "rast",
pat = "my_raster_part*").splitlines():
grass.read_command('g.region', rast = raster)
grass.read_command('r.fill.dir',
input = raster,
elevation = "raster."+"fill",
direction = "raster."+"dir")
Параметр <pat> в модуле <g.mlist> значит "pattern" и является шаблоном для имени растра, т.е. в случае выше растры называются, например, my_raster_part1, my_raster_part2, my_raster_part3 и т.д.
После того, как импортируете все нужные фрагменты ЦМР в GRASS, напишите сюда все имена этих растров, чтобы составить цикл с ними.
Редактор материалов, модератор форума
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 23 май 2011, 21:06
- Репутация: 5
Re: Проблема с модулем r.fill.dir
Бесподобно!!! У меня нет слов!!! amuriy Вы мне здорово помогли. Вышла большая экономия времени. Большое Вам Спасибо!!!
И напоследок... , а как научиться писать такие скрипты? Что нужно знать ?
И напоследок... , а как научиться писать такие скрипты? Что нужно знать ?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Проблема с модулем r.fill.dir
На здоровье
2. общее устройство GRASS хотя бы на уровне пособия (т.е. создание области и набора / импорт и экспорт данных / запуск модулей);
3. работу нужных для решения задачи модулей GRASS (что уже сложнее); до того, как писать скрипт с исп-ем тех или иных модулей, желательно поиграться с каждым отдельно (опции, запуск, что на входе, что на выходе и т.д.).
1. Элементарное программирование на Питоне (переменные, циклы, типы данных, отступы, создание простейшего скрипта); почитайте статьи типа "Учимся программировать на Python за 10 минут", а затем, конечно, документацию ;Ремесленник писал(а):а как научиться писать такие скрипты? Что нужно знать ?
2. общее устройство GRASS хотя бы на уровне пособия (т.е. создание области и набора / импорт и экспорт данных / запуск модулей);
3. работу нужных для решения задачи модулей GRASS (что уже сложнее); до того, как писать скрипт с исп-ем тех или иных модулей, желательно поиграться с каждым отдельно (опции, запуск, что на входе, что на выходе и т.д.).
Редактор материалов, модератор форума
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость