10
В этой главе мы рассмотрим способы построения цифровых моделей рельефа и горизонталей из них. Здесь же мы поговорим о трехмерном отображении карты и сделаем обзорную экскурсию в мир 3Dмоделирования. Наконец, мы рассмотрим возможности Digitals в части построения профилей и подсчета объемов.
Карту, выраженую в цифровом виде, часто называют цифровой моделью местности (ЦММ). При этом ту ее часть, которая отвечает за отображение рельефа, называют цифровой моделью рельефа (ЦМР).
Применительно к Digitals, ЦМР может быть выражена различными способами:
•в виде регулярных сеток - для них в программе предусмотрен тип слоя Сетка ЦМР;
•в виде триангуляционной нерегулярной сети - слои типа Триангуляционная сеть (TIN);
•наконец, просто в виде объектов карты, имеющих корректные с точки зрения описания рельефа высоты: горизонталей, пикетов, откосов и других, размещаемых на слоях типа Пикет, Одиночный символ, Полигон/Полилиния.
Модель рельефа в виде Сетки ЦМР или TIN может ценной как сама по себе (например, для трехмерной визуализации), так и использоваться в качестве промежуточного технологического этапа при создании ортофотопланов или построении горизонталей. Во многих случаях Digitals неявно использует временно созданную триангуляционную нерегулярную сеть - например, при создании тех же регулярных сеток (если включена соответствующая опция) или для решения задач интерполирования.
Имея в распоряжении карту, моделирующую рельеф, можно вычислить объем грунта или построить профиль поверхности. При отображении карты в трехмерном виде доступна функция наложения растра (текстуры) на сетку ЦМР. Наконец, в трехмерном виде можно создавать и отображать такие объекты карты, как здания, “строя” целые виртуальные города.
Напомним также, что пользуясь режимом высоты Интерполяция, можно собирать объекты, высоты узлов которых будут интерполироваться из существующей модели. По умолчанию для вычисления высоты задействуются окружающие объекты, найденные в некотором радиусе. Если включить галочку Z-интерполяция только по ЦМР на закладке Правка в диалоге настроек, то программа при сборе будет использовать для интерполяции только объекты слоев с типом Сетка ЦМР.
Какой способ выбрать для построения горизонталей - регулярную сеть или триангуляцию, зависит от имеющихся исходных данных, масштаба карты, а также опыта и личных предпочтений оператора. Общие рекомендации таковы:
•Триангуляционная сеть (TIN) обычно используется при составлении планов крупных масштабов. Обычно такой способ выбирается при наличии данных тахеометрической съемки, когда все характерные точки рельефа сняты в поле. Преимуществом данного способа является хорошее соответствие построенных горизонталей исходным пикетам.
241
Глава 10. Работа с ЦМР
•Сетка ЦМР чаще используется для мелкомасштабных карт. Данный тип модели рельефа в основном принято строить по данным аэрофотосъемки, с использованием ручных измерений в режиме стерео или при полуавтоматическом создании (восстановлении рельефа).
Далее обо всем подробнее.
Чтобы построить триангуляционную сеть, следует просто пометить пикеты и выполнить команду ЦМР > Создать TIN. Программа сама оконтурит помеченные точки временным полигоном и построит внутри сетку треугольников, опирающихся своими вершинами на пикеты. Пометив созданный TIN, можно сразу строить горизонтали командой ЦМР > Горизонтали из ЦМР/TIN….
Кажущаяся простота оборачивается лишними усилиями при дальнейшем редактировании построенных горизонталей. Как минимум, вам потребуется обрезать горизонтали в тех местах, где они явно “врут” (обычно там, где плотности пикетов недостаточно). Кроме того, любые четыре пикета можно соединить треугольниками двумя разными способами и какой из них выберет программа - предсказать сложно. В конечном итоге этот выбор может повлиять на правильность отображения рельефа, что проиллюстрировано ниже на рисунке.
Поэтому, чтобы достичь лучших результатов, придется приложить несколько больше усилий. Вот примерный алгоритм:
1.Соберите полигон, оконтуривающий область внутри которой будет строиться TIN.
2.Соберите структурные линии, то есть линии, характеризующие рельеф: хребты, седловины, водотоки.
•Полигон и структурные линии не обязательно проводить строго по пикетам, хотя, вероятно, вы так и будете делать в случае обработки пикетов, полученных в поле.
•Если вы собираете по полевой съемке, используйте режим интерполяции высот. Если работаете с аэрофотосъемкой в стереорежиме, используйте ручной режим с 3D привязкой.
•Поэкспериментировать с построением TIN и горизонталей из нее вы можете, скачав пример1 с сайта разработчиков. Просто пометьте все объекты и выполните построение.
3.Пометьте оконтуривающий полигон, структурные линии и все пикеты, попадающие внутрь полигона.
4.Выполните команду ЦМР > Создать TIN. Сетка треугольников будет построена в пределах полигона,
сучетом структурных линий. Последние жестко зададут ребра ближайших к ним треугольников.
5.Теперь можно строить горизонтали. Оцените результат и, при необходимости, вернитесь к началу для коррекции исходных данных. Обычно коррекции подлежат структурные линии.
1 http://geosystema.net/samples/TINTest.dmf
242
Сетка ЦМР
Инструментарий для работы с сетками ЦМР гораздо более обширен, чем в случае TIN. Кроме нескольких способов создания, программа предоставляет широкие возможности редактирования сеток, включая наличие целого ряда фильтров высот узлов.
Рассмотрим все по порядку.
По умолчанию сетка ЦМР отображается на карте в виде небольших крестов в узлах. Если отключить галочку Показывать ЦМР в виде крестов на закладке Вид в диалоге настроек программы, то ЦМР будет отображаться в виде сплошной сети.
Создать сетку ЦМР можно следующими способами:
•автоматически, по паре растровых снимков;
•на основе существующих объектов карты, имеющих корректные высоты;
•комбинированным способом;
•ручным измерением.
Эту возможность еще называют восстановлением рельефа. Построение сетки выполняется путем сравнения фотоизображения на обоих снимках (корреляции изображений).
Чтобы выполнить автоматическое создание:
1. Перейдите в режим Растр > Стерео и откройте пару ориентированных снимков.
2. Установите увеличение растра на уровне 1:4 - 1:16 (текущее увеличение растра отображается в статусной строке окна картографического редактора). Дело в том, что программа выполняет построение в два этапа: сначала на текущем увеличении, затем на увеличении в 16 раз большем, чем исходное.
3.Соберите полигон, ограничивающий зону построения и пометьте его. Этого можно и не делать - в этом случае программа будет строить сетку в пределах зоны перекрытия снимков.
4.Выполните команду Растр > Восстановление рельефа…. Перед началом работы, программа запросит в диалоге шаг сетки, который задается в миллиметрах на снимке.
Если у вас есть данные фототриангуляции (файл TMF), то вы можете создать сетку сразу на весь блок. Для этого, блок следует вставить в карту командой Вставка > Блок триангуляции… и пометить все границы снимков до выполнения команды восстановления рельефа.
Сетку можно создать из существующих объектов карты. Для этого следует пометить объекты, которые послужат исходными, и выполнить команду ЦМР > Создать ЦМР…. Разумеется, помеченные объекты должны иметь корректные высоты. Перед выполнением построения программа запросит в диалоговом окне шаг сетки в метрах.
Сетку можно создать из существующего объекта TIN. В этом случае будут созданы только те узлы сетки, которые попадают в пределы исходной триангуляционной нерегулярной сети.
Восстановление рельефа довольно часто дает ошибочные результаты в узлах сетки, что обусловлено наличием на фотоизображении зданий, деревьев и прочих объектов, затрудняющих процесс поиска
243
Глава 10. Работа с ЦМР
идентичных точек методом корреляции. В этом случае можно попробовать совместить оба описанных выше метода:
1.Сначала в стереорежиме следует выполнить сбор характерных точек местности (в местах перепадов) и структурных линий (хребтов, седловин, тальвегов).
2.Затем, пометив собранные объекты, создать сетку ЦМР.
3.Теперь можно уточнить сетку, воспользовавшись командой ЦМР > ЦМР корреляция. Данная команда работает с текущим масштабом растровой подложки. Вы можете попробовать увеличить масштаб и повторить команду, чтобы улучшить результат.
Наконец, вы можете измерить узлы сетки вручную (как правило, в стереорежиме). Для этого создайте сетку одним из доступных способов, затем перейдите в режим сбора и, пометив сетку, выполните из контекстного меню команду Измерение ЦМР. При этом, в зависимости от последовательности ваших действий, возможны следующие варианты:
•Если пометить сетку, находясь на закладке Сбор, и вызвать Измерение ЦМР из контекстного меню, то измерение начнется в режиме высоты. Перемещение мыши при этом будет изменять высоту, как если бы клавиша Ctrl была всегда нажата. При нажатии же клавиши Ctrl - наоборот, мышь “освобождается”, что позволяет изменить плановое положение узла.
Этот режим удобен для тех операторов, которые пользуются в работе “мышью”, а не штурвалами цифровой станции. Режим позволяет не использовать колесико мыши или держать нажатой клавишу
Ctrl.
•Если сначала войти в режим захвата мыши, нажав клавишу F9, а затем пометить сетку и, вызвав контекстное меню, войти в измерение сетки, то управление будет стандартным.
Впроцессе измерения сетки ЦМР используются следующие “горячие” клавиши:
•Enter или левая кнопка мыши - регистрация точки;
•Пробел - пропуск точки с заменой ее признаком разрыва (то есть, попросту, удаление узла сетки);
•Backspace - возврат на повторное измерение предыдущей точки;
•Стрелки влево и вправо также позволяют переходить от точки к точке.
После регистрации высоты очередного узла, программа автоматически перейдет к измерению следующего. Прервать измерение можно как обычно - клавишей ESC. Если затем вновь войти в режим измерения сетки, то измерение продолжится с того узла, на котором вы остановились ранее.
Сетка ЦМР поддерживает ряд операций редактирования, предусмотренных как для сетки в целом, так и для изменения отдельных ее узлов.
Digitals предоставляет возможность удалить часть узлов сетки:
•Сетку можно обрезать, как и любой другой объект карты, воспользовавшись соответствующей командой из меню Сервис.
•Сетку можно проредить, то есть увеличить ее шаг, убрав лишние узлы. Для этого нужно пометить сетку и выполнить команду ЦМР > Фильтровать ЦМР > Проредить…. Программа запросит коэффициент увеличения шага сетки.
•Вы можете удалить отдельные узлы сетки командой Вырезать точки контекстного меню узла или горячей клавишей R.
•Вы можете удалить узлы сетки, расположенные на некотором расстоянии от помеченного контура. Пометьте сетку и контур и выполните команду ЦМР > Фильтровать ЦМР > Удалить вдоль контуров…. Программа запросит расстояние от контура, в пределах которого будут удалены узлы.
244
Редактирование сетки
Таким образом можно, например, удалить узлы вблизи структурных линий при подготовке модели рельефа для последующего ортотрансформирования снимков.
Изменение высоты узлов обычно производят в режиме стерео, для чего следует перейти на боковую панель Сбор и нажать кнопку Capture (или войти в этот режим с помощью клавиши F9). Пометить сетку, находясь в режиме сбора, можно клавишей Enter. Далее, для уточнения высоты конкретного узла нужно “посадить” марку на поверхность вблизи него и нажать клавишу Z.
Также, чтобы вручную изменить координату Z любого узла сетки, вы можете воспользоваться окном Свойства объекта, которое мы рассматривали в соответствующем разделе Гл.5, «Сбор и правка объектов».
•Режим Автосглаживание. Если включен режим
Автосглаживание на главной панели инструментов, то кроме ближайшего узла сетки корректироваться по высоте будут также окружающие узлы, которые лежат на расстоянии в N шагов сетки. Значение N задается константой LocalDEMDistance (смотрите ниже описание команды ЦМР > Локальная коррекция сетки).
•Константа FixDEMNodes. По умолчанию программа настроена таким образом, чтобы при переизмерении узла изменялась его высота, но не его плановое положение. Это поведение можно изменить, если установить значение константы FixDEMNodes в нулевое значение (по умолчанию эта константа равна единице).
В этом случае, после измерения текущего узла сетки сам узел также сместится в новую позицию. Разумеется, регулярность такой сетки будет нарушена, но зато улучшится точность передачи рельефа.
Программные константы Digitals находятся на закладке Главная в диалоге настроек программы. Воспользуйтесь соответствующим полем ввода для быстрого поиска конкретной константы по ее названию.
Digitals предоставляет целый ряд фильтров высот и других инструментов для коррекции сетки. Эти инструменты прежде всего предназначены для приведения в порядок сеток, созданных автоматически с помощью команд Восстановление рельефа… или ЦМР корреляция.
Отметим, что после применения некоторых фильтров часть узлов удаляется, образуя пропуски в сетке. В этом случае нередко по откорректированной сетке создают триангуляционную сеть TIN, по которой строят горизонтали или, если требуется, новую ЦМР, но уже без пропусков.
Рассмотренный ниже инструментарий сосредоточен в меню ЦМР и ЦМР > Фильтровать ЦМР.
Выровнять ЦМР внутри полигона
Позволяет установить одинаковую высоту всем узлам сетки, попадающим внутрь полигона. Обычно такой полигон представляет собой контур водного объекта, например озера. Перед выполнением команды следует пометить сетку и полигон. Узлам сетки будет присвоена средняя высота, вычисленная из узлов полигона.
Локальная коррекция сетки
Позволяет откорректировать нежелательные “выступы” автоматически построенной сетки в местах с деревьями, домами и тому подобными препятствиями. Перед выполнением команды следует собрать пикет в центре выступа, имеющий правильную высоту. Далее нужно пометить собранный пикет и сетку и выполнить команду. Узлы вокруг пикета будут проинтерполированы с учетом высоты пикета.
Команда также может использоваться для “подтяжки” ЦМР к структурным линиям рельефа. Пометьте полилинии, представляющие собой тальвеги, водотоки, овраги, и саму сетку ЦМР, а затем выполните команду.
245