การสร้างตัวเลขแบบเรียงลำดับในตาราง Attribute

การทำงานกับข้อมูล Shapefile หรือ GeoDatabase ปกติแล้วฟิลด์ข้อมูลที่เป็น FID หรือ ObjectID จะเรียงลำดับเลขให้แบบอัตโนมัติ คือเริ่มต้นจาก 0 1 2 3 4 5 6 7 8 9 ไปเรื่อยๆ ซึ่งเวลาจะคำนวณค่าอะไรเพิ่มเติม เช่น ต้องการค่า 100001 – 100100 หรือ 23456 – 24000 เราก็นำเลข FID มาบวกเพิ่มเติมได้ โดยตัวเลขก็จะเรียงลำดับให้อัตโนมัติ แต่ถ้า Shapefile ที่เรามีการแก้ไขข้อมูลหลายครั้งทั้งเพิ่มและลบข้อมูลทำให้ค่า FID ไม่เรียงลำดับ เช่น 1 3 4 8 10 11 12 16 แต่เราต้องการที่จะสร้างตัวเลขแบบเรียงลำดับให้กับอีกฟิลด์หนึ่ง คือ 1 2 3 4 5 6 7 8 การจะใช้ค่าอ้างอิงจาก FID คงทำไม่ได้

แต่ก็มีโค๊ด VBA จากเว็บไซด์

http://mappingcenter.esri.com/index.cfm?fa=ask.answers&q=1211

ที่สามารถสร้างตัวเลขแบบเรียงลำดับให้ได้ ตามข้อมูลที่เราต้องการ สมมุติว่าในตาราง Attribute มี 1,000 แถว (FID ไม่เรียงลำดับ) ในฟิลด์ A แถวที่ 1- 300 ต้องการให้เรียงตัวเลข 1 – 300 แถวที่ 301- 800 ต้องการให้เรียงตัวเลข 1 – 800 และแถวที่ 801- 1,000 ต้องการให้เรียงตัวเลข 1 – 200 ก็สามารถที่จะใช้โค๊ดนี้ได้

 

Advanced
Pre-Logic VBA Script Code

Static rec As Long
Static i As Long
Dim lStart As Long
Dim lInterval As Long
lStart = 1
lInterval = 1
If (i = 0) Then
rec = lStart
Else
rec = rec + lInterval
End If
i = i + 1

Field Name

rec

 

ตัวอย่างการใช้งานใน ArcMap

Field Calculator

ผลลัพธ์ที่ได้

Result

การใส่ค่าพิกัดให้กับข้อมูลภาพถ่ายจากดาวเทียม

มีหลายวิธีที่จะใส่ค่าพิกัดให้กับข้อมูลภาพถ่ายจากดาวเทียมจากแหล่งข้อมูลอ้างอิงต่างๆ ไม่ว่าจะเป็นข้อมูลถนน แผนที่สภาพภูมิประเทศ ข้อมูลภาพถ่ายทางอากาศ หรือข้อมูลภาพถ่ายจากดาวเทียมด้วยกัน ซึ่งก็เช่นเดียวกันคือมีหลากหลายโปรแกรมที่สามารถทำได้ง่ายและรวดเร็ว ถ้ามีข้อมูล 1 หรือ 2 ภาพก็ไม่ใช่ปัญหาอะไร แต่ถ้าเป็นพันภาพล่ะ ก็ต้องมานั่งใส่ค่าพิกัดกันนานหลายเดือน ในเอกสารนี้เพียงแต่ต้องการนำเสนอวิธีการแบบหนึ่งที่ใช้ในการใส่ค่าพิกัดภาพแบบกึ่งอัตโนมัติ ให้กับข้อมูลภาพตัวอย่าง (Quick Look) ของข้อมูลภาพถ่ายจากดาวเทียม LANDSAT-5 เพื่อที่จะสามารถนำไปดูได้ในเบื้องต้นว่า Path/Row ที่ต้องการมีปริมาณเมฆมากน้อยแค่ไหน ในบริเวณพื้นที่ข้างเคียงเป็นยังไงบ้าง วิธีการนี้อาจจะไม่ใช่วิธีการที่ดีที่สุด แต่ก็เสนอไว้เป็นทางเลือก ใช้เวลาทำประมาณ 1 ชั่วโมงสำหรับการใส่ค่าพิกัดจำนวน 2,500 ภาพ จริงๆ จะกี่ภาพก็ใช้เวลาประมาณนี้ ซึ่งการทำแบบนี้ไม่ต้องการความถูกต้องมาก เพียงแค่ใช้ดูคร่าวๆเฉยๆ โดยเน้นที่ตำแหน่งของ Path/Row ในข้อมูลภาพเป็นหลัก ในเอกสารนี้จะทำเพื่อเป็นตัวอย่างจำนวน 25 ภาพเท่านั้น

ข้อมูลและโปรแกรมที่ใช้ประกอบไปด้วย 3 อย่าง คือ

1. ข้อมูลภาพตัวอย่างที่ไม่มีค่าพิกัด แต่มีชื่อเป็นเลข Path/Row กับวันที่ถ่ายภาพ

No Coordinate2. ดัชนี Path/Row ของข้อมูลภาพถ่ายจากดาวเทียม LANDSAT5 ทั่วโลก ซึ่งมีค่าพิกัดเป็น Latitude, Longitude
(ดาวน์โหลดจากเว็บไซด์ http://landsat.usgs.gov/tools_wrs-2_shapefile.php เลือกที่เป็นแบบ wrs2_descending)

Index Path/Row

3. โปรแกรม ArcMap, ArcView, MS Excel, ACDSee และ FWTools (http://fwtools.maptools.org/)

ผลลัพธ์ที่ได้จากการค่าใส่พิกัดดังนี้

Result 1

Result 2

วิธีการทำในเบื้องต้นมีดังนี้

1. เลือกตัวเลข Path/Row ที่ต้องการจากข้อมูลภาพตัวอย่าง

2. เลือกดัชนี Path/Row (Shapefile) จากข้อมูลภาพตัวอย่าง

3. คำนวณค่าพิกัดทั้ง 4 มุมของกรอบภาพในแต่ละดัชนี Path/Row

4. คำนวณค่าพิกัดทั้ง 4 มุมของเนื้อภาพในแต่ละดัชนี Path/Row

5. ปรับข้อมูลภาพตัวอย่างทุกภาพให้มีขนาดเท่ากัน

6. ใส่ค่าพิกัดให้กับข้อมูลภาพตัวอย่าง

เปิดเอกสาร

การสร้างแผนที่บนโปรแกรม QGIS

เคยเขียนไปแล้วครั้งหนึ่งกับการสร้างแผนที่บนโปรแกรม QGIS แต่ครั้งนี้มีโอกาสได้ทำเอกสารไว้สอนเพื่อนๆ ก็เลยนำมาฝากไว้อีก เพิ่มเติมครับ

เปิดชั้นข้อมูลที่ต้องการนำมาสร้างแผนที่

Open Layers

กำหนดมาตราส่วนแผนที่

Scale

แผนที่ขนาด A0 300 dpi

Result

เปิดเอกสาร