GMT -J オプション †
はじめに †共通オプション -J は projection を指し,描画をするコマンドには必須のオプション. projection指定子の大文字・小文字の違い †J に続く英字で描く図法が決まるが,その英字が大文字か小文字かで,スケールの決定方法が異なる.
ここで,<width> は出力する図の幅,<scale> は比,</degree> は1度あたりの幅を示す. #!/bin/bash # filename output="JMm" proj1=M10 region1=125/150/25/50 axes1="-Ba5f5g5 -B+t-JM<wid>,-R125/50/25/50" proj2=m1:2.75e7 region2=125/150/25/50 axes2="-Ba5f5g5 -B+t-Jm1:<scale>,-R125/150/25/50" proj3=m0.4 region3=125/150/25/50 axes3="-Ba5f5g5 -B+t-Jm<wid_perdeg>,-R125/150/25/50" # gmt6 gmt begin $output png gmt coast -J$proj1 -R$region1 $axes1 -W gmt coast -J$proj2 -R$region2 $axes2 -W -X11.5 gmt coast -J$proj3 -R$region3 $axes3 -W -X11.5 gmt end projection, 各図法の記述例 †以降では,projection ごとに pscoast または psbasemap を用いてそれぞれ描いてみる. -JM, Mercator, メルカトル図法 †見慣れたメルカトル図法.記法は下記の通り.
# filename output="JM" proj=M10 region=125/150/25/50 axes="-Ba5f5g5 -B+t-JM<wid>,-R125/50/25/50" # gmt6 gmt begin $output png gmt coast -J$proj -R$region $axes -W gmt end # gmt5 gmt pscoast -J$proj -R$region $axes -W -P > "${output}_gmt5.ps" gmt psconvert -Tg -A "${output}_gmt5.ps" -JB, Albers conic equal area projection †Conic projection の一つ.
ここで,<lat1>,<lat2> は Alberts projection の two standard pallalels に相当する. # output file output="JB" # options proj=B135/35/30/45/12 region=120/150/25/50 axes="-Ba5f5g5 -B+t-JB135/35/30/45/<wid>,-R120/150/25/50" # gmt6 gmt begin $output png gmt coast -J$proj -R$region $axes -W gmt end # gmt5 gmt pscoast -J$proj -R$region $axes -W -P -V > "${output}_gmt5.ps" gmt psconvert -Tg -A "${output}_gmt5.ps" -JU, UTM, ユニバーサル横メルカトル図法 †数値計算でよく UTM 座標を用いるため.計算結果に対して -JU で描くと変な隙間が出にくい.
ここで,<zone> は UTM のゾーン(1〜60の整数). # output file output="JU" # options proj=U53/10 region=125/150/25/50 axes="-Ba5f5g5 -B+t-JU<utmzone>/<wid>,-R125/150/25/50" # gmt6 gmt begin $output png gmt coast -J$proj -R$region $axes -W gmt end # gmt5 gmt pscoast -J$proj -R$region $axes -W -P > "${output}_gmt5.ps" gmt psconvert -Tg -A "${output}_gmt5.ps" -JC, Cylindrical projection, 円筒図法 †UTM に似ている.UTM でいう zone の基準点がないので,<lon0>,<lat0> で指定する.
# output file output="JC" # options proj=C135/35/10 region=125/150/25/50 axes="-Ba5f5g5 -B+t-JC135/35/<wid>,-R125/150/25/50" # gmt6 gmt begin $output png gmt coast -J$proj -R$region $axes -W gmt end # gmt5 gmt pscoast -J$proj -R$region $axes -W -P > "${output}_gmt5.ps" gmt psconvert -Tg -A "${output}_gmt5.ps" -JA, Lambert Azimuthal projection, ランベルト正積方位図法 †ランベルト図法.図の特性上,描ける最大範囲は半球.
Rgは<lon0>,<lat0> を中心とする半球を描く. # output file output="JARgARr" # options proj1=A136/35/10 region1=g axes1="-Ba15f15g15 -B+t-JA135/35/<wid>,-Rg" # options proj2=A120/30/10 region2=90/5/180/65r axes2="-Ba15f15g15 -B+t-JA120/30/<wid>,-R90/5/180/65r" # gmt6 gmt begin $output png gmt coast -J$proj1 -R$region1 $axes1 -W gmt coast -J$proj2 -R$region2 $axes2 -W -X11.5 gmt end -JG, Azimuthal orthographic projection, 正射図法 †地球表面を正射影して描かれる地図.オプションの表記方法は -JA に近い.
さらに詳細な指定もできるが,ここでは省略. # output file output="JG" # options proj=G135/35/10 region=g axes="-Bf30g30 -B+t-JG135/35/<wid>,-Rg" # gmt6 gmt begin $output png gmt coast -J$proj -R$region $axes -W gmt end # gmt5 gmt pscoast -J$proj -R$region $axes -W -P > "${output}_gmt5.ps" gmt psconvert -Tg -A "${output}_gmt5.ps" -JX, Non-geographical projection (linear) †地図でない X-Y 座標には -JX を使う.
JX<width> の場合は,<height> は <width> と同じ値. # output file output="JXwXwh" # options proj1=X10 region1=0/100/0/50 axes1="-Bxa20g20 -By10g10 -BSWne+t-JX<wid>,-R0/100/0/50" # options proj2=X10/5 region2=0/100/0/50 axes2="-Bxa20g20 -By10g10 -BSWne+t-JX<wid>/<hei>,-R0/100/0/50" # gmt6 gmt begin $output png gmt basemap -J$proj1 -R$region1 $axes1 gmt basemap -J$proj2 -R$region2 $axes2 -X11.5 gmt end -JXl, Non-geographical projection (log-log, semilog), 両対数,片対数図 †対数軸にしたい場合は,横軸なら <width> の後に,縦軸なら <height> の後にlを付す.
ここでは B オプションに記述する数値の意味が他と異なる点に注意. # output file output="JXl" # options proj=X10l/5 region=1e0/1e5/0/50 axes="-Bxa1pg3p -By10g10 -BSWne+t-JX<wid>l/<hei>,-R1e0/1e5/0/50" # gmt6 gmt begin $output png gmt basemap -J$proj -R$region $axes gmt end # gmt5 gmt psbasemap -J$proj -R$region $axes -P > "${output}_gmt5.ps" gmt psconvert -Tg -A "${output}_gmt5.ps" -JX,-JZ, Non-geographical projection (3-dimensional) †3D図は,-JX と -JZ で2回 J オプションを使う.
ここで,<length> は水平平面で <width> と垂直な方向の長さ. # output file output="JXJZ.ps" # output file output="JXJZ" # options proj=X10 projZ=Z10 pers=-120/25 region=0/10/0/10/0/10 axes="-Bxa2g2 -Bya2g2 -Bza2f2 -BSWZ+b+t-JX<wid>,-JZ<hei>,-R0/10/0/10/0/10" # gmt6 gmt begin $output png gmt basemap -J$proj -R$region $axes -J$projZ -p$pers gmt end # gmt5 gmt psbasemap -J$proj -R$region $axes -P -J$projZ -p$pers > "${output}_gmt5.ps" gmt psconvert -Tg -A "${output}_gmt5.ps" -JX, -Rd or -Rg, 地球全体図 †メルカトル図法 -JM では,R オプションで極の -90,90 を含めることはできず,エラーになる.
経度方向の中心は,Rd で本初子午線,Rg で日付変更線になる. # output file # output file output="JXRd_JXRg" # options proj1=X10/5 region1=d axes1="-Bxa60f60g60 -Bya30f30g30 -B+t-JX<wid>/<hei>,-Rd" # options proj2=X10/5 region2=g-45/315/-90/90 axes2="-Bxa60f60g60 -Bya30f30g30 -B+t-JX<wid>/<hei>,-Rg-45/315/-90/90" # gmt6 gmt begin $output png gmt coast -J$proj1 -R$region1 $axes1 -W gmt coast -J$proj2 -R$region2 $axes2 -W -X11.5 gmt end -JKf, -JKs, Eckert projection, エケルト図法 †
lon0 は経度方向の中心である.緯度の annotations を入れる場合は,緯度 -90 と 90 のラベルが埋もれるので,表示されないように範囲を調整する. # output file output="JKf_JKs" # options proj1=Kf180/10 region1=d0/360/-89/89 axes1="-Bxa60f60g60 -Bya30f30g30 -B+t-JKf180/<wid>,-Rd0/360/-89/89" # options proj2=Ks180/10 region2=d0/360/-89/89 axes2="-Bxa60f60g60 -Bya30f30g30 -B+t-JKs180/<wid>,-Rd0/360/-89/89" # gmt6 gmt begin $output png gmt coast -J$proj1 -R$region1 $axes1 -W gmt coast -J$proj2 -R$region2 $axes2 -W -X11.5 gmt end |