ในบทความเก่า การทำ overview map ได้อธิบายถึงการทำ Index จาก extension ทีชื่อ Image Boundary ใน software QGIS ซึ่งจะทำ Index ที่เป็น shapefile ได้เฉพาะ กรอบสี่เหลี่ยมแบบ extent และ แบบ Valid Pixel ซึ่งก็ยังเป็นกรอบสี่เหลี่ยมอยู่ดี ซึ่งโดยมากแล้วจะใช้กับข้อมูลภาพถ่ายดาวเทียมที่มีรายละเอียดจุดภาพต่ำ หรือข้อมูลมาเป็นแบบซีน ที่แน่นอน จะใช้ไม่ได้กับข้อมูลภาพจากดาวเทียมรายละเอียดสูง ยกตัวอย่างภาพนี้ ซึ่งมีเหลี่ยมมุมมาก
ดังนั้นในวันนี้ผมจะนำเสนอวิธีการที่ค้นพบ ซึ่งอาจจะไม่ใช่วิธีที่ดีที่สุด แต่คิดว่าสามารถนำไปใช้ประยุกต์ใช้ได้คือ
ซึ่งต่อยอดมาจากบทความ แก้ไขปัญหาขอบดำภาพดาวเทียม ก่อนนี้ที่เคยกล่าวถึง alpha layer สามารถนำมาใช้งาานอะไรได้บ้าง วิธีการก็ให้ย้อนกลับไปดูจากบทความ แก้ไขปัญหาขอบดำภาพดาวเทียม ก่อนนะครับ หลังจากได้ File ที่ได้ทำการเพิ่ม alpha layer เรียบร้อยแล้ว จากนั้นเราจะทำการทำ vecterize ข้อมูล alpha layer เป็น vector ด้วยคำสั่ง
gdal_polygonize source.tif –b 4 –f “ESRI Shapefile” output.shp
อธิบายเล็กน้อย source.tif คือ file ผ่านคำสั่ง nearblack ในบทความก่อนหน้านี้แล้วนะครับ
-b 4 คือ ข้อมูล alpha layer โดยจะแปลงให้เป็น format shapefile แล้วตั้งชื่อเป็น output.shp
คำสั่งแบบวนลูป
for {8645ed30ebfee2716765f004cf3f74a8c4ef5e59d5d4d4ef1cf40763c4bdb1fe}i in (*alpha.tif) do gdal_polygonize {8645ed30ebfee2716765f004cf3f74a8c4ef5e59d5d4d4ef1cf40763c4bdb1fe}i –b 4 –f “ESRI Shapefile” {8645ed30ebfee2716765f004cf3f74a8c4ef5e59d5d4d4ef1cf40763c4bdb1fe}~ni_shp.shp
คำสั่งนี้จะได้ผลลัพธ์ออกมาเป็น shapefile แบบ polygon ที่มี field ใน attribute ค่า 0 และ 255
ต่อไปจะเป็นการ export ข้อมูลเฉพาะค่า DN เท่ากับ 255 เท่านั้น โดยใช้คำสั่ง
ogr2ogr –f “ESRI Shapefile” –sql “select * from input WHERE dn=255 ” output.shpinput.shp
โดยอาศัยความสามารถของประโยคคำสั่งแบบ SQL เล็กน้อย
คำสั่งแบบวนลูป
for {8645ed30ebfee2716765f004cf3f74a8c4ef5e59d5d4d4ef1cf40763c4bdb1fe}i in (*.shp) do ogr2ogr –f “ESRI Shpaefile” –sql “select * from input WHERE dn=255“ {8645ed30ebfee2716765f004cf3f74a8c4ef5e59d5d4d4ef1cf40763c4bdb1fe}~ni_index.shp {8645ed30ebfee2716765f004cf3f74a8c4ef5e59d5d4d4ef1cf40763c4bdb1fe}i
ผลลัพธ์จะได้ shapefile ลักษณะนี้ครับ
ซึ่งสามารถไปนำไปใช้งานครับ
แต่มีข้อสังเกตคือ ลักษณะของ shapefile จะมีหลายๆ มุม หลาย node
ใครมีวิธีการ หรือไอเดียดีกว่าช่วยแนะนำด้วยครับ