แยกจุดทั้งหมดภายในระยะทางที่กำหนดและความสูงแตกต่างจาก Raster


11

ฉันมีแรสเตอร์ที่มีคะแนนหลายสิบล้านทั้งหมดโดยมีการกำหนดข้อมูล X, Y และ Z ฉันต้องหาวิธีที่ง่ายในการแยกและสร้างแรสเตอร์หรือเวกเตอร์ใหม่ที่มีคะแนนทั้งหมดที่ระยะทาง 720 ม. จากระยะห่างจากกัน (X, Y) และที่ระดับความสูง 120 ม. แตกต่างจากกัน

ฉันมีความรู้เป็นศูนย์เกี่ยวกับ SQL และ Python ฉันพยายามทำสิ่งนี้บน VBA และคิดอัลกอริธึมมาสองสามครั้ง แต่เวลาในการประมวลผลนั้นไม่สมเหตุสมผลและไม่สมจริง ฉันแน่ใจว่าต้องมีวิธีการ GIS ที่ง่ายเพื่อให้บรรลุสิ่งนี้ แต่ดูเหมือนจะไม่สามารถหาได้

ฉันใช้ ArcMap


ฉันใช้ ArcMap ขอบคุณสำหรับความคิดเห็นของคุณ ฉันจะเปลี่ยนเป็นคำถามเดิม :)
user32882

คุณพูด 720m ในแนวนอนและ 120m ในแนวตั้ง แต่มาจากไหน ดูเหมือนว่าคุณมีจุดแบบคลาวด์ แต่คุณสามารถค้นหาจุดที่เต็มตามเกณฑ์ของคุณจากตำแหน่งใด ๆ ภายในคลาวด์นี้ แน่นอนคุณต้องมีที่ตั้งของเมล็ดพันธุ์หรือเกณฑ์อื่นที่คุณไม่ได้กล่าวถึงเช่นการเพิ่มจำนวนคะแนนที่เต็มไปด้วยเกณฑ์?
Hornbydd

เช่นฉันบอกว่าฉันกำลังพยายามที่จะ "ดึงคะแนนทั้งหมดที่ระยะทาง 720 ม. จากกันและกัน (X, Y) และที่ระดับความสูง 120 ม. (Z) จากกัน" ไม่มี "ตำแหน่งของเมล็ดพันธุ์" ฉันกำลังสแกนจุดทั้งหมด
user32882

หนึ่งในความท้าทายที่ยิ่งใหญ่ที่สุดที่ฉันคาดไว้คือสิ่งที่ได้รับผล เป็นที่ยอมรับหรือไม่ที่จะมีผลแรสเตอร์ซึ่ง0= ไม่มีคะแนนห่างออกไป 720m & ± 120 ม. สูง1= หนึ่งคะแนนหรือมากกว่า 720m ออกไป & ± 120 ม. สูง? หรือคุณจำเป็นต้องนับคะแนนกี่เกณฑ์?
Erica

เรียน Erica ตัวเลือกแรกจะเป็นที่ยอมรับได้มากกว่า ฉันไม่ต้องการนับจำนวนคะแนนตามเกณฑ์นี้ แต่ฉันต้องสามารถเห็นคะแนนเหล่านี้ได้เมื่อเทียบกับแรสเตอร์ดั้งเดิม ตามคำแนะนำของคุณจุดใด / พิกเซลที่กำหนดค่า 1 จะมีจุดอื่นหรือหลายจุดภายในระดับความสูงและระยะทางที่กำหนดดังนั้นมันจึงสมบูรณ์แบบ! คำถามเดียวที่ฉันมีคือวิธีการทำสิ่งนี้ให้สำเร็จอย่างมีประสิทธิภาพ?
user32882

คำตอบ:


13

วิธีการอาจจะมากเกินไปง่ายที่จะใช้โฟกัสสถิติ

  • กำหนดย่านที่น่าสนใจเป็นวงแหวนโดยมีรัศมีภายในน้อยกว่า 720m และรัศมีรอบนอกเพียง 720m (ขึ้นอยู่กับขนาดของเซลล์ตัวอย่างเช่นเซลล์ 5m จะมีห่วงของ 717.5 - 722.5 ซึ่งอาจเป็นหน้าต่างที่ใหญ่เกินไปสำหรับแรสเตอร์เซลล์ 1m)
  • ใช้ประเภทสถิติMINเพื่อค้นหาค่าระดับความสูงต่ำสุดในพื้นที่ใกล้เคียง
  • ทำซ้ำเป็นครั้งที่สองใช้ประเภทสถิติMAXเพื่อค้นหาค่าระดับความสูงสูงสุดในพื้นที่ใกล้เคียง
  • การใช้Raster Calculatorประเมินว่าความแตกต่างของระดับความสูงนั้นใหญ่พอหรือไม่ สิ่งที่ต้องการ

    Con((Abs("DEM" - "FSMin") > 120) | (Abs("DEM" - "FSMax") > 120), 1, 0)

    หากความแตกต่างของนาทีต่ำสุดหรือความแตกต่างสูงสุดต้นฉบับเกิน 120m ค่าจะเป็น 1 หรือเท่ากับ 0 ( หมายเหตุ: ฉันยังไม่ได้ทดสอบไวยากรณ์ )

สิ่งนี้บอกคุณเท่านั้นว่าเซลล์มีเซลล์ข้างเคียงอย่างน้อยหนึ่งเซลล์ที่ตรงตามเกณฑ์ระยะทาง / ระดับความสูงของคุณหรือไม่นั้นไม่ได้บอกจำนวนเซลล์


ว้าว .... ฉันคิดว่ามันใช้งานได้ไม่น่าเชื่อ ขอบคุณมาก. ฉันใช้เวลาหลายสัปดาห์กับ VBA ในการพยายามทำสิ่งนี้เมื่อวิธีแก้ปัญหานั้นค่อนข้างง่ายสำหรับ GIS ขอให้พระเจ้าคุ้มครอง.
user32882

สิ่งนี้ไม่ได้ระบุคะแนนกับเพื่อนบ้านที่มีระดับความสูงอย่างน้อย 120 เมตรหรือไม่ ฉันสงสัยว่าเป็นเจตนาของคำถาม แต่ข้อความคือ "ที่ 120m แตกต่างกัน"
Llaves

@Laves ใช่คุณพูดถูก ฉันสงสัยว่าการค้นหาความแตกต่าง 120m ที่ 720m นั้นต้องใช้สคริปต์ที่น่าสนใจมาก
Erica

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