※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

forを使ってたくさん地図を描いてみる

ご存じのようにパソコンは同じ作業を繰り返すのが得意です。
今回は1月から12月まで行われた調査の
月ごとの密度をForというコマンドを使っていっぺんに作図してみます。
使用するデータはawkでデータ抽出で使用した
dummy_density.txt
です。

前にも説明しましたが、このファイルには
No. 月 日 経度 緯度 水深 水温 密度
というデータが記録されています。
ここから月ごとの密度のデータを抽出し、図を12枚描きます。
こんな感じです。
以下の図はillustratorで加工してます。



forを使って簡単なプログラムを作ると、
簡単に一括処理できます。シェルスクリプトは以下の通りです。
----------------------------------------------------------
region=140/148/38/45
output=density.ps
data=dummy_density.txt

for month in 1 2 3 4 5 6 7 8 9 10 11 12

do
awk '($3=='$month' ){print $5,$4,$8}' $data | \
psxy -Jm1.5 -Sc -R$region -W2/255/0/0 -P  -K > $month-$output

pscoast -R -Jm -Df -W1 -G200 -A500 -B2:."$month-gatsu-density": -P -O >> $month-$output
done
----------------------------------------------------------
変数とawk、forを使うことで、このような短いコマンドで12枚の図を描くことができます。
今回初めて登場したforは
-------------------------------
for変数名 in数値
do
繰り返すコマンド
done
-------------------------------
のような形で使用し、変数名に数値の部分を代入し、数値が
do~doneに書かれたコマンドを繰り返します。
上のコマンドだと、はじめに変数(month)に1を代入し(つまり1月)、
awkとpscoastを行い、それが終わると、2を代入といったように、
12月までコマンドを繰り返しています。
このように、同じ作業を何度も行う時は、forを使うと便利です。

添付ファイル