GMT Library Wrapper

Julia の中で GMT が使える.詳しくは GMT.jl へ.
基本的に

# julia
usnig GMT: GMT
GMT.gmt("foobar")

# shell (bashなど)
gmt foobar

と同じ.
GMT.jl を使う前に,GMT のライブラリが参照できるように startup.jl でパスを通すか LD_LIBRARY_PATH で参照可能になっている必要がある.
これについては startup に記載.


libgdal, libgeos 関連のプレコンパイルエラー

ある時から GMT に libgdal, libgeos に関連するエラーが出るようになった.

ERROR: LoadError: failed processes:
  Process(`ldd /raid/miyashita/local_gnu/src/gmt-6.1.1/lib64/libgmt.so`, ProcessExited(1)) [1]
  Process(`grep libgdal`, ProcessExited(1)) [1]

どうパスを設定しても,libgmt.so の中に libgdal と libgeos の依存関係が関連付けされていないと,エラーを返すようになっている.
GMT をソースからインストールして使っている人は,インストール時に必ず geos と gdal を有効にしてインストールしないといけない.


出力ファイル

GMT.jl v0.9.0 時点.
bash 上では

# shell
gmt pscoast -JX12/6 -Rg -Ggray -P > foobar.ps

のように出力ファイルの名前を明示しないといけないが,Julia の中では,

# julia
GMT.coast(J="X12/6", R="g", G=:gray)

のように,ファイル名を書かなくてもPostScriptファイルに記述される.
この場合,描いた図がどこにあるかというと,

# julia
GMT.fname_out(Dict(),false)
("/tmp/GMTjl_tmp.ps", "", "ps", true, true)

の一つ目の戻り値 "/tmp/GMTjl_tmp.ps" にある. 確認段階ではこのファイルを見ればOK.
描画コマンドの後のキーワード引数に show=true (show=1) を入れることで,このファイルを実行すると同時に表示できる.

GMT.coast(J="X12/6", R="g", G=:gray, show=true)


ファイルとして出力したい場合は

GMT.coast(J="X12/6", R="g", G=:gray, savefig="tmp.ps")

で保存するファイル名を指定するか,

GMT.coast(J="X12/6", R="g", G=:gray, fmt="EPS")

のように保存形式を指定してコピーする.


軸ラベルやタイトルにスペース挿入

B オプションを使って GMT のシンタックス通りに軸ラベルを入れようとすると

GMT.basemap(J="X10", R="0/10/0/10", B="xaf+l\"x (m)\"  yaf+l\"y (m)\" neSW")

となるが,これだと x と (m) の間にある空白をうまく処理してくれない.
GMT.jl では,B オプションに軸ラベルやタイトルは入れずにキーワード引数 xlabel, ylabel を使うとよい.

GMT.basemap(J="X10", R="0/10/0/10", B="af neSW", xlabel="x (m)", ylabel="y (m)")

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2022-06-27 (Mon) 05:21:30 (161d)