Erdas 9.1 файл высот
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 27 ноя 2010, 21:43
- Репутация: 0
Erdas 9.1 файл высот
Вот такая проблема. Пытаюсь в Erdas 9.1 отредактировать файл высот (формат IMG 15 метров). Задача состоит в следующем, нужно опустить дно озера на несколько метров. В erdas есть инструменты, с помощью которых это можно сделать, Area Fill, Area Offset. Здесь в принципе все работает правильно, но они делают острую грань по контуру береговой линии (обрыв), а контуры берега должны быть заглажены. То есть сетка береговой линии, которая очерчена AOI, должна иметь гладкую фаску (плавный спуск к воде). Есть еще инструмент Interpolate который ближе к решению этой задачи. Тут можно делать мягкий градиент, но этот инструмент работает не по вектору AOI, а работает по точкам, которые имеют радиус сглаживания. А это значит, что ломка сетки получается на 360 градусов вокруг каждой точки. Пробовал построить углубление точками, но береговая линия нарушается. Этот инструмент в данной задаче работает грубо.
Контур береговой линии должен быть совершено четким. Углубление дна должно быть с плавным скосом (закруглением) во внутрь замкнутого вектора AOI.
Собственно это и есть мой вопрос. Возможно ли, это реализовать в Erdas.
Контур береговой линии должен быть совершено четким. Углубление дна должно быть с плавным скосом (закруглением) во внутрь замкнутого вектора AOI.
Собственно это и есть мой вопрос. Возможно ли, это реализовать в Erdas.
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 27 ноя 2010, 21:43
- Репутация: 0
Re: Erdas 9.1 файл высот
Может быть эту задачу можно реализовать в какой-то другой программе ?
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Erdas 9.1 файл высот
можно, и не в одной, но у вас их вряд ли есть (они из геологии в основном).Nik4 писал(а):Может быть эту задачу можно реализовать в какой-то другой программе ?
Рассказываю, как собрать решение из подручных средств.
1) Рисуем два контура - кромку воды (внутренний), и верхний край брега, где рельеф сохраняется (внешний).
2) Ставим на контурах много точек (с частым шагом). На первом - отметку уреза воды, на втором - снимаем с рельефа.
3) Строим по этим точкам TIN, вставив контура как структурные линии. Можно еще построить дистанционное перобразование от контуров, и интерполировать по линиям тока - но это сложнее.
4) Растеризуем TIN на целевую сетку и впечатываем его по внешнему контуру (внутрь).
5) Если не все слова знакомы, идем учить матчасть (ArcGIS, Surfer, R, C/C++, Fortran - по выбору). Возможно, на сайте ESRI уже есть скрипт, который все это делает.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Erdas 9.1 файл высот
На первый взгляд кажется, что это можно сделать в любой растровой ГИС. Не знаю, как в Erdas, но в GRASS я бы сделал так:
- создать векторный контур дна озера
- перевести его в растр
- сделать из этого растра маску
- сделать копию общего растра и "пересчитать" (resample) его; получится растр, вырезанный по контуру дна озера
- растровым калькулятором "понизить" дно на заданную величину
- вырезать "старое" дно из общего растра (?)
- соединить (r.patch) общий растр "без дна" и растр "нового дна"
- если в конечном растра будут "дыры", заделать их интерполяцией (r.fillnulls)
P.S. С приложенным к посту файлом было бы понятнее..
- создать векторный контур дна озера
- перевести его в растр
- сделать из этого растра маску
- сделать копию общего растра и "пересчитать" (resample) его; получится растр, вырезанный по контуру дна озера
- растровым калькулятором "понизить" дно на заданную величину
- вырезать "старое" дно из общего растра (?)
- соединить (r.patch) общий растр "без дна" и растр "нового дна"
- если в конечном растра будут "дыры", заделать их интерполяцией (r.fillnulls)
P.S. С приложенным к посту файлом было бы понятнее..
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Erdas 9.1 файл высот
gamm, интересно, а зачем TIN? Если всё равно потом переводить в DEM?
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Erdas 9.1 файл высот
если вы пробовали интерполировать между изолиниями, то ответ, я думаю, знаетеamuriy писал(а):gamm, интересно, а зачем TIN? Если всё равно потом переводить в DEM?

получается проще и надежнее, и думать не надо.
По уму, конечно, нужно взять изолинию выше озера (иначе получим артефакт с кривизной), и "просадить" рельеф по направлению потока до новой кромки воды. Но для этого нужно построить направления потока, а потом вдоль них раскидать "просадку" - не факт, что это можно сделать даже в Арке.
Можно и проще, сделать дистанционное преобразование от верхней и нижней линий, и все ячейки между ними "просадить" линейной интерполяцией - если верх и низ суть изолинии, то значения на них известны, а расстояния до верха и низа нормируем на сумму=1, вычисляем дельту (на которую просадить), и отнимаем от текущего значения ячейки рельефа. Это вроде а Арке можно сделать (нужен итератор по маске), и выглядит нормально

P.S. кстати, ваш совет - это вроде то, что товарищъ и делал, и ему не понравилось.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Erdas 9.1 файл высот
если вы пробовали интерполировать между изолиниями
Постоянно этим занят, особых проблем с рельефом не возникает. Видно, здесь вопрос в способах интерполяции.
Тогда прош.прощ., какгрицца, в Erdas не работаю, не понял мысль..ваш совет - это вроде то, что товарищъ и делал
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Erdas 9.1 файл высот
а чем работаете?amuriy писал(а):Постоянно этим занят, особых проблем с рельефом не возникает. Видно, здесь вопрос в способах интерполяции.если вы пробовали интерполировать между изолиниями
я просто знаю, что для равнинного рельефа проблемы возникают всегда, и не знаю, кто с этим умеет бороться. То, что встроено в Арку, не есть самый лучший вариант, хотя Хатчинсон поработал славно. В МГУ делали систему MAG, добились определенных успехов. У нас товарищ диссер писал, как восстановить поле направлений (нормалей) из изолиний, поскольку интерполировать нужно именно вдоль них. Но полного успеха я нигде не видел, особенно на равнинах, при большим расстоянием между изолиниями и наличии холмистости. Все равно при построении кривизны хорошо видно, где были изолинии.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Erdas 9.1 файл высот
Оговорюсь: работаю гл. обр. с горными районами, хотя попадаются всякие =)gamm писал(а): а чем работаете?
Модули GRASS r.surf.contour (лин. интерп-я), v.surf.rst ("regularized spline with tension"), r.surf.nnbathy (ос-но хорош "natural neighbor")
P.S. ..чего и топикстартеру советую попробовать.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Erdas 9.1 файл высот
я догадался, потому и написал про равнинуamuriy писал(а):Оговорюсь: работаю гл. обр. с горными районами, хотя попадаются всякие =)gamm писал(а): а чем работаете?

понятно - я все эти методы (и многие другие) сам писал, для геологов. Кстати, последний метод дает иногда артефакты при переключении носителя (ячеек Вороного, если окрестность первого порядка). Есть глобальные интерполирующие сплайны Ренке (Renke) поверх триангуляции (исходник есть в архиве ACM), это типа TIN, но С2 гладкая поверхность (с непрерывной 2 производной), и позволяет встраивать структурные линии.Модули GRASS r.surf.contour (лин. интерп-я), v.surf.rst ("regularized spline with tension"), r.surf.nnbathy (ос-но хорош "natural neighbor")
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 27 ноя 2010, 21:43
- Репутация: 0
Re: Erdas 9.1 файл высот
Огромное спасибо за помощь. Правда, сначала все было как-то запутано, без матчасти не обошлось
, денек пришлось потратить. Зато результат получился блестящий именно то, что нужно было.
Вот еще проблема. На озерах есть острова, которые нужно как-то изолировать от общего контура AOI. Приходится от берега к каждому острову прорубать своеобразную дорожку. Тем самым я делаю из острова, полуостров. А потом в конце технологического процесса эту дорожку просаживаю.
Вопрос. Я подозреваю, что в Erdas можно как-то объединять два замкнутых вектора AOI которые находятся один в другом, чтоб в результате наружный замкнутый вектор имел внутри отверстие в виде (внутреннего меньшего) замкнутого вектора. В учебнике есть описание только как объединять в группу, но группа просаживает сетку файла высот по наружному контуру, и остров тоже исчезает.

Вот еще проблема. На озерах есть острова, которые нужно как-то изолировать от общего контура AOI. Приходится от берега к каждому острову прорубать своеобразную дорожку. Тем самым я делаю из острова, полуостров. А потом в конце технологического процесса эту дорожку просаживаю.
Вопрос. Я подозреваю, что в Erdas можно как-то объединять два замкнутых вектора AOI которые находятся один в другом, чтоб в результате наружный замкнутый вектор имел внутри отверстие в виде (внутреннего меньшего) замкнутого вектора. В учебнике есть описание только как объединять в группу, но группа просаживает сетку файла высот по наружному контуру, и остров тоже исчезает.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей