ทำงานกับไฟล์เยอะๆ ด้วยคำสั่งเดียว (batch processing)

10 05 2010

20100510

หากมีการทำงานเช่นการแปลงระบบพิกัดของไฟล์ภาพหรือแผนที่จำนวนมาก และไม่อยากค่อยๆทำทีละไฟล์ไปเรื่อยๆ จนครบก็สามารถอาศัยวิธีการเดิมที่ใช้ในระบบ DOS หรือ  UNIX นั่นก็คือการใช้วิธีการ Batch processing คือสั่งครั้งเดียวให้ทำงานไปเรื่อยๆ จนครบ วิธีการแบบนี้ใช้กับคำสั่งแบบพิมพ์หรือ command line นะครับ

ตัวอย่างเช่น เราต้องการแปลงระบบพิกัดไปเป็น ละติจูดลอนจิจูด ซึ่งข้อมูลมีระบบพิกัดเป็น UTM zone 47 , WGS84 ซึ่งในการแปลงระบบพิกัดเราอาศัย gdalwarp ใน FWTools คำสั่งคือ

>gdalwarp -t_srs epsg:4326 input.tif output.tif

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

>for %i in (.\*tif) do gdalwarp -t_srs epsg:4326 geo\%i

มีความหมายว่าใช้ gdalwarp แปลงระบบพิกัดให้เป็น ละติจูดลอนจิจูด แปลงแล้วให้เอาไปเก็บไว้ใต้โฟล์ดเดอร์geo โดยใช้ชื่อไฟล์เดิม

หากต้องการเติมอักษรต่อท้ายชื่อไฟล์เดิมเพื่อให้เห็นความแตกต่างเช่นต่อท้ายทุกไฟล์ด้วย _srs4326 สามารถทำได้ดังนี้

>for %i in (.\*tif) do gdalwarp -t_srs epsg:4326 geo\%i~_srs4326.tif


Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: