ฉันมีสองเลเยอร์ใน ArcGIS: หนึ่งคือเวกเตอร์พอยท์และอีกหนึ่งคือเลเยอร์แรสเตอร์ ฉันต้องการผนวกค่าของตารางข้อมูลแบบแรสเตอร์ที่จุดเวกเตอร์ ปัญหาคือจุดเวกเตอร์อยู่ห่างจากกริดแรสเตอร์ใด ๆ ที่มีอยู่ดังนั้นค่าคำสั่ง "ตัวอย่าง" จะไม่ส่งคืนค่าสำหรับจุดเวกเตอร์เหล่านั้น
ดังนั้นคำถามของฉันคือฉันจะหาเซลล์แรสเตอร์ที่ใกล้ที่สุดที่ให้เวกเตอร์พอยต์และดึงค่าจากเซลล์ได้อย่างไร
จริงๆแล้วมีสองสิ่งที่ฉันต้องทำ:
- ระบุ outliner ภายในแรนเจอร์ (โดยปกติ 1-2 เซลล์อยู่ห่างจากแรสเตอร์ที่ฉันมีอยู่)
- กำหนดค่าจากแรสเตอร์ที่ใกล้ที่สุดให้กับพวกเขาหากพวกเขาอยู่ในช่วง
แก้ไข: ฉันมีจุดเวกเตอร์ประมาณ 3000 จุดและปัญหาของฉันคือ:
ฉันต้องการผนวกค่าแรสเตอร์ตามตำแหน่งตามจุดเวกเตอร์ ฉันใช้เครื่องมือ "ตัวอย่าง" และใช้งานได้ดีกับคะแนนส่วนใหญ่
อย่างไรก็ตามมีสถานการณ์เช่นนี้
จุดที่ถูกต้องสามารถรับค่าได้จาก raster ("ตัวอย่าง") แต่จุดซ้ายไม่สามารถทำได้เนื่องจากปัญหาการจัดตำแหน่ง
Raster เป็นรูปหลายเหลี่ยมไม่ทำงานเพราะฉันได้รับข้อความแสดงข้อผิดพลาดว่าฉันไม่สามารถเปลี่ยนเป็นเวกเตอร์ได้เนื่องจากพวกเขาอยู่นอกโดเมน นอกจากนี้ฉันมีคะแนนเช่นนี้
จุดบนเหล่านั้นไม่ควรรับค่าใด ๆ เพราะอยู่ห่างจากแรสเตอร์มากเกินไป
ฉันคิดถึงการทำงานของเวย์เลย์:
ขั้นตอนที่ 1 ทำ "ตัวอย่าง" ก่อน
ขั้นตอนที่ 2 เลือกค่า Null หลังจากการดำเนินการ "ตัวอย่าง"
ขั้นตอนที่ 3 สร้างเขตบัฟเฟอร์ (ภายใน 1 องศาทศนิยม) ขึ้นอยู่กับจุดว่าง
ขั้นตอนที่ 4 ใช้สถิติเป็นกลุ่ม? ? หรือเครื่องมืออื่น ๆ ที่จะวนลูปผ่านเซลล์แรสเตอร์ทั้งหมดในบัฟเฟอร์ค้นหาอันที่ใกล้ที่สุดแยกค่าของมันและวางลงในจุดเวกเตอร์
ฉันติดอยู่ที่ขั้นตอนที่ 4 ฉันไม่รู้ว่าเครื่องมือใดใน ArcSDK ที่ฉันสามารถใช้เพื่อให้บรรลุหน้าที่นี้
หรืออื่น ๆ ... คุณมีความคิดที่ดีกว่าในการจัดการกับเรื่องนี้หรือไม่?
ฉันมีเลเยอร์แรสเตอร์ 20 ชั้นเช่นนี้และฉันต้องการทำให้เป็นอัตโนมัติ (ใช้ตัวสร้างแบบจำลองและอาร์คอบเจ็กต์)
Sample
เครื่องมือ