国土地理院 基盤地図情報の利用

2D地図で3Dメッシュを打ち抜いて綺麗に

 国土地理院のデーターで、3次元DEM 10mメッシュと2次元海岸線を組み合わせた東京都にある利島の防波堤付近です。

 先の3次元メッシュでは、全域が陸上では問題になりませんが、島のように海岸線が含まれていると沿岸部は非常に汚い仕上がりになります。ベクタ地図とラスタ地図の違いですね。ラスタのメッシュだとこんな風になっていました。

 2次元の海岸線データーを使い、3次元メッシュから打ち抜くと、海岸線が一応綺麗になりますし、高さ(標高)を微調整してよりきれいな仕上がりにもできます。

 方法としては、次のようになります。Pythonのスクリプトを少し改造すれば簡単ですね。

  1.  国土地理院の海岸線は短く分割されているため、QGISその他のソフトを使い、接続します。利島であれば大きな島本体と南東にある横石と呼ばれる小さな岩の2つのレコードになります。このとき、図形の東西南北の位置(緯度と経度)をメモしておきます。

  2.  接続したデーターを使い、Blenderのポリラインで線を描いた後、面にします。このとき、先の東西南北の位置を使い、島の中心が原点ゼロになるよう配置します。この2次元由来の面に厚みをつけておきます。また、カーブオブジェクトからメッシュオブジェクトに変換しておきます。

  3.  予定される3次元メッシュよりもはるかに大きな平面プレートを原点ゼロで1枚作成し、ブーリアンで2次元由来の図形をくり抜きます。くり抜き後に予想される標高の高さよりはるかに上回る厚み付けを行っておきます。これは3次元メッシュをくり抜くための外型になります。

  4.  先の東西南北の位置を使い、標高データーから3次元メッシュを作ります。

  5.  ブーリアンで、3次元メッシュから外型をくり抜きます。

 これで、防波堤のような小さな図形部分もきれいに仕上がります。

 基本的には、2次元地図の25000分の1スケールと10mメッシュの組み合わせでは比較的綺麗になりますが、別の組み合わせをすると位置ずれが多いようです。

 ただし、これまで書いた方法は利島のような小さな図形ではうまくいきますが、大きな図形ではたぶん失敗します。型枠を作るときにBlenderが正しく型を作ってくれないはずです。その場合には、水域のデーターを使い、3次元メッシュから水域の枠を型として少しずつ削り落とす必要があります。数が多くなるので作業は大変です。

 あまり大変な場合は島の形の平面をそのままマージしても見た目は綺麗になります。ただし、座標の頂点数と面の数が大変多くなり、扱いに苦労します。

<トップページに戻る>


Copyright© Shizuka-Toikanbetsu.
inserted by FC2 system