Subset Raster with Map Series

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

วิธีการของผมก็คือ ทำ Map Series ใน Erdas ครับ แต่กว่าจะได้วิธีนี้ออกมาต้องลองผิดลองถูกหลายวิธีเหมือนกัน ไม่ว่าจะเป็นการเขียน batch file การเขียน Python บน ArcGIS แต่สุดท้ายแล้ววิธีนี้ดีที่สุด สะดวกและประหยัดเวลาโคตรๆ วิธีนี้มี 3 ขั้นตอนหลัก ได้แก่

1. การ Mosaic ภาพ

Map Series 1

ภาพที่ Mosaic เสร็จแล้ว

2. เตรียมขอบเขตระวางที่ต้องการจะนำไปตัด

Map Series 2

ขอบเขตและชื่อแต่ละระวางที่เราจะนำไปตั้งให้เป็นชื่อภาพหลังจากตัดภาพเสร็จแล้ว

3. เอาข้อ 2 (ขอบเขตระวาง) ไปตัดกับข้อ 1 (ภาพที่ Mosaic แล้ว) จะได้ภาพแต่ละระวางออกมา

Map Series 3

ตัวอย่างภาพแต่ละระวางที่มีชื่อและขอบเขตตามต้องการ

สำหรับการ Mosaic นั้น ผมมีข้อแนะนำอยู่ 2 อย่างครับ
1. ถ้าบันทึกข้อมูลที่ Mosaic เป็นนามสกุล Tif จะได้ขนาดไฟล์ไม่เกิน 4 G แต่ถ้าเป็น img จะได้มากกว่า 35 GB แน่นอน แต่ไม่รู้ว่าจริงๆ แล้ว Support ได้สูงสุดเท่าไร น่าจะเป็น 100 GB (มั้ง)
2. ถ้าเนื้อที่ใน Drive C: เหลือ 9 GB สามารถประมวลผล (Mosaic) และเก็บข้อมูลที่อยู่ใน Drive D: ขนาด 35 GB ได้

เปิดเอกสาร

การใช้งาน Selection By Location

การ Query หรือการ Selection ในทาง GIS นั้นมีได้ทั้งที่เป็นแบบ Attribute และ Geometry ส่วนใหญ่แล้วผมจะได้ใช้งานแบบของ Attribute มากกว่า เนื่องจากเป็นการ Selection จากข้อความหรือตาราง ซึ่งทำได้ง่ายโดยใช้ประโยค SQL โดยเฉพาะส่วนที่เป็น Where Clause เช่น

“ID” > 102
“NAME” = ‘ลำปาง’
“GROUP” = ‘62’ AND “AREA” < 50000
“VILLAGE” LIKE ‘%น้ำ%’

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

การใช้ Selection By Location ใน ArcMap นั้น เราจะต้องเลือกข้อมูล 3 อย่าง คือ
1. ข้อมูลที่เราต้องการจะเลือก
2. ข้อมูลที่ใช้เป็นเงื่อนไขในการเลือก
3. วิธีการเลือก

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

Intersect

Intersect

Have Their Centroid In

Have Their Centroid In

Arc within

Arc Within

Arc Within A Distance Of (-2,000 Meters)

Arc Within A Distance Of (-2,000 Meters)

Arc Within A Distance Of (+2,000 Meters)

Arc Within A Distance Of (+2,000 Meters)

Arc Crossed By The Outline Of

Arc Crossed By The Outline Of

Share A Line Segment With

Share A Line Segment With