SRTMについて

ホーム FTPサイト

.hgt.zipファイルの変換:

HGTファイルは、1201*1201*2バイト(big endian)のrawデータ。

以下のスクリプトで、一発でヘッダー情報とrawデータに変換可能:

ダウンロード


ダウンロードと解凍/読み込み/モザイク処理 (GRASSを例として)

$ wget ftp://edcsgs9.cr.usgs.gov/pub/data/srtm/Eurasia/N35E139.hgt.zip
$ wget ftp://edcsgs9.cr.usgs.gov/pub/data/srtm/Eurasia/N35E140.hgt.zip
$ wget ftp://edcsgs9.cr.usgs.gov/pub/data/srtm/Eurasia/N36E139.hgt.zip
$ wget ftp://edcsgs9.cr.usgs.gov/pub/data/srtm/Eurasia/N36E140.hgt.zip

以下は、zipファイルをGRASSに読み込ませるスクリプト。
LatLonのロケーションで。


#!/bin/sh
fn=$1
lat=`echo $fn | cut -b 2-3`
lon=`echo $fn | cut -b 5-7`

s=`echo $lat-0.000416666 | /usr/bin/bc -l` 
n=`echo $lat+1.000416666 | /usr/bin/bc -l`
w=`echo $lon-0.000416666 | /usr/bin/bc -l` 
e=`echo $lon+1.000416666 | /usr/bin/bc -l` 

unzip $fn
r.in.bin input=${fn%.zip} output=${fn%.zip} west=$w east=$e \
         south=$s north=$n c=1201 r=1201 byte=2 anull=-999 -b


このスクリプトを、SRTM_GRASS_import.shとするなら、
$ ./SRTM_GRASS_import.sh N35E139.hgt.zip
で、GRASSにN35E139.hgtというラスターマップができる。

	 

普通に手動でやるなら、それぞれunzipしたあと、
r.in.bin input=N35E139.hgt output=N35E139 west=138.99958333 east=140.00041666 south=34.99958333 north=36.00041666 c=1201 r=1201 byte=2 anull=-999 -b
r.in.bin input=N35E140.hgt output=N35E140 west=139.99958333 east=141.00041666 south=34.99958333 north=36.00041666 c=1201 r=1201 byte=2 anull=-999 -b
r.in.bin input=N36E139.hgt output=N36E139 west=138.99958333 east=140.00041666 south=35.99958333 north=37.00041666 c=1201 r=1201 byte=2 anull=-999 -b
r.in.bin input=N36E140.hgt output=N36E140 west=139.99958333 east=141.00041666 south=35.99958333 north=37.00041666 c=1201 r=1201 byte=2 anull=-999 -b


モザイク処理
r.mapcalc "dummy1=if(isnull(N35E139),-1,N35E139)"
r.mapcalc "dummy2=if(isnull(N35E140),-1,N35E140)"
r.mapcalc "dummy3=if(isnull(N36E139),-1,N36E139)"
r.mapcalc "dummy4=if(isnull(N36E140),-1,N36E140)"

r.mapcalc "dummy5=max(dummy1,dummy2,dummy3,dummy4)"
r.mapcalc "N35_37E139_141=if(dummy5==-1,null(),dummy5)"

r.colors map=N35_37E139_141 color=grey.eq
d.mon start=x0
d.rast N35_37E139_141