การวิเคราะห์ข้อมูล GIS โดยใช้คำสั่ง Intersect ในพื้นที่ขนาดเล็กๆ ปกติแล้วจะไม่มีปัญหาอะไรเลยซึ่งก็สามารถใช้งานได้ง่ายและทุกคนน่าจะเคยใช้งานมากันแล้วหลายต่อหลายครั้ง เพราะเป็นคำสั่งพื้นฐานที่ต้องใช้ตั้งแต่ตอนเรียนหรือทำงานสำหรับงานด้าน GIS
ข้อมูล GIS 2 Shapefile ที่ได้รับมาจากพี่ในที่ทำงาน ที่ให้ช่วยตรวจสอบให้หน่อยว่าทำไมถึงวิเคราะห์ Intersect ไม่ได้ ใน ArcGIS หรือ วิเคราะห์ได้ใน ArcView แต่ได้ผลลัพธ์ที่ไม่ถูกต้อง
ข้อมูล 2 Shapefile
การวิเคราะห์ใน ArcGIS แล้วเกิด Warning ในเรื่อง Empty Output Generated ซึ่งหมายความว่า ผลลัพธ์ที่ได้จากการ Intersect มีการสร้างเป็น Shapefile (*.shp) เปล่าๆ ขึ้นมา ซึ่งภายใน Shapefile นี้ ไม่มี Geometry หรือ Attribute อยู่เลย
การวิเคราะห์ใน ArcView ให้ผลลัพธ์ที่ผิดเพี้ยน ซึ่งหลังจากใช้คำสั่ง Intersect แล้ว ควรจะได้เป็นพื้นที่ สีเขียว แต่กลับได้ผลลัพธ์เป็นพื้นที่ สีม่วง แทน
ตอนแรกคิดว่าน่าจะเป็นที่การไม่ได้กำหนดระบบพิกัด (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
ลองไปหาข้อมูลเพิ่มเติมว่าการทำ Repair Geometry ช่วยแก้ไขปัญหาในเรื่องอะไรให้กับข้อมูลได้บ้าง พบว่า สามารถแก้ไขปัญหา Geometry ได้ 7 อย่าง คือ Short Segment, Null Geometry, Incorrect Ring Ordering, Incorrect Segment Orientation, Self-Intersections, Unclosed Rings และ Empty Parts
อ้างอิง : 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 ดังกล่าวขึ้นมา
อ้างอิง : 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 (สีฟ้า รูปบนสุด) ปรากฎว่าสามารถวิเคราะห์และให้ผลลัพธ์ที่ถูกต้องได้ (สีชมพู)
ในการตรวจสอบนี้ทำให้ทราบว่า
1. Shapefile ที่ไม่มีการกำหนดระบบพิกัด ก็สามารถนำไปใช้วิเคราะห์ได้
2. การใช้คำสั่ง Repair Geometry กับ Shapefile และแสดงข้อความ Warning ขึ้นมา ก็สามารถนำ Shapefile นั่นๆ ไปใช้วิเคราะห์ได้
3. การใช้คำสั่ง Repair Geometry กับ Shapefile สามารถทำได้หลายๆ ครั้ง จนไม่แสดง Warning ขึ้นมา