Создание TIN со структурными линиями в ГИС GRASS

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

Создание TIN со структурными линиями в ГИС GRASS

Сообщение Александр Мурый » 04 май 2012, 11:16

По результатам личных изысканий накатал статейку. Прокомментируйте, пожалуйста.
Заранее спасибо.

http://gis-lab.info/qa/struct-tin-grass.html
Последний раз редактировалось Максим Дубинин 09 май 2012, 21:49, всего редактировалось 1 раз.
Причина: изменена ссылка (статья опубликована)
Редактор материалов, модератор форума

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

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение rhot » 04 май 2012, 11:50

Классная статья!

Что получаем на выходе? То же, что и при триангуляции Делоне? Линейный или полигональный вектор?
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

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

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение Александр Мурый » 04 май 2012, 12:01

rhot писал(а): Что получаем на выходе? То же, что и при триангуляции Делоне? Линейный или полигональный вектор?
Спасибо за быстрый отзыв.

На выходе получаем набор 3D-полигонов, т.е. TIN-модель, какой она получается в GRASS. Опции для создания "линейной" TIN (только рёбра треугольников) включать не стал, т.к. при желании это легко делается одной командой типа:

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

v.type in=tin out=tin_lines type=boundary,line
Редактор материалов, модератор форума

Аватара пользователя
Пётр Дубоделов
Завсегдатай
Сообщения: 271
Зарегистрирован: 21 апр 2009, 13:58
Репутация: 12
Откуда: Бурашево
Контактная информация:

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение Пётр Дубоделов » 04 май 2012, 12:56

Для работы скрипта необходим любой современный дистрибутив Linux

А под виндовз нет? дискриминация! :wink:
"Если карта не соответствует местности, доверяй местности."

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

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение Александр Мурый » 04 май 2012, 13:06

Пётр Дубоделов писал(а):Для работы скрипта необходим любой современный дистрибутив Linux

А под виндовз нет? дискриминация! :wink:
Дискриминация в чистом виде :) Кстати, при нужде можно использовать Cygwin или запустить OSGeo-Live в виртуальной машине.

[флейм]А ArcGIS только на Win -- это не дискриминация? :)[/флейм]
Редактор материалов, модератор форума

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

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение Максим Дубинин » 05 май 2012, 15:40

Спасибо за статью. Пара замечаний из сразу замеченного в случайном порядке:

- Я бы вывел определения терминов в саму статью, структурные линии, жесткие, мягкие, и т.д.
- К картинке сравнения v.delaunay, v.triange было бы неплохо добавить еще одну секцию где показать просто точки и линии и сделать эту секцию первой.
- По картинке TIN со структурными линиями, мне кажется или на ней слева точки жирнее, чем справа, создается странный эффект что сетки разные.
- Вообще по картинкам, я бы выкинул все кроме них самих, очень неэкономно место расходуется, подписи дал бы текстом. На усмотрение автора конечно.
- как строятся TIN в 3D Analyst, какой алгоритм? тот же делоне?
- вот это не очень понятно, что именно происходит при фильтрации? "В силу своего устройства <Triangle> может применяться в качестве "фильтра" для точечных/линейных/полигональных ГИС-данных"
- в описании работы v.triange нигде четко не сказано что это "грасс-морда для triangle", сразу идет описание его внутренностей. Также не сказано, зачем он вообще нужен, если есть triangle.
пристегивайтесь, турбулентность прямо по курсу

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

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение Александр Мурый » 05 май 2012, 15:57

Спасибо, Максим. Буду править.
Да, есть такой грех -- люблю делать подписи на картинках :twisted:
в описании работы v.triange нигде четко не сказано что это "грасс-морда для triangle"
Второе предложение сверху: "Используется специально написанный для решения этой задачи модуль v.triangle, представляющий собой "обёртку" для программы Triangle."

Вообще, идея была просто "отчитаться" о том, что сделал такой модуль и показать, что оно работает. Не хотелось бы превращать статью в энциклопедию со _всеми_ терминами в области TINостроения (тем более что я совсем не специалист).
Редактор материалов, модератор форума

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

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение Максим Дубинин » 05 май 2012, 16:01

я бы повторил это еще раз и чуть более подробно и в описании работы v.triangle, не знаю как остальные, но я пока дошел до этого места уже забыл, что речь идет именно об обертке. Точнее я не забыл, но думаю новичок бы забыл.

Про определения - усердствовать конечно не нужно, очень кратенько.

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

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

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение Максим Дубинин » 09 май 2012, 21:50

статья опубликована, спасибо автору.

http://gis-lab.info/qa/struct-tin-grass.html
пристегивайтесь, турбулентность прямо по курсу

Andrew_M
Новоприбывший
Сообщения: 5
Зарегистрирован: 13 мар 2011, 09:32
Репутация: 0

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение Andrew_M » 14 май 2012, 22:36

Лично у меня подход основанный на триангуляризации Делоне никаких теплых чувст не вызывает. Это самый простой и примитивный метод интерполяции и только. Пару лет назад я написал модуль для программы PhotoMod, где использовал интерполяцию, основанную на методе гибкой пластинки (бигармоническое уравнение). Разумеется, такой метод дает гладкую поверхность, поэтому была подключена возможность вводить линии излома. Набор конуров, не обязательно замкнутых. где поверхность оставась непрерывной изламывалась (горные хребты, тальвеги, борта каньонов и т. п.). По крайней мере выглядит намного эстетичнее и дает возможность получить ЦМР на регулярной сетке и набор изолиний как полилиний, так и кривых товарища Безье. Последний вариант помимо эстетических соображений хорош еще и тем, что размер файла получается на порядок меньше, чем при использовании полилиний.

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

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение Александр Мурый » 15 май 2012, 12:55

Andrew_M, спасибо за информацию. Моей задачей было добавить в GRASS возможность именно триангуляции со структурными линиями (тем более что для модуля я просто использовал программу Triangle -- признанно одну из лучших в своей нише).

Буду благодарен за информацию об алгоритмах интерполяции методом "гибкой пластинки" (как я понял, это thin plate spline).
Редактор материалов, модератор форума

Andrew_M
Новоприбывший
Сообщения: 5
Зарегистрирован: 13 мар 2011, 09:32
Репутация: 0

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение Andrew_M » 16 май 2012, 09:05

amuriy писал(а):Andrew_M, спасибо за информацию. Моей задачей было добавить в GRASS возможность именно триангуляции со структурными линиями (тем более что для модуля я просто использовал программу Triangle -- признанно одну из лучших в своей нише).

Буду благодарен за информацию об алгоритмах интерполяции методом "гибкой пластинки" (как я понял, это thin plate spline).
Ну там сложность главным образом в том, как быстро решить систему линейных уравнений. Я в свое время ругался на форумах насчет thin plate spline поскольку когда я учился то под сплайном понималась кусочно- многочленаня функция. При этом подходе для двумерной интерполции использовали заведомо дефективную идею представить двухмерную функцию как произведение одномерных сплайнов. Ясное дело, приходилось при этом строить и прямоугольную сетку. несколько более развитая такая идея есть в прогах для векторной графики типа Corel Draw. Но идея гнилая. А вот то что сейчас понимают под thin plate spline это не многочлены вовсе. эта функция, описывающая такую ситуацию. Представим себе стол и несколько гвоздей, забитых в стол на разную высоту. Возьмем тонкую гибкую пластинку и прижмем к этим гвоздям. Форма прогиба описывается бигармоническим уравнением. Решение уравнения для данной конфигурации (бесконечная поластинка ) и есть тот самый thin plate spline. Решение сводится к решению системы линейных уравннеий размерность или n+1 или n+3 там есть некие нюансы, вдаваться в которые слишком долго. ну вот для картографии если есть пикеты то по ним можно произвести интерполяцию высот на некую область. Возможно некое усовершенствование, если на системе контуров разрешим пластинке изгибаться на любой угол без сопротивления (типа разрежем бритвой и заклеем скотчем разрезы. Поперек разреза возможен изгиб без сопротивления). Так вот, если пикетов много то систему напрямую не решишь. Я использовал метод вроде image piramide. Вводим разностную аппроксимацию бигармонического уравнения и решаем для сильно уменьшенной области. Потом используем это решение как начальное приближение и решаем уравнение для более крупного масштаба и т.д. Ну еще можно с помощью метода прогонки получить быстро сходящуюся последовательность приближений. Но детально все это расписывать долго. Надеюсь, информация будет полезной. Вот ссылочка на картинку: http://smartfills.com/images/SVG2.PNG

АлексЮстасу
Гуру
Сообщения: 619
Зарегистрирован: 09 авг 2009, 13:09
Репутация: 67
Ваше звание: топограф, технолог
Откуда: Мааськва

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение АлексЮстасу » 08 июн 2012, 19:17

Прошу прощения, если мой ответ-вопрос покажется совсем в сторону.
Но ведь для применения данного ПО структурные линии нужно же где-то взять!
С удовольствием прочитал и статью, и обсуждение - то, что нужно.
Совершенно солидарен с тем, что качественно моделировать рельеф без использования структурных линий невозможно. Но создание структурных линий - процесс сейчас ручной, т.е. требует заметного времени, квалификации, подходящего ПО, т.е. дорогостоящий. В результате (да и потому, что не все про нужность структурных линий вообще ведают) реально их используют очень-очень редко.
Поэтому, знает ли кто-нибудь о существовании ПО для автоматического выделения структурных линий рельефа? Например, по данным лазерного сканирования или т.п.?

Один добрый человек как-то прислал: http://publik.tuwien.ac.at/files/PubDat_177260.pdf
Пока что это единственное, что мне попадалось на эту тему, но это же не ПО, а изыскание.
Про модули поиска тальвегов-водоразделов в некоторых ПО видел обещания, но ни разу не слышал об их производственном использовании, и отзывов об их практической применимости. Да и бровки-подножия обрывов, откосов, канав, тальвеги промоин, ручьев и т.п. - не совсем то же, что тальвеги целых рек или водоразделы по хребтам.

Я новичок. Готов перенести свой вопрос в другую тему или создать новую - как здесь принято?

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

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение Александр Мурый » 09 июн 2012, 11:52

АлексЮстасу писал(а):знает ли кто-нибудь о существовании ПО для автоматического выделения структурных линий рельефа? Например, по данным лазерного сканирования или т.п.?
Мне кажется, стоит создать новую тему в разделе "Общий - ПО". Вопрос очень интересный.
АлексЮстасу писал(а): Про модули поиска тальвегов-водоразделов в некоторых ПО видел обещания, но ни разу не слышал об их производственном использовании, и отзывов об их практической применимости.
В серьёзных растровых ГИС типа GRASS/SAGA и в гидрогеоморфологическом ПО типа TauDEM можно получать по ЦМР сеть водотоков (тальвеги), водоразделы сложнее, но тоже выделяются. Главное, что для этого нужна ЦМР (растровая).
АлексЮстасу писал(а): Да и бровки-подножия обрывов, откосов, канав, тальвеги промоин, ручьев и т.п. - не совсем то же, что тальвеги целых рек или водоразделы по хребтам.
Мне кажется, такие данные обычно либо берутся по результатам топосъёмок, либо оцифровываются по готовым топокартам (топопланам).
Редактор материалов, модератор форума

mihai_niculita
Новоприбывший
Сообщения: 1
Зарегистрирован: 21 авг 2012, 10:39
Репутация: 0

Re: Создание TIN со структурными линиями в ГИС GRASS

Сообщение mihai_niculita » 21 авг 2012, 10:48

Hi,

I used v.triangle on windows, and the results show no 3D information. Any clue about what could be wrong? I use 3D vectors, points and lines:

v.triangle.sh -c points=berchisesti1920curbepct lines=berschisesti1920relief tin=berchisesti

The script is very useful! Thanks!

Mihai

Ответить

Вернуться в «Материалы сайта»

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

Сейчас этот форум просматривают: Ahrefs [Bot] и 4 гостя