Устранение трендов высот над наклонными поверхностями?


16

Существует ли известная методология удаления тренда с поверхности матрицы высот?

Например, если бы у меня была ЦМР реки, эта река текла бы с большой высоты (вверх по течению) на более низкие высоты (вниз по течению). Даже если бы расстояние от верха водной поверхности до дна русла реки было одинаковым по всей реке, нижняя часть растра все равно будет иметь более низкие значения высот в DEM. Можно ли выровнять эти значения так, чтобы области одинаковой глубины также имели одинаковую высоту?

При устранении этой тенденции было бы идеально сохранить общие характеристики матрицы высот, такие как провалы в русле реки.введите описание изображения здесь

Ответы:


9

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

Простой, надежный, прямой подход заключается в установке самолета на ЦМР в непосредственной близости от реки. Это не требует какой-либо сложной технологии или сложных вычислений, потому что (согласно Евклиду) плоскость определяется тремя (неколлинеарными) точками в пространстве. Соответственно, выберите одну точку (x1 ', y1', z1 ') = (координаты, высота) в верховьях реки, другую точку (x2', y2 ', z2') в нижнем течении и третью точку в (x0 ', y0', z0 ') по вашему выбору вдали от отрезка, соединяющего первые две точки. (Эти координаты обозначены простыми числами, потому что мы скоро их изменим.) Эта последняя точка недолжны соответствовать точке на поверхности земли или даже рядом с ней! Фактически, хорошим начальным выбором может быть установка его возвышения на среднее значение возвышений вверх и вниз по течению, z0 '= (z1' + z2 ') / 2.

Расчеты облегчаются путем принятия точки (x0 ', y0', z0 ') в качестве источника локальной системы координат. В этих координатах две другие точки находятся в

(x1,y1,z1) = (x1'-x0',y1'-y0',z1'-z0') 
(x2,y2,z2) = (x2'-x0',y2'-y0',z2'-z0'). 

Любое произвольное местоположение в точке (x ', y') в исходной системе координат имеет координаты (x, y) = (x'-x0 ', y'-y0') в этой новой системе. Поскольку любая плоскость, проходящая через начало координат (0,0,0), должна иметь уравнение вида z = a * x + b * y, это сводит проблему к следующему:

Найти уравнение в виде z = a * x + b * y для плоскости, проходящей через точки (0,0,0), (x1, y1, z1) и (x2, y2, z2).

Уникальное решение состоит в том, чтобы вычислить

u = z1 y2 - z2 y1
v = x1 z2 - x2 z1
w = x1 y2 - x2 y1

в какие сроки

a = u/w, b = v/w.

Найдя эти два числа a и b и вспомнив две исходные координаты x0 'и y0', получим растровый расчет вида

[DEM] - a * ([X'] - x0') - b * ([Y'] - y0')

снимает «наклон» от DEM . В этом выражении [X '] относится к координатной сетке x в исходных координатах, а [Y'] относится к исходной координатной сетке y. Результирующая ЦМР гарантированно будет иметь одинаковую высоту (а именно, z0 ') в каждой из трех точек, которые вы изначально выбрали; что он делает в другом месте, зависит от самой DEM!


(Я надеюсь, что некоторые читатели оценят, как этот подход избегает любых ссылок на тригонометрию или наименьшие квадраты. :-)


Не забудьте добавить ссылку на наклон растра на forums.arcgis.com/threads/22904-Trouble-with-Hillshading

@ Дан Хороший вопрос: предыдущий пост на gis.stackexchange.com/questions/10959/… выглядит тесно связанным с этим.
whuber

Предыдущий вопрос также был моим - я чувствовал, что должен был уточнить его, чтобы более кратко задавать вопросы (например, необходимо сохранить провалы). Я искал код, который будет выполнять этот тип анализа, но я потерпел неудачу. Знаете ли вы что-нибудь, что использует ArcObjects, что было бы полезно, или я должен начать с нуля? Спасибо за помощь - это было неоценимо.
Радар

@Radar Сначала попробуйте этот анализ вручную. Это требует некоторого суждения (вы должны тщательно выбрать эти три пункта) и, часто, некоторой итерации, чтобы сделать правильно. Этот опыт поможет вам лучше понять, как работают вычисления. Вы также можете сравнить этот подход с подгонкой поверхности линейного тренда, предлагаемой в ArcGIS.
whuber

Справедливо, я уже автоматизировал вывод точек вверх и вниз по течению. Я полагаю, что самой сложной частью будет получение этого третьего пункта. Еще раз спасибо!
Радар

3

Я нашел отклонение от тренда с анализом тренда неудовлетворительным для рек. Он может работать в таких регионах, как средний запад, но на западе одиночная линейная или полиномиальная поверхность, кажется, никогда не очень хорошо приближается к градиенту реки из-за сложной топографии. Вместо этого я использовал взвешенное усреднение, в котором я сравниваю высоту пикселя возвышенности со средневзвешенным для реки с использованием плотности ядра (см. Статью в Winter 2010 ArcUser). Это дает более «локализованный» результат. Все еще возможно получить некоторые отрицательные значения, но я обнаружил, что эти значения, по-видимому, ограничены руслом реки и наиболее распространены в областях с крутым уклоном. Совсем недавно я экспериментировал с путевыми подходами к картированию "высоты наводнения", но это не победило.


Спасибо за ваши замечания, Том. Добро пожаловать на наш сайт - приятно видеть вас здесь!
whuber

2

Вам необходимо вычислить поверхность тренда, а затем вычесть ее из исходной матрицы высот, чтобы получить «отклоненную».

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

Вот пример того, как использовать кригинг в ArcGIS 10.0 для этого.


1
Для моего примера, есть ли предпочтительный метод получения поверхности тренда (например, тип упрощения поверхности)?
Радар

Вот в чем вопрос! Это зависит от того, какие вариации ландшафта вы хотите считать «трендовыми» и удаленными, а какие хотите сохранить. Чем сильнее упрощение, тем меньше вы сохраняете локальные вариации местности. Как сказал Вубер, поверхность тренда, состоящая из локальных плоскостей, может быть даже удовлетворительной.
Жюльен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.