見出し画像

数千の緯度経度座標点の標高を調べる

いつも通り、ニッチなTouchDesignerの使い方です。
大量の緯度経度の標高を瞬時に取得する方法について記録としてまとめた物になります。

この技術を考えた経緯

標高の高いところから撮影した動画にARの様に経度緯度で設定された任意の点を上書きして欲しい依頼でした。

数点なら、1点1点手動で合わせても問題ありません。
しかし、今回は数千点の任意の点を映像に合成してほしいとの依頼だったので、現実的ではなかったので、一括で処理する必要があります。
ここで問題になってきたのが、緯度経度の座標のみで各点に高さ情報が含まれていない事でした。

高さ情報の有り無しの違いの図(真横)

この図のように緯度経度が同じでも、高さ情報がある場合は、赤い点の様に表示されますが、無い場合は青い点の様に表示されます。真横や真上から見る場合は、問題は無いのですが、カメラが斜めになるとズレが発生します。

赤が高さ情報有・青が高さ情報無し

この図は先ほどの、高さ情報の有り無しの違いの図(真横)の設定で、映像の映り方をシミュレーションした物になります。
高さ情報がある場合は、点は山の上を指しますが、無い場合は水中を指してしまいます。
このように、経度緯度だけでは、十分な結果が得られません。
そこで、緯度経度情報から各点の標高データが必要になってきます。

緯度経度から標高を求める方法

緯度経度から標高を求める方法はとても簡単で、
国土地理院のHPで検索できます。


富士山山頂付近で検索

実際に富士山山頂付近で検索すると、いい感じの標高がでてきました。
富士山は3775.51mなのですが、山頂はグランドの様に平たい場所ではなく、凹凸の激しい場所なので、ピッタリ3775.51mの緯度経度の位置を見つけるのは時間がかかりそうです。この記事のためにピッタリ合わせるのは早々に諦めましたw
ちなみに、標高の下のデータソースとは、標高の精度の基準になります。
高精度な地域だと0.3m以内、誤差の大きいところだと、5m以内になります。これは、その地域の計測方法によって異なります。
この精度がARの精度と直結するので、こちらも併せてチェックが必要です。
詳しくはこちらを参照↓

数千の座標の高度を調べる

これで、簡単に緯度経度情報から標高を求める事ができたのですが、
ここで新たな問題が、、、それは任意の点が数千ある事でした。
1点の入力から変換・記録まで10秒でやったとしても、5000点の場合14時間かかりますし、絶対にコピーミス等が発生します。無理です。
そこで、自動的に調べるのに良い方法はないか?調べると、
国土地理院のHPでこのようなページを見つけました。

URLに緯度経度情報を入れると、文字情報として、標高とデータソースを返してくれます。

http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php?lon=138.936976145906&lat=37.8585817933308&outtype=JSON

こちらを叩くと、

{"elevation":4.2,"hsrc":"5m\uff08\u30ec\u30fc\u30b6\uff09"}

と返してくれました。
これで、標高が4.2mと分かります。

調べたい、任意の数千の点をExcelデータでまとめて、
TouchDesignerで先ほどのデータをURLに一括変換します。

その後、1点1点webclient DATを利用して、叩いてあげ、各点の標高を割り出します。

この作業を自動で繰り返すように、システムを組んで

Excelで扱えるデータ形式で書き出してあげると、一瞬で作業は終わります。
この時、国土地理院のサーバーにあまり負荷をかけたくなかったので、
3秒で1点を叩くようにして、夜寝てる間に書き出しました。

TouchDesignerでシステムの組み方はまた別の記事で書きたいと思います。

最後に

本来であればQGISやPythonで行う作業だと思うのですが、それらを調べながら作業するより、慣れたTouchDesignerで作った方が早いんじゃないか?と思い力任せで制作しました。
実際、AR合成した動画はお見せできないのですが、お正月で初登りでもして、サンプル動画作ってみたいと思います。


この記事が気に入ったらサポートをしてみませんか?