第3章 一般

regionや点の座標の書式

basemapメソッドの描画範囲指定(region)や plotメソッド等の座標指定(x, y, z)などで与える座標値は, 整数または文字列で与えられる.

整数で与えた場合は十進法である. 文字列では十進法のほか,「:」で区切ることで緯度経度に向いた六十進法(度分秒)で与えることもできる:

'<度>:<分>:<秒>'

例)出力:図*※相互参照無効*

import pygmt
fig = pygmt.Figure()
fig.basemap(
    region = '-1/1/-1/1',
    projection = 'M5c',
    frame = 'agf',
)
fig.plot(
    x = '0:30',
    y = '0:0:300',
    style = 'c5p',
    fill = 'red',
)
fig.show()
度分秒による座標指定.

度分秒による座標指定.

距離・サイズの単位

地理的距離

地理上の距離を指定するときの単位.

引用元:GMT公式(https://docs.generic-mapping-tools.org/dev/gmtselect.html#units

For map distance unit, append unit d for arc degree, m for arc minute, and s for arc second, or e for meter [Default unless stated otherwise], f for foot, k for km, M for statute mile, n for nautical mile, and u for US survey foot. By default we compute such distances using a spherical approximation with great circles (-jg) using the authalic radius (see PROJ_MEAN_RADIUS). You can use -jf to perform “Flat Earth” calculations (quicker but less accurate) or -je to perform exact geodesic calculations (slower but more accurate; see PROJ_GEODESIC for method used).

投影上のサイズ

図や点などのサイズを指定するときの単位.

引用元:GMT公式(https://docs.generic-mapping-tools.org/dev/gmt.conf.html#term-PROJ_LENGTH_UNIT

Sets the default unit length. Choose between cm, inch, or point [default is c (or i)]. Note: In GMT, one point is defined as 1/72 inch (the PostScript definition), while it is often defined as 1/72.27 inch in the typesetting industry. There is no universal definition.)

文字入力

文字サイズの一括調整

pygmt.configのFONTによって,with構文内のメソッドで追加される文字列を一括で指定できる. 文字サイズは数値,文字列のいずれで与えても良い. ただし文字列で与えればp; pointやc; cm, i; inchのように単位付きで指定できる.

with pygmt.config(
    FONT = <文字サイズ>
    ):
    ...

FONTではすべての文字に設定が適用されるが, FONT_TITLE, FONT_LABELとするとそれぞれタイトル,ラベルのみに設定を適用することができる.

ただしgrdcontour()で描かれる等値線のアノテーションの文字サイズはこの方法では変わらない.grdcontour()のアノテーションの文字サイズは,grdcontourメソッドのannotation引数内で指定する:

fig.grdcontour(
    ...,
    annotation=<間隔>+f<フォントサイズ>,
    ...,
    )

上付き・下付き文字

'@+<文字>@+'
'@-<文字>@-'

上記のいずれかを使う(すなわち「@+」または「@-」で挟む)と,ラベルやタイトルにおいて上付き,下付き文字を入力できる.

LaTeX形式での数式

@[<text>@[

ただし,事前にLaTeXがインストールした上で,パスを通してどこからでもLaTeXのコマンドを呼び出せるようにしておく必要がある.

LaTeXが正しくインストールされていないと 「 latex is not installed or not in your executable path - cannot process LaTeX to DVI. 」 というエラーが出て失敗する.

ギリシャ文字

数式に使われるギリシャ文字は,フォントの種類を指定することで利用できる.

@%12%<text>@%%
または
@~<text>@~

文字番号12がギリシャ文字のフォントであるため,これを用いるとギリシャ文字を入力できる.ギリシャ文字は対応するアルファベットで指定する.例えば「{{< math >}} $\tau」$ {{< /math >}}なら「t」と入力する.

「度(°)」

@.

普通に「°」と入力しようとしても文字化けしてうまくいかない.しかし「@.」と入力すると「°」を入力することができる.ラベルでも軸でもどこでも使える.

Octal codeによる入力

文字コードによる入力もできる(図*※相互参照無効*. https://docs.generic-mapping-tools.org/6.4/cookbook/octal-codes.htmlより).

数学記号の入力もこれでとりあえずは可能.文字によってはもっと楽な方法もあるだろうが.

Symbolは@~で挟む.ZapfDingbatsは@%34%<code>@%%で入力.ただし,pythonではバックスラッシュが特殊文字扱いなので,連続で入力してバックスラッシュを認識させるか,文字列の最初に「r」を付け加えて特殊文字を無効にする必要がある:

"@~\\<code>@~"
または
r"@~\<code>@~"
Octal codeの入力用テーブル.

Octal codeの入力用テーブル.

色の指定

典型的な色は’red’のように文字列で指定できる. また,’#<rrggbb>‘の形でRGBの16進数表記で自由に色を指定可能.

透明度

# plot等の引数penやfillでのカラー指定において
'<color>@<透明度0-100>' # 0:透明,100:不透明
# 一部コマンドにおいて
transparency = <透明度0-100>

メソッドによって透明度の指定方法が異なるが,線の色,単色塗りつぶしでは@で透明度を指定できることが多い. transparencyはcmapを使う場合や,描画対象全体を透過させる場合に用いることが多い.

カラーマップ

標準カラーパレット

参照)https://docs.generic-mapping-tools.org/6.2/cookbook/cpts.html(図*※相互参照無効*)

標準カラーマップ.

標準カラーマップ.

海と陸の標高を表すなら’relief’,’earth’,‘geo’などが便利.

なおデフォルトのカラーパレットは’seis’である.‘jet’や’rainbow’と似ているが, それよりはやや落ち着いた感じの色合いになっている.

カラーマップの指定

pygmt.makecpt(
    cmap = '<cmap>',
    transparency=<透過度>,
    series=[0, 100],
    reverse = <True/False>,
    )

transparency=で半透明なカラーマップを作成できる.値の範囲はseriesで指定できる.カラーマップの向きを逆転させたいときはreverse=Trueとする.