ลบหลุมโดนัทออกจากรูปหลายเหลี่ยมโดยใช้ ArcGIS Desktop หรือไม่


15

ฉันใช้ ArcGIS Desktop 10.0

ฉันมีเคล็ดลับสำหรับการลบหลุมโดนัทซึ่งเป็นการแปลงรูปหลายเหลี่ยมเป็นเส้นแล้วสร้างรูปหลายเหลี่ยมออกจากเส้นและในท้ายที่สุดการรวมพวกเขาทั้งหมด ข้อเสียเปรียบของกลยุทธ์นี้ก็คือในการลบหลุมอื่น ๆ และพื้นที่ว่างเปล่าซึ่งในความเป็นจริงจะว่างเปล่าและควรจะว่างเปล่า ดูภาพด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่


3
ฉันโหวตให้คำถามนี้ค้างไว้เพราะฉันเชื่อว่า OP พยายามลบโดนัทบางตัว แต่ไม่ใช่ทั้งหมด เขากำลังมองหาวิธีที่จะเก็บพวกเขาไว้
Fezter

ขอบคุณ! ฉันได้เพิ่มภาพฉันหวังว่าทุกอย่างชัดเจน ฉันไม่สามารถไปข้างหน้าและลบพื้นที่ที่ใหญ่กว่าก่อนที่จะรวมทุกอย่างเข้าด้วยกันเพราะฉันอาจลบรูปหลายเหลี่ยมหลัก (สีเขียวนั้น)
Arash

1
คล้ายกันมากกับวิธีลบรูปหลายเหลี่ยม“ เกลือและพริกไทย” ออกจากเลเยอร์ได้อย่างไร แต่ใช้กระบวนการ QGIS คุณอาจทำงานกับกระบวนการที่คล้ายกันมากใน ArcGIS
RyanKDalton


มีเพียงขนาดเกณฑ์ด้านบนที่ไม่ควรเติมเต็มรูที่ป้องกันการซ้ำซ้อนของการ บรรจุในโดนัทรูปหลายเหลี่ยมโดยใช้ ArcGIS for Desktop?
PolyGeo

คำตอบ:


23

ฉันจะลองใช้เครื่องมือUnionด้วย NO_GAPS:

NO_GAPS— คุณสมบัติจะถูกสร้างขึ้นสำหรับพื้นที่ในเอาต์พุตที่ล้อมรอบด้วยรูปหลายเหลี่ยมอย่างสมบูรณ์ คุณสมบัตินี้จะมีคุณสมบัติที่ว่างเปล่า

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

ควรลบคุณลักษณะที่มีแอตทริบิวต์เปล่าด้านบนขนาดขีด จำกัด

จากนั้นเครื่องมือละลายควรจะทำงานให้เสร็จ


1
คุณจะ "คำนวณ [โดนัทโพลีใหม่] ให้เหมือนกับรูปหลายเหลี่ยม [ที่มี] รูปหลายเหลี่ยม" ได้อย่างไร พวกเขาไม่มีค่าคุณลักษณะร่วมกันดังนั้นจึงไม่สามารถเข้าร่วมได้ Island poly C รู้ได้อย่างไรว่าควรได้รับมันเป็นค่า attrib ใหม่จาก (ประกอบด้วย) Lake poly A และละเว้น (ที่อื่น) Lake poly B
matt wilkie

ฉันไม่ได้ทำการทดสอบเมื่อเร็ว ๆ นี้ แต่ "โดนัทใหม่โพลี" คือ "รูปหลายเหลี่ยม [มี] ต้นฉบับ" หากมีรูปหลายเหลี่ยมโดนัทดังกล่าวจำนวนมากที่ต้องดำเนินการเป็นจำนวนมากดังนั้นการติดแท็กรูเล็ก ๆ ด้วยรูปหลายเหลี่ยมโดนัทที่พวกเขาตกอยู่ข้างในจะเป็นสิ่งจำเป็น
PolyGeo

8

วิธีการแก้ปัญหาของ PolyGeoคือสิ่งที่ฉันได้ใช้และทำงานได้ดี (+1) อีกทางเลือกหนึ่งคือการบัฟเฟอร์รูปหลายเหลี่ยมของคุณด้วยจำนวนเล็กน้อยแล้วยกเลิกการบัฟเฟอร์ผลลัพธ์ด้วยจำนวนเดียวกัน (พูด + 1m แล้ว -1m) วิธีนี้ใช้งานได้ดี แต่มีความเสี่ยงเล็กน้อยในการเข้าร่วมรูปหลายเหลี่ยมโดยไม่ตั้งใจซึ่งมีจำนวนเท่ากับบัฟเฟอร์ของคุณ นอกจากนี้ยังสามารถเพิ่มจำนวนจุดยอดของคุณ (ซึ่งอาจหรืออาจจะไม่เป็นปัญหา)

คุณสามารถเขียนสคริปต์เพื่อหาคำตอบที่มีประสิทธิภาพโดยวนซ้ำรูปหลายเหลี่ยมแต่ละรูปสร้างรูปหลายเหลี่ยมแบบชั่วคราวขึ้นอยู่กับวงแหวนภายในและทดสอบสิ่งเหล่านี้สำหรับพื้นที่ของพวกเขา หากอยู่ต่ำกว่าเกณฑ์ของคุณคุณจะลบวงแหวนภายในดังกล่าวออกจากรูปทรงเรขาคณิตและอัปเดตแถวของคุณ โซลูชันนี้ทำงานได้ดีกว่าโซลูชันของ PolyGeo หรือการแฮ็กบัฟเฟอร์ของฉันด้านบน แต่อาจเป็นวิธีที่ "บริสุทธิ์กว่า"


5

คุณสามารถใช้เครื่องมือ "กำจัดส่วนรูปหลายเหลี่ยม" (เครื่องมือการจัดการข้อมูล -> การวางทั่วไป) ใน ArcToolbox คุณสามารถระบุพื้นที่รูร้อยละขั้นต่ำ / ร้อยละที่จะลบ


1
ฟังก์ชันนี้ต้องการระดับสิทธิ์การใช้งานขั้นสูง / ArcInfo
Martin

ฉันลองใช้เครื่องมือ Eliminate Polygon Part ใน ArcGIS Pro 2.0 แต่มันไม่ได้ทำอะไรกับคุณสมบัติรูปหลายเหลี่ยมที่ฉันกำลังทดสอบ คุณสมบัติมีวงแหวนภายในหลายแบบและฉันต้องการให้มันหายไปทั้งหมด เครื่องมือนี้ใช้งานได้เฉพาะในกรณีที่คุณสมบัติประกอบด้วยเรขาคณิตหลายส่วนหรือไม่?
Mike Finch

ไม่เพียงแค่". มันทำงานรูปหลายเหลี่ยมเดียวกับหลุมด้วย
Kadir Şahbaz

4

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

  1. ใช้ Geoprocessing "Union" บนเลเยอร์แผนที่รูปหลายเหลี่ยมและลบช่องทำเครื่องหมายสำหรับ "Gaps Allowed" (ซึ่งตรวจสอบโดยค่าเริ่มต้น) สิ่งนี้จะสร้างรูปหลายเหลี่ยมสำหรับหลุม "โดนัท" ทั้งหมดในรูปหลายเหลี่ยม
  2. ในเลเยอร์แผนที่ Union ผลลัพธ์ให้เพิ่มฟิลด์สำหรับ ID, X และ Y ID ควรแยกจากชื่อ / ID ของรูปหลายเหลี่ยมที่มีช่องโดนัทที่คุณต้องการลบ
  3. ในตารางคุณลักษณะให้ใช้เครื่องคำนวณภาคสนามเพื่อคำนวณ ID จากฟิลด์ ObjectID และใช้ "คำนวณเรขาคณิต" เพื่อเติมค่า X และ Y
  4. แยกโดนัทรูปหลายเหลี่ยมออกจากรูปหลายเหลี่ยมอื่น ๆ โดยเลือก (เลือกตามคุณสมบัติ) กลุ่มที่ฟิลด์ชื่อเป็นโมฆะ
  5. ส่งออกระเบียนที่เลือกไปยังตารางใหม่ (ดร็อปดาวน์ตัวเลือกตาราง -> ส่งออก ... )
  6. ใช้ตัวเลือก "เพิ่ม XY" เพื่อสร้างเลเยอร์เหตุการณ์ (เลเยอร์คลิกขวา -> แสดงข้อมูล XY ....
  7. ส่งออกเลเยอร์เหตุการณ์ไปยังคลาสคุณลักษณะใหม่ (คลิกขวาที่เลเยอร์ -> ข้อมูล -> ส่งออกข้อมูล)
  8. ทำการรวมเชิงพื้นที่ระหว่างเลเยอร์จุดใหม่และเลเยอร์แผนที่รูปหลายเหลี่ยม ORIGINAL ที่ไม่มีโดนัทรูปหลายเหลี่ยม ใช้ตัวเลือก "ใกล้เคียงที่สุด" เพื่อให้ชื่อของรูปหลายเหลี่ยมโดยรอบถูกผนวกเข้ากับตารางคุณลักษณะของรูปหลายเหลี่ยมโดนัท
  9. ใช้ตารางมาตรฐานเข้าร่วมระหว่างเลเยอร์จุดเชื่อมต่อและเลเยอร์แผนที่ผลลัพธ์จากยูเนี่ยน (ขึ้นอยู่กับฟิลด์ ID) (คลิกขวาที่เลเยอร์ -> เชื่อมต่อและสัมพันธ์ -> เข้าร่วม -> เข้าร่วมข้อมูลจากเลเยอร์อื่นตามตำแหน่งเชิงพื้นที่)
  10. ใช้เครื่องคำนวณภาคสนามในตารางคุณลักษณะเพื่อคำนวณชื่อรูปหลายเหลี่ยมที่เป็นโมฆะจากเลเยอร์จุดเชื่อมต่อ
  11. เรียกใช้ Geoprocessing "ยุบ" โดยใช้ชื่อรูปหลายเหลี่ยมเพื่อรวมรูปหลายเหลี่ยมโดนัทกับรูปหลายเหลี่ยมที่มีชื่อขนาดใหญ่กว่า

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


3

หากรูปหลายเหลี่ยมในคลาสคุณลักษณะมีรูปหลายเหลี่ยมอื่น ๆ ในระดับคุณลักษณะเดียวกัน (เช่นเลโซโทในแอฟริกาใต้) และหากคุณต้องการกำจัดการแก้ไขด้วยตนเองในแบบของ ModelBuilder ฯลฯ การใช้ "กำจัดส่วนรูปหลายเหลี่ยม" เป็นวิธีที่เร็วที่สุด การตั้งค่าเครื่องมือ:

- "Condition (เป็นทางเลือก)" = AREA - "Area (เป็นทางเลือก)" = จำนวนมาก (เช่น 1e + 100) - "กำจัดชิ้นส่วนที่มีอยู่เท่านั้น (ไม่จำเป็น)" = [ตรวจสอบ]

สิ่งนี้จะให้แอฟริกาใต้ซึ่งมีพื้นที่ของเลโซโทซึ่งจำเป็นสำหรับเวิร์กโฟลว์เช่นเอาท์พุทจุดยอดสำหรับใช้ในภาพโพลีกอนใน Tableau


1

เนื่องจากยังไม่ได้รับการกล่าวถึงและดูเหมือนจะเป็นเครื่องมือที่เหมาะสมสำหรับสิ่งที่คุณพยายามที่จะบรรลุ: รวมรูปหลายเหลี่ยม

ตั้งค่าMinimum_hole_sizeเป็นขนาดต่ำสุดของรูรูปหลายเหลี่ยมที่คุณต้องการเก็บไว้ คนที่เล็กกว่าจะถูกกำจัด

ค่าMinimum_area ที่เป็นทางเลือกในเครื่องมือเดียวกันนั้นจะเหมือนกันสำหรับชิ้นส่วนรูปหลายเหลี่ยมที่ไม่ใช่รู

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