Як витягнути ламання з заданої DEM?


10

Прориви дуже корисні для опису місцевості - наприклад, для побудови точного TIN.

Моє запитання полягає в тому, як витягти ці межі з даної DEM?

Я підрахував кривизну (вертикальну) - растрову (за допомогою арггіс 10), де можна побачити межі (min / max-кривизна), але я не зрозумів, як їх витягнути, щоб отримати врешті поліліній.

Що таке робочий процес для отримання цих меж з DEM?

Хтось має уявлення про робочий процес, або "інструмент", або скрипт, який може допомогти?

Я думаю, що я не перший / останній чоловік, який хоче виконати це завдання :)

... тим часом я знайшов документ на цю тему, який здається хорошим рішенням, але залишається велике питання: як зменшити це на практиці?

Або хтось інший (простіший?) Підхід до якогось програмного забезпечення?


Наскільки я пам’ятаю, QuikGrid дуже добре виявляє межі , хоча це здебільшого працює з масовими точками.
Ян Шімбера

Які випускні лінії ви зацікавлені в видобутку? Найпоширенішим може бути гідроуплощення, але лінії розбиття можуть бути використані для доріг. Я не розумію питання, як потрібні лінії розриву до створення DEM. Ви можете уточнити?
geomatix

Відповіді:


2

Я б спробував це таким чином: пошук критичного значення у растровому файлі кривизни. Вище цього значення ви очікуєте розрив.

Тоді я б використовував умовні висловлювання в растровому калькуляторі, щоб використовувати "1" для пікселів вище критичного та 0 нижче критичного значення. Використовуйте цей бінарний растр для перетворення растра в полігон у панелі інструментів. ви знайдете відповідь про те, як вивести полігон на лінію тут

адже ви можете створити модель з цих кроків.


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

2

Конрек робить це. Спочатку він був написаний фортран, тому його переносили кілька разів.

Бібліотека, над якою я працював у node.js, turf , використовує цей алгоритм для створення цих контурів на основі даних векторних точок. Сценарій зробити це досить просто і в основному це:

var t = require('turf')
var fs = require('fs')
var z = 'elevation'
var resolution = 15
var breaks = [.1, 22, 45, 55, 65, 85,  95, 105, 120, 180]

t.load('./path/to/points.geojson', function(err, points){
  t.contour(points, z, resolution, breaks, function(err, contours){
    if(err) throw err
    fs.writeFileSync('.path/to/output.geojson', contours)
  })
})

Ви також можете генерувати природні перерви, якщо у вас немає конкретних перерв:

var t = require('turf')
var propertyName = 'elevation'
var num = 10

t.load('./path/to/points.geojson', function(err, pts){
  if(err) throw err
  t.jenks(pts, 'elevation', num, function(err, breaks){
    if(err) throw err
    console.log(breaks) // [ 11, 12, 18, 25, 29, 41, 50, 55, 76, 90, 143 ]
  })
})

1

Якщо ви зайдете на мій лидара VA сайт і шукає проект з лінії розриву. У нас багато.

Наприклад, 2010/2011 рр. Одинадцять прибережних округів В. А. Лідар. Ви побачите посилання на всі звіти та інші документи, і це пояснює, як вони робили перерви зазвичай в ArcGIS. Спробуйте кілька різних проектів для різних методів, але я можу вам сказати, що НХД часто використовується, як і хребти, отримані від ДЕМ. Переважно звіти містяться у метаданих. Ось один для вище. CTRL F Межі лінії у форматі PDF.

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