【blender】基盤地図情報をblenderで読み込む
測量屋であればよく利用すると思いますが、国土地理院の基盤地図情報!このデータをblenderに読み込んでみます。
【目次】
【必要ソフト】
〇基盤地図情報ビューア
https://fgd.gsi.go.jp/download/documents.html
〇CloudCompare・Meshlab
ultimate-seirogan.hatenablog.com
【基盤地図情報ビューア使用方法】
〇基盤地図情報ダウンロード
https://fgd.gsi.go.jp/download/menu.php
国土地理院のIDとパスワードを取得し、上記URLからダウンロードを行います。
今回は図面データに高さをつけるため、両方ダウンロードします。
地図から必要な場所をクリックし、選択リストに加えます。
〇基盤地図情報ビューアの起動
・図面データのエクスポート
インストールした基盤地図情報ビューアを起動し、ダウンロードしたZipファイルを解凍せずにドラッグアンドドロップすると図面が表示されます。
すべてを書き出すとかなりのデータ量になるので必要な部分だけ短径領域設定で選択し、エクスポートします。
・DEMデータのエクスポート
DEMデータも図面データと同様に基盤地図情報ビューアにZIPファイルのまま読み込みます。エクスポートのやり方だけ多少異なります。図面データ書き出し時と同様に短径領域設定で書き出す範囲を設定します。
エクスポートタブの標高Meshをシェープファイルへ出力を選択し、エクスポートします。
【Cloudcompareで変換】
〇図面データ
Cloudcompareを起動し、基盤地図情報ビューアから書き出したSHPファイルをすべて選択し、ドラッグアンドドロップで読み込む。
書き出しはblenderにインポートした後の作業を考えてレイヤごとに書き出すのがおすすめです。(書き出しはDXFを選択)
〇DEMデータ
図面データと同様にSHPファイルに変換したDEMデータを読み込みます。blenderに読み込む時にメッシュデータで読み込んでおいたほうが図面データに綺麗に高さを与えられるため、メッシュデータを作成します。
CloudCompare上でもメッシュデータは作成できるのですが、メッシュ作成のアルゴリズムがMeshlabのほうが優れているように思いますので(私の設定に関する知識が足りないだけだと思いますが、、、)一度PLY形式で点群データを保存し、Meshlabで開きます(こちらもドラッグアンドドロップで開けます)。
『Remeshing,Simplification and Reconstruction』→『Surface Reconstruction:Ball Pivoting』を選択。
Applyを押すとメッシュが生成されます。(少し時間がかかります)メッシュの作成が終わったら
『File』→『Export Mesh As』でPLY形式で書き出し(メッシュの形式であれば何でもよいです)
【blenderで読み込み】
〇図面データ
blenderを起動し、『ファイル』→『インポート』→『AutoCAD_DXF』でインポートします。※blenderインストール時はDXFインポートのアドオンがオフになっているためアドオンの設定を行ってください。
また、DXF読み込みに関しては【blenderアドオン】import-Export Autocad DXF Format (DXF)の記事を参考にしてください。
ultimate-seirogan.hatenablog.com
ultimate-seirogan.hatenablog.com
〇DEMデータ
Meshlabで書き出したDEMデータをインポートします。(書き出した形式に応じてインポートしてください)図面データをオフセットしている場合は同じ移動量でオフセットします。
読み込むと上記のように綺麗に重なります。ただし、図面データのほうはZ値が0になっていますので高さがありません。DEMデータに合わせて高さ情報を付与します。
〇図面データに高さ情報を付与
読み込んだままの状態だと図面のほうが低くなっているはずなので、図面データをすべて選択し、『G』→『Z』で高さ方向だけ移動し、メッシュよりも高くします。
コンテクストのモディファイアを選択し、モディファイアーを追加内のシュリンクラップを選択します。
上記の設定にし、Z軸だけメッシュに張り付いていれば適用をクリック。この作業をレイヤごと繰り返します。カーブでの編集予定がなければカーブからメッシュへ変換してからシュリンクラップするほうが動作が軽いです。(オブジェクトモードで選択中に3Dビューポート上で右クリック、メッシュに変換をクリックする。)
今回試しに行ってみた部分でいうと、川部分にはメッシュが張られておらず、シュリンクラップでメッシュのZ軸に吸着していなかった。DEMデータからメッシュを作成するときに川までメッシュが張られるように設定するのが良いと思います。いずれ検証します。