山頂立体地図データ
以下の国土地理院のサイトにて日本の山岳データが取得できます。
立体地図(日本の主な山岳)
*山名をクリックすると、「地理院地図」で、山頂付近が表示されます。
【3D表示】をクリックすると、山頂付近が立体地図表示されます。
例えば富士山を選択して3D表示すると以下のようにブラウザに表示されます。
マウスで任意の角度にぐりぐりと動かすことも可能です。
このデータが素晴らしいのは、元データをダウンロード可能な点にあります。
フォーマットとしては3種類、STL*1とVRML*2とWebGLです。
STLファイル | 色を付けられない3Dプリンタ用のデータ | .stl |
---|---|---|
VRMLファイル | フルカラーの3Dプリンタ用のデータ | .wrl / .png / .pgw |
WebGL用ファイル | ブラウザでぐるぐる回す用のファイル | .html / .csv / .png / .pgw |
今回は下記記事同様でWebGL用のファイルを利用し、標高データを二次元配列に格納して等高線としてプロットを行います。
標高データを等高線に
今回も富士山のデータを利用します。
標高データが格納されているdem.csvファイルを用います。
$ cat dem.csv | awk 'BEGIN{RS=",";ORS="\n"}{print $0}' | wc 66049 66049 1220776
縦横257行のデータを配列に落とし込みます。
> mt_fj <- matrix(scan("C:\\Users\\XXXX\\Downloads\\dem.csv",sep=","),nrow=257) Read 66049 items
contour
関数を用いて等高線プロットが行えます。
> contour(mt_fj)
問題なく可視化できました。
また本データをimage
関数に入力するとカラーの等高線のようにも扱えます。
plotlyパッケージを利用
Plotlyというオープンソースのグラフィック用ライブラリがあり、PythonやMATLAB、そしてR言語用に提供されています。.
R言語で利用するためには以下でインストール、読み込みを行います。
> install.packages("plotly") ... > library(plotly) ...
以下のような引数で実行すると
> plot_ly(z=mt_fj,type = "contour")
以下に一時ファイルが作成され
file:///C:/Users/XXX/AppData/Local/Temp/RtmpM3mTlA/viewhtml3f302ddf88f/index.html
ブラウザで以下のようにインタラクティブなプロット結果を確認できます。
終わりに
本記事ではオープンデータである山岳データを配列データとして格納して等高線として可視化しましたが、二次元データであれば同じように可視化できます。
このような可視化が行えることを頭の片隅に入れておくと、どこかで役立つと思います。
以上、ご参考になれば幸いです。