การลบแนวโน้มระดับความสูงเหนือพื้นผิวที่ลาดเอียงหรือไม่?


16

มีวิธีการที่รู้จักกันดีสำหรับการลบแนวโน้มออกจากพื้นผิว DEM หรือไม่?

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

เมื่อลบแนวโน้มนี้มันจะเป็นการดีที่สุดที่จะรักษาลักษณะโดยรวมของ DEM เช่น dips ในแม่น้ำป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


9

@jul ถูกต้องว่า"คุณต้องคำนวณหาพื้นผิวเทรนด์จากนั้นลบมันออกจาก DEM เริ่มต้นของคุณเพื่อรับ 'detrended' หนึ่ง"แต่ดูเหมือนว่าขั้นตอนที่ง่ายกว่านั้นจำเป็นในกรณีนี้เพื่อ "รักษา dips" หาก "ผิวหน้าเทรนด์" ใกล้เคียงกับ DEM ดั้งเดิมมากเกินไปสิ่งตกค้างจะไม่คงลักษณะเฉพาะของพื้นผิวไว้ ดังนั้นเทคนิคที่ควรหลีกเลี่ยงคือเทคนิคท้องถิ่น (เส้นโค้งตัวกรองและโดยเฉพาะอย่างยิ่ง - ล้อเลียน) และเทคนิคที่ควรหลีกเลี่ยงคือระดับโลก

วิธีที่ง่ายและมีประสิทธิภาพโดยตรงคือการวางเครื่องบินให้กับ DEM ในบริเวณใกล้เคียงของแม่น้ำ สิ่งนี้ไม่ได้ใช้เทคโนโลยีที่ล้ำสมัยหรือการคำนวณอย่างหนักเพราะ (ตาม Euclid) เครื่องบินจะถูกกำหนดโดยจุดสามจุด (ไม่ใช่ collinear) ในอวกาศ ดังนั้นเลือกหนึ่งจุด (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' ซึ่งเป็นการคำนวณ raster ของแบบฟอร์ม

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

เอา "เอียง" จาก DEM ในนิพจน์นี้ [X '] หมายถึงกริดพิกัด x ในพิกัดดั้งเดิมและ [Y'] หมายถึงกริดพิกัด y ดั้งเดิม ผลลัพธ์ DEM นั้นรับประกันว่าจะมีระดับความสูงเท่ากัน (คือ z0 ') ที่แต่ละจุดสามจุดที่คุณเลือก มันทำอะไรที่อื่นขึ้นอยู่กับ DEM!


(ฉันหวังว่าผู้อ่านบางคนชื่นชมวิธีที่วิธีนี้หลีกเลี่ยงการอ้างอิงทั้งหมดเกี่ยวกับตรีโกณมิติหรือเครื่องจักรกำลังสองน้อยที่สุด :-)


อย่าลืมที่จะเพิ่มการอ้างอิงของคุณเพื่อเอียงแรสเตอร์ที่ฟอ รัม.arcgis.com/threads/22904-Trouble-with-Hillshading

@Dan จุดที่ดี: โพสต์ก่อนหน้านี้ที่gis.stackexchange.com/questions/10959/…ดูเกี่ยวข้องอย่างใกล้ชิดกับสิ่งนี้
whuber

คำถามก่อนหน้านี้ก็เป็นของฉันด้วย - ฉันรู้สึกว่าฉันควรจะกลั่นกรองมันเพื่อที่จะถามคำถามให้รัดกุมยิ่งขึ้น (เช่นต้องรักษา dips) ฉันได้ดูโค้ดที่จะทำการวิเคราะห์ประเภทนี้ แต่ฉันไม่ประสบความสำเร็จ คุณทราบหรือไม่ว่ามีอะไรที่ใช้ประโยชน์จาก ArcObjects ที่จะเป็นประโยชน์หรือฉันควรเริ่มจากศูนย์? ขอบคุณสำหรับความช่วยเหลือ - มันมีค่ามาก
Radar

@Radar ก่อนอื่นให้ลองวิเคราะห์ด้วยมือ มันต้องมีการตัดสินบางอย่าง (คุณต้องเลือกสามจุดอย่างระมัดระวัง) และบ่อยครั้งที่การทำซ้ำบางอย่างเพื่อทำสิ่งที่ถูกต้อง ประสบการณ์นั้นจะทำให้คุณเข้าใจได้ดีขึ้นว่าการคำนวณทำงานอย่างไร คุณอาจเปรียบเทียบวิธีนี้กับการปรับพื้นผิวแนวโน้มเชิงเส้นที่มีให้ใน ArcGIS
whuber

ยุติธรรมเพียงพอ - ฉันได้รับมาของคะแนนต้นน้ำและปลายน้ำโดยอัตโนมัติแล้ว ฉันคิดว่าส่วนที่ยากที่สุดจะได้คะแนนที่ 3 ขอบคุณอีกครั้ง!
Radar

3

ฉันพบว่ามีแนวโน้มที่ไม่น่าพอใจกับการวิเคราะห์แนวโน้มที่ไม่น่าพอใจสำหรับแม่น้ำ มันอาจทำงานในภูมิภาคต่าง ๆ เช่นมิดเวสต์ แต่ทางตะวันตกพื้นผิวที่เป็นเส้นตรงหรือพหุนามเดียวดูเหมือนจะไม่สามารถประมาณความลาดชันของแม่น้ำได้เป็นอย่างดีเนื่องจากภูมิประเทศที่ซับซ้อน สิ่งที่ฉันใช้แทนคือค่าเฉลี่ยถ่วงน้ำหนักซึ่งฉันเปรียบเทียบระดับความสูงของพิกเซลดอนกับค่าเฉลี่ยถ่วงน้ำหนักของแม่น้ำโดยใช้ความหนาแน่นเคอร์เนล (ดูบทความใน Winter 2010 ArcUser) สิ่งนี้สร้างผลลัพธ์ที่ "แปล" มากขึ้น ยังคงเป็นไปได้ที่จะได้รับค่าลบ แต่ฉันพบว่าค่าเหล่านั้นดูเหมือนจะถูกกักขังอยู่ในช่องแคบแม่น้ำและเป็นเรื่องธรรมดาที่สุดในพื้นที่ลาดชัน เมื่อเร็ว ๆ นี้ฉันได้ทดลองใช้วิธีหาระยะทางในการทำแผนที่ "ความสูงของน้ำท่วม" แต่นี่ไม่ได้ผล '


ขอบคุณสำหรับความเห็นของคุณทอม ยินดีต้อนรับสู่เว็บไซต์ของเรา - ยินดีที่ได้พบคุณที่นี่!
whuber

2

คุณต้องคำนวณพื้นผิวเทรนด์แล้วลบออกจาก DEM เริ่มต้นของคุณเพื่อรับ "detrended"

ในการคำนวณพื้นผิวเทรนด์อาจใช้ฟังก์ชันการทำให้พื้นผิวเรียบง่าย (การกรองการทำให้เส้นโค้งเรียบขึ้น ตัวเลือกนี้ขึ้นอยู่กับว่าคุณต้องการให้ผิวแนวโน้มนี้เป็นอย่างไร

นี่คือตัวอย่างเกี่ยวกับวิธีการใช้ kriging ใน arcGIS 10.0สำหรับสิ่งนั้น


1
สำหรับตัวอย่างของฉันมีวิธีที่ต้องการเพื่อให้ได้ผิวหน้าเทรนด์ (เช่นประเภทของการทำให้พื้นผิวเรียบง่าย) หรือไม่?
Radar

นั่นคือคำถาม! ขึ้นอยู่กับว่ารูปแบบภูมิประเทศใดที่คุณต้องการให้ถือเป็น "แนวโน้ม" และนำออกและรูปแบบที่คุณต้องการเก็บไว้ ยิ่งการทำให้เข้าใจง่ายขึ้นเท่าใดคุณก็จะยิ่งรักษาภูมิประเทศของคุณน้อยลง ดังที่ได้กล่าวไปแล้วว่าผิวหน้าเทรนด์ที่ประกอบไปด้วยระนาบท้องถิ่นอาจน่าพอใจ
Julien
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.