Усунення тенденції висоти над похилими поверхнями?


16

Чи відома методологія усунення тренду з поверхні DEM?

Наприклад, якби у мене була DEM річки, ця річка перетікала б з високої висоти (вгору) за нижньою висотою (вниз за течією). Навіть якби відстань від верхньої поверхні води до дна русла річки була однаковою по всій річці, частина нижньої течії растру все ще мала б нижчі значення висоти в DEM. Чи можливо вирівняти ці значення, щоб ділянки однакової глибини також мали однакові висоти?

При усуненні цієї тенденції було б ідеально зберегти загальні характеристики DEM, наприклад, занурення в русло річки.введіть тут опис зображення

Відповіді:


9

@jul вірно, що "вам потрібно обчислити поверхню тренду, а потім відняти її від початкової DEM, щоб отримати" знешкоджений ", але це здається, що в цьому випадку потрібні більш прості процедури для" збереження прогалин ". Якщо "поверхня тренда" занадто уважно слідує за початковою DEM, то залишки не зберігатимуть локальних характеристик поверхні. Таким чином, серед методик, яких слід уникати, є всі локальні (сплайни, фільтри та, особливо - кригінг), а ті, що надають перевагу, - глобальні.

Простий, надійний, прямий підхід - це встановлення літака до DEM в районі річки. Це не потребує фантазійних технологій і важких обчислень, оскільки (за Евклідом) площину визначають три (неколинеарні) точки в просторі. Відповідно, виберіть одну точку (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. Отримана DEM гарантовано матиме однакове піднесення (а саме z0 ') у кожній із трьох точок, які ви вибрали спочатку; що вона робить в інших місцях, залежить від самої DEM!


(Я сподіваюсь, що деякі читачі оцінюють, як такий підхід уникає всіх посилань на тригонометрію чи найменше обладнання квадратів. :-)


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

@Dan Добре: попередня публікація на gis.stackexchange.com/questions/10959/… виглядає тісно пов’язаною з цим.
whuber

Попереднє питання було також моїм - я вважав, що мені слід було б його уточнити, щоб більш лаконічно задати питання (наприклад, необхідність збереження крапель). Я роздивився код, який буде проводити аналіз такого типу, але я не вдався. Чи знаєте ви про все, що використовує ArcObjects, що було б корисно, або я повинен починати з нуля? Дякуємо за допомогу - це було неоціненно.
Радар

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

Досить справедливо - я вже автоматизував виведення точок верхнього та нижнього течій. Я думаю, що найсміливіша частина отримає 3 бал. Знову дякую!
Радар

3

Я вважаю, що тенденція аналізу тенденцій є незадовільною для річок. Це може працювати в таких регіонах, як середній захід, але на заході одна лінійна або поліноміальна поверхня ніколи не здається наближеною до градієнта річки через складну топографію. Я замість цього використовував усереднене зважене значення, де я порівнюю висоту верхнього пікселя із середньозваженим рівнем річки за допомогою щільності ядра (див. Статтю в ArcUser взимку 2010 року). Це дає більш «локалізований» результат. Ще можна отримати деякі негативні значення, але я виявив, що ці значення, здається, приурочені до русла річки і найчастіше зустрічаються у районах крутого градієнта. Зовсім недавно я експериментував із підходами до визначення шляху "висоти повені", але це не виграло "


Дякую за ваші зауваження Томе. Ласкаво просимо на наш сайт - приємно бачити вас тут!
whuber

2

Вам потрібно обчислити поверхню тренду, а потім відняти її від початкової DEM, щоб отримати "знешкоджений".

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

Ось приклад того, як використовувати kriging в arcGIS 10.0 для цього.


1
На моєму прикладі, чи є кращий метод отримання поверхні тренду (наприклад, тип спрощення поверхні)?
Радар

Це питання! Це залежить від того, які варіації рельєфу ви хочете вважати "трендами" та вилучати та які ви хочете зберегти. Чим сильніше спрощення, тим менше ви зберігаєте місцеві варіації місцевості. За його словами, поверхню тренду, що складається з місцевих площин, може бути навіть задовільною.
липень
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.