###################################################################
man GMT ここではGMTの良く使っているコマンドを
僕なりに適当にまとめます。(written by Kazuya Ono)
他のサイトからの丸写しもあったりする。まぁ自分なりのメモです。
###################################################################
・インストール
詳しく書きません。とりあえず本家に行ってpar.dを作成してから
]#sh gmt_install par.d >install.log
とかすれば終了。とりあえず以下が自分の使ったファイルです。
-rw-------    1 hoge  hoge     86210 Nov  1 15:53 GMT3.4.1_man.tar.bz2
-rw-------    1 hoge  hoge   6844879 Nov  1 15:53 GMT3.4.1_pdf.tar.bz2
-rw-------    1 hoge  hoge    554156 Nov  1 15:53 GMT3.4.1_progs.tar.bz2
-rw-------    1 hoge  hoge   3132236 Nov  1 15:53 GMT3.4.1_ps.tar.bz2
-rw-------    1 hoge  hoge   3051662 Nov  1 15:53 GMT3.4.1_scripts.tar.bz2
-rw-------    1 hoge  hoge    534562 Nov  1 15:53 GMT3.4.1_suppl.tar.bz2
-rw-------    1 hoge  hoge    986429 Nov  1 15:53 GMT3.4.1_tut.tar.bz2
-rw-------    1 hoge  hoge   1841474 Nov  1 15:53 GMT3.4.1_web.tar.bz2
-rw-------    1 hoge  hoge  28789894 Nov  1 15:53 GMT_full.tar.bz2
-rw-------    1 hoge  hoge   8641460 Nov  1 15:53 GMT_high.tar.bz2
-rw-------    1 hoge  hoge   3661746 Nov  1 15:53 GMT_share.tar.bz2
-rw-rw-r--    1 hoge  hoge       323 Nov  1 15:53 gmt_sh
-rw-r--r--    1 hoge  hoge     41088 Nov  1 15:53 install_gmt
-rw-------    1 hoge  hoge   1319419 Nov  1 15:54 netcdf.tar.Z
-rw-rw-r--    1 hoge  hoge      2334 Nov  1 15:53 par.d
-rw-------    1 hoge  hoge     90144 Nov  1 15:53 triangle.tar.bz2

###################################################################
・カラーパレットを図に張り付ける

コマンド名:makecpt

-C:カラーパレットファイルの指定
使い方:-C[作成したカラーパレット]

-D:座標や大きさなどの指定
使い方:-D[X座標][Y座標][パレットの長さ][幅]h
hをつけると水平カラーバーになる。

-I:陰影効果をつける
使い方:-I[陰影効果の度合(0.5とか…)]

###################################################################
・コンターを描く(線形補間)

コマンド名:pscontour

-G:文字間隔の指定
-C:カラーパレット名(必須のはず)
-W:コンター線の太さ(色も指定できる気がする)
-P:ポートレイトかランドスケープかの指定
-I:コンターに色をつける


注)当然-B -R -Jオプションをつけないと動かないかも

良く分からないけど他にもオプションが…
-A:Suppress line interpolation along great circle
-X:誰かが使っていた記憶があるが何なのだろうか?

###################################################################
・基本となる枠を作る

コマンド名:psbasemap

-R:範囲の指定(必須)
使い方:-R[X最小値]/[X最大値]/[Y最小値]/[Y最大値]

本当に基本的なオプションをつける。あとは-Bや-J

###################################################################
・海岸線を描く

コマンド:pscoast

-A  海岸線の細かい凹凸や「高レベル」に設定された形状を描きません    
-D  海岸線表現精度を指定します( f=完全,h=高精度,i=中精度,l=低精度,c=雑    
-G  陸地の色を指定します (デフォルトでは色なし)    
-I  河川流路を描きます (chose features from one or more hierarchical categories)
-L  地図のスケールを描きます (単位はkm, マイル,海里)    
-N  国境線を描きます (米国の州境も描きます)    
-S  水域の色を指定します (デフォルトでは色なし)    
-W  描画ペンの太さを指定し,海岸線を描きます.

とりあえずは-W,-G,-Sのうちどれか1つは指定しないといけない。
基本的なオプション-R,-J,-Bなども忘れないように書いておこう

###################################################################
・-Jオプションの使い方:座標の指定(大きさ、種類)
使い方:-J[座標の種類][座標の大きさなどの指定]
        X:XY鉛直座標
        -JX[X座標の大きさ]/[Y座標の大きさ]
        *大きさにマイナスを入れると軸が反転する!!

        m:メルカトール図法
        -Jm[スケールの大きさ]

        B:円錐系の座標(Albers投影らしい)
        -JB[投影の中心経度]/[緯度]/[投影円錐が地球球\
            体と交わる経線の緯度]/[左に同じ]

        G:正射投影図法
        -JG[投影中心経度]/[緯度]/[幅]

他にもいろいろ座標があります。余り使ってないけど

###################################################################
・データ特性を調べる
コマンド:minmax
ファイル特性を調べることができるのでたまに打ってみるのも良いかも。
###################################################################
・データの前処理コマンド(エイリアスの除去)

コマンド:blockmean,blockmedian,blockmode
    blockmean:  グリッド間隔の中にあるものを平均する
    blockmedian:グリッド間隔内のメジアンをとる
    blockmode:  グリッド間隔内のモードををとる
    メジアンは中央値(いくつか数字があるうちの真中の値を取る)
    モードは最頻値、場合によって分けよう。

使い方:-N[pixel registration]
          pixel registration…よくわからないけどデフォルトはgrdline

        -W[i|o]
          iをつけると入力データの4列目から各点のウェイトを読み込む。
          oをつけると出力データの4列目にウェイトを書き出します。
        -R範囲指定、-Iグリッド間隔も忘れずに。

###################################################################
・Nearestneighbor法により平均化されたグリッドデータの作成

コマンド:nearestneighbor

-S 検索円の半径を指定,kをつけると単位がkmになる
-E 計算できなかったグリッド内での値を指定。デフォルトはNaNになる。
-N 検索円をいくつのセクタに分けるのかを指定する。デフォルトは4。
-W 入力データの4列目が相対ウェイトであるとみなす。

###################################################################
・スプライン補間を用いてグリッディング!
コマンド:surface
    この方法ではグリッディングに対してテンションを設定できる。テン  
ションの範囲は0〜1までで1に近い程ぐにゃんぐにゃんになる(意味分かる?)

必須:-G,-I,-R
-G  出力のファイル名
-I  グリッド間隔
-R  lonmin/lonmax/latmin/latmax
-T  テンションを設定(デフォルトは0)
-A  アスペクト比(異方性)を指定
-C  収束限界を指定する。デフォルトはデータ範囲の1/1000。
-Ll 信頼限界みたいなものの設定(下限)
-Lu 信頼限界みたいなものの設定(上限)
-S  検索半径を自動で見付ける
-bi バイナリ入力を指定
他に-H,-N,-T,-Zなんてのもあるのでちょっと研究の余地ありだな。

###################################################################
・データ間隔が荒い場合データの無い場所をカットする
コマンド:psmask
読み取るファイルは(離散的である)元ファイルを読み込む
-J,-R を書き加える
-I[数値]でデータからどれぐらいの距離を表示させるか選ぶ
このコマンドはgrdimageやgrdcontourと併用する訳だがこれらのコマンドを
囲んでやる形で使う。

使い方:
]$ psmask $file -J$projec -R$range -I$resolution -K >! $file
]$ grdimage $gridfile -J -R -B$tics -C$color -K -O -P >>$file
]$ grdcontour $grdfile -C$contourinterval -J -R -K -O >>$file
]$ psmask -C -O >>$file
と-Cでくくってやる感じ。

###################################################################
・グリッドデータ(ETOPO5)からGMT用グリッドデータの作成
コマンド:grdraster
僕の場合は/usr/local/GMT3.4.1/share/dbase/以下にあるETOPO5
バイナリデータを読んで範囲を設定しGMT用グリッドデータにする。

grdraster 1←ETOPO5のデータを読む。 詳しくは
            ($GMTDIR)/share/dbase/grdraster.info を参照のこと

]$ grdraster 1 -R[範囲] -G[出力グリッドデータ名] -V

・出来たgrdファイルに対してgrdinfoを使うと内容を見ることが出来る。
]$ grdinfo hoge.grd

・出来たgrdファイルに対してgrdinfoを使うと内容を見ることが出来る。

###################################################################
・アスキーのグリッドデータからGMT用のnetcdfグリッドファイルに変換
コマンド:xyz2grd
一番注意しないといけないところはグリッドのどこにデータがあるかを
知っておかないと出力がおかしくなります。グリッドライン上にあるか
グリッド四点の中心にある(ピクセルフォーマット)かをまずしらべ、
ピクセルフォーマットの場合は-Fオプションをつけてあげる。
Nオプションはデータの無い場所を指定してあげるオプション。デフォルト
はNaNです。
Iオプションでグリッド間隔を指定する。

xyz2grd -G[出力ファイル] -R$range -N -I$reso

###################################################################
・グリッドデータを描く。
コマンド grdcontour、grdimage
コマンドよりも注意しないといけないことは、メルカトール図法でこの
絵を描かない!描きたい絵は出て来ず欠損だらけとなるので注意しましょう。
他の図法でgrdcontour、grdimageは使用していないが、XY直交座標で描く
のが一番の解決策です。JmとJXを比べてみるのが一番判りやすいと思います。

grdcontourとpsxyを比べたら値が微妙に異なっていました。
こりゃつかえんかも。

###################################################################
・対数グラフを書きたい!!
例えばpsxyなどのコマンドがあてはまるが、
-Jオプションにlを書き加えるだけでOK
-Bの値は1,2or3に限定されている。
1:目盛り数値「1」について
2:「1,2,5」について
3:「1」から「9」まで全部につきます。
ticsにlオプションをつけると、10e-5みたいになり、
pオプションをつけると10の何乗という形をとります。

[user@hoge ~]$ echo 50 5 |\
psxy -R1/1000/0/10 -Sa0.5 -G255/0/0 -Ba1f2g3p/a1 -JX10l/10 -P |gv -

あたりまえだけど、データに0があるとダメだよ。
###################################################################
・H岡さんの日記より…

GMTで背景を透明に

GMTのgrdimageなどで欠損値や指定した範囲外の値に色をつけない方法についてです。
cptファイルを下記のように「-」に変更することでうまくできました。先人に感謝感
謝です。これにより、欠損値や値の極端な部分を白抜きにしてその上に日本地図を描
くことが出来るようになりました。個人的にはモデルの結果に現実の地形を重ねると
モデルの解像度が直感的に分からなくなるためあまり好きではないのですが、日本周
辺の地形を良く知らない人にアピールするにはこういうことも必要かなと思い描いて
みました。

GMTのメーリングリストより。

色をつけずに透明にするには

B       -       -       -
F       -       -       -
N       -       -       -

と指定すればよかったように思います(「-」は1つでもOKだったかも)。
makecptなど のオプションや、COLOR_NANなどをgmtsetで指定してもだめなので、
カラーパレットファイルをエディタで開くか、awkなどで編集する必要があります。

grdcontourならOKなのですが、grdimageでは「-T」が必要。
grdviewでは「-Qi」ではだめで「-Qs」でなければいけない、
などの制限があったと思います。

compトップに戻る