3Dモデルをいろいろ作ってみたい

3Dモデルをいろいろ作ろうとがんばっています。苦労した点、役に立ちそうな情報を発信していきます。

立体地図を作る -その3 標高メッシュの作成-

3.標高メッシュの作成

Jaxaのデータは30m×30m単位で標高が記録されていますが、そのままでは3Dプリントするのには細かすぎるのでもう少し大きめのメッシュを生成しその領域内の標高の平均値を割り当てます。ベクター>調査ツール->ベクタグリッドコマンドでメッシュを生成します。下記の例ではメッシュのサイズは緯度と経度それぞれで0.0025度ずつにしています。私の環境(Intel i5-6500@3.2GHz, Memory 16GB)ではあまり広い範囲に対して一度にメッシュを生成しようとすると(おそらくリソース不足で)ハングしてしまったので部分的に(奈良県を覆う程度の)範囲を指定してメッシュを作成しています。メッシュの情報も1つのレイヤとして生成されますのでこの時点で標高データを表すラスタレイヤと行政区画を表すベクタレイヤ、今作成したメッシュを表すベクタレイヤの3つのレイヤが存在することになります。

f:id:ichidaya:20181216111305p:plain

メッシュレイヤの生成

次にラスタ->地域統計->地域統計コマンドでメッシュごとの標高の情報(平均値や最大、最小、最頻値などを指定可能)を抽出しメッシュレイヤに属性として追加します。地域統計がメニューにでてこない場合はプラグイン->プラグインの管理とインストールの機能で活性化してください。

処理が終わるとメッシュのレイヤのマス1つ1つにラスタレイヤから抽出された標高の情報が属性として追加されます。下の属性一覧表で青色の枠部分はレイヤ生成時に付加されたメッシュの位置、大きさの情報、赤枠の部分は地域統計コマンドによってラスタレイヤから抽出された標高情報を示しています。属性の情報はCopy & PasteでExcelなど表計算ソフトに取り込むことができます。

f:id:ichidaya:20181216113533p:plain

標高データ追加後の属性テーブル

 続いて標高メッシュの属性に行政区画情報をマージします。ベクタ->データマネジメントツール->属性の結合によって2つのベクタレイヤの属性を結合します。この機能は2つのベクタレイヤに属する図形間の位置関係(「交差する」とか「重なりがある」)にもとづいて対応がとれた図形がもつ属性をもう一方にコピーします。

f:id:ichidaya:20181216150101p:plain

属性の結合ダイアログ

Runボタンをクリック後、結合後のレイヤの属性テーブルを表示すると各マスの位置情報と標高情報に加えて、行政区画の情報(下図の赤枠部分)が追加されていることがわかります。

f:id:ichidaya:20181216153940p:plain

行政区画の情報が追加された属性テーブル

 Copy & PasteでExcelに取り込んでフィルタで都道府県=29の行を選べば奈良県の標高メッシュが得られます。