ฉันจะเพิ่มสิ่งนี้ให้กับทุกคนในอนาคตที่อ่านกระทู้นี้
นี่คือทั้งหมดที่ฉันได้เรียนรู้ในการขุดลงในปัญหานี้และได้รับระยะทางที่สมบูรณ์ระหว่างจุดโทร
ปัญหาแรกของเราเกิดจากลักษณะคงที่ของ RasterCatalog การเปลี่ยนแรสเตอร์ที่เป็นไปตามนี้จะไม่เปลี่ยนแรสเตอร์ภายใน RasterCatalog ปรากฎว่าของเรามีรุ่นโบราณที่ไม่มีที่ไหนเลยใกล้แผนที่ชายฝั่งทะเล เรียนรู้บทเรียน: สร้าง RasterCatalog ใหม่ทุกครั้งที่คุณเปลี่ยน Rasters ตาม
Distance Raster พร้อมตุ้มน้ำหนักเพิ่มกลายเป็นเรื่องยุ่งยากในการทำงาน ดูสถานการณ์ต่อไปนี้: ค่าดั้งเดิมของแรสเตอร์คือ 1 ระยะทางทั้งหมดที่ฉันต้องการดูคือ 117 กม. ขนาดเซลล์คือ 1 เมตร ถ้าแรสเตอร์ตอนนี้มีค่าถ่วงน้ำหนักจาก 48 แล้วระยะทางทั้งหมดที่ฉันต้องการให้ดูกลายเป็น 117 km * 48 !!! ดังนั้นระยะทางในวิธี CostDistance ไม่ใช่ระยะห่างของเซลล์ แต่เป็นระยะทางถ่วงน้ำหนักทำให้เห็นได้ชัดว่าเป็นการเพิ่มมูลค่าในแต่ละเซลล์จนกว่าผลรวมของแต่ละเซลล์ = ค่าที่ส่งผ่านสำหรับระยะทางทั้งหมด แม้ว่าขนาดเซลล์ของตัวเองจะเป็น 1 เมตร !!!
แรสเตอร์ระยะทางทั้งหมดมุ่งเน้นไปที่จุดกำเนิด ดังนั้นเมื่อคุณเรียกรูทีน CostDistance คุณไม่ต้องการรวมจุดกำเนิดในรายการนั้น ถ้าคุณทำคุณจะได้รับหนึ่งจุดด้วยระยะทาง 0 (นี่ยังสนับสนุน ESRI ที่นิ่งงันอยู่)
ในขณะที่วิธีการหลายวิธีใช้ซองจดหมายเพื่อ จำกัด กระบวนการของพวกเขาทั้งสองวิธีที่มีราคาแพงที่สุดตั้งค่าเป็นแรสเตอร์และแยกแรสเตอร์โดยไม่มีพื้นที่ภายในรูปหลายเหลี่ยมละเว้นการตั้งค่าซองจดหมายทั้งหมดโดยอัตโนมัติ น่าเสียดายสำหรับเราเราสามารถทำให้สั้นลงได้โดยการสร้างเซกเมนต์ที่ทับซ้อนกันจำนวนมากและกำหนดเซ็กเมนต์ให้กับพื้นที่ที่บรรจุอยู่ แต่ในการทำเช่นนั้นเราต้องระวัง (ซึ่งยาก) ว่าพื้นที่ปฏิบัติการหลักไม่มีอยู่ในพื้นที่ที่ทับซ้อนกันผิด (กล่าวอีกนัยหนึ่งการซ้อนทับทั้งหมดของเราจะต้องเลือกอย่างระมัดระวังเพื่อไม่ให้มีจุดสนใจหลัก ๆ !) เหตุผลนี้คือเราสำรวจ RasterCatalog เพื่อเลือกแรสเตอร์ที่ถูกต้องตามตำแหน่งที่ Coast Guard เลือกไว้ เพื่อทำให้กระบวนการของเราซับซ้อนขึ้น การทับซ้อนต้องทำให้เราสามารถนำทางได้ไกลถึง 120 กม. จากจุดกำเนิดของเราโดยไม่วิ่งไปตามขอบของแผนที่และไม่ทับซ้อนกับจุดสนใจหลักอื่น ๆ Sheesh
สิ่งอื่น ๆ ที่ฉันได้เรียนรู้คือมันง่ายต่อการคำนวณทางคณิตศาสตร์กับแรสเตอร์ แต่เมื่อคุณต้องการ 'กระตุ้นรู' ในแรสเตอร์ (การอุดตัน) หรือตั้งค่าโดนัทที่มีค่าและด้านในของโดนัทที่มี ค่า 1 (ความล่าช้าเหมือนล็อค) คุณจะได้รับชุดเครื่องมือที่ซับซ้อนและการเรียกใช้ ArcObject ซึ่งนำไปสู่บทเรียนสุดท้ายที่เรียนรู้: ArcObjects ไม่สามารถทำทุกอย่างได้ บางครั้งฉันก็ถูกบังคับให้ทำสิ่งต่าง ๆ ในเครื่องมือที่ช้าและยุ่งยากซึ่งเขียนด้วยภาษาไพ ธ อน ฉันยังได้เรียนรู้ว่าผู้พัฒนาเครื่องมือ ESRI ไม่รู้อะไรเลยเกี่ยวกับการรักษาความมั่นคง บางครั้งพวกเขาใช้ฐานข้อมูลแรสเตอร์ในบางครั้งพวกเขาต้องการแรสเตอร์และบางครั้งพวกเขาก็ต้องการฟีเจอร์เซต และพวกเขาจะไม่ส่งคืนข้อมูลในรูปแบบเดียวกับที่พวกเขาต้องการเป็นอินพุต!
สับสน? ไม่ต้องกังวลมันคือ ESRI