ลบรูปหลายเหลี่ยมซ้ำโดยใช้เครื่องมือโอเพนซอร์ซ


13

ฉันมีรูปร่างไฟล์ที่มีคุณสมบัติที่มีรูปทรงเรขาคณิตที่ซ้ำกัน แต่มีคุณลักษณะที่แตกต่างกัน (เช่นรูปหลายเหลี่ยมที่มีแอตทริบิวต์ XX และรูปหลายเหลี่ยมที่เหมือนกันกับแอตทริบิวต์ XY) ฉันต้องการระบุรายการที่ซ้ำกันจากนั้นเลือกรายการที่มีแอตทริบิวต์ที่ถูกต้องแล้วลบรายการอื่น

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

ฉันสามารถเข้าถึง QGIS, OpenJUMP, Kosmo ฯลฯ และสามารถติดตั้งเครื่องมือโอเพนซอร์ซ / ฟรีอื่น ๆ ได้ถ้าต้องการ

คิด?

คำตอบ:


7

นอกจาก PostGIS คุณสามารถใช้ GIS (GRASS) โอเพ่นซอร์ส:

  1. ดาวน์โหลดและติดตั้ง
  2. เริ่มและเลือกเครื่องมือจัดการตำแหน่งที่ตั้งใช้เครื่องมือเพื่อสร้างฐานข้อมูลโครงการใหม่จากไฟล์ SHAPE ของคุณ (เรียกว่า "GRASS Location") ดูที่นี่สำหรับคำแนะนำทีละขั้นตอน
  3. นำเข้าไฟล์ SHAPE
  4. ใช้เครื่องมือ "v.clean"ซึ่งมีชุดตัวเลือกมากมาย
  5. ส่งออกแผนที่กลับไปเป็นรูปแบบไฟล์ SHAPE ด้วย"v.out.ogr"

Sidenote: เราวางแผนที่จะเสนอ WPS สำหรับสิ่งนี้เพื่อให้คุณสามารถขัดเกลาข้อมูลของคุณผ่านทางเว็บพอร์ทัลของเรา


ฉันไม่เชื่อว่า v.clean อนุญาตให้ผู้ใช้ 'โต้ตอบ' ระบุและแก้ไขข้อผิดพลาดโทโพโลยีทีละหนึ่ง โปรดแก้ไขฉันหากฉันผิด
Darren Cope

ฉันพลาดที่คุณต้องการจะทำแบบโต้ตอบ ดังนั้น v.digit digitizer เป็นเครื่องมือที่ใช้
markusN

Markus การหมุนผ่าน v.digit อย่างรวดเร็วไม่ฟังดูเหมือนว่าจะทำสิ่งที่ฉันต้องการ คุณสามารถยกตัวอย่างว่าฉันจะทำงานให้สำเร็จด้วย v.digit ได้อย่างไร?
Darren Cope

1
ที่จริงเพียงแค่นำเข้าไฟล์รูปร่างเข้าสู่ GRASS จะสร้างเลเยอร์ของรูปหลายเหลี่ยมที่ทับซ้อนกันเป็นเลเยอร์ 2_polygon ฉันคิดว่ามันน่าจะพอแล้วสำหรับฉัน!
Darren Cope

3

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

แบบสอบถามเพื่อค้นหารายการที่ซ้ำกันจะมีลักษณะเช่นนี้หากคุณมีรหัสเฉพาะที่เรียกว่า gid และคอลัมน์รูปทรงเรขาคณิตที่เรียกว่า the_geom:

create table duplicates as
select a.the_geom, a.gid, b.gid from mytable a, mytable b 
where ST_Equals(a.the_geom, b.the_geom) and a.gid!=b.gid;

มีตัวแปรบางส่วนใน ST_Equals แต่ฉันคิดว่า ST_Equals เป็นสิ่งที่คุณต้องการ ที่จะให้ตารางกับรูปทรงเรขาคณิตที่ซ้ำกันและ gid (id) ของโอกาสที่หนึ่งและสองของรูปหลายเหลี่ยม คุณจะได้คู่ที่ซ้ำกันสองครั้งแม้ว่าจะไม่สำคัญเพราะคุณเพียงต้องการให้พวกเขาแสดงให้คุณเห็นว่าพวกเขาอยู่ที่ไหน

HTH Nicklas


3

หากคุณใช้ PostGIS 1.5.x ให้ดูฟังก์ชัน ST_HausdorffDistance ()
รูปทรงเรขาคณิตที่ซ้ำกันจะให้ค่าเป็น 0 ใช้เหมือนการรวมตัวเอง ค่อนข้างเรียบร้อยสำหรับการเปรียบเทียบรูปหลายเหลี่ยม


0

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

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