本ページのGMTサンプルを使う際の注意点
サンプルを画像サムネイルから探したい人: See GMTサンプルスクリプト集(サムネイル版)参照.
Linux へのGMT インストールは,GMTのセットアップ参照.
以下のサンプルは, 私の個人設定ファイル (~/.gmtdefaults4)に基づき作成. default からの修正点は以下のとおり:
- 使用する単位系が inch
- BASEMAP_TYPE が plain (fancy は個人的に好みじゃない)
BASEMAP_TYPE = plain MEASURE_UNIT = inch
また,動作確認したバージョン番号未記載のサンプルの多くは GMT v3.0 (一部はさらに古い)時代に作成した ものです. バージョンアップに伴うオプション変更などに対応していないものも 含まれるので,あらかじめご了承ください.
See also シェルスクリプトの雛形(日本・東アジアなどの白地図,観測地点分布図などの作図例)
用途別サンプル
フォント, 特殊記号 (font, symbol font, special character)
- 特殊記号の類 ; character.gmt ; 画像 (v4.5.8)
- Font の類 ; font.gmt ; 画像 (v4.5.8)
- Font No.12 (Symbol font) ; font2.gmt ; 画像 (v4.5.8)
等値線・ベクトル・塗りつぶしなど (line, vector, shades)
- ベクトルのプロット (grdvector); grdvector.gmt ;
画像 (v4.5.6)
- v3.3.5ではバグあった.xyの成分が逆になる!
- 地表面以下のデータのマスクアウト(1), mask-out (psmask); psmask.gmt ; 画像
- 地表面以下のデータのマスクアウト(2), mask-out (grdimage で透過モード);
transparent_landscape.gmt ;
画像 (v4.5.3)
- 「マスクアウト」と言っても,作図上の小細工の一種. 850-hPa 面データの場合,標高が 1500 m 未満 (NaN に設定)ならば,grdimage による 地形の塗りつぶしを透過 transparent にしている (-Q option)だけ.
- 事前準備: 1500 m 以下の標高の地点を "NaN" とした マスクアウト用の地形データ (NetCDF形式; データファイル名 nh_5grd_1500m_maskout.cdf)を用意.
- 元の地形・海洋水深データ (land topography and ocean bathymetry)は ETOPO2v2 (You can download from NCAR/DSS; NGDC, ETOPO2 Global 2x2 min Elevations). 2-minute interval を 10-minute interval に間引いたもの. ちなみに,現在(2012-01-22)はさらに高分解能の ETOPO1 が主流らしい.
- 地表面以下のデータのマスクアウト(3), mask-out (grdview -Ts を使用);
grdview_Ts_sample.gmt;
PNG, PDF(v4.5.12)
- 非数値 "NaN" (Not a Number) となる格子点を無視する(透過にする)命令.
- 等圧面高度が地表面以下のデータや,海氷データなど, 特定の範囲にのみ有効なデータがある( or ない)という場合に利用価値あり.
- 特に,非等緯度経度格子系(例えば Polar-stereographic projection)の作図において, 有効データだけを塗りつぶす場合(例: 極域の海氷分布)に使うと良い.
- grdimage のマニュアル中,"Imaging grids with NaNs" に書いてある.
- 作図に使用したNetCDF (1982-2011年の3月平均, 0.25 degree int.)サンプル中のコマンド(awk & xyz2grd)と同じ方法で作成.
- 地表面データのマスクアウト(4) (grdclip を使用): See 気温データを温位に変換, grdmath の POW & MUL operator (2015-07-09)
- ハッチの凡例 (psscale); psscale.gmt ; 画像 (v3.3.6)
- pstext での文字位置 (pstext); pstext01.gmt ;
PNG, PDF (v4.5.13)
- 最近のGMT(v4系列以後? 未確認)では,文字列(BL, BC, BR, ML, MC, MR, TL, TC, TR)で指定. 過去バージョンでは,数値で指定していた.
- 基準線からの偏差部分の塗りつぶし (pswiggle); pswiggle.gmt ; 画像 (v3.3.4)
- 3次元メッシュプロット,アジアの地形 (grdview); grdview.gmt ; 画像 (200 dpi) & 小さめ画像 (72 dpi) (v4.5.7)
- 3次元柱状図 (psxyz); psxyz.gmt ; 画像
- 低気圧経路作図例(psxy) ; bomb-pos.gmt ; 画像
- 前線の作図例(psxy) ; front.gmt ; 画像 (v3.3.6)
- カラーパレットの例 (makecpt); update at 2013-12-09;
makecpt_20131206.gmt ;
画像 (v4.5.6)
- 旧版 (v3.3.6)のスクリプト & 画像 (v3.3.6)
- 配色は図示する物理量に応じて使い分けるべき.気象庁ホームページにおける気象情報の色合いの統一について(H24-05-24 報道発表資料PDF),NCAR Graphics Color Table Galleryも参照せよ.
- 安易なレインボーカラーの使用は控えましょう. see also 標準カラー変更: rainbow カラーを使うのは止めよう!(GrADS メモ)
- 色の名前とRGB, CMYK などの対応は,WEB色見本 原色大辞典を参照.
XYプロット (x-y plot)
- 地図上に記号をプロット(psxy) ; psxy_point_plot.gmt ;
画像;
入力データ (v4.5.6)
- 入力データは,ウィンドプロファイラ観測地点(2008年12月時点)
- 時系列プロット(psxy) ; GMT10_tseries ;
画像;
入力データ (v4.5.11)
- cron 実行時の時間軸自動更新: See also シェルスクリプトの雛形 (hysk) > 時刻表期
教育用サンプル & 小ワザメモ
初級者向けのコメントを記載したサンプル. 主に大学院生時代に,後輩学生向けに作ったもの.
- 教育用簡易マニュアル ; easy-ref1.txt (1995年度学群実験にて使用)
- Portrait mode sample ; GMT02; 画像 (v3.3.6)
- Landscape mode sample ; GMT03 ; 画像 (v3.3.6)
- 『GMTちょっといい話し』(なんとなくメモった事柄を少々) ; easy-ref2.txt
- 小ワザその1:文字を地図上にプロット ; kowaza01.gmt
- 小ワザその2:Y軸のスケールを左右で変更する ; kowaza02.gmt
- 対数軸での作図および目盛り間隔の設定 ; psbasemap00.gmt ; 画像
地図サンプル
地図に関するサンプル. 私自身が過去に研究で使用した作図範囲の例, 海岸線データベースの解像度による違い,投影法が異なるものなど. シェルスクリプトの雛形・GMTも参照.
- Full resolution 『瀬戸内海』; full-reso.gmt; 画像 (v4.5.3)
- 解像度別 『九州』; kyushu.gmt; 画像 (v4.5.3)
- 地図投影法: polar stereo projection (-Js)
- 20N以北、北極中心; GMT-NH.20N.gmt; 画像 (v3.3.6)
- 長方形に地図を切り出す(ユーラシア大陸); Js_rect.gmt; 画像 (v3.3.6)
- 地図投影法: Lambert azimuthal equal-area projection (-Ja or -JA)
- 長方形に地図を切り出す(ユーラシア大陸); Ja_rect.gmt; 画像 (v3.3.6)
数値処理サンプル(grdmath, gmtmath)
数値処理に関するサンプル. grdmath, gmtmath など.
- 水平勾配(-dT/dy), grdmath;
grdmath_gradT.gmt;
画像(未作成) (v4.5.13)
Under const. サンプル自体の動作確認をしていないが,たぶん正しいと思う (2015-07-01) - 気温データを温位に変換, grdmath の POW & MUL operator (2015-07-09);
sample_topo_mask_direct_org.gmt;
PNG;
PDF; (v4.5.13)
- grdmath 以外にも,これまで私が使い慣れていなかった各種コマンドを複合して使用. 元データに対する数値処理などの総合的なスクリプト例として重要.特に未来の自分にとって(どうせ忘れるから).
- バイナリ(big- or little-endian)データをGMTコマンドで直接NetCDFに変換 (xyz2grd の -Z オプション)
- 指定標高以下のマスクアウト (grdclip の -S オプション)
- wgrib2 を使った JMA GPV MSM (GRIB2形式)データ切り出しおよびGMTへの利用例. See also wgrib2使用方法
- なお,スクリプト内で source にて読み込んでいるファイル(chk_dir_file)は,私専用関数ファイル. See also 自分専用コマンド・関数
コマンド解説
コマンドの解説は,多数の方が公開しています. かなり系統立てて書いているものもあるので, 初級者の方はそちらを参照するとよいでしょう. 私が書くと分かりにくいという評価が多いので...
ここでは, 私自身が使い慣れていないGMTコマンド(v4.5.6 base; 2012-02-14)について, 折を見てメモ程度に書く予定.
使い込んでいるコマンド
以下は,ほぼ常時使用しているコマンド. 自分が使うコマンドなんて,非常に少ない.
- gmtdefaults: ~/.gmtdefaults* の作成時に使う.新バージョンインストール後,一回だけ.
- gmtset: デフォルト設定の一時変更に使う.スクリプトの先頭部に置くことが多い. 他者にスクリプトを配布する際,自分のデフォルトに合わせるために使うこともある.
- grdcontour: 等値線プロット用
- grdimage: 色の塗りつぶし
- grdvector: ベクトル作図
- makecpt: カラーパレット作成コマンド. デフォルトパターンや数値範囲などを設定できる.自作もできる. See カラーパレットの例 (makecpt)
- minmax: データの最大最小値などを画面表示.ここで得たパラメータを別コマンドに受け渡すこともできる. -f option を使えば,入出力ファイル形式がASCII or BINARY (little- or big-endian)でも使える.
- ps2raster: PS画像をPDFやJPEG, PNGなどに変換. -A option 併用すると作図範囲外を自動トリミングするので,PowerPoint などのスライド用画像の作成に便利.
- pstext: 文字出力コマンド.
- pscoast: 海岸線・海陸分布の作図コマンド.
- psbasemap: 図の枠線のみを描くなどのコマンド. 右と左で異なる縦軸を使う場合などに,枠線のみを引くコマンドとして使ったりする.
- psscale: 陰影図の色の凡例作成コマンド.
- psxy: 記号・線のプロットをするコマンド.使える記号は多数(circle, square, triangle, diamond, star, ... , etc.).大きさ・色もユーザが任意で指定できる.
See also X-Y プロット.
- サンプル1: 地図上に記号をプロット; psxy_point_plot.gmt; 画像
- サンプル2: 時系列プロット; GMT10_tseries; 画像
- psxyz: 棒グラフの3Dプロットなどが出来る. サンプル スクリプト; 画像
- surface: データ内挿してNetCDFファイル化するコマンド.
- 私の場合,Gaussian grid に代表される等間隔でない格子点データを使う時にのみ使用.
- AMeDAS のような地上観測・点情報かつ空間的に不均一分布するデータの場合, 内挿により非現実的なデータをつくり出してしまう可能性がある(海岸付近,山岳域など).
- 悪く解釈すれば,これは一種の『データ捏造』. 高解像度にする・滑らかな曲線で表示する事だけを目的として surface を使うべからず. 使いかたは要注意!
- xyz2grd: 等緯度経度格子データの NetCDFファイル変換コマンド.データ内挿せずに作図するのが前提.
- バイナリデータから直接NetCDFに変換(-Z option): 気温データを温位に変換, grdmath の POW & MUL operator
馴染みが薄いコマンド(使いかたをよく忘れる)
以下は,使ったことはあるが,使い慣れていないコマンド類. あまりにも古いバージョンで使っていたために, バージョンアップによって使いかたを忘れたものも含まれている.
- blockmean, blockmedian, blockmode: 等緯度経度格子でないデータ(例: Gaussian grid データ)の作図で使用.
- gmtmath: データの算術計算・エンディアン変換(Little endian, Big endian 両方向)などが可能. 逆ポーランド記法. バイナリとASCII text 形式の相互変換などにも有用. GrADS ユーザにとっても,付加価値は大きいと思う.Good. (append at 2013-12-09)
- grd2cpt:
- grdclip:
- 地形データのマスクアウト: 気温データを温位に変換, grdmath の POW & MUL operator
- grdmath: gmtmath とほぼ同様の算術計算コマンド.ただし,グリッドデータ版.
どのバージョンから追加されたか不明(少なくとも v4.5.9 では存在).
- 水平勾配(-dT/dy): 気温(海面水温)の格子点データを用いて,「ちょっと気温(海面水温)の南北傾度をみたいな」などと 上司・指導教員からさらっと言われた時に使うと便利.
- grdview:
- nearneighbor:
- pscontour:
- pshistogram: ヒストグラム(度数分布)図の作成.累積頻度などもオプション指定で記述可能.
- psimage:
- psmask: マスクアウトに使う.等圧面データの作図時,地表面以下の範囲を非表示にする,などの使いかた.
- pswiggle: 基準線からのズレ(偏差)部分の塗りつぶし.サンプル スクリプト; 画像
- triangulate:
馴染みのないコマンド(いつか試したいが)
以下は,使い慣れていないが使ってみようかと考えてるコマンド. 自分にとって役に立つコマンドである可能性もあるが, 試す時間的余裕がないため,pending になってるものが多い.
- gmtselect: 指定範囲内データの切り出し(矩形領域,円領域 -C ,ユーザ定義ポリゴン領域 -F など), 指定解像度以下(以上)のデータの無視(-A), 地形によるデータのマスク(-N; -D と併用)などが可能.
- grdinfo: 2-D バイナリデータの諸情報を表示. 他者からもらったが中身がよく分からないデータ,作図してみたが数値がおかしいときなどに使えそう.
- psclip:
- pslegend: 図の凡例(figure legend)を描くらしい.未チェック
おそらく使わないコマンド
以下は,私自身が使っていないコマンド類. 「使えないコマンド」と言ってるわけではない事に注意. 「以下のコマンドについては,私に質問しても回答は得られない (頼むから質問しないでくれ)」 という事を読者に伝えるためのメモ.
- filter1d:
- fitcircle:
- gmt2rgb:
- gmtconvert:
- grdfilter:
- grd2xyz:
- grdblend:
- grdcut:
- grdedit:
- grdfft:
- grdgradient:
- grdhisteq:
- grdpaste:
- grdproject:
- grdreformat:
- grdsample:
- grdtrend:
- grdvolume:
- greenspline:
- project:
- psrose:
- sample1d:
- spectrum1d:
- splitxyz:
- trend1d, trend2d:
自分メモ
見られても構わない自分用のメモです. 他者が見ても必要な情報とは思えませんが, 本人の意図しないところが役に立つ可能性もあるので,掲載しておきます.
GMT 自分ルール
- 単位は inch
- 単位を inch にする理由は,画像サイズ計算を簡単にするため. 一般に,解像度が dpi (dot per inch) 表記なので, 解像度さえわかれば作図結果の画像サイズも暗算で得られる
- 余白部分を切り出す (convert や mogrify を使用) 場合も, -X & -Y の位置ずらし量から概算できる.
- コマンドの最初は pstext で固定. 作図範囲を用紙サイズで決定
- PAPER_MEDIA はA4固定だが,
作図範囲は,レター(LTR) & A4 共にはみださないように指定.
つまり,8.2 inch * 11 inch を基本的に使う
(pstext text.in -R0/8.2/0/11.0 -Jx1 -U...).
- A4: 210 mm * 297 mm, LTR: 215.9 mm * 279.4 mm
- A4: 8.268 inch * 11.693 inch, LTR: 8.5 inch * 11 inch
- LTRを意識しているのは,単に個人的な使用履歴が原因. 指導教官が LTR サイズで作っていたので,それがずっと引き継がれている
- 「用紙サイズを前提にしたサイズ決定」というのは,少し時代後れか. コンテンツの電子化を前提とした方法に転換するなら, 現在の私の手法は適切とはいえないと思われる. 近い将来(電子化コンテンツが一般に普及しだしたら),ルール変更するだろう.
- 図のtimestamp (-U"${my_name}") には,作図プログラム名を記載. 作図プログラム名は,スクリプト冒頭にて "my_name=$PWD/$0" として設定. 作成済みの画像をみて,それを作成したスクリプトの所在がわからなくて困った経験から.
-
基本的なスクリプト内のコマンド順序は,
pstext psbasemap (プロット用途に応じた使用コマンド) psbasemap
である.括弧内には,pscoast やら psxy やら,用途別に様々.- 水平分布図(等値線のみ)の場合: pscoast, grdcontour
- 水平分布図(等値線 & 陰影)の場合: grdimage, pscoast, grdcontour
- 地図上に記号をプロットする場合: pscoast, psxy
- XYグラフに記号をプロットする場合: psxy
- 作成したPSから画像ファイルに変換するには,ps2raster コマンドを使う. convert でも出来るけれど,ps2raster の -A オプション (作図範囲だけを切り出す)が便利なので.
GMT の誤動作(らしき挙動)のメモ
下記情報の真偽は未確認. 公式のリリースノートなどを見れば,バグか否かを確認できるはずだが,時間が無いのでノーチェック.
- grdview によるプロット時,z軸がずれる (v4.5.6). v4.5.3, v4.5.7 では正常動作していた(はず).
GMT バージョン履歴
私が使用していたGMTのバージョン履歴. 1993年から使用している(GMT 2.0 or 2.1 くらい) のですが,古すぎて正確な記録なし. また,1995 - 2003 頃は,FreeBSD を自分PCに入れて使ってたが, GMTのバージョンに関する記録が少ない.
GMT version | date | OS version |
---|---|---|
v4.5.13: | 2015-07-01 | CentOS 7.1 |
v5.1.1: | 2014-09-23 | CentOS 7.0 |
v4.5.11: | 2014-02-16 | CentOS 7.0 |
v4.5.8: | 2012-07-20 | CentOS 5.8 & Fedora 17 |
v4.5.6: | 2011-04-21 | CentOS 5.6, 5.7, 5.8 & Fedora 11 - 14 |
v4.4.0: | 2009-10-09 | CentOS 5.2 (?) |
v4.2.0: | 2008-04-02 | Vine 4.2 |
v3.4.2: | 2003-07-02 | RedHat 7.2 & Vine 2.5 |
v3.3.6: | 2000-10-27 | FreeBSD 4.x (?) |
v2.x: | 1993 - 1995 (?) | Sun OS 4.x & Solaris ?.? |
.gmtdefaults の例
v4.x 系列
- 個人設定ファイル (for v4.5.6) ; GMT v4.5.6 用 (~/.gmtdefaults4)
Default からの変更点は下記:
#-------- Plot Media Parameters ------------- PAPER_MEDIA = a4 #-------- Basemap Annotation Parameters ------ HEADER_FONT = Times-Roman HEADER_FONT_SIZE = 20p PLOT_DEGREE_FORMAT = +ddd:mm:ssF #-------- Basemap Layout Parameters --------- BASEMAP_TYPE = plain TICK_PEN = 1.0p #-------- PostScript Parameters ------------- CHAR_ENCODING = Standard+ #-------- Projection Parameters ------------- MEASURE_UNIT = inch
これ以外のパラメータは,GMT コマンド実行前に gmtset により一時的に変更する.
(参考) 過去バージョン用: GMT v3.0 用; GMT v3.3.4 用; GMT v3.3.5 用
更新履歴 changes, history
以下は,いつの日か追加・修正したいこと:
画像サムネイル表示.サンプル画像を見てから選択,というほうが(自分にとって)見つけやすい. テキスト文字からのアクセスも残す.- 気象データ特有のサンプルの追加.気象学でよく使う作図の例をもう少し追加したい.
- 2015-08-30
- サムネイル版へのリンクを追加.
- 2015-07-09
- grdmath, grdclip などの情報の追加と整備. 使用バージョン履歴(v4.5.13)を追加.
- 2015-06-13
- XYプロットの時系列図サンプルを追加. 使用バージョン履歴を追加.ただし,v5 系列はほとんど動作チェックできてない.
- 2012-10-29
- XYプロット(psxy など)を追加. コマンドの一言メモ,一部追記.
- 2012-06-21
- リンク切れなどを修正. コマンド解説の一部に一言メモを追記.
- 2012-01-22
- 旧版webページ(${old_path}/samples/index.html)の情報を,ほぼそのまま移植. 旧版webページの地図投影法別サンプルと統合(一部のみ). まだ試験段階なので,体裁は要検討.
- 2011-06-09
- 早崎による製作webを識別するため, ページタイトル変更. CSS適用のため,古い記述を削除.
- 2011-06-07
- Wikiに記載していた内容の転載開始. HTML の文字コードを UTF-8 に変更. 体裁を調整後に公開(正式公開予定: Jul - Aug 2011).
- 1999-01-16
- GMT本家のページと区別するため, ページタイトル変更. 一部のサンプルを追加.
- 1997-??-??
- この頃にGMT関連の最初のHTML作成した(はず).記録はなく,記憶のみ.