Алгоритм выборки профиля высоты


10

При создании профиля высот необходимо брать образцы из базового растра. Если целью является создание профиля максимального качества, как определить местоположение точек отбора проб? Какой подход следует использовать для интерполяции этих точек выборки?

Ответы:


6

Если вы хотите создать профиль максимального качества , тогда ваш алгоритм должен включать в себя каждую ячейку, которая пересекается с вашим путем запроса, и тогда это становится простой задачей подбора 2D-кривой . Однако, если вы хотите просто выбрать подмножество этих точек и создать профиль, который является более визуально приятным, вы можете обнаружить, что в этой статье геокомпьютера есть много разных методов интерполяции для выборки высоты, а также математическая схема .


7

Профиль высоты вычисляет пересечение двух поверхностей . Одним из них является вертикальный лист, определяемый путем. (То есть он состоит из всех координат (x, y, z), где (x, y) находится на пути, а z - любое число.) Другой является поверхность, представленная растровой ЦМР. Таким образом, это равносильно нахождению значений z, лежащих выше точек на кривой. Это делает его идентичным проблеме интерполяции значений из растра. В частности, хотя он разделяет многие характеристики более простой одномерной задачи подгонки кривой к данным (расстояние, высота), он нета же ситуация. Просмотр его как такового может привести к неоптимальным профилям высот, поскольку вы не воспользуетесь информацией в полном 2D-экстенте растровых данных по обе стороны кривой.

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

Все это алгоритмы для оценки значения z (x, y) по данным, заданным произвольным местоположением (x, y), которое не обязательно совпадает с какой-либо точкой данных. Вот как нарисован набор растровых данных : для определения цвета в определенном пикселе (u, v) на экране или бумаге (карте) вычисляются мировые координаты (x, y) пикселя, значение z (x, y) вычисляется с использованием интерполятора, и это значение преобразуется в цвет с использованием линейного изменения или таблицы соответствия. (Для эффективности я подозреваю, что многие ГИС не выполняют эту процедуру для каждого пикселя: вместо этого они берут регулярную подвыборку пикселей, выясняют их цвета, а затем выполняют некоторую простую интерполяцию цвета по экрану или бумаге.)

Мы можем думать о пикселях как об определении регулярной выборки плоских местоположений для интерполяции. Создание профиля высот предполагает аналогичное рассмотрение: где расположить «пиксели» вдоль пути? Ответ разрабатывается так же, как мы отвечаем на соответствующий вопрос для картографирования: какой масштаб вам нужен? В больших масштабах (увеличенный путь) вам нужно гораздо более близкие выборки; в небольших масштабах вы можете пробовать с большим интервалом. Если вы сообразительны, вы можете даже использовать адаптивные или рекурсивные методы, чтобы сосредоточить выборку на том, где значения z меняются наиболее быстро, имеют наибольшую кривизну или достигают экстремальных значений. Если вы не настолько умны или не нуждаетесь в лучшем представлении, вы можете создать набор одинаково разнесенных значений вдоль пути на расстояниях d (0) <d (1) <... <d (n) вдоль пути и, из близлежащих растровых значений, интерполируют соответствующие отметки z (0), z (1), ..., z (n). Затем вы должны построить пары (d (0), z (0)), ..., (d (n), z (n)) и справедливо в некоторой кривой вокруг них - обычно сплайне - при условии, что вариации z (i + 1) - z (i) достаточно малы, и то, как кривая подгоняется, не имеет значения. (Адаптивные методы проверяют эти вариации и получают больше интерполированных значений на промежуточных расстояниях, где, по-видимому, имеются большие вариации.)

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

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


спасибо, что. Нужно ли вообще фиксировать расстояние?
Мэтью Снейп

1
@ Matthew Пространство может быть адаптировано к высотам и их изменениям, как я уже говорил. Качество других расстояний, таких как случайные или произвольные расстояния, трудно оценить. Однако нет ничего страшного в использовании внешней информации для размещения некоторых точек выборки. Например, если у вас есть слой потоков, вы можете включить все пересечения потоков в ваши точки, чтобы обеспечить выборку локальных минимумов высоты по пути. Для некоторых специальных целей выравнивающей высот расстояния работает хорошо.
uuber

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

@Matt Дело в том, что простое прохождение через ячейки не имеет значения. Любая процедура пространственной интерполяции может дать оценку высоты в бесконечном количестве точек пути. Это уменьшает вашу проблему на одно измерение: интерполятор обеспечивает высоту в зависимости от расстояния (вы можете отобразить ее в декартовых координатах), и проблема состоит в том, чтобы выбрать этот граф. Другими словами, выбрав интерполятор, вы также можете спросить: «У меня есть функция y = f (x). Как мне лучше ее отобразить?» Мой совет: (а) выбирайте хороший интерполятор и (б) хорошо рисуйте!
uuber
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.