ฟังก์ชั่นการใช้งานใน ArcGIS

วันนี้มานำเสนอการใช้งานฟังก์ชั่นต่างๆ ใน ArcGIS 6 ฟังก์ชั่น (เล็กๆ) ซึ่งคิดว่าน่าจะเป็นประโยชน์สำหรับคนทำงานทางด้าน GIS ได้แก่

1. การนับจำนวน vertex ใน Polygon

2. การแปลง vertex ใน Polygon ไปเป็น Point

3. การคำนวณ Maximum Extent หรือ Envelop

4. การสร้าง Minimum Extent ในรูปแบบต่างๆ

5. การลบข้อมูลใน Field ที่ซ้ำกัน

6. การเลื่อนตำแหน่ง Polygon ตามระยะทางที่กำหนด

——————————————————————————————————————————————————

1. การนับจำนวน vertex ใน polygon

ฟังก์ชั่นนี้ผมใช้หาจำนวน vertex ใน polygon ของ Index ข้อมูลภาพถ่ายจากดาวเทียม ซึ่งปกติแล้วจะมีประมาณ 4 จุด จากการดูด้วยสายตา เนื่องจากเป็นพื้นที่สี่เหลี่ยม

Data

แต่พอนำ Index นี้ไปขึ้นบนเว็บไซต์พบว่าข้อมูลโหลดขึ้นมาช้ามาก ซึ่งทำให้คิดว่าข้อมูลต้องมีปัญหาอะไรสักอย่าง ทำให้อยากทราบว่าแต่ละ Polygon ของ Index มีจำนวน vertex 4 จุด จริงๆ หรือเปล่าในแต่ละ Polygon วิธีการคือ สร้าง Field ขึ้นมาใหม่ชื่อ vertex เป็น Long Integer และ Field Calculator เลือก Python และใส่ฟังก์ชั่นนี้ลงไป !shape.pointcount! ก็จะทราบจำนวน vertex ทั้งหมดในแต่ละ Polygon

Field Calculator

เมื่อทราบจำนวน vertex แล้วลองซูมเข้าไปดูก็พบว่าเป็นแบบนี้ ซึ่งสามารถแก้ไขปัญหาได้โดยใช้ การสร้าง Minimum Extent แบบ Convex_Hull ซึ่งมีวิธีทำในข้อที่ 4 (การสร้าง Minimum Extent ในรูปแบบต่างๆ)

Result

——————————————————————————————————————————————————

2. การแปลง vertex ใน Polygon ไปเป็น Point

ไปที่ ArcToolbox หรือ Search แล้วหาฟังก์ชั่น Feature Vertices To Points (Data Management) ก็จะสามารถแปลงจุด Vertex จาก Line หรือ Polygon ให้กลายเป็น Point ได้

Feature Vertices To Points

Result

——————————————————————————————————————————————————

3. การคำนวณ Maximum Extent หรือ Envelop

ถ้าใน Shapefile ของเรามีหลายๆ Polygon ที่มีรูปร่างแตกต่างกัน และเราต้องการทราบค่าพิักัดที่เป็น xMin, xMax, yMin, และ yMax ของแต่ละ Polygon เพื่อนำค่าเหล่านี้ไปกรอกในระบบ สำหรับใช้กำหนดกรอบในการสืบค้นข้อมูลภาพถ่ายจากดาวเทียม ซึ่งในระบบการค้นหาแบบเก่ายังไม่สามารถนำเข้า Polygon ที่มีจำนวนจุดมากกว่า 4 จุดหรือเป็น Shapefile ได้

Data

ในที่นี้ข้อมูลเป็นระบบพิกัดแบบ UTM วิธีการคือสร้าง Field ขึ้นมา 4 Fields เป็นแบบ Double ได้แก่ xMin, xMax, yMin, และ yMax จากนั้นเลือกคำนวนโดย Field Calculator ในแต่ละ Field ตามฟังก์ชั่นนี้

xMin => !shape.extent.xmin!

xMax => !shape.extent.xmax!

yMin => !shape.extent.ymin!

yMax => !shape.extent.ymax!

Field Calculator

Result

ในกรณีข้อมูลเป็นระบบพิกัด Lat/Long ก็ใช้ฟังก์ชั่นเดิมในการคำนวณ เพียงแต่ว่าจะต้องเปลี่ยน Field ที่ใช้คำนวณให้ตรงกัน

LongMin = xMin => !shape.extent.xmin!

LongMax = xMax => !shape.extent.xmax!

LatMin = yMin => !shape.extent.ymin!

LatMax = yMax => !shape.extent.ymax!

——————————————————————————————————————————————————

4. การสร้าง Minimum Extent ในรูปแบบต่างๆ

ฟังก์ชั่นนี้ถ้าให้อธิบายที่เข้าใจง่ายๆ ก็คือ สร้างข้อมูล Extent ใหม่ (Polygon) จากข้อมูลเดิมที่มีอยู่ (Point, Line, Polygon) โดยเลือกวิธีการสร้างกรอบของ Extent ตามต้องการ ซึ่งจะมีวิธีการเลือกอยู่ 5 แบบ คือ Convex Hull, Rectangle By Area, Rectangle By Width, Circle, และ Envelope

Minimum Bounding Geometry

ใช้ฟังก์ชั่น Minimum Bounding Geometry โดยใช้ข้อมูลนำเข้าเป็นขอบเขตประเทศทั่วโลก และเลือกใช้วิธี Envelope จะได้ขอบเขตเป็นกรอบสีแดง

Result

——————————————————————————————————————————————————

5. การลบข้อมูลใน Field ที่ซ้ำกัน

Data

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

Delete Identical

Result

——————————————————————————————————————————————————

6. การเลื่อนตำแหน่ง Polygon ตามระยะทางที่กำหนด

การเลื่อนตำแหน่ง Polygon นี้ เพื่อบางทีถ้าเราต้องการตัดข้อมูลภาพถ่ายจากดาวเทียม ออกเป็นหลายส่วนโดยต้องการให้มีส่วนที่ซ้อนทับกัน ซึ่งเราจะต้องสร้างกรอบพื้นที่ตัดขึ้นมาก่อนเป็น Polygon และทำการเลื่อนทีละ Polygon ไปทีละ 500 เมตร (กรอบที่ 2 เพราะกรอบแรกคงที่) 1,000 เมตร (กรอบที่ 3) 1,500 เมตร (กรอบที่ 4) …. โดยใช้คำสั่ง Move ใน Editor ก็จะสามารถนำ Polygon นี้ไปใช้ตัดข้อมูลภาพถ่ายจากดาวเทียมได้

กรอบสีแดง จาก Create Fishnet

Create Fishnet

เลือกกรอบที่ 2 และเลื่อนขึ้นไป 500 เมตร โดยการ Move

Move

Delta X,Y

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

Result

ฟังก์ชั่นการใช้งานใน ArcView

โปรแกรม ArcView ยังคงเป็นโปรแกรมยอดนิยมที่มีการนำไปใช้งานกันอย่างต่อเนื่อง ไม่ว่าจะปีไหนๆ รุ่นไหนๆ คงคล้ายกับ Window XP ที่จะนานแค่ไหนก็ยังมีผู้ใช้งานและเป็นอะไรที่ง่ายต่อการเรียนรู้สำหรับผู้ที่ทำงานทางด้าน GIS ในเบื้องต้น แม้ว่าปัจจุบัน ArcView จะพัฒนาไปเป็น ArcMap ในชุดของ ArcGIS ซึ่งเป็นเวอร์ชั่น 2010 แล้ว แต่การใช้งานในเวอร์ชั่นนี้ก็มีความซับซ้อนและมีรูปแบบของการใช้งานที่แตกต่างออกไปอย่างมาก ซึ่งต้องใช้เวลาพอสมควรสำหรับการเปลี่ยนแปลงเพื่อเรียนรู้การใช้งาน เหมือนเปลี่ยนจาก XP ไปเป็น 7

สำหรับผู้ที่ใช้งาน ArcView ที่ไม่ได้ทำงานทางด้านการวิเคราะห์เชิงลึก แต่ใช้งานสำหรับการนำเข้าและแก้ไขข้อมูล วันนี้ก็มีฟังก์ชั่นการใช้งานที่น่าจะเป็นประโยชน์มาแนะนำ มากกว่าการใช้งานแค่ Rec, Rec+1, หรือ [shape].returnarea ซึ่งจะเป็นฟังก์ัชั่นเพิ่มเติม ได้แก่ การคำนวณค่าพิกัด xy การหาพิกัดกลางพื้นที่รูปปิด การคำนวณความยาวเส้น และการคำนวณค่า max/min ของกรอบพื้นที่รูปปิด

Function

http://www.disk-world.net/AVDOCS/Functions.htm