วิธีการระบุรูปหลายเหลี่ยมด้วยข้อผิดพลาด "ตั้งค่าสถานะ" เศษไม้


12

ทำงานใน ArcMap ฉันเจอข้อผิดพลาดในรูปหลายเหลี่ยมเลเยอร์ที่ฉันจะเรียกว่า "flag slivers" (นำมาจากภาษาที่คล้ายกันใน parcels เรียกว่า "flag lot") รูปหลายเหลี่ยมเศษไม้เหล่านี้ (ดูภาพด้านล่าง) โดยทั่วไปจะประกอบด้วยโหนดเพิ่มเติมเพียงหนึ่งโหนดที่ผู้ใช้เพิ่มโดยไม่ตั้งใจ

ในภาพด้านล่าง "flag" และ "flagpole" เป็นคุณสมบัติส่วนเดียวที่ "Flagpole" ทับซ้อนกัน ภาพซ้ายมือมีทั้งหมด 5 โหนด

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

เมื่อเห็นเพียงอย่างเดียวข้อผิดพลาดนั้นชัดเจนมาก แต่เมื่อรูปหลายเหลี่ยมหลายรูปติดกันพวกเขาแทบจะเป็นไปไม่ได้ที่จะเห็นเพราะดูเหมือนจะเป็นเขตแดนระหว่างรูปหลายเหลี่ยม 2 รูป

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

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


3
ฉันสงสัยว่าเหตุใด Esri จึงเสนอกฎที่ไม่ตัดกันสำหรับคุณสมบัติของเส้น แต่ไม่ใช่สำหรับรูปหลายเหลี่ยม
Kirk Kuykendall

เครื่องมือ Check Geometry พบหรือไม่
mkennedy

นอกจากนี้ยังค้นหาในการห้อยและแหก ทั้งคู่นำเอาอาร์คสคริป แต่ไม่มีอะไรในปัจจุบันและอีกหลายโพลีลีนแทนที่จะเป็นรูปหลายเหลี่ยม
mkennedy

ไรอันเป็นไปได้ไหมที่คุณจะส่งข้อมูลย่อยของคุณ? นอกจากนี้คุณยังตรวจสอบความคิดเห็นของ mkennedy เกี่ยวกับเครื่องมือ "Check Geometry" หรือไม่?
Allan Adair

arcmap รุ่นใด
Kirk Kuykendall

คำตอบ:


5

หากคุณเข้าถึงเครื่องมือ Safe Fme คุณจะพบว่าหม้อแปลงมีประโยชน์ที่เรียกว่า spikeRemover ลองดูสิ คุณสามารถลองใช้ SAFE FME แบบ จำกัด ได้หรือตรวจสอบใบอนุญาต ArcGis ของคุณสำหรับ "FME Extension for ArcGIS"

http://docs.safe.com/fme/html/FME_Transformers/Default.htm#Transformers/spikeremover.htm

http://cdn.safe.com/resources/fme/FME-Transformer-Reference-Guide.pdf


ฉันสามารถใช้ SpikeRemover ได้สำเร็จภายในส่วนขยาย ArcGIS Data Interop เพื่อทำความสะอาด spikes นอกจากนี้ยังมีเอาต์พุตที่อนุญาตให้คุณระบุคุณสมบัติไม่เปลี่ยนแปลงเปลี่ยนแปลงและตั้งค่าสถานะ (spikes) ทั้งหมดนี้มีประโยชน์จริง ๆ ในการระบุคุณลักษณะที่มี spikes และการสร้างเลเยอร์ "ที่ไม่มีการเปลี่ยนแปลง" นั้นง่ายมากโดยการโพสต์ทั้งเอาต์พุตที่ไม่เปลี่ยนแปลงและเปลี่ยนแปลงไปยังเลเยอร์เดียวกัน สำหรับการตรวจสอบเพิ่มเติม esri.com/software/arcgis/extensions/datainteroperability/?hl=th
RyanKDalton

2

ฉันไม่แน่ใจว่าปัญหาของคุณเกิดขึ้นที่ใดหรือคุณมีโอกาสที่จะหลีกเลี่ยง / แก้ไข แต่ฉันได้เห็นสิ่งนี้มากมายในฐานข้อมูล SDE ของเราถึงแม้ว่ารูปทรงเรขาคณิตใน SDE ควรถูกต้องเสมอ ในกรณีของเรามันเป็นเพราะเรานำเข้าไฟล์รูปร่างโดยใช้ ArcObjects ใน SDE เมื่อรูปทรงเรขาคณิตถูกเก็บไว้พวกเขาจัดชิดกับตารางของ SDE และสร้างรูปทรงเรขาคณิตที่ไม่ถูกต้องด้วย slivers ที่คุณอธิบายเมื่อรูปทรงเรขาคณิตมีเข็มแหลมบาง ทั้งนี้เนื่องจาก shapefiles มีความแม่นยำสองเท่าเต็มพิกัดและ SDE a coarser grid

วิธีแก้ปัญหาของเราคือการแก้ไขรูปทรงเรขาคณิตเมื่อนำเข้าโดย:
1. ตั้งค่าการอ้างอิงเชิงพื้นที่ของรูปทรงเรขาคณิตจากรูปร่างไฟล์ไปเป็นการอ้างอิงเชิงพื้นที่ของคลาสคุณสมบัติ SDE ที่สอดคล้องกัน
2 จัดรูปทรงเรขาคณิตเป็นการอ้างอิงเชิงพื้นที่ (IGeometry.SnapToSpatialReference () )
3. ตั้งค่า ITopologicalOperator2.IsKnownSimple = false (สำคัญมิฉะนั้นลดความซับซ้อนไม่ได้ทำอะไรเลย)
4. ดำเนินการลดความซับซ้อน สำหรับรูปหลายเหลี่ยมเราใช้ IPolygon.SimplifyPreserveFromTo ()


2

ด้วย arcmap 9.3.1 ฉันจะเพิ่มเขตข้อมูลที่ชื่อว่า Flag (หรืออาจเป็น FlagFlag?) และใช้รหัส VBA ในเครื่องคำนวณฟิลด์เพื่อคำนวณฟิลด์นี้

รหัส VBA จะทำให้ตัวแปรมัวเป็นITopologicalOperator3และตั้งค่าเป็นฟิลด์รูปร่าง

จากนั้นจะเรียกเมธอดIsSimpleEx ที่ไม่ให้ง่าย

ตั้งค่าฟิลด์ธงไปesriNonSimpleEnum esriNonSimpleSelfIntersectionsสันนิษฐานว่าเกิดข้อผิดพลาดที่คุณมีความกังวลกับจะกลับมา

ด้วย 10.0 อาจมีวิธีการทำเช่นนี้กับงูหลามในเครื่องคิดเลข (?) ... ฉันไม่แน่ใจ ฉันจะใช้คำสั่ง Add-in IMO Esri ควรให้การสนับสนุนสำหรับ c # ในเครื่องคำนวณภาคสนาม ท้ายที่สุดคอมไพเลอร์ c # ได้รับการติดตั้งเป็นส่วนหนึ่งของ. NET Framework

ปรับปรุง

รหัสที่ฉันโพสต์ที่นี่อาจพบกับเสาธงหากคุณใช้นิพจน์นิยาม"Left_OID" = "Right_OID"กับโพลีไลน์ featurelayer


1

นี้สคริปต์ Pythonเป็นเครื่องมือที่มีประโยชน์

กำจัดรูปหลายเหลี่ยมเศษไม้จากรูปร่างไฟล์

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

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

หมายเหตุ: คุณจะต้องทดสอบกับความคลาดเคลื่อนต่าง ๆ กับข้อมูลของคุณ (ถ่ายสำเนาข้อมูลของคุณก่อน)

http://arcscripts.esri.com/details.asp?dbid=14672


1
มันเป็นเรื่องง่ายด้วย ArcInfo Coverages> Clean Arcs> Build
Polygons

ฉันไม่แน่ใจว่าเครื่องมือนี้จะกำจัดข้อผิดพลาดที่ฉันแสดง คุณจะเห็นว่าเศษไม้ (เสาธง) และตัวหลักของรูปหลายเหลี่ยม (ธง) เป็นคุณลักษณะเดียว ดังนั้นสคริปต์นี้จะไม่ลบเฉพาะส่วน "flagpole" ของรูปหลายเหลี่ยมโดยไม่ลบคุณลักษณะ "flag" ทั้งหมดในเวลาเดียวกัน
RyanKDalton

1

ไรอัน

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

นั่นเป็นเพียงวิธีของฉันในการระบุปัญหา เพียงแบ่งปันกับคุณ


1

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

  • สร้างแผนที่โทโพโลยี
  • เลือกคุณสมบัติทั้งหมด
  • ใช้คุณสมบัติการสร้างเพื่อแยกคุณสมบัติที่มีอยู่

ฉันได้ทำการทดสอบและดูเหมือนว่าจะใช้งานได้ แต่ฉันไม่แน่ใจว่าได้จำลองแหล่งข้อมูลของคุณหรือไม่

ขอให้สนุก CDB


1

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

  • ปิด 3D
  • รูไม่ถูกต้อง
  • การแสดงออกของ SQL
  • พื้นที่น้อยกว่าการอ้างอิงเชิงพื้นที่
  • คุณสมบัติเกี่ยวกับคุณสมบัติ
  • และอื่น ๆ อีกมากมาย

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

หวังว่านี่จะช่วยได้ CDB

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