Здійснення вилучення дамб з DEM?


14

У мене є DEM розміром 1х1 метр і оригінальна хмара точок LiDAR в .las, з якої складається DEM. Мені потрібно витягти річкові дамби (найвищі точки дамб) до векторної функції (точки, полілінії).

Будь-яка ідея алгоритму чи існуючого інструменту?

На 1-му зображенні дамби мають світло-сірий колір, а нижче - зображення хмари точок для прикладу області з дамбами. Центральна лінія річки синім кольором.

Дайки мають світло-сірий колір

Хмара точок з дамбами

Будь-який інструмент для вилучення лінійних функцій з DEM?

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


1
Яку систему використання ви використовуєте?
Hornbydd

Комерційний- ArcInfo 10 (SA, 3D, геостатистичні розширення). Відкритий код - будь-який.
Томек

1
Я думав про якусь ідею, припускаючи, що у вас є векторна центральна лінія для вашої річки, що ви можете її буферувати і використовувати це для маскування DEM і граничного значення. Це передбачає, що дамба проходить паралельно русла річки. Тож будь-яка логіка, яку ви використовуєте, повинна бути достатньо розумною, щоб захоплювати дамби, коли вони стають «відкинутими» від річки.
Hornbydd

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

2
Я натрапив на цей документ, може, допоможе? asprs.org/a/publications/pers/2004journal/december/…
Hornbydd

Відповіді:


8

Все залежить від того, де ви проведете лінію. Незважаючи на те, ця проблема виглядає так, що її можна легко вирішити за допомогою морфологічних функцій, доступних у Spatial Analyst, особливо порогів (виконуються з локальними операціями "<" і ">") та "RegionGroup" для виявлення та вилучення компонентів.

Хоча я не маю доступу до DEM для ілюстрації, перше зображення майже досить добре, щоб зробити роботу в будь-якому випадку. Наприклад, ось послідовність обласних версій червоної смуги (зі значеннями масштабуються від 0,0 = чорні до 1,0 = білі), починаючи з порогу 0 і рухаючись зліва направо, зверху вниз, з кроком 0,02:

Дайки

(Ці зображення були зменшені для відтворення тут: весь аналіз був зроблений за роздільною здатністю вихідного зображення.)

Накопи виникають навколо межі чорної області до початку другого ряду (поріг = 0,08). На початку третього ряду (поріг = 0,16) дамби утворюють власні компоненти (темно-синього кольору) і в цей момент їх можна легко витягти як окремі сітки або багатокутники (а їх межі можуть бути вилучені як полілінії після кроку виявлення краю ). Останнім рядом залишаються лише найширші дамби (поріг = 0,24 і більше). Вам потрібно буде вибрати відповідний поріг , щоб отримати саме те, що ви хочете.

У початковій ДЕМ підйоми відіграють роль інтенсивності, тому ці процедури повинні бути аналогічно ефективними із самою ДЕМ. Якщо DEM має велику міру (включаючи функції, далекі від річки або дамб), відповідні функції можуть бути обрані як ті, що примикають до компонента, в якому знаходиться річкова особливість.

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


До речі, ця послідовність зображень була створена в Mathematica 8. Ось команди для тих, хто може скористатися цим варіантом.

original = Import["http://i.stack.imgur.com/gV7Du.jpg"];
{r, g, b} = ColorSeparate[original];
frames = ParallelTable[Colorize[MorphologicalComponents[Binarize[r, t/100]], 
                       ColorFunction -> "ThermometerColors"], {t, 0, 30, 2}];
Rasterize @ TableForm[Partition[frames, 4]]

Загальний годинний час (після імпорту зображення) становив 0,94 секунди, з них половина була потрібна для зменшення та експорту всіх 16 зображень: морфологічні операції, як правило, швидкі (що добре, тому що ЛІДАР ДЕМ може бути величезним).


Вся концепція звучить нормально, але я не розумію "... порогове значення (виконується з" <"і"> "локальними операціями)" частиною. Як цього досягти за допомогою набору інструментів Generalization (SA)?
Томек

@Tomek One ні. Дивіться логічний набір інструментів .
whuber

9

Я читав про різноманітність алгоритмів для завдання (тобто, відповідно до @Hornbydds посиланням ).

Я спробував пару зустрічей, і найкращі результати в моєму випадку дають Стандартний аналіз місцевості від SAGA. Ось що я зробив і чому:

Дайки зазвичай є найвищою особливістю поблизу русла річки, тому я перетворив їх на канали, перегортаючи DEM (MapAlgebra DEM * -1 або для перебільшення схилів -10). З цього моменту я міг би використовувати будь-який з гідрологічних наборів інструментів (ArcHydro, HEC-GeoRas або гідроінструменти SAGA). Я вибрав SAGA / Аналіз місцевості - Збірна Аналізація / Стандартний аналіз місцевості, оскільки він виробляє річкову мережу в декілька клацань. Річкова мережа - це те, чого я хотів досягти, оскільки вона створює полілінії, які вказують найкращий маршрут для течії води, який у випадку перевернутих дамб - дає найвищу оцінку.

Вироблений файл форми трохи заплутаний (багато менших поліліній), але після деяких налаштувань результати задовільні. Ще одне роздратування полягає в тому, що 1 дамба зроблена з 300 коротких поліліній, але я думаю, що я знайду якийсь спосіб впоратися з цим.

Ось приклад результатів:

введіть тут опис зображення

Звичайно, це досить грубе рішення, і я, мабуть, буду досліджувати цю проблему далі, але я подумав, що варто її поділитися.


5

Деякі поєднання наведеного нижче з оригінальним DEM повинні допомогти виділити потрібну растрову інформацію та викинути решту. Вони можуть виконуватися в різних масштабах і розмірах околиць, щоб вдосконалити ефект.

  • Повторіть вибір, потім сусідство -> Фільтр: Високий пропуск
  • Поверхня -> Кривизна
  • Район -> Фокусна статистика: Стандартне відхилення
  • "Відносна висота" = (піксель) - (сусідство -> фокусна статистика: медіана)
  • Інвертувати, вновлювати, тоді сусідство -> фокусний потік

Після цього перекласифікація та контури повинні дати досить добре контур самого дамби. Якщо дамби мають плоскі укоси і ви хочете ширшого покриття, ви також можете спробувати щось на кшталт суми кривизни та схилу, зменшених на деяку кількість, або навіть окреслити контури схилу окремо і об'єднати їх між собою.

Ось підручник з вилучення векторних ригелінів з растрової DEM за допомогою просторової аналітики, яка має бути дуже застосовною:


Я перегляну комбінацію інструментів - це може дати хороші результати. Спасибі. Як я бачу, підручник ESRI описує процес +/- як я це робив :) Класно. Спасибі.
Томек

0

Я думаю, що це може бути лише частиною відповіді, але, можливо, ви можете почати, роблячи контури / багатокутники із зображень через задані інтервали / на основі значень висоти. Я думав, що дамби повинні мати більш високі значення висоти, і тому, якщо ви перетворюєте DEM на багатокутники, ви можете виявити, що ділянки, які вас цікавлять, представлені багатокутниками. Ви також можете почати, просто перекласифікувавши DEM і переконавшись, що це призводить до результатів, які ви шукаєте. Якщо у вас є інші дані про зображення, які охоплюють цікаву вам область, спробуйте додати їх до вашої класифікації зображень і подивіться, чи це допомагає. Удачі!!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.