วิธีการแยก breaklines จาก DEM ที่กำหนด?


10

การแบ่งเป็นประโยชน์อย่างมากสำหรับการอธิบายภูมิประเทศ - ตัวอย่างเช่นการสร้าง TIN ที่แน่นอน

คำถามของฉันคือจะแยก breaklines เหล่านี้ออกจาก DEM ที่กำหนดได้อย่างไร

ฉันคำนวณความโค้ง (แนวตั้ง) - แรสเตอร์ (โดยใช้ arcgis 10) ซึ่งคุณสามารถเห็น breaklines (min / max-curvature) แต่ฉันไม่ได้คิดวิธีแยกพวกมันเพื่อให้ได้ polylines ในท้ายที่สุด

เวิร์กโฟลว์คืออะไรเพื่อรับข้อผิดพลาดเหล่านี้จาก DEM

ใครบ้างมีความคิดเกี่ยวกับเวิร์กโฟลว์หรือ "เครื่องมือ" หรือ skript ซึ่งสามารถช่วยได้?

ฉันคิดว่าฉันไม่ใช่คนแรก / คนสุดท้ายที่ต้องการทำงานนี้ :)

... ในขณะเดียวกันฉันได้พบบทความในหัวข้อที่ดูเหมือนจะเป็นทางออกที่ดี แต่คำถามใหญ่ยังคงอยู่: วิธีการลดที่จะปฏิบัติ?

หรือมีวิธีการที่แตกต่างกัน (ง่ายขึ้น?) กับซอฟต์แวร์บางอย่าง?


เท่าที่ฉันจำได้QuikGridสามารถตรวจจับเบรกเก็ตได้เป็นอย่างดีถึงแม้ว่ามันจะใช้งานได้กับคะแนนจำนวนมาก
ม.ค. Šimbera

คุณสนใจแยกประเภทใด สิ่งที่พบได้บ่อยที่สุดคือการทำน้ำให้ราบ แต่สามารถใช้เบรกไลน์สำหรับถนนได้ฉันไม่เข้าใจคำถามเนื่องจากจำเป็นต้องมีตัวแบ่งก่อนที่จะสร้าง DEM คุณช่วยอธิบายได้ไหม
geomatix

คำตอบ:


2

ฉันจะลองวิธีนี้: ค้นหาค่าที่สำคัญในไฟล์แรสเตอร์ความโค้ง สูงกว่าค่านี้คุณจะได้รับการพัก

จากนั้นฉันจะใช้คำสั่งแบบมีเงื่อนไขในเครื่องคิดเลขแบบแรสเตอร์เพื่อใช้ "1" สำหรับพิกเซลเหนือระดับวิกฤตและ 0 ต่ำกว่าค่าวิกฤต ใช้แรสเตอร์ไบนารีนี้สำหรับแรสเตอร์เพื่อการแปลงรูปหลายเหลี่ยมในกล่องเครื่องมือ คุณจะพบคำตอบเกี่ยวกับวิธีรับรูปหลายเหลี่ยมที่นี่

หลังจากทั้งหมดคุณสามารถสร้างแบบจำลองจากขั้นตอนเหล่านี้


อาจต้องใช้แทะหรือฟังก์ชั่นที่บางลงบนพื้นฐานของสิ่งที่ออกมา แต่ฉันคิดว่าคำตอบของ @ butcher อยู่บนเครื่องหมาย
Roland

2

Conrecทำเช่นนี้ แต่เดิมเขียนเป็นภาษาฟอร์แทรนดังนั้นจึงได้รับการแจ้งประมาณสองสามครั้ง

ไลบรารีที่ฉันทำงานใน 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)
  })
})

คุณยังสามารถสร้างตัวแบ่งที่เป็นธรรมชาติของ jenks ได้หากคุณไม่มีการแบ่งที่เฉพาะเจาะจง:

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 lidar ของฉันและค้นหาโครงการที่มี Breaklines เรามีมากมาย

ตัวอย่างเช่น 2010/2011 Eleven County Coastal VA Lidar คุณจะเห็นลิงก์ไปยังรายงานทั้งหมดและเอกสารอื่น ๆ และสิ่งนี้จะอธิบายวิธีที่พวกเขาทำ breaklines ใน ArcGIS ลองใช้โปรเจคที่แตกต่างกันสองสามวิธีสำหรับวิธีการที่แตกต่างกัน แต่ฉันสามารถบอกคุณได้ว่า NHD มักจะถูกใช้เช่นเดียวกับสันเขาที่ได้มาจาก DEM รายงานส่วนใหญ่อยู่ในข้อมูลเมตา นี่คือหนึ่งสำหรับข้างต้น CTRL F Breaklines ใน pdf

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.