การจัดกลุ่มรูปหลายเหลี่ยมที่ต่อกันแบบสัมผัสมุมโดยใช้ ArcGIS Desktop?


12

ใช้ ArcGIS 10 ฉันมีคลาสคุณลักษณะที่ฉันแปลงจาก Raster (GRID) (Raster เป็นรูปหลายเหลี่ยมเครื่องมือ)

  • มีประมาณ รูปหลายเหลี่ยม 180,000
  • ตารางแอตทริบิวต์มีฟิลด์ [grid_code] ซึ่งฉันจำเป็นต้องเก็บรักษาไว้
  • หากรูปหลายเหลี่ยมหนึ่งอันหรือมากกว่านั้นต่อเนื่องกันกับมุมที่สัมผัสและพวกเขามีค่า [grid_code] เหมือนกันดังนั้นฉันต้องการจัดกลุ่มพวกเขา (ที่ละลายโดยทั่วไป) เป็นรูปหลายเหลี่ยมหนึ่งรายการ (บันทึก)
  • จากนั้นฉันต้องคำนวณพื้นที่ของรูปหลายเหลี่ยมที่จัดกลุ่ม

การใช้เครื่องมือเลือกตามตำแหน่งฉันสามารถเลือกรูปหลายเหลี่ยมที่ฉันต้องการจัดกลุ่มได้สำเร็จ แต่ฉันจะแปลงรูปเหล่านั้นเป็นรูปหลายเหลี่ยมเดียวได้อย่างไรในขณะที่รักษา [grid_code]


3
คุณคิดว่าใช้คำสั่งกลุ่มภูมิภาคก่อนที่จะแปลงแรสเตอร์เป็นรูปหลายเหลี่ยมหรือไม่?
Kirk Kuykendall

1
Kirk นั้นถูกต้องอย่างแน่นอน: คุณต้องการทำการคำนวณนี้กับกริดดั้งเดิมซึ่งจะรวดเร็วและมีประสิทธิภาพมากกว่าในรูปแบบเวกเตอร์เอาต์พุตซึ่งจะช้าและเจ็บปวด
whuber

2
ขอบคุณ Kirk และ Bill ใช่กลุ่มภูมิภาคเป็นเครื่องมือที่เหมาะสม น่าเสียดายที่การใช้กลุ่มภูมิภาคกับชุดข้อมูลขนาดใหญ่ของฉันทำให้เกิดการสตริปในแนวนอนซึ่งเป็นข้อผิดพลาดของนักวิเคราะห์เชิงพื้นที่ที่รู้จัก แถบเหล่านี้ได้รับการบันทึกไว้ตั้งแต่ต้นเดือนธันวาคม 2009 แต่ตอนนี้เมื่อใช้ ArcGIS 10 ปัญหาเหล่านี้ก็ยังคงมีอยู่ คุณสามารถอ่านทั้งหมดได้ที่นี่: [ลิงค์] ( forums.arcgis.com/threads/… ) งานของฉันคือการเขียนผลลัพธ์จากเครื่องมือกลุ่มภูมิภาคไปยัง ArcInfo Workspace ที่เก่าแก่เป็น GRID ดูเหมือนว่าจะแก้ไขมัน!
mjn

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

โปรดทราบว่าหากรูปหลายเหลี่ยมแชร์จุดสุดยอดเพียงจุดเดียวคุณแนะนำการแยกตัวเองและทำให้รูปทรงเรขาคณิตนั้นไม่ถูกต้อง
Jim B

คำตอบ:


2

คุณสามารถละลายรูปหลายเหลี่ยมที่อยู่ติดกันด้วยค่ารหัสร่วมกันโดยใช้ละลายเครื่องมือ

  1. เลือกฟิลด์รหัสกริดของคุณเป็น "Dissolve_Field (ตัวเลือก)"
  2. ที่ด้านล่างของแบบฟอร์มเครื่องมือให้เลือกช่องทำเครื่องหมาย "ไม่แสดงบรรทัด (ตัวเลือก)"
  3. สร้างฟิลด์พื้นที่
  4. คลิกขวาที่ฟิลด์พื้นที่แล้วเลือกคำนวณเรขาคณิต

2

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

  1. เลือกรหัสกริดที่กำหนด
  2. บัฟเฟอร์ที่กริดโค้ดด้วยจำนวนที่น้อยมาก (ตัวเลือกบัฟเฟอร์ที่ผสาน)
  3. บัฟเฟอร์ผลลัพธ์ในเชิงลบโดยขนาดเล็กมากเกี่ยวกับเดียวกัน

จะมีการปัดเศษเล็กน้อยในเรขาคณิต

ในการสร้างเลเยอร์เดี่ยวให้ตัดเลเยอร์โค้ดกริดที่เป็นผลลัพธ์และทำความสะอาดเพื่อลบรูปหลายเหลี่ยมแบบเศษไม้


-1

โดยส่วนตัวแล้วฉันจะเขียนโค้ดที่วนลูปผ่านรูปหลายเหลี่ยมและตรวจสอบที่ coords มุมทั้งสี่ของรูปหลายเหลี่ยมเหมือนกันกับมุมรูปหลายเหลี่ยมอื่น ๆ และเรียกมันว่า recursively

ฉันทำสิ่งนี้กับกริด netCDF เพื่อสร้างรูปหลายเหลี่ยมที่คล้ายกันอย่างเหมาะสม

อีกทางเลือกหนึ่งคือการทำสิ่งนี้กับรากด้วยกริด


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