2016-03-29

基盤地図情報DEMによるラインのドレープ (3Dラインへの変換)

ベクタージオメトリ用のほとんどのデータフォーマットは、ジオメトリの各頂点が高さ方向のZ座標を持つ「3D」ベクタージオメトリの格納をサポートしています。精度の高い3Dベクタージオメトリを作成するのにはそれなりのコストがかかりますが、既存の「2D」ベクタージオメトリの各頂点のZ座標に、地形を表す3Dモデル (サーフェス) から読み取れる標高値を与えることによって、簡易に3D化することで間に合う場合も多いと思います。

サーフェスの起伏に沿ってベクタージオメトリの各頂点にZ座標を与える処理は「ドレープ」 (drape) と呼ばれています。FMEでは、サーフェスデータがない場合でも、3Dポイント/ライン、DEM (数値標高モデル) ラスター、あるいは点群 (ポイントクラウド) があれば、それに基づいてTIN - 不規則三角網サーフェスを作成したうえで、ベクタージオメトリのドレープを行うことができます。

ここでは、利尻島 (北海道北部) の区域をサンプルとして、基盤地図情報数値標高モデル (10mメッシュDEM) に基づくサーフェスを作成するとともに、それによって道路中心線 (2Dライン) をドレープするワークスペース例を掲げます。

FME 2016.0.1.1 build 16177

ソースデータ
1. 数値標高モデル (XML): 利尻島を含む範囲について、基盤地図情報ダウンロードサイトからダウンロードした2次メッシュ5区画分 (メッシュコード: 6741-51, -52, -61, -62, -71) の10mメッシュDEMデータ
2. 道路中心線 (Esri Shapefile): 利尻島を含む範囲について、国土地理院ベクトルタイル提供実験「道路中心線」データを FME によって取得、Shapefile 形式で保存したデータ (2Dライン)

国土地理院「地理院タイル」データ (ベクトルタイル提供実験で提供されているデータを含む) の取得に関しては、次の記事を参照してください。
> 地理院タイルデータの取得 - 西之島付近噴火活動 正射画像の例
> ベクタージオメトリの色 - 国土地理院「地形分類」


FMEワークスペース例

















(ブックマーク上)
[JP_FGD_DEM] リーダー (FME Store カスタムフォーマット): 基盤地図情報DEM (XML) をラスターとして読み込む。
RasterMozaicker: 複数のラスターを結合してひとつのラスターに変換する。
Reprojector: 座標系を変換する (この例ではJGD2000平面直角座標第XII系に変換)。

(ブックマーク下)
[ESRISHAPE] リーダー: 道路中心線データ (Shapefile, 2Dライン) を読み込む。
Reprojector: 座標系を変換する (この例ではJGD2000平面直角座標第XII系に変換)。

SurfaceModeller: DEMラスターに基づいてサーフェスを作成するとともに、それによって道路中心線をドレープする。
[ESRISHAPE] ライター: ドレープ後の道路中心線、サーフェスをそれぞれ Shapefile 形式のファイルに保存する。


SurfaceModeller の TINSurface ポートから出力されるTINサーフェスのデータ構造は Mesh ですが、[ESRISHAPE] ライターは、それを Shapefile (Multipatch タイプ) 形式のファイルに保存することができます。3Dモデル (サーフェス、ソリッド) のデータ構造に関しては、次の記事を参照してください。
> Esri Shapefile 形式による3Dモデルの保存

なお、国土地理院ベクトルタイル提供実験サーバーから道路中心線データを取得する処理をこのワークスペースに組み込んで同時に実行することもできますが、それは今回の主題ではないので、データフローを簡素にするため、あらかじめ別のワークスペースによって取得して Shapefile 形式のファイルに保存したデータを使いました。


結果: 基盤地図情報DEMに基づいて作成したサーフェスとドレープ後の道路中心線 (オレンジ色のライン)
FME Data Inspector による3D表示。サーフェス (地形) の起伏に沿って道路中心線が3D化されました。
利尻島の区域について、基盤地図情報数値標高モデル (10mメッシュDEM)、および、国土地理院ベクトルタイル提供実験「道路中心線」データに基づいて作成















SurfaceModeller は、Points/Lines ポートから入力された3Dポイント/ライン、DEMラスター、あるいは点群 (ポイントクラウド) に基づいてTINサーフェスを作成し、DrapeFeautres ポートからベクタージオメトリを持つフィーチャーが入力された場合には、それに対するドレープを同時に行います。

このトランスフォーマーは多機能で、TINサーフェスの作成とドレープのほかに、等高線、DEMポイント、DEMラスター、ボロノイ図の作成も同時に行うので、場合によってはオーバースペックかも知れません。次のように機能ごとのトランスフォーマーが用意されているので、目的に応じて使い分けることもできます。

トランスフォーマー機能概要
ContourGenerator等高線 (3Dライン) の作成
DEMGeneratorDEMポイントの作成
RasterDEMGeneratorDEMラスターの作成
SurfaceDraperベクタージオメトリのドレープ
TINGeneratorTIN (不規則三角網) サーフェスの作成
VoronoiDiagrammerボロノイ図 (ボロノイ領域を表すポリゴン) の作成

例えば、上記の例で道路中心線のドレープだけを行う場合には SurfaceDraper、サーフェスの作成だけを行う場合には TINGenerator が使えます。TINGenerator に関しては、次の記事も参照してください。
> TIN (不規則三角網) の作成

0 件のコメント:

コメントを投稿