ห่างหายไปนานกับการอัพเดต Blog วันนี้เลยมีโอกาสมาอัพเดตการทิบการใช้งานเล็ก ๆ น้อย ๆ
ถ้าใครเคยใช้งาน gdal แบบ Command line ด้วย OSGeo4W หรือ Fwtool มาบ้างคงคุ้นเคยกับการพิมพ์คำสั่งกันดี เช่น การจะ Convert ข้อมูล Raster โดยใช้ คำสั่ง
gdal_translate -of GTiff input.tif output.tif
ถ้าหากมีหลาย file ใน folder หากต้องการแปลงทีเดียวก็ใช้ For loop วน เช่น
for %i in (*.tif) do gdal_translate -of GTiff %i %~ni_output.tif
แต่ถ้าหากเราต้องการ วนลูปด้วยตัวเลขละ จะทำยังไง เช่น ใน file ข้อมูลภาพ raster ไฟล์นึง มี ข้อมูล อยู่ 100 band เราต้องการแยกออกมาเป็น 1 band 1 file เราจะใช้ For loop ยังไง
วิธีการใช้ For loop ดังนี้ แบบง่ายโดยการระบุช่วง range ให้เลย คือ
for %i in (1 2 3 4 5 6 7 8 9 10) do gdal_translate -of GTiff -b %i input.tif output_%i.tif
หรือ ถ้าหากมีตัวเลขมากเกินไป ใช้สูตรดังนี้
for /L %i in (start,step,end) do something command
เช่น for /L %i in (1,1,10) do gdal_translate -of GTiff -b %i input.tif output_%i.tif
ความหมายคือ ให้เริ่มต้นทำงานที่ค่า 1 ขยับที 1 ไปหยุดเมื่อค่าถึง 10 เวลาสั่ง run จะเห็นเป็น
gdal_translate -of GTiff -b 1 input.tif output_1.tif
gdal_translate -of GTiff -b 2 input.tif output_2.tif
gdal_translate -of GTiff -b 3 input.tif output_3.tif
…
gdal_translate -of GTiff -b 10 input.tif output_10.tif
ลองเอาไปใช้งานกันดู