#!/bin/csh -f # *** X-Y plotting using fourier transformed temperature timeseries *** # 1st. release : Dec. 18, 1995 # last updated : Jun. 13, 2000 # # ---- サルにはわからない GMT (簡易マニュアル日本語版 Ver. 1.1) ---- # 詳しく知りたかったらマニュアル(英語)を見るんだな! # # **** !注意! *** # ここに書かれた情報は過去の先輩などの努力により得られた情報から # 構成されています。 # もし卒論などで GMT を使う気があるなら、ここに書かれた情報は # 非常に貴重なものなので破棄せずに保存しておくようにして下さい。 # # なお、この文中には私の余計な言葉が幾分(ずいぶん?)入っているので、 # 各自で編集・削除して下さい。 # # written by : Masamitsu Hayasaki # !! 著作権は放棄。御自由にお使い下さい !! # # e-mail address : hayasaki@luft.geo.tsukuba.ac.jp # Tel : 0298-53-7391 (気象測器室 ; 学系B102) # # # *** input, output file の設定 *** # ここではこのシェルスクリプトと同じディレクトリに全てのファイル # があるものとしています。 # したがって、ディレクトリを変えたい場合は 'set=' の部分では # 絶対パスまたは相対パスでディレクトリごと指定して下さい。 # # 例: /home/ore/koko というディレクトリに nantoka.ps という図を出力したい時 # set ofile=/home/ore/koko/nantoka.ps # # ちなみに、ここでセットしている rawdata, ftrans, ofile などの変数は # この名前でなければいけないわけではありません。 # どんな名前に変えてもいいけど、この後のプログラム中の変数も一致させないと # 動かなくなるので注意すること。 set rawdata=nantoka # <= input filename(raw data) set ftrans=hogehoge # <= input filename(fourier transformed data) set ofile=tekitou.ps # <= output filename ### タイトル文字の出力 ### # pstext のオプションの意味は以下のようになってます # -R1/365/-5/30 : プロットするデータの範囲。必須。 # x(時間):1〜365日 ; y(気温):-5〜30℃ # -JX6/4 : 図の大きさの設定。(ここでは 横:6 inch、縦:4 inch) 必須。 # -N : -R で定めた範囲の外に書き込むのを許可する。 # -P : 用紙を縦方向(Portrait)にする # -U : 作図した日時、コメント(single quote で囲った部分)の出力 # -K : 作図の継続を意味する。これがないと次に続く psxy が書き込まれない。必須。 # -X : x-軸方向の移動距離(inch) # -Y : y-軸方向の移動距離(inch) 図の左下の位置が原点 # # *** !注! *** # GMT では一度宣言したオプションの数字は変更しない限り同じものが使用される。 # したがって、pstext 以後の psxy の -R、-JX オプションの数字は省略されている # が、実際には pstext で宣言した数字と同じである。 # # また、pstext の次の行の数字の意味は以下の通り # 1列目 2列目 3列目 4列目 5列目 6列目 # x-座標 y-座標 文字の大きさ 文字の角度 文字の書体 文字の位置 # (0〜360) (0〜33) (1,2,3,5,6,7,9,10,11) # ここでのx-,y-座標は -R オプションで設定した領域を参照している。 # したがって、182.5 38 15 0 4 2 という設定をすると # 「図の枠の少し上を座標とし(x:182.5, y:38)、15ポイント(15/72 inch)の # 大きさで Times-Roman(フォントNo.4)を用いて、先ほどの座標に # 対し下そろえセンタリング(2)して書きなさい」 # という命令になります。 pstext -R1/365/-5/30 -JX6/4 -N -P -U'1988 ERC 1.6m Temperature' -K -X1.2 -Y3.7 << EOF >! $ofile 182.5 38 15 0 4 2 Time series of Temperature (1.6m) at ERC and 182.5 34 15 0 4 2 its Low-pass filtered (wave numver 0 \176 20) EOF # *** 生の時系列のプロット *** # データフォーマットは以下のようにする # 1列目 2列目 # 時間(1〜365) 気温(℃) # # awk の部分は$1が1列目、$2が2列目・・ ということを意味する。 # したがって、この例では input data を生の時系列と0〜20成分と2つに分けている # が、生の場合、0〜20成分の場合によって $ の数字だけ変更するようにすれば # ファイルを一つにまとめることも可能。 # # psxy(x-yグラフ作成用コマンド) # 各オプションの意味は以下の通り: # -R : 作図範囲。必須。 # -Ba30f30/a5f5:"Temperature(\312C)":WeSn : Boundary の設定。 # スラッシュ(/)の前がx-軸、後がy-軸の設定を表す。 # a30f30 は # 「軸の数字30ごとに annotation(数字)を出力(aオプション)、 # 30ごとに目盛をうつ(fオプション)」 # ということ。 # コロン(:)で囲まれた文字は軸のタイトルを表す。 # この例では x-軸には軸タイトルをつけていないが、つけたければ # -Ba30f30:"hogehoge":/a5f5:"Temperature(\312C)"(以下略) # とすること。ちなみに、\312 は℃の左上にある丸を出力するものである。 # WeSn は aオプションで設定した軸目盛の数字や軸タイトルを出力する # 方向を意味する。W,E,S,N は西・東・南・北を意味し、当然のことながら # 上が北である(地図は上が北でしょ?)。 # 大文字になっていれば出力し、小文字であれば出力しない。 # すなわち、この例では図の左と下のみに出力している。 # ※ 蛇足だが、wesnなどの記号を何も付けなければ軸すら書かない。 # ※ 異なる物理量のグラフを書く際に左右の軸を変える場合に使える。 # -JX : 図の大きさ(必須、pstext に同じ) # -O : Overlay plot、すなわち上書きを許可する。必須。 # (最初の行(pstext)にはつけちゃだめ。何故かって? # 最初は何もないんだから上書きできないでしょ?) # -K : 継続許可。最後の psxy コマンド以外には必要。 awk '{print $1,$2}' $rawdata | psxy -R -Ba30f30/a5f5:"Temperature(\312C)":WeSn -JX -O -K >> $ofile # 1行目の psxy は時系列の線のみの出力。 # 2行目で時系列上にデータの位置を示す白丸(○)を出力している。 # -Sc0.03 : Symbol の出力。オプションにより13種類選択可能。 # ここでは circle(円)を直径 0.03 inchの大きさで出力している。 # (暇な人は c の代わりに a,d,h,s,t などをやってみても良い。 # それぞれ star,diamond,hexagon,square,triangle を意味する。) # # ※ 赤い丸にしたけりゃ、-G255/0/0 -W1/255/0/0 を追加。 # 色の指定は、"red/green/blue" の順(数値の範囲は0〜255)で、 # 0/0/0 が真っ黒、255/255/255 が真っ白である。 # # -L : -S オプションがある場合は Symbol のアウトラインを出力。 # ない場合は ... 知らなくていいよ、今は、ね。 awk '{print $1,$2}' $rawdata | psxy -R -Ba30f30/a5f5wEsn -JX -Sc0.03 -L -O -K >> $ofile # *** フーリエ変換後に波数0〜20までの成分を加えたデータのプロット *** # データフォーマットは以下のようになっているとする # 1列目 2列目 # 時間(1〜365) 波数0〜20までの和(℃) # # -W2 : 線の太さ。標準は1である。標準でいいなら無くてもよい。 # なお、設定によりカラープロットも可能。 # 例えば-W5/255/0/0 とすれば、赤色で太さが5の線を引いてくれる # awk '{print $1,$2}' $ftrans | psxy -R -JX -W2 -O -K >> $ofile # -Sx0.03 : cross("+"マーク)を線の長さ0.03 inch で出力 # **** 注:最後の行には -K をつけてはならない。 # -K があるとプリントアウトできないから。 awk '{print $1,$2}' $ftrans | psxy -R -JX -Sx0.03 -L -O >> $ofile # # ここまで理解できた君はすでに GMT の半分(?)は使いこなせるはず!? # これ以外にももっと楽なコマンド・方法がたくさんあるはずです。 # いい方法を見つけたら知合い同士で情報交換して下さい。 # # GMT 歴 8年:早崎将光(はやさき まさみつ) unset rawdata ftrans ofile exit ##################################################################### # 1995年度 筑波大学自然学類気候学・気象学実験にて使用。 # 入力データとしては水理実験センターの気象観測タワー(高度1.6m)での # 1988年1年分の日別気温時系列(平均か最高・最低かは不明)を使用。 # # なお、.gmtdefaults においてMEASURE_UNIT=inchを前提にしている。 # SI unit 換算したい場合、1.00 inch = 2.54cm で計算すべし。 # # final updated at : Jan. 20, 1999 ##################################################################### # 誤植や記載の一部を変更。 # プログラム内部は全く変更していない。 # ver. 3.3.4 での動作も未確認なので注意! # updated : Jun. 13, 2000