独立行政法人 土木研究所 寒地土木研究所

ホーム  » ツール  » GMTで作る等雨量線図  » SRTM3をGMT4.3.1で利用する

SRTM3をGMT4.3.1で利用する

Shuttle Radar Topography Mission (SRTM)はスペースシャトルに搭載した合成開口レーダーで、地球の詳細な数値標高モデルを作製することを目的としたミッションのことです。2000年 2月に打ち上げられたスペースシャトルエンデバーに2度目のクルーとして搭乗した毛利衛さんがSRTMの観測を担ったそうです。
このミッションで観測された地表のデータは、3秒角(約90m)メッシュのSRTM-3、30秒角(約900m)メッシュのSRTM-30、及びアメリカ国内の1秒角(約30m)メッシュのSRTM-1としてWEB上で無料で公開されています。
ここでは、SRTM3をGMTで読み込むための処理方法と、国土地理院で公開中の市町村役場緯度経度、おもな山岳の緯度経度データを読み込み、日本語で出力するための方法について紹介しています。 
GMTは単なる地図ソフトではありませんが、高度な地図表現が可能なので、様々な投影法で地図を作成したり、鳥瞰図を作成することが可能です。 水環境保全T 村上

1 SRTM3のデータ読み込み

  1. SRTM3のデータソースは以下URL
    http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp
  2. 北海道周辺のDEMであるSRTM_65_04.tifを上記URLで選択、GeoTiff形式としてhttp経由でダウンロード。適当なフォルダで解凍しておく。

2 MIRONEセットアップ

  1. MIRONEセットアップ用ファイルを以下URLからダウンロードする。
    http://w3.ualg.pt/~jluis/
    インストール先のパソコンにMATLABがインストールされているか否かでセットアップ用ファイルを選択する必要。
  2. 1のファイルを実行し、MIRONEをインストール。PCによってはMIRONEを実行できない場合もあるのですが、原因についてはよくわかりません。

3 SRTM3のデータをGMT用に変換

  1. MIRONEを実行。2つウィンドウが開くが、以下、メニューの入った方で説明。
  2. file > Background window > map を選択。これで世界地図のタイルwindowが現れる。
  3. GMTで処理したいSRTM3の範囲を含むタイルを選択し、ダブルクリックする。
  4. 開いたウィンドウのメニュー画面でFILE > Open Grid/Image > Digital Elevation > GeoTIFF DEM から 1,でダウンロードしておいたSRTM3のファイルを選択して読み込む。SRTM3のデータ保存先のパスに漢字が含まれていると処理がうまくいかない場合があるので注意。
  5. File > Save Grid As > GMT Grid で GMTで読み込み可能なNetCDF形式でSRTM3が保存できる。

4 GMTの漢字設定(2008/12/26追加)

以下の4行のテキストを「CUSTOM_font_info.d」というファイル名で\GMT\share\pslibのフォルダに保存する。
Ryumin-Light-EUC-H 0.700 1
Ryumin-Light-EUC-V 0.700 1
GothicBBB-Medium-EUC-H 0.700 1
GothicBBB-Medium-EUC-V 0.700 1

「りゅうみん体」の横書きフォント(pstextではフォント番号を35で指定)
「りゅうみん体」の縦書きフォント(pstextではフォント番号を36で指定)
「ゴシック体」の横書きフォント(pstextではフォント番号を37で指定)
「ゴシック体」の縦書きフォント(pstextではフォント番号を38で指定)

漢字出力のためのデータファイルの設定(重要)
以下のスクリプト内には拡張子がeucとなっているデータファイルが設定されています。このファイルは基本的にテキスト形式ですが、漢字はEUCコードというUNIX用のコードで記述されている必要があります。
GMTでは漢字をeucコードでのみ認識可能なので、最初は一般的なテキストで作成してかまいませんが、最終的にEUC形式で保存しておく必要があります。ここでは分かりやすくするために拡張子をeucとしているだけです。(例えば秀丸で編集し、保存でeucコードを選択すると良いようです)

※ GSVIEWのOptions>Advanced Configue>Ghostscript Options のスクリプトに -dWINKANJI を付け加えるのを忘れずに!

5 GMTによる描画(漢字出力のためのサンプルスクリプト for Windows)

以下のスクリプトをdaisetsu.batとして保存。

REM ----------------------------------------------
REM SRTM3を用いた地形図作成サンプル   20090106
REM ----------------------------------------------

rem ----set文で設定される変数----------------------------------------
rem set文の=の左の変数名は、スクリプト中で%で挟まれた形式で参照される。
rem set文の=の右はパスを含めたファイル名、文字列を含んだ数値などが設定できる。

rem ----変数の説明----
rem of:GMTで描画するポストスクリプトファイル名
rem cp:デフォルトのカラーパレットデータ
rem cpt:描画領域の標高に適合されたカラーパレットデータ
rem waku: 描画領域(西端経度、東端経度、南端緯度、北端緯度)
rem grddata:GMTグリッドに変換済のSRTM3グリッド(srtm_65_04.zip)
rem city: 市名データ(市名、市役所緯度経度)国土地理院WEBサイトより入手したデータを利用
rem town: 町名データ(町名、町役場緯度経度)         同上
rem vill: 村名データ(村名、村役場緯度経度)         同上
rem mount: 山岳データ(山名、山頂緯度経度)          同上
rem hokriv: 北海道の河道網データ
rem bp: a:軸目盛数字の間隔(度)、b:白黒帯の間隔(度)、g:線の間隔(度)。分のときは*.*m、秒のときは*.*c
rem r: 1度あたりの描画長(ここではcm)

rem ----set文による変数の設定----
set of=daisetsu.ps
set cp=GMT_globe.cpt
set cpt=GMT_hok.cpt
set waku=142/144/43/44
set grddata=..\topodata\srtm6504.grd
set city=hok_bc_ll.euc
set town=hok_tn_ll.euc
set vill=hok_vl_ll.euc
set mount=h_m_ltln.euc
set hokriv=hokkaido.riv
set bp=a0.5f0.25g0.0
set r=8

rem ----GMTコマンドの説明----
rem makecptコマンド:カラーパレットを標高範囲で調整。-Zは無段階でパレットが変化。
rem grdgradientコマンド:DEMデータから陰影イメージを作成 
rem grdimage:DEMグリッドを描画し、陰影イメージを付加
rem gawk: awkと呼ばれるUNIX系のコマンドの一種.同じパターンのデータ並びから特定の
rem 順番でデータを取り出すことができる。ここではパイプコマンド|により、psxyやpstext
rem にデータを渡している。↓使用例
rem gawk "{print $4,$3}" %hokriv% | psxy では、%hokriv%の4列目($4) と3列目($3)のデータを
rem パイプコマンド|でpsxyに渡している。
rem pscoast:海岸線だけでなく、設定によっては国境や河川も描画でき、-S255 を指定すると
rem 描画領域の外を白抜きできる。
rem -----

rem ----GMTコマンドの実行----
makecpt -CGMT_globe.cpt -T-2300/2300/100 -Z > %cpt%
psbasemap -Jm%r% -R%waku% -B%bp% -P -K > %of%
grdgradient %grddata% -Gtbasegrad.grd -A45 -Ne0.4
grdimage %grddata% -Jm%r% -R%waku% -B%bp% -C%cpt% -Itbasegrad.grd -P -O -K >> %of%
gawk "{print $1,$2}" %hokriv% | psxy -Jm%r% -W1/0/0/255 -M -R -P -V -O -K >> %of%
pscoast -Jm%r% -R -B -W2 -Dh -P -V -S255 -O -K >> %of%
rem ----都市名、山岳名を漢字で描画(データは国土地理院WEBサイトで入手)----------------
gawk "{print $2,$3}" %city% | psxy -R%waku% -Jm%r% -Sc0.1 -W1/0/0/0 -G255/0/0 -O -K >> %of%
gawk "{print $2,$3,8,0,35,5,$1}" %city% | pstext -R%waku% -Jm%r% -O -K >> %of%
gawk "{print $2,$3}" %town% | psxy -R%waku% -Jm%r% -Sc0.075 -W1/0/0/0 -G255/0/0 -O -K >> %of%
gawk "{print $2,$3,6,0,35,5,$1}" %town% | pstext -R%waku% -Jm%r% -O -K >> %of%
gawk "{print $2,$3}" %vill% | psxy -R%waku% -Jm%r% -Sc0.075 -W1/0/0/0 -G255/0/0 -O -K >> %of%
gawk "{print $2,$3,6,0,35,5,$1}" %vill% | pstext -R%waku% -Jm%r% -O -K >> %of%
gawk "{print $4,$3}" %mount% | psxy -R%waku% -Jm%r% -St0.1 -W1/0/0/0 -G255/0/0 -O -K >> %of%
gawk "{print $4,$3,4,0,35,5,$1}" %mount% | pstext -R%waku% -Jm%r% -O -K >> %of%
rem ----標高スケールの描画-----------------------------------------------------------
psscale -D7/-1/10/0.3h -C%cpt% -Ba1000f500 -O >> %of%

参考)以下のイメージは、SRTM3を陰影付きレリーフ図にし、地名を漢字で出力している。
サンプルデータ:hok_bc_ll.euc , hok_tn_ll.euc , hok_vl_ll.euc , h_m_ltln.euc , hokkaido.riv
なお拡張子がeucになっているファイルは、漢字コードがeucに変換されているため、一般的なテキストエディタで開くと漢字が化けてしまいます。秀丸などで開けば内容を確認可能です。

フォルダの位置関係
GMTのバッチファイルのあるフォルダにカラーパレットファイル、グリッドデータや地名、河川データを保存しておきます。別なフォルダに保存しているときはフォルダへのパスを通しておく必要があります。

参考画像