Contents
現在本家に取り込んでもらうための交渉中です。 |
GMT は地球物理学分野における図を作成するのに非常に有用な ソフトです。非常に詳細な地図情報を持っており、出力したいデータ を出力したい地図の上に投影してポストスクリプトファイルに することが出来ます。そして、何よりも出来上がった図が非常に 奇麗であることが私が利用し、勧める大きな理由です。
しかしながら、GMT にはベクトルの表示の際、矢印による表示は 可能なのですが、気象学で用いられるような矢羽に関しては、 (おそらく作者が気象関係者ではないからでしょうけども) 残念ながらありません。
そこで今回、矢羽を GMT で描画するためのパッチを作成しました。 このパッチをあてることにより、grdbarb というコマンドが 作成されます。このコマンドにより作成した図のサンプルを ここで示します。 psxyからも矢羽を描画することも可能です(-Sr/-SR または -Su/-SU または -Swb/-SWB オプション).
現在 GMT 矢羽拡張パッチは GMT-3.4.6/4.5.9 用が 用意されています(過去バージョンへのパッチはこのページの一番下にあります). 以下よりダウンロードをして下さい。
対象GMT
バージョンファイル名 ファイル
サイズパッチ
バージョン4.5.9 gmt4.5.9_barb_src.patch20130118 46.9kB 20130118 3.4.6 gmt_3.4.6_barb.patch_v0.5b4 27.8kB 20060522 gmt_3.4.6_man_barb.patch_v0.5b4 23.0kB インストールする GMT のバージョンに合わせてダウンロードしてください。 以前のバージョンのものもこのページの一番下に置きましたのでそこから 入手して下さい。
GMT のインストール方法ですが,Ver.4.5.9 に関して簡単に紹介します。 まず GMT のインストールに必要なファイルを展開をします。
% tar zxvf gmt-4.5.9.tar.bz2
% cd GMT4.5.9
% tar zxvf gshhg-gmt-nc3-2.2.2.tar.bz2
% mv gshhg-gmt-nc3-2.2.2/ share/coast/
つづいてパッチをあてます.
% cd GMT4.5.9
% patch -p1 < gmt4.5.9_barb_src.patch20130118
以下は通常のインストール方法と同じです.
% ./configure
% make
% make install-gmt
% make install-data
% make install-man
% make install-doc
% make install-suppl
(必要ならば)
詳しい GMT のインストール方法は展開したファイルの中にある README を 参考にして下さい.なお、Vine 4.x,5.x,6.x Linux の場合 NetCDF ライブラリの インストール先が若干特殊なため、configure 時に NETCDF_INC=/usr/include/netcdf NETCDF_LIB=/usr/lib ./configure のように明示的に NetCDF ライブラリと インクルードファイルのパスを指定する必要があります。
grdbarb
このコマンドは grdvector のソースを利用しましたので、grdvector を使ったことのある人は 比較的すぐ利用できると思います。grdvector とのオプションの 違いはくらいです。初めて GMT を扱う人、あるいは grdvector を扱ったこと のない人は、マニュアルを参考にして下さい(将来的には最低限の説明 が書ければいいとは思いますが…)。
- S オプションがない
→ …と思ったのですが、Ver.3.4.x版では -S オプションを無視し 忘れているみたいです。正しく動作しない可能性がありますので S オプションはつけないでください。
- Q オプションの指定が異なる
grdbarb はさまざまなオプションを持っています。ここでは、 矢羽の形状等を指定するオプション Q について解説します。
オプション Q はさらに4つのパラメータを指定します。barbwidth は羽根の長さを、barblengthは支柱の長さ、barbangle は支柱と羽根の角度(o)を、そしてbarbscaleは 羽根一本を表す大きさをそれぞれ表しています。上の図も参考にしてみて 下さい。
- 書式 -Q<barbwidth>/<barblength>/<barbangle>/<barbscale>
- サンプル
- -Q0.1i/0.2i/120/5
その他のオプションについてはマニュアルを参考にして下さい。
psxy / psxyz (psxyz は GMT-4.1.2 以降)
psxy を用いて矢羽を表示させるには GMT-4.1.2 以降 の場合 -Swb, GMT-4.0/GMT-4.1.1 の場合 -Su, GMT3.4.x の場合 -Sr, GMT3.1.1 の場合 -Sw オプションを利用します。バージョンによって オプションが違うことに注意をしてください。 このオプションを利用の時には入力するファイルの書式がのように4列になります。また、grdbarbと同様に、-Su/-Sr/-Sw/-Swb につづいて サイズを指定することができます。書式は (GMT4.1.2 以降の場合)X Y 角度 大きさ-Swb<barbwidth>/<barblength>/<barbangle>/<barbscale>です。それぞれの説明は上のgrdbarbを参考にして下さい。 通常矢羽は風の吹いてくる方向に向けて描画します(例えば西風に対して 矢羽は西側に描画)。psxy に関して GMT Ver.3.4.1 以降に対するパッチの 場合は b2 以前、Ver.3.1.1, 3.2 に関してはバージョン番号に b がついて いないものは矢羽を矢印と同じ方向に向けて描画をしていましたので、 最新版にバージョンアップの際、今までと反対の矢羽が表示される可能性 がありますので注意して下さい。なお、grdbarb に関してはこれに 関するバグはありませんでした。psxy で矢印を描く場合 -Sv, -SV の2種類選べると思います。これと 同様に矢羽パッチでは -Swb, -SWB の2種類選択できます(GMT-4.1.2以降の場合)。 大文字と小文字の 違いは矢印と同じです。詳しくはオンラインマニュアルを参考にして下さい。
また、GMT-4.1.2 のパッチより psxyz でも矢羽根を作成できるようになりました。
GMT-3.2 以前に対するパッチ(Ver.0.4)と GMT-3.4.1 以降に対するパッチ(Ver.0.5b3) ではコマンド名も異なり(grdbulb → grdbarb)ますし,psxy でのオプション も異なります(-Sw → -Sr).最初の変更は私が矢羽を bulb だと勘違いして いたためです.本家にマージしてもらう野望を果たすためにも綴間違いは 直しておいた方が良いだろうということで grdbarb に変更しました. また,psxy のオプションの変更ですが,GMT-3.4.1 では -Sw が意味を持つ ようになりましたのでそれ以外に変更する必要が出てきました.そこで ba(r)b と非常に分かりにくい場所から -Sr となりました.このことからも やっぱり本家になんとかマージしてもらうことを考える必要があるのかも しれませんね ^^; 以下表にしてまとめます.
- GMT3.1.1版
GMT3.2版GMT3.4.x版 GMT4.0
GMT4.1.1版GMT4.1.2
以降grd データ用 grdbulb grdbarb grdbarb grdbarb psxy オプション -Sw/-SW -Sr/-SR -Su/-SU -Swb/-SWB GMT-3.1.1, 3.2 版を利用する場合には昔の文章も 参考にして下さい.
GMT Ver.3.1.1, 3.2 版では Ver.0.4b2 以降、 GMT Ver.3.4.x 版では Ver.0.5b3 以降で psxy での矢羽の描画方向がそれまでと180度変わっています。これは 通常の矢羽を描画する感覚に合わせたものです(というか以前のがバグでした)。
矢羽根パッチを適用して私の環境でコンパイルしたバイナリパッケージを 作成しました。必要な方はご利用下さい。
■ Vine 5.x 用 RPM/SRPM パッケージ
ファイル名 必須 サイズ 内容 備考 GMT459-4.5.9_barb-1.x86_64.rpm 必須 35,920kB GMT 本体 CJK パッチ適用済 GMT459-document-4.5.9_barb-1.x86_64.rpm 選択 35,962kB PDF/HTML ドキュメント/サンプル GMT459-full-gshhs2.2.2_barb-1.x86_64.rpm 選択 49,743kB フル解像度海岸線データ GMT459-high-gshhs2.2.2_barb-1.x86_64.rpm 選択 12,971kB 高解像度海岸線データ GMT459-suppl-4.5.9_barb-1.x86_64.rpm 選択 24,917kB 補助ツール群 GMT459-4.5.9_barb-1.src.rpm 選択 86,372kB ソースパッケージ 最低限一番上のパッケージだけをダウンロードすれば動作します。 インストール先は /usr/local/gmt459 になります。 残りのパッケージは必要に応じてご利用下さい。 自分の環境に合わせて再構築したい場合にはソースパッケージを ダウンロードしてリビルドして下さい。
Vine5.x における netCDF パッケージがライブラリのインストール先 /usr/lib, インクルードファイルのインストール先 /usr/include/netcdf と GMT の Makefile の想定と異なっているため、これを解消するため configure 時に NETCDF_INC, NETCDF_LIB が定義されています。 その他のディストリビューションでコンパイルをする場合は ソースパッケージの SPEC ファイルを適切に修正して下さい。 後日一般的なディストリビューション用のパッケージを用意出来れば と思います(多忙につき期待しないでください)。
■ Windows 用パッケージ
現在作っていません
お願い
この拡張パッチは現在のところ試作段階です。このためマニュアル、 引数処理等バグが潜んでいるおそれがあります。
また、要望がありましたら、メール ( mkato at pastel.ocn.ne.jp ) にてお願いします。質問なども受け付けています。
今後の予定
- 完成度の向上
- マニュアルの整備
- 最新版へのパッチをきちんと作る
- HTML 文章を奇麗にしたい
- 本家へのマージ(野望)
→ 現在作者と交渉中です。参考 URL
Q & A
Q: すでに GMT を導入しているのですが,パッチをあてて できた grdbarb だけをコピーすればよいでしょうか? A: 他のプログラムにも影響がありますので,全ての プログラムをインストールしなおして下さい. Q: このパッチを再配布してもよいですか? A: GMT は GPL 配布ですので,このパッチも GPL に従って 配布しています.従って再配布可能です(ただし試作中ですので注意して下さい). Q: 日本語化パッチをあてても大丈夫ですか? A: はい、大丈夫です。 Q: 昔は grdbulb だったような気がしますが? A: bulb ではなく barb が正しい綴りでしたので変更させて いただきました Q: psxy のオプションは -Sw ではなかったでしょうか? A: 本家でオプションが利用されてると変更を余儀なくされる 関係上 -Sw -> -Sr -> -Su -> -Swb と変更を繰り返して います。やはり本家にマージしてもらう必要があるみたいです (交渉をして動いてくれたっぽいのですがいつ採用されるのやら…)。 Q: 使い方は誰にすればよいでしょうか? A: 遠慮なく私までどうぞ。 メール( mkato at pastel.ocn.ne.jp )でお願い します。 Q: Windows 版はないのですか? A: Cygwin 環境でコンパイルした Windows版バイナリを用意してみました。 ただし、私は Windows 使いではありませんのでほとんど動作確認を していませんのでご注意下さい。なお、現在は Windows を再インストール した関係で Cygwin 環境がなくなっておりますのでバイナリを作成 できません。 Q: Linuxを使っているのですが RPM版はありませんか? A: Vine でコンパイルをした最新版のみ提供しています。 謝辞
作成にあたって以下の方にアドバイスをいただきました。ここでお礼を申しあげます。
- Alexander (from Belarus) さん
- GMT-4.5.9 版の動作確認(…と作成の催促)をしていただきました。
- Herm Wojdylakさん
- GMT-4.1.4 版の動作確認(…と作成の催促)をしていただきました。
- 檜垣@気象庁さん
- GMT-4.5.8 へのパッチを作って頂きました(4.5.9 のパッチはこれをかなり参考に させてもらいましたl)。
- GMT-4.1.x のパッチに関してアドバイスをしていただきました(内部処理の大半を 檜垣さんのものに修正しました)。
- Magne Rudy さん
- GMT-4.1.1 版の動作確認(…と作成の催促)をしていただきました。
- LE LAY Patrickさん
- 南半球における表示に関するパッチをいただきました。
- 佐藤@衛星センターさん
- GMT-3.4.1 版のバグを指摘していただきました。
- 鈴木@つくばさん
- バグの指摘と要望をいただきました。
更新履歴
- 2013年1月19日 … GMT-4.5.9 用 公開
- 2009年2月25日 … GMT-4.4.0 用 公開
- 2007年5月22日 … GMT-4.1.4/4.2.0 用 公開
- 2006年6月1日 … GMT-4.1.3 用 公開
- 2006年5月22日 … GMT-4.1.2/GMT-3.4.6 用 公開
- 檜垣さんにいただいたパッチをマージ (for GMT-4.1.2)
- LE LAY Patrick さんにいただいたパッチを適用 (for GMT-3.4.6)
- 2006年4月23日 … GMT-4.1.1 用 Ver.0.6 公開
- 2005年3月14日 … GMT-4.0 用 Ver.0.6 公開
- 2005年3月14日 … GMT-3.4.5 用 Ver.0.5b3 公開
- 2004年1月29日 … GMT-3.4.4 用 Ver.0.5b3 公開
- 2003年4月30日 … GMT-3.4.3 用 Ver.0.5b3 公開
- 2003年2月14日 … GMT-3.4.x 用 Ver.0.5b3, GMT-3.1.1 用 Ver.0.4b2 公開
- バグの修正と psxy での -SR オプションの追加 → thanks 鈴木さん
- 2002年10月15日 … GMT-3.4.2 用 Ver.0.5b2 公開
- GMT-3.4.2 に対するパッチを公開 (GMT-3.4.1 用とまったく同じです)
- 2002年8月16日 … GMT-3.4.1 用 Ver.0.5b2 公開
- GMT-3.4.1 に対するパッチのバグを修正 → thanks 佐藤さん
- 2002年7月3日 … GMT-3.2 用 Ver.0.4 公開
- GMT-3.2 に対するパッチを公開(ほとんどチェックしてません)
- 2002年5月28日 … Ver.0.5b1 公開
- ベースとする GMT のバージョンを 3.4.1 に変更
- grdbulb コマンドを grdbarb と名前を変更
- psxy のオプションを -Sw から -Sr に変更
- パッチファイルを2分割した
- 1999年12月17日 … Ver. 0.4 公開
- バグフィックス
- 矢羽のスタイルの修正
- 1999年 7月29日 … Ver. 0.3 公開
- psxy で、矢羽根を表示可能にしました。
- grdbulb のマニュアルの修正
- psxy のマニュアルの修正
- 1999年 7月 6日 … Ver. 0.2 公開
- 矢羽のスタイルを修正しました。
- 1999年 6月12日 … Ver. 0.1 公開
古いバージョンへのパッチ