"Вписать" реку в TIN

0 голосов
спросил 29 Сен, 08 от Dolsky (600 баллов) в категории Программные продукты Esri

Уважаемые, подскажите, каким образом в существующий TIN "вписать" полигон реки, так, чтобы ее поверхность была плоской ? (Надеюсь те кто ето делал понимают о чем идет речь..)

 

21 Ответы

0 голосов
ответил 29 Сен, 08 от _YBI_ (5,960 баллов)
если урез воды одинаковий задайте как hard value fill если нет даже незнаю...
0 голосов
ответил 30 Сен, 08 от SV_P (9,350 баллов)
Я так понимаю, что сначала нужно сделать 3-х мерным сам полигон иначе придется долго объяснять машине откуда брать высоты.
0 голосов
ответил 30 Сен, 08 от Dolsky (600 баллов)

Перепад высоты там 50-60м и hard value fil тут не пройдет... Очень заманчиво звучит "сделать 3-х мерным сам полигон" , только беда в том , что ни разу не приходилось етого делать.. Сложно ли ето? Как?... Ведь так можно и дороги(магистрали) туда "впечатать".. Полезная будет приспособа..  (У нас 9.2)

0 голосов
ответил 30 Сен, 08 от geologic (39,860 баллов)
3D полигон-то несложно сделать... Если есть модель. А чтобы она была, надо ее сделать... Замкнутый круг и ESRI не предлагает решений. Наложить двухмерную линию (или полигон) на TIN, и надеяться, что вам сделают трехмерную интерполяцию не стоит - ничего не происходит. Модель дискретизируется в плане, но не меняется по высотам.

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

Да, и конечно модуль Topo2raster - там все это с реками и подошвами реализовано. Но для грид.
    
    
    
0 голосов
ответил 30 Сен, 08 от Dolsky (600 баллов)
 Уважаемый geologic! Ссылаю по https://forum.esri-cis.ru/index.php?qa=29472
чтоб не повторяться..
Как я понял, имея грид и полигоны рек и Topo2raster я могу сделать 3d-реку , чтоб была с плоской пов-тью( берега были одинаковы по высоте) и чтоб "текла"  сверху-вниз... Если ето Toпo в растр в 9.2,то какие параметры задавать (их там чето много очень) к примеру для"размер вых. ячейки" ? А для min (max) Z?
А как добиться, чтоб противоположные берега были с одинак. урезами и являлись "подошвой" речки? Труда ручного ,разумеется, не боимся..
0 голосов
ответил 30 Сен, 08 от geologic (39,860 баллов)
Не уверен, что top2raster делает полигональные реки. Может быть, последние версии надо глядеть. Но с озерами, с линейными реками справляется хорошо - так выстраивает речку, чтобы не было обратных уклонов. Деталей не помню, но там есть подробные инструкции и проблем в общем не было.

Чтобы добиться одинаковости берегов по вертикали, мне кажется, надо над этим подумать :) Если бы было так, как вы говорите - противоположные одинаковы по высоте, то можно было бы их строить как высотную копию один-другого. Однако на больших реках горизонталь глади бывает направлена и наискось к потоку, например, в широких местах (плесах), и в общем случае я бы строил каждый берег отдельно, по урезам и другим данным.

Если несимметричность берегов вас не напрягает, то можно отстроить один берег, потом его "скопировать" по высоте - точнее сказать, передать высоты узлам другой полилинии по кратчайшему расстоянию. Такие инструменты - атрибут от точки к линии и обратно - в ГИС есть, и скрипты сможете подобрать - как и штатные средства. Словом, основная идея при безмодельном построении 3D-каркаса гис-средствами - рассматривать высоту как обычный атрибут (точки).

Разумеется, все это разумно затевать, если у вас задача актуальна на производстве. Отладив единожды, сможете быть "на ты" с тинами. ну а ради одного научного эксперимента не стоит - проще расковырять topo2raster или какую-нибудь специальную программу по DTM приручить.
0 голосов
ответил 30 Сен, 08 от Dolsky (600 баллов)

Поковыряю че-нибудь.. Получится приемлемо - поделюсь "know-how"..

0 голосов
ответил 02 Окт, 08 от Dolsky (600 баллов)
А не подскажете ли поподробнее, что за "Такие инструменты - атрибут от точки к линии и обратно "? И как "передать высоты узлам другой полилинии по кратчайшему расстоянию"? А то я делал так::
1.Из исходного тина делал Грид (с ячейкой 100*100м)
2.На етот грид "укладывал"( Интерполировать в 3D ) 2D-полигоны рек в надежде, что все вершины, попавшие на ячейку 100*100 грида будут иметь одинаковый "урез"
3.За..бся "вставлять" полученные 3Д-реки в исх.ТИН  -  рисует все реки с постоянной одинаковой высотой : полкарты-каньон,полкарты - эстакада (прикольно.. кстати, где я что не так?..). Поэтому
4.Разбивал ети полигоны на вершины(точки поворотные), "Высасывал" из них Z  в отдельный атрибут (даже "заглубил" их на 3м.) и
5.Вставлял в Тин просто точки,(стерев предварительно горизонтали вдоль етих  рек)
Получилась х-ня... Не совсем конечно, но ожидал результата покрасивше.
Товарищи! Поможте.....
0 голосов
ответил 02 Окт, 08 от Grigoriy (127,020 баллов)
Какую конечную задачу Вы пытаетесь решить?
Для чего нужно в тин вставлять реки таким образом?
Что моделируете?
0 голосов
ответил 02 Окт, 08 от geologic (39,860 баллов)
"Вставка" куска модели в общую не применяется, да и зачем? Не такие обычно грандиозные модели, чтобы нельзя было пересчитать целиком от исходных векторных данных. Переход от TIN к GRID и обратно сам по себе тоже ничего не дает. Никакой такой волшебной интерполяции ни в 3dAnalyst, ни в Spatial нету, тем более последний специально на рельеф не заточен. Да и первый в общем тоже. Чудес нет (кроме topo2raster) :) Но многое можно сделать руками, взявшись за многочисленные ГИС-инструменты.

Основой для грамотной каркасной (TIN) модели, как вы заметили, является векторный каркас - изолинии, бровки, подошвы, гребни. Делать трехмерным этот каркас 3dAnalyst не умеет, не стоит и пытаться. Нужно сделать его трехмерным самому, ДО построения модели. По сути, задать всем узлам линий подходящие высоты. Это не так уж сложно, как кажется, если внимательно рассмотреть задачу. Например, имеем речку (для простоты линейную) как двухмерный шейп. Вдоль реки у нас есть урезы, окончания или подсечения горизонталей, точки на пойме - масса высотной информации, нужно ее только грамотно собрать. В КАде можно было бы простроить узлы на продолжениях, точки пересечения, в земельной программе - есть спец. команды по интерполяции БЕЗ модели. В ГИС ничего этого нет, зато есть средства решения задач близости и работы с атрибутами. Выглядит цепочка примерно так:

1. Берем линию реки. Разбиваем на узлы (вертексы).
2. Если надо, разбиваем горизонтали тоже на точки, с сохр. атрибутов (колонки с высотой H).
3. Подключаем другие точки с известной высотой (в виде атрибута, колонки H).
3. В некоей окрестности собираем все высотные данные к узлам нашей реки от окрестных точек с известной высотой - точек высот, урезов, разобранных на части горизонталей. Размер окрестности подбираем здравым смыслом. Разумеется, берутся ближайшие точки, если нет особых конфликтов по высоте.
4. Узлы оставшиеся без высот расписываем вручную или... Применяем ГИС-инструмент для интерполяции такой линии с "пропусками" значений.
5. Собираем узлы линии обратно воедино, получая уже полноценную трехмерную линию (высота берется из колонки H).

Уже конец раб.дня, так что если вы хоть что-то углядели в этом для себя понятное, конкретные средства оставим на завтра.
    
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...