とあるやりたいことがあって(内緒)、まずは富士山のレイ・トレーシングをやりたくなった。
富士山の数値データがないかなあと探したところ、そのものずばりは見つけられなかったが、アメリカのNASAが公開しているSRTM(Shuttle Radar Topography Mission)というスペースシャトルを用いて集められた標高データが使えそうなことがわかった。
これ ↑ は伊豆半島の沼津の西の端っこあたりから真北を見たイメージ。
実際の写真だとHajime HAYASHIDAさんの沼津市戸田や大瀬崎あたりから見た富士山が近そう。
とある事情(後述)があり、左側の山並みが写真とCGでは違って見えるが、それ以外は結構いい感じじゃないか?
ということで、以下はメモ。
ID作成
SRTMのFTPサイトに入ってファイルをダウンロードするためにはID作成が必要。
まずは、https://urs.earthdata.nasa.gov/users/newからIDを登録。
Usernameは4~30文字。使える文字は英数字(a-zA-Z0-9)とピリオド(.)と下線(_)。空白はNG。ピリオド・下線で始まったり、終わったりはNG。ピリオドと下線の連続もNG。
Passwordは8文字以上。少なくとも大文字が1個、小文字が1個、数字が1個含まれていなければならない。
赤い*の項目を入力したら各種使用条件を確認して「REGISTER FOR EARTHDATA LOGIN」。
アクティベーション
これでIDが作成できたのかというと、実はアクティベーションがまだ。
登録したIDとパスをタイプしてログインしようとすると、「You must activate your profile to login.」という画面が出るはず。
この画面に「Send Activation Email」というボタンがあるので、これをクリック。
これをクリックすることで登録したメアド宛にアクティベーション用のリンクが送られる。登録するだけでは送られないので注意。
ダウンロード・ファイル名
SRTMにはいくつかのバージョンがあるようだが、SRTM3のVer.3というのが良いだろう。
これは全世界が角度3秒(1秒は1度の1/3600。3秒は1度の1/1200)で区切られたデータ。約90m間隔。もちろん日本のデータもある。
SRTM3のダウンロード用URLはhttp://e4ftl01.cr.usgs.gov/SRTM/SRTMGL3.003/2000.02.11/
SRTM3のファイルは経緯度1度の範囲ごとにZIPファイルになっている。
ファイルの命名規則は、エリアの左下(言い換えると南西)の経緯度。
例えば富士山山頂の経緯度はだいたい北緯35.4度・東経138.7度。このエリアを含むのは北緯35度~36度・東経138度~139度。このエリアの左下は北緯35度・東経138度なので、ファイル名はN35E138となる。
実際のファイル名はN35E138.SRTMGL3.hgt.zip。(対応するXMLファイルはあってもなくても良い)
これをunzipするとN35E138.SRTMGL3.hgtというファイルになる。
HGTファイルフォーマット / HGT File Format
HGTファイルはバイナリーのファイルである。
このファイルのフォーマットであるが、2バイトの符号付き整数を並べたものである。
EndianはBigなので注意。Little-EndianであるIntel系のCPUで処理する場合、バイトのスワップをお忘れなく。
数値は標高をm単位で表現したもの。欠損値の場合には-32768(0xFFFF)になっている。
経緯度1度の範囲を3秒で区切っているので、データの総数は1201*1201=1442401個。(なぜ3600÷3=1200ではなくて1201になるのかは植木算というヤツ)
1個のデータが2バイトなのでファイルのサイズは1442401*2=2884802バイト。
データの並びであるが、これは左上が起点になって、東西方向が優先という並びになっている。
つまり、北西の端っこから東へ1201個。次は一つ(3秒)南の場所について西から東へ1201個。… 最後は一番南側について西から東へ。
東西南北補正
南北1度というのは約110kmに相当する。つまり2π×6371÷360=111.2km。ここで6371kmは地球の半径。
一方、東西1度は緯度の補正が必要なので注意。例えば北緯35度~36度であれば、東西1度は2π×6371÷360×cos(35.5度)=90.5km程度。
真四角ではなくて南北にちょっと(約2割)長くなる。
地球は丸かった
普段は地球が丸いということは気にしなくても良いだろうが、100kmとかの話になると丸いのが無視できない。
北に1度(110km)行くと、地面は6371km×(1-cos(1度))=0.97km=970m下がる。
つまり約1kmもずれる。山の高さと比べたら無視できないずれである。
最初に書いた「とある事情(後述)があり、左側の山並みが写真とCGでは違って見える」というのは実はこのこと。
このCGでは地球の丸さを考えていないため、遠くの山々は実際よりも高く見えてしまう。これが富士山よりも北にある左側の山並みが写真とは違って見える理由。
東西の丸みも800mくらいになるので、これも見る方向によっては無視できない。
ふーむ。面倒だねえ。
【参考URL】
SRTM QuickStart
SRTM Topography
スペースシャトル地形データ Shuttle Radar Topography Mission (SRTM)
StackExchange

