Repair Geometry ใน ArcGIS

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

ข้อมูล GIS 2 Shapefile ที่ได้รับมาจากพี่ในที่ทำงาน ที่ให้ช่วยตรวจสอบให้หน่อยว่าทำไมถึงวิเคราะห์ Intersect ไม่ได้ ใน ArcGIS หรือ วิเคราะห์ได้ใน ArcView แต่ได้ผลลัพธ์ที่ไม่ถูกต้อง

 ข้อมูล 2 Shapefile

Shapefile

การวิเคราะห์ใน ArcGIS แล้วเกิด Warning ในเรื่อง Empty Output Generated ซึ่งหมายความว่า ผลลัพธ์ที่ได้จากการ Intersect มีการสร้างเป็น Shapefile (*.shp) เปล่าๆ ขึ้นมา ซึ่งภายใน Shapefile นี้ ไม่มี Geometry หรือ Attribute อยู่เลย

ArcGIS Error

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

ArcView Error

ตอนแรกคิดว่าน่าจะเป็นที่การไม่ได้กำหนดระบบพิกัด (Define Projection) ให้กับ Shapefile ซึ่งก็ทำการ Define Projection ให้กับ 2 Shapefile นี้ และวิเคราะห์ Intersect ใหม่ ก็ได้ Warning ในเรื่อง Empty Output Generated เหมือนเดิม ซึ่งก็ไม่เกี่ยวข้องกับการต้องทำ Define Projection (แต่จริงๆ แล้ว ควรจะ Define Projection ให้กับทุกๆ Shapefile จะดีที่สุด เพื่อประโยชน์หลายๆ อย่าง ในการบริหารจัดการข้อมูล)

ต่อไปมาใช้คำสั่ง Repair Geometry กับ 2 Shapefile ที่ยังไม่ได้กำหนดระบบพิกัด ปรากฎว่า Shapefile ของพื้นที่ขนาดเล็ก (สีเขียว รูปบนสุด) ผ่าน แต่ Shapefile ของพื้นที่ขนาดใหญ่ (สีฟ้า รูปบนสุด) ขึ้น Warning ในเรื่อง Incorrect Ring Ordering 

Incorrect Ring Ordering

ลองไปหาข้อมูลเพิ่มเติมว่าการทำ Repair Geometry ช่วยแก้ไขปัญหาในเรื่องอะไรให้กับข้อมูลได้บ้าง พบว่า สามารถแก้ไขปัญหา Geometry ได้ 7 อย่าง คือ Short Segment, Null Geometry, Incorrect Ring Ordering, Incorrect Segment Orientation, Self-Intersections, Unclosed Rings และ Empty Parts

Repair Geometry

อ้างอิง : http://resources.esri.com

แอบมีข้อสงสัยเล็กน้อย ภายหลังรู้ว่า Repair Geometry สามารถแก้ไขปัญหา Incorrect Ring Ordering ตามที่ได้ระบุไว้ได้ แต่ทำไมเวลาใช้คำสั่ง Repair Geometry แล้วถึงแสดง Warning ขึ้นมา

ลองไปหาข้อมูลเพิ่มเติมมาอีกว่าที่เขียนระบุไว้ว่า  its rings may not be oriented correctly (outer rings—clockwise, inner rings—counterclockwise) คืออะไร ซึ่งจากรูปภาพ ทำให้ทราบว่า ทิศการหมุนของ Polygon ข้างนอกและข้างใน ไปกันคนละทาง คือ ข้างนอกหมุนตามเข็มนาฬิกา (Clockwise) ส่วนข้างในหมุนทวนเข็มนาฬิกา (Counterclockwise) ทำให้เกิด Error ดังกล่าวขึ้นมา

Outer & Inner Ring

อ้างอิง : http://esri.github.io/geometry-api-java/doc/RelationalOperators.html

แต่ Shapefile ขนาดใหญ่ที่เกิด Warning มี Polygon เดียว แล้วจะมี Inner Ring ได้ยังไง ลองใช้คำสั่ง Multipart to Singlepart หรือ เช็ค Topology ก็หาไม่เจอ

สุดท้าย ลองทำ Intersect ใหม่อีกครั้งหนึ่ง โดยใช้ Shapefile ของพื้นที่ขนาดเล็ก (สีเขียว รูปบนสุด) ที่ทำ Repair Geometry ผ่าน กับ Shapefile ของพื้นที่ขนาดใหญ่ ที่ทำ Repair Geometry แล้วเกิด Warning (สีฟ้า รูปบนสุด) ปรากฎว่าสามารถวิเคราะห์และให้ผลลัพธ์ที่ถูกต้องได้ (สีชมพู)

Result

ในการตรวจสอบนี้ทำให้ทราบว่า

1. Shapefile ที่ไม่มีการกำหนดระบบพิกัด ก็สามารถนำไปใช้วิเคราะห์ได้
2. การใช้คำสั่ง Repair Geometry กับ Shapefile และแสดงข้อความ Warning ขึ้นมา ก็สามารถนำ Shapefile นั่นๆ ไปใช้วิเคราะห์ได้
3. การใช้คำสั่ง Repair Geometry กับ Shapefile สามารถทำได้หลายๆ ครั้ง จนไม่แสดง Warning ขึ้นมา

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s