เฉลยโจทย์ GIS ข้อที่ 3 ของเว็บรวมโลก

3. ถนนทางหลวงหมายเลข 2 ตัดผ่านจังหวัดอะไรบ้าง ?


Step 1) เปิด ArcMap ขึ้นมา พร้อมกับ add ชั้นข้อมูลที่ต้องใช้ในการตอบคำถามนี้ ซึ่งก็มี 2 ชั้นข้อมูล อันนึงคือ ชั้นข้อมูลถนน (roads_one2four_wgs84z47.shp) อีกอันคือ ชั้นข้อมูลเขตจังหวัด (province_wgs84z47.shp)


Step 2) ก่อนอื่น เราควรจะตรวจสอบดูก่อนว่าชั้นข้อมูลถนนของเรามีรายละเอียดชื่อถนนที่จะทำให้เราตอบคำถามนี้ได้หรือไม่ .. คลิ้กขวาที่ชื่อชั้นข้อมูลถนน แล้วเลือก Open Attribute Table


Step 3) จาก Attribute Table จะเห็นว่าที่ Field ชื่อ RDLNNAMT ของข้อมูลนี้เป็นฟิลด์ชื่อถนนภาษาไทย ซึ่งเมื่อเลื่อนลงไปดูล่างๆ หน่อย จะเห็นว่ามีถนนชื่อ "ทางหลวงแผ่นดินหมายเลข 2" ที่จะเป็นคำตอบให้กับคำถามนี้ด้วย .. เมื่อรู้ดังนี้แล้ว ก็ปิดตารางนี้ไปได้
Tip: จริงๆ แล้วเราสามารถที่จะเลือกถนนทางหลวงหมายเลข 2 ทั้งหมดจากตารางนี้เลยก็ได้ โดยคลิ้กขวาที่หัวฟิลด์ แล้วเลือก Sort Ascending เพื่อให้มันเรียงลำดับตามชื่อถนน   ทีนี้เราก็เลือกหลายๆ แถวที่เป็นชื่อถนนทางหลวงหมายเลข 2 (คลิ้กที่หัวแถวแรก แล้วเลื่อนไปถึงแถวสุดท้ายที่เป็นชื่อถนนนี้ กดปุ่ม Shift ค้างไว้ แล้วเลือกแถวสุดท้ายนั้น)
* การเรียงลำดับตามชื่อถนนนี้อาจใช้เวลานานหน่อยเนื่องจากข้อมูลมีขนาดใหญ่


Step 4) เราจะทำการเลือกถนนทางหลวงหมายเลข 2 โดยการสั่งให้โปรแกรมหา feature ของชั้นข้อมูลถนนที่มีชื่อว่า "ทางหลวงแผ่นดินหมายเลข 2" .. คลิ้กตามรูปเลยครับ


Step 5) จากการเปิดดูตาราง Attribute Table เรารู้แล้วว่า ชื่อทางหลวงแผ่นดินหมายเลข 2 นั้น หาได้จาก field ที่ชื่อ RDLNNAMT ดังนั้น เราก็ 1) ดับเบิ้ลคลิ้กที่ชื่อ "RDLNNAMT" เพื่อให้ชื่อไปปรากฏที่ช่องข้างล่าง ==> 2) แล้วก็กดเครื่องหมายเท่ากับ ==> 3) กดปุ่ม Get Unique Value ==> 4) รอให้เครื่องค้นหา ซึ่งตรงนี้ต้องรอนานมากทีเดียว เมื่อเครื่องค้นหาไปได้ซัก 10000 อัน อาจกดหยุดเลยก็ได้ เพราะชื่อทางหลวงหมายเลข 2 น่าจะขึ้นมาให้เลือกแล้ว (อนึ่ง หากลองใช้ชื่อ field ที่เป็นชื่อถนนภาษาอังกฤษ อาจใช้เวลาน้อยกว่านี้ ขออภัยที่มิได้ลอง) ==> 5) เลื่อนลงหาชื่อ 'ทางหลวงแผ่นดินหมายเลข 2' แล้วดับเบิ้ลคลิ้ก ==> 6) กดปุ่ม OK
อธิบายความหมายของหน้าต่างนี้ .. มันหมายความว่า เราจะทำการเลือก feature จาก คุณลักษณะ (attributes) ของมัน โดยวิธีการ (Method) ที่ใช้คือ เลือกใหม่ (Create a new selection) .. ตรงช่องข้างล่างใต้ตัวอักษรที่เขียนว่า SELECT * FROM roads_one2four_wgs84z47 WHERE ก็หมายถึงให้เลือก feature จากทั้งหมดของชั้นข้อมูลถนน ซึ่งมีคุณสมบัติตามที่เราระบุในช่องว่างข้างล่าง ซึ่งก็คือ "RDLNNAMT" = 'ทางหลวงแผ่นดินหมายเลข 2'


Step 6) จะพบว่า ตอนนี้ถนนทางหลวงหมายเลข 2 ถูกเลือก และมีสีฟ้าๆ แล้ว


Step 7) ขั้นต่อไป เราจะเลือกจังหวัดที่มีพื้นที่ทับกันกับถนนที่ถูกเลือกในขั้นตอนก่อน เพื่อตอบคำถามของโจทย์ .. คลิ้ก Selection เลือก Select By Location


Step 8) I want to "Select features from" คือว่าเราต้องการเลือกวัตถุจาก ==> ติ๊กถูกที่ province_wgs84z47 เพื่อบอกว่าเราต้องการเลือกวัตถุจากชั้นข้อมูลจังหวัด ==> that "intersect" ที่ตัดหรือซ้อนทับกับ ==> the features in this layer: "roads_one2four_wgs84z47" ซ้อนทับกับวัตถุในชั้นข้อมูลถนน ==> ติ้กถูกที่ Use selected features เพื่อหาเฉพาะจังหวัดที่ทับกับถนนที่ถูกเลือกไว้แล้ว (จำนวนถนนที่ถูกเลือกไว้มี 513 เส้น) ==> กดปุ่ม Apply หรือ OK ก้อได้


Step 9) ตอนนี้จะพบว่าชั้นข้อมูลจังหวัดที่ทับกันกะถนนหมายเลข 2 ก็ถูกเลือกเป็นสีฟ้าๆ ด้วยเช่นกัน


Step 10) เราจะดูว่าจังหวัดไหนมั่งที่ถูกเลือกไว้ ทำได้โดยการเปิด Attribute Table มันขึ้นมาดู


Step 11) จากตารางจะเห็นว่าแสดงทั้ง features ที่ถูกเลือก (สีฟ้า) และไม่ถูกเลือก (ไม่มีสี) .. สังเกตข้างล่างมุมขวาของภาพ คำว่า Records (5 out of 436 ) หมายถึงว่า มีแถวที่ถูกเลือก 5 แถว จากทั้งหมด 436 แถว (436 features) ซึ่งไม่ได้หมายความว่าเรามี 436 จังหวัด แต่หมายถึงว่ามี polygon ของชั้นข้อมูลนี้อยู่ 436 polygon ซึ่งอาจเป็นเกาะต่างๆ ที่ประกอบอยู่ในจังหวัด


Step 12) ที่ช่อง Show: (ตรงกลางด้านล่าง) กดปุ่ม Selected ให้บุ๋มลงไป แทนปุ่ม All จะเหลือเฉพาะ 5 จังหวัดที่ถูกเลือกแสดงขึ้นมา (เลื่อนดูที่ field ชื่อ PROV_NAM_T) .. เราก็ตอบคำถามนี้ได้แล้วว่า
ถนนทางหลวงแผ่นดินหมายเลข 2 ตัดผ่านจังหวัด หนองคาย, อุดรธานี, ขอนแก่น, นครราชสีมา, และ สระบุรี

โอเชมั้ย   ;-)