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

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

立体地図を作る -その1標高データの準備-

とあるきっかけでインターネット上のデータから日本や世界の立体地図(3Dモデル)を作れないか調べる機会がありました。なんとかものになりそうなものができたのでやりかたを記録しておきます。

といいつつ、実は(後でわかったのですが)日本の地図については国土地理院がダウンロードできるSTLデータや触地図作成用のツールを提供してくれていました。

立体地図(地理院地図3D・触地図)

私の場合、立体地図モデルに自分なりの味付けをしたいという思いがあり試行錯誤を続けたのですが、とりあえず日本の立体地図を3Dプリントしたいというかたは上記のサイトをチェックしてみてください。

 

私がモデルを作成した手順ですが

  1. 標高データの準備
  2. 行政区画情報の準備
  3. 標高メッシュの作成
  4. 3Dモデル(STLファイル)の生成

 といった順序になります。

 

奈良県を中心に兵庫を除く近畿地方の府県の立体地図をモデル化してDMM.makeに依頼して出力してもらった結果です。水平方向222万分の1、垂直方向が20万分の1ぐらいの縮尺になっています。

f:id:ichidaya:20190103131327j:plain

近畿地方の立体地図試作結果

 

f:id:ichidaya:20190104161431p:plain

斜めからの視点

1.標高データの準備

地図を縦横の細かいメッシュに区切ってメッシュごとにその領域の標高の平均値を求めたり、行政区画とのすり合わせを行うにはフリーのGIS(地理情報システム)であるQGIS(Ver.2.18)を使います。

QGISのダウンロード

 立体地図の基本のデータである標高データを取得しQGISに取り込みます。

 

元ネタである世界各地の標高データはJAXAのWebサイトから入手できます。ユーザー登録が必要ですが名前とメールアドレスぐらいをフォームに記入してサブミットすればすぐに登録してもらえます。

ALOS全球数値地表モデル(DSM) "ALOS World 3D - 30m (AW3D30)"

 注意:私の環境ではブラウザにMicrosoft Edgeを使うと認証エラーがでてダウンロードができませんでした。Internet Explorerでは問題なくダウンロードできています。

正常にログインできると世界地図のクリッカブルマップが表示されるので所望の地域をクリックしていってダウンロードボタンを押下します。日本も複数の領域に分かれているので必要な領域をカバーできる分だけ何個かのファイルをダウンロードします。解凍して????????_AVE_DSM.tifという名前のファイルをとりだして1つのフォルダにまとめておきます。DSM(Digital Surface Model)というのは植生や建物を含んだ高さのデータですが本Blogの記述ではDSMのデータに対して標高という言葉を使っています。

QGISを起動して新規プロジェクトを作成、ラスタ(R)->その他->結合..コマンドで各ファイルを1つ(下記の例ではjapan.tif)にまとめます。日本の本土全体をまとめた場合、私の環境だと数分かかります。統合されたデータは1つのレイヤとしてロードされ、レイヤパネルに表示されます。読み込んだデータの座標参照系はWGS84 (EPGS:4326)です。レイヤ間でデータ処理を行う場合のためにこれをプロジェクトのデフォルトの座標参照系として設定しておきます。下の例では表示を見やすくするため、レイヤのプロパティを変更して標高を擬似カラーで表現しています。

f:id:ichidaya:20181213222428p:plain

取り込んだ標高データの表示

 ここで作ったラスタデータのファイルを後の処理で使うのですが、よほど大きくて高精細の地図を作成するのでなければ、この時点で縮小したデータを作っておいて以後縮小したデータを使ったほうが計算機資源の節約になります。元データのレイヤを選択しておいて右クリックメニューから「名前をつけて保存する…」を選択します。上記のようなダイアログが表示されるので解像度(青線の部分)の数字を変更して保存すれば縮小したデータが格納されます。

f:id:ichidaya:20181227181234p:plain

縮小ラスタデータの作成

 

また、3Dモデルで山の峰の先端がとがってギザギザになるのを防ぐためこの段階でラスターデータの標高値を平滑化しておくこともできます。標準でインストールされているプラグインの中にガウスフィルタがあるのでこれを利用します。プロセッシング->ツールボックスでプロセッシングツールボックスのパネルを開き、"Gaussian"を検索すればプログラムが見つかりますのでダブルクリックで起動します。ただし、メモリの制約があるらしく、私の環境では画像の縮小や切取りを行った後でないと動作しませんでした。

メニューバーにプロセッシングが見つからない場合はプラグイン->プラグインの管理とインストールをクリックしてProcessingを検索、活性化してください。