../../_images/logo_gmt.png

注釈

このプロジェクトはOSGeoLive仮想マシンディスク(VMDK)にのみ含まれています

GMTクイックスタート

GMT は、(x,y) および (x,y,z) のデータセット (フィルタリングや、トレンドフィッティング、グリッド化、投影などを含む) を操作して、Encapsulated PostScript File (EPS) イラストレーションを生成するためのツール群です。EPS イラストレーションには、単純な x-y プロットから等高線マップ、人工的に照らされたサーフェス、3Dパースビューに至るまでが、白黒、グレートーン、ハッチパターン、24ビットカラーの色彩であります。

このクイックGMTチュートリアルでは、デジタル地形モデル(DTM)を使用して、シェーディングされた防災地図を生成します。

マップを作成する

入力データセットとして、GRASS GISサンプルデータセットからのDTMを使用します。これは、GDAL-GRASSドライバを使用してGDALからアクセス可能です。

DTMメタデータをざっと見て、端末を開き、GDALコマンド gdalinfo:

gdalinfo /home/user/grassdata/nc_basic_spm_grass7/PERMANENT/cellhd/elevation

DTMが投影された座標系にあり、データ範囲が50~160メートルであることがわかります。

gdal_translate を使用して、GMT互換のnetCDFファイル形式のDTMを次のように変換できます。

gdal_translate -of GMT /home/user/grassdata/nc_basic_spm_grass7/PERMANENT/cellhd/elevation elevation.gmt

GMTの例では、最初に gdalwarp コマンドを使用して、データセットを地理座標(経度-緯度)(EPSG:4326)に変換します。

gdalwarp elevation.gmt geo_elevation.gmt -t_srs EPSG:4326

カラーパレットを作成

グリッドにカラーマップを割り当てるには、 makecpt コマンドを使用してGMTカラーパレットテーブルを作成します。 -T フラグで色の範囲と数を設定し、 -C フラグでカラーマップを割り当てます。

gmt makecpt -Chaxby -T50/160/10 -Z > elevation.cpt

他のcolortablesを試してみることもできます。完全なリストについては、 man gmt makecpt を参照してください。

グラデーションを定義

シェーディングされた防災地図の例では、カラー強度がグリッドに沿ってどのように分布しているかを表示するように指定する必要があります。そのために、 grdgradient コマンドを使用して、グリッドから方向の導関数、つまり勾配を計算します。grdgradient では、 -Ne フラグを使用して、累積ラプラス分布を使用して出力を正規化し、 -A フラグを方位角方向の方向微分に使用します。

gmt grdgradient geo_elevation.gmt -Ne0.8 -A100 -fg -Ggradient.nc

出力はnetCDFファイルで、次のように grdimage コマンドでカラー強度として使用できます。

gmt grdimage geo_elevation.gmt -Igradient.nc -JM6i -P -Ba -Celevation.cpt -K > GMT_tut_OSGeoLive.ps

カラーバーを表示

最後に、 psscale を使ってカラーバーを追加します:

gmt psscale -DjTC+w5i/0.25i+h+o0/-1i -Rgeo_elevation.gmt -J -Celevation.cpt -I0.4 -By+lm -O >> GMT_tut_OSGeoLive.ps

ここでは、フラグ -D を使用して、カラーバーの位置 TC: Top Center 、サイズ 5x0.25 をインチ i で表したもの、方向を h:horizontal で表したもの、フラグ -By を使用してラベル my軸 に設定したものを選択します。

出力されるps文書は次のようになります:

ノースカロライナ - サンプル標高データ

試してみること

  • 以下のパッケージをインストールします:

    • gmt-dcw

    • gmt-gshhg

  • GMT チュートリアル <https://docs.generic-mapping-tools.org/latest/tutorial>

次のステップは何?