กำลังแก้ไขรูปหลายเหลี่ยมที่ทับซ้อนกันขนาดเล็กหรือไม่


21

ฉันใช้ ArcMap 10.3

ฉันมีชั้นของการใช้ที่ดินประเภทต่าง ๆ ฉันพบว่ารูปหลายเหลี่ยมหลายรูปซ้อนทับกันและเป็นผลให้รูปหลายเหลี่ยมเดียวกันมีสองประเภทการใช้ประโยชน์ที่ดิน

ใช้คำตอบของ @ radouxjuฉันสร้างทอพอโลยีสำหรับเลเยอร์การใช้ที่ดิน (ด้วยกฎที่ไม่ทับซ้อนกัน) จากนั้นฉันใช้ผสานเพื่อแก้ไขรูปหลายเหลี่ยมที่ทับซ้อนกันขนาดใหญ่

อย่างไรก็ตามฉันมีรูปหลายเหลี่ยมซ้อนกันขนาดเล็กหลายพัน ฉันสามารถแก้ไขทั้งหมดด้วยตนเองซึ่งจะใช้เวลา

มีวิธีที่เร็วกว่าในการแก้ไขข้อผิดพลาดเหล่านี้หรือไม่

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

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


ฉันได้อัปเดตแผนที่เพื่อแสดงการใช้ที่ดินทุกประเภทแล้ว รูปหลายเหลี่ยมซ้อนกัน ไม่ slivers


2
จะบูรณาการเครื่องมือการทำงานสำหรับคุณ?
Fezter

@Fezter ฉันไม่คิดอย่างนั้นเพราะรูปหลายเหลี่ยมไม่มีพื้นที่เดียวกันและฉันไม่สามารถใช้ค่าเผื่อ XY แบบเดียวกันสำหรับทั้งชั้นได้
มันวาว

1
@aelwan: เป้าหมายของคุณคืออะไรกับข้อมูลนี้? คุณกำลังสร้างข้อมูลนี้เพื่อคนอื่นใช้ (เช่นถ้าคุณเป็นผู้สร้างข้อมูล) หรือคุณกำลังพยายาม "ล้างข้อมูล" เพื่อใช้ในแผนที่หรือการวิเคราะห์ เหตุผลที่ฉันถามคือข้อมูลนี้ดูเหมือนว่าข้อมูลขยะ มันอยู่นอกเหนือการวิเคราะห์ระบบสารสนเทศภูมิศาสตร์มันจำเป็นต้องได้รับการ redigitized อย่างสมบูรณ์และมีผู้มีอำนาจ มิฉะนั้นฉันจะทิ้งข้อมูลไว้เหมือนเดิม
alexGIS

@alexGIS ฉันเห็นด้วยกับคุณโดยสิ้นเชิงว่าข้อมูลแย่แค่ไหน อย่างไรก็ตามนั่นคือข้อมูลที่ดีที่สุดที่ฉันได้รับ ฉันพยายามทำความสะอาดเพื่อการวิเคราะห์
มันวาว

คำตอบ:


6

ข้อกังวลที่ยกขึ้นโดย @Adam Cara นั้นถูกต้องมาก อย่างไรก็ตามเมื่อฉันดูที่การแยกตนเองปรากฏว่าส่วนใหญ่เป็นบิตผอมบนขอบเขตระหว่างรูปหลายเหลี่ยมขนาดใหญ่ 2 อันหรือตัดการเชื่อมต่อบิต / เกาะของรูปหลายเหลี่ยมขนาดใหญ่นั่งอยู่ภายในอีกรูปแบบหนึ่ง ในกรณีนี้การลบการทับซ้อนและการมอบหมายการทับซ้อนที่ทับซ้อนกันคุณลักษณะของเพื่อนบ้านที่ใกล้ที่สุด

กระบวนการ:

arcpy.Intersect_analysis("Landuse2b #","D:/Scratch/mpart.shp","ALL","#","INPUT")
arcpy.MultipartToSinglepart_management("mpart","D:/Scratch/spart.shp")
arcpy.Dissolve_management("spart","D:/Scratch/dissolved_1.shp","#","#","SINGLE_PART","DISSOLVE_LINES")
arcpy.Erase_analysis("Landuse2b","dissolved_1","D:/Scratch/erased.shp","#")
arcpy.DeleteField_management("spart","FID_Landus;OBJECTID;Lnduse2013;Shape_Leng;Shape_Area")
arcpy.SpatialJoin_analysis("spart","erased","D:/Scratch/sj_1.shp","JOIN_ONE_TO_ONE","KEEP_ALL"…..)
arcpy.Merge_management("sj;erased","D:/Scratch/merge_1.shp"….)
arcpy.Dissolve_management("merge_1","D:/Scratch/dissolved.shp","Lnduse2013","#","SINGLE_PART","DISSOLVE_LINES")

ทดสอบ:

arcpy.Intersect_analysis("dissolved #","D:/Scratch/test.shp","ALL","#","INPUT")

ข้อความ:

  • ดำเนินการ: ตัดกัน "ละลาย #" D: \ Scratch \ test.shp ALL # INPUT
  • เวลาเริ่มต้น: ศุกร์ 22 เม.ย. 10:16:07 น
  • กำลังอ่านคุณสมบัติ ...
  • คุณสมบัติแคร็ก ...
  • คุณสมบัติการประกอบ ...
  • คำเตือน 000117: สร้างเอาต์พุตแจ้งเตือนที่ว่างเปล่า
  • ประสบความสำเร็จในวันศุกร์ที่ 22 เม.ย. 10:16:09 น. (เวลาที่ผ่านไป: 2.34 วินาที)

หมายเหตุข้อความนี้หมายความว่าไม่มีการตัดกันด้วยตนเองในผลลัพธ์จากการยุบขั้นสุดท้าย

ผล:

https://drive.google.com/file/d/0B6B33FrGNitPT0FvbVdHQm0xMDg/view?usp=sharing


1
วิธีนี้ทำให้ "เรียบร้อย" แต่ไม่ถูกต้อง หาก OP ไม่ได้กังวลว่าพื้นที่ที่ทับซ้อนกับ "Dairy" และ "Sheep / Beef" จะถูกจัดหมวดหมู่เป็น "Builtup / Parks / Others" และการจัดหมวดหมู่ตามอำเภอใจอื่น ๆ ที่ฉันเห็นเมื่อเปรียบเทียบอินพุตกับเอาต์พุตแล้ว วิธีนี้ใช้ได้ผล ที่ถูกกล่าวว่ามันเป็นกระบวนการทำงานที่สง่างามเป็นงานที่ดี
alexGIS

1
ด้วยข้อมูลดังกล่าวไม่มีใครรู้ว่าอะไรถูกต้อง
FelixIP

7

หากรูปหลายเหลี่ยมของคุณเป็น slivers คำสั่งกำจัดจะทำงานได้ดีเพื่อผสานเข้ากับรูปหลายเหลี่ยมพื้นที่ขนาดใหญ่หรือขอบที่ยาวที่สุด

หากรูปหลายเหลี่ยมซ้อนกันอาจมีวิธีที่ง่ายกว่า แต่ฉันจะเลือกการทับซ้อนกับเลเยอร์แยกจากนั้นให้นำกลับมารวมกันสร้างสลิเวอร์และใช้คำสั่งกำจัด


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

เพียงเรียกใช้ Intersect ( resources.arcgis.com/EN/HELP/MAIN/10.1/index.html#//… ) บนเลเยอร์รูปหลายเหลี่ยม ผลลัพธ์ของ Intersect จะเป็นการทับซ้อนกันทั้งหมดในเลเยอร์นี้
iRfAn

@iRfAn ขอบคุณฉันเรียกใช้จุดตัดและฉันได้ทับซ้อนกัน
มันวาว

@Bryan Waller ฉันพยายามติดตามสิ่งที่คุณแนะนำ: ฉันเลือกการซ้อนทับกับเลเยอร์แยกโดยใช้ "intersect"; จากนั้นจึงนำกลับมารวมกันใน "แต่ไม่มีเงินเกิดขึ้น" หลังจากที่ฉันใช้คำสั่งกำจัดฉันยังคงสามารถค้นหารูปหลายเหลี่ยมเดียวกันได้ซึ่งมีการใช้ที่ดินสองประเภทที่แตกต่างกัน ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม คุณสามารถหาชั้นการใช้ประโยชน์ที่ดินได้ที่นี่goo.gl/0aE3wq
มันวาว

6
  1. เลือกพื้นที่ขนาดเล็กและแปลงเป็นไฟล์รูปร่างสองไฟล์เพื่อดูว่ากระบวนการนี้ใช้งานได้หรือไม่
  2. สร้างฟิลด์ใหม่ชื่อ test (number) ใน s1 และ s2
  3. ตัดสองไฟล์รูปร่าง S1 และ S2
  4. พื้นที่ที่ทับซ้อนกันจะถูกระบุในไฟล์แยกต่างหากเช่นชื่อ Common1 (พื้นที่ที่แฮ็กในรูป)
  5. คำนวณการทดสอบภาคสนามเป็น 1 ในสามัญ
  6. Union S1 และ Common
  7. เลือก 1 ป้อนคำอธิบายรูปภาพที่นี่จากฟิลด์ทดสอบและลบพื้นที่ฟักออก
  8. ตอนนี้รวม s2 และร่วมกัน คำสั่งลบสามารถใช้เพื่อลบพื้นที่ส่วนกลาง

@Shampe ขอบคุณสำหรับความช่วยเหลือของคุณ การทับซ้อนที่ฉันมีอยู่ใน shapefile เดียวกันไม่ใช่ไฟล์รูปร่างสองไฟล์
เงา

6

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

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


2
คุณพบปัญหาที่สำคัญที่สุดที่นี่: จะจำแนกการทับซ้อนได้อย่างไร เพียงแค่การทำให้ข้อมูล "เรียบร้อย" ไม่ได้แปลว่า "ถูกต้อง"
alexGIS

@alexGIS อีกครั้งฉันเห็นด้วยกับคุณ อย่างไรก็ตามด้วยเป้าหมายของการวิเคราะห์นี้และพื้นที่ขนาดเล็กของรูปหลายเหลี่ยมที่ทับซ้อนกันของข้อมูลหมวดหมู่ของการทับซ้อนไม่ได้เป็นเป้าหมายหลักเมื่อเทียบกับการแก้ไขการทับซ้อน
แวววาว

นี่อาจเป็นความคิดที่ดีด้วยเหตุผลอื่น การทับซ้อนอาจแทนการเปลี่ยนแปลงในขอบเขตของเขตข้อมูลและการครอบตัดเมื่อเวลาผ่านไป
nmtoken

5

เมื่อคุณสร้างโทโพโลยีแล้วคุณจะพบข้อผิดพลาด

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

ขั้นตอนที่สองจะประกอบด้วยการลบรูปหลายเหลี่ยมขนาดเล็ก ปัญหาคือคุณไม่มีกฎในการตัดสินใจว่าคุณต้องการเก็บค่าคุณลักษณะใดไว้ เครื่องมือที่ชื่นชอบคือเครื่องมือกำจัดซึ่งคุณสามารถเลือกรูปหลายเหลี่ยมที่อยู่ใกล้เคียงรูปหลายเหลี่ยมขนาดเล็กจะถูกรวมเข้าด้วยกัน (ขึ้นอยู่กับขอบเขตที่ใช้ร่วมกันที่ใหญ่ที่สุดหรือพื้นที่ที่ใหญ่ที่สุด)

คำพูดสุดท้าย: ถ้าคุณมีกฎสำหรับคลาสการใช้ที่ดินที่มีลำดับความสำคัญให้เลือกรูปหลายเหลี่ยมขนาดเล็ก (ซึ่งไม่มีป้ายกำกับ) ตามตำแหน่งเพื่อกำหนดระดับการใช้ที่ดินในแต่ละระดับโดยลดลำดับความสำคัญและใช้เครื่องคำนวณภาคสนามเพื่อกำหนด ฉลาก.


4

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

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


ขอบคุณสำหรับความช่วยเหลือของคุณ. ฉันได้อัปเดตแผนที่เพื่อแสดงสีสำหรับการใช้ที่ดินทั้งหมด
เงา

4

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


4

ตรวจสอบช่องว่างเล็ก ๆ น้อย ๆ หรือเหลื่อมกันระหว่างรูปหลายเหลี่ยมเพื่อหาความทนทานและใช้เครื่องมืออินทิเกรตจาก Arctoolbox ด้วยค่าความคลาดเคลื่อนที่เหมาะสม

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

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