FMEで道路LOD1を作成する方法

アサミ情報システム株式会社
峯上 佳丈
はじめに
アサミ情報システム(以下、当社)ではPLATEAU業務に関わる3Dモデル作成やCityGMLの作成を行っております。
前回の記事では、FMEを使った建築物LOD1モデルの作成をご紹介しました。PLATEAUのCityGMLを作成された経験のある方はFMEを利用されている方が多くいらっしゃると思いますが、FMEはCityGMLを作成するためだけではなく、モデル作成前のデータ整備にも活用することができます。
今回は、3Dモデルを作り始めたエンジニアの方向けにFMEを活用した道路のLOD1の作成手順をご紹介いたします。
※:本稿で扱うのは2D段階の道路面作成、区切り及び属性付与までです。CityGMLへの出力は別工程となるため、ここでは割愛します。また、標準作業手順書は道路縁から道路面を作成する要件を示していますが、道路候補の抽出方法までは規定していません。本稿でご紹介する抽出方法は、FMEを用いた前処理例です。
1.DMの道路縁から道路ポリゴンを作成
3D都市モデル標準作業手順書では、道路LOD1は都市計画基本図等のDMデータから道路縁を取得し、道路縁をつないだ面として作成します。最初に、ポリゴン化に使用する道路縁をDMの図式分類コードから抽出します。
1.1 DMから道路縁を抽出
主に確認する図式分類コードは次のとおりです。21XXの地物を一括して道路縁とみなさず、徒歩道モデルの対象となる2106:庭園路等や2103:徒歩道は道路モデルに含めないように留意します。
•2101:道路縁(街区線)。道路LOD1の外周作成で中心となるコードです。
•2107:トンネル内の道路。対象範囲にトンネル内の道路を含める場合は、道路縁の取得状況を確認します。
•2203:道路橋(高架部)。後工程で橋梁又は高架橋の区間を特定する素材にします。
•2219:道路のトンネル。坑口を基にトンネル区間の端部を確認する素材にします。
※:自治体独自の分類コードを使用している場合があります。DMの作成時に適用された公共測量作業規程、取得分類コード表を必ず確認してください。

図1:DMから道路縁を抽出するワークスペース例
(1) Reader(都市計画基本図等のDMデータ)
(2) Tester(DM図式分類コード:2101、2203。必要に応じて2107等を追加)→ 道路縁を抽出
(3) 道路縁抽出後のジオメトリクリーニング:GeometryValidator(近接閾値:0.01m。Duplicate Consecutive Points、Self-Intersections in 2D等)→ ポリゴン化の妨げになるジオメトリ不備を検出及び修正
(4) Snapper(Snapping Tolerance:0.01m)→ 微小な未接続だけを補正
※:近接閾値とSnapperの許容値は、PLATEAUの品質評価で用いる0.01mを基準とします。自動補正で別の道路や敷地の入口を誤接続しないよう、補正箇所(Repairedから出力されたデータ)を確認します。
1.2 道路縁を閉じた面にする
道路縁は道路網全体では閉じた線になっていないため、道路縁だけではポリゴンを作成できません。そこで、作成対象範囲ポリゴンを外側へバッファして一時的な処理範囲のポリゴンを作り、LineOnAreaOverlayerでこのポリゴンを道路縁により分割します。作成対象範囲を基準にすることで、HullAccumulatorのように作成対象外の道路縁まで含む外包面が生成されることを避けられます。

図2:道路縁を閉じた面にするワークスペース例
(1) Reader(作成対象範囲ポリゴン)→ Bufferer → 作成対象範囲の外側に余裕を持たせた処理範囲ポリゴンを作成
(2) LineOnAreaOverlayer(Mode:Split Areas With Lines)→ 処理範囲面を道路縁で分割し、道路縁で囲まれたポリゴンを作成
Buffererの距離は、道路縁が後工程の交差部や道路構造の変化点での区切り以外に途中で切れないよう、作成対象範囲の外側に十分な余裕を持たせて設定します。PLATEAUでは、道路は行政界で区切らず、行政界を跨ぐ道路オブジェクトを隣接する市区町村のデータセットに重複して含めることを許容しています。そのため、処理範囲ポリゴンも作成対象範囲のみで機械的に区切るのではなく、道路縁の区切り位置(交差部やトンネル及び橋梁部等の位置)を確認し、必要な範囲を含むように設定します。
1.3 道路らしいポリゴンを粗く抽出
LineOnAreaOverlayerで分割した処理範囲ポリゴンには、道路だけでなく街区の内側や河川敷等のポリゴンも含まれます。道路縁が連続して道路網を形成している場合、道路部分は街区を穴として持つドーナツポリゴンになる可能性が高い一方、街区の内側や河川敷等は穴を持たない単純ポリゴンになることが多くあります。ここでは、この形状の違いを利用して道路候補を粗く絞り込みます。

図3:道路らしいポリゴンを粗く抽出するワークスペース例
(1) GeometryValidator → LineOnAreaOverlayerで分割したポリゴンの自己交差、重複頂点、無効な穴等を検査及び修正
(2) HoleCounter(Hole Count Attribute:_hole_count)→ 各ポリゴンが持つ穴の数を属性として取得
(3) Tester(_hole_count > 0)→ 穴を1つ以上持つドーナツポリゴンを道路候補へ、_hole_count = 0の単純ポリゴンを候補外へ分岐
候補外へ分岐した単純ポリゴンは、その場で破棄せず確認用レイヤとして保存します。道路縁の未接続や立体交差部では、本来は道路である面が単純ポリゴンになることがあるためです。
(4) AreaBuilder → CenterPointReplacer(Mode:Any Inside Point)→ DM建築物が線の場合は、閉じた建築物の線をポリゴン化し、建築物代表点を作成
(5) SpatialFilter(建築物代表点)→ 道路候補のうち建築物代表点を含むポリゴンを誤抽出の疑いがある候補として分岐
建築物代表点は、ドーナツ判定を補う確認材料として使います。建築物が立地するポリゴンは道路ではない可能性が高いため、道路縁の未接続で生じたポリゴン等を特定しやすくなります。また、建築物ポリゴンそのものではなく代表点を使うことで、建築物形状のわずかな重複や位置ずれによる過剰な抽出を抑えられます。
また、立体交差部では、上の道路と下の道路を別々の面として扱うため、一方又は両方が周囲の道路網とつながらず単純ポリゴンとなり、道路候補から過剰に除外されることがあります。候補外レイヤをDMの道路橋やトンネルと重ね、立体交差部を重点的に目視確認し、道路である単純ポリゴンを道路候補へ復元します。
GISソフト上で上記の箇所を主に確認及び修正します。
1.4 GISソフトで形状を修正
道路候補と候補外ポリゴンをGISソフトに読み込み、DM、航空写真等を背景にして最終確認します。ドーナツ判定で候補外となった単純ポリゴンも表示し、特に立体交差部で道路面が過剰に除外されていないかを確認して、必要な面を道路候補へ戻します。そのうえで誤抽出を削除し、抽出漏れを追加し、道路縁の未接続や誤接続を修正します。立体交差部では、高架道路と下の道路を別々の面として取得し、2D上で面が重なる状態にします。
※:使用するDMに高架下道路の陰線データが含まれるかどうかは、自治体独自の仕様等により異なり、全国一律には保証されません。陰線データがない場合は、原典資料の航空写真を用いたステレオ図化等により下の道路縁を取得し、上下の道路を別々の面として作成することができます。
2.交差部・橋梁部・トンネル部の区切りを作成
道路LOD1は、道路縁により囲まれた面を作るだけでは完成しません。標準作業手順書では、交差部、道路構造が変化する場所、位置正確度又は取得方法が変わる場所で道路オブジェクトを区切ることが求められています。本稿では、交差部・橋梁部・トンネル部を手動で区切る流れを説明します。
2.1 道路中心線と交差点候補を作成
まず、作成した道路ポリゴンから道路中心線を作り、その交点をポイントにします。このポイントは、後工程で交差部ポリゴンへ「交差部」の属性を付けるための素材です。

図4:道路中心線と交差点候補を作成するワークスペース例
(1) Dissolver → 連続する道路候補を一体化し、中心線作成前の境界を整理
(2) CenterlineReplacer(Mode:Centerline)→ 道路ポリゴンを中心線に変換
(3) Intersector → 中心線を交差位置で分割し、Nodeポートから交点及び端点、Intersectedポートから線分を取得
(4) PointOnLineOverlayer → Nodeと分割後の線分を重ね、各Nodeに接続する線分数(Overlap Count:_connection_count)を取得
(5) Tester(_connection_count ≧ 3)→ 三差路以上の交差点候補を抽出
(6) AttributeCreator(uro:sectionType=4)→ 交差部候補ポイントに属性値を設定
CenterlineReplacerの結果は、広場、中央分離帯、ラウンドアバウト等で枝分かれすることがあります。またIntersectorは2D上の交差を扱うため、立体交差でも交点が作成されます。DMの橋梁やトンネルと重ね、不要な交点を除外します。
2.2 交差部の区切り線を手動で配置
交差部を自動で区切るツールも公開されていますが、本稿ではGISソフトで区切り線を手動配置する流れを記載します。隅切りの有無、四差路・多差路・三差路により区切り方が異なるため、具体的な作図方法は3D都市モデル標準作業手順書 D.3.1.2.1を参照してください。
(1) 交差点候補ポイントを表示(交差部候補を見落とさないための目印にする)
交差部ではない箇所にポイントがあった場合は、ポイントを削除及び修正する。
(2) 標準作業手順書に従って区切り位置を判断し、道路ポリゴンを横断する線を作図
(3) 区切り線の両端は、スナップミスを避けるため道路ポリゴンの外側まではみ出すように配置
(4) 立体交差では、高架道路(上の道路)と下の道路を別々の道路面として扱い、それぞれの道路について区切り位置を判断して区切り線を配置
※:立体交差の上下の道路は、2D上で面が重なっていても別インスタンスです。平面上の交差位置を一つの交差部としてまとめず、上の道路と下の道路を分けて区切り作業を行います。
2.3 橋梁及びトンネルの区切り線を手動で配置
橋梁及びトンネルの区間は、DMの道路橋(2203)と道路のトンネル(2219)を基に確認し、道路構造が変わる位置へ区切り線を配置します。
道路橋(2203)のひ開部に注意します。公共測量標準図式では、道路橋は縁線を取得し、ひ開部は自動発生して表示するとされています。ひ開部は橋梁区間の実位置を示すものではないため、実際に取得された橋の縁線の端部や橋床部の範囲を確認して区切ります。
道路のトンネル(2219)は地下部への出入口である坑口を表し、トンネル内部の道路経路そのものとは役割が異なります。坑口の位置を基に入口・出口の区切り線を作り、必要に応じてトンネル内の道路(2107)も併せて確認します。
2.4 構造種別ポイントを配置
通常区間以外の各道路ポリゴンに構造種別を付与できるよう、ポリゴン内部へポイントを配置します。交差部ポイントは交差点候補ポイントを使用します。橋梁、高架橋、アンダーパス、トンネルは確認した区間の内部へ手動で配置します。土工区間・通常区間にはポイントを配置せず、後工程でuro:sectionTypeの初期値1を付与します。
•1:土工区間・通常区間
•2:高架橋
•3:橋梁
•4:交差部
•5:アンダーパス
•6:トンネル
道路橋(2203)には橋梁と高架部が含まれるため、DMコードだけでuro:sectionTypeを一律に決めず、実際の道路構造を確認して「2:高架橋」又は「3:橋梁」を選択します。また、高架内やアンダーパス内の交差部など複数の種別が重なる場合は、標準作業手順書に従い「4:交差部」を優先します。
ポイントは区切り線やポリゴン境界上を避け、対象ポリゴンの内部へ置きます。後工程で使用するPointOnAreaOverlayerでは境界上のポイントが両側の面に含まれる場合があるためです。
3.区切り線で面を分割し、構造種別を付与
交差部・橋梁部・トンネル部の区切り線と構造種別ポイントがそろったら、FMEで道路ポリゴンを分割し、ポイントの属性を各ポリゴンへ転記します。

図5:区切り線で面を分割・構造種別を付与するワークスペース例
(1) Reader(道路ポリゴン)、Reader(区切り線)
(2) LineOnAreaOverlayer(Mode:Split Areas With Lines)→ 区切り線で道路ポリゴンを分割
(3) GeometryValidator → 分割後の自己交差、重複頂点、無効ポリゴンを検査
(4) AttributeCreator(uro:sectionType=1)→ 分割後ポリゴンへ通常区間の初期値を設定
(5) Reader(構造種別ポイント)
(6) PointOnAreaOverlayer(属性をAreaへ転記、Overlap Count:_overlapsを作成)→ ポイントのuro:sectionTypeを対象ポリゴンへ付与
(7) TestFilter(_overlapsの値で分類。ポイント数=0、1、2以上)→ 未付与、正常、競合に分岐して確認
LineOnAreaOverlayerのSplit Areas With Linesでは、線が面を完全に二分した場合に分割されます。区切り線が道路境界まで届いていない場合は分割されないため、実行後にポリゴンの区切り位置と区切り線の位置が一致しているかを確認します。
構造種別ポイントが0個の面は通常区間として扱えますが、橋梁、トンネル、交差部に該当する面では入力漏れの可能性があります。2個以上のポイントを含む面は、区切り不足、ポイント位置の誤り又は属性競合を疑い手動確認へ回します。
4.ジオメトリと属性を確認するには
道路モデルは連続する面が多いため、小さな未接続や区切り漏れが広い範囲へ影響します。工程の末端だけで確認するのではなく、ポリゴン化、手動修正、区切り、属性付与の各段階で処理結果をキャッシュしておくと手戻りを減らせます。
主な目視確認項目
•候補外の単純ポリゴンを立体交差部で確認して必要な道路面を復元している
•道路部以外のポリゴンが道路ポリゴンに含まれていない
•立体交差は高架道路と下の道路を別インスタンスとして作成されている
•四差路・多差路・三差路が標準作業手順書の考え方で区切られている
•橋梁、高架橋、トンネルの範囲とuro:sectionTypeがDM及び補助資料と整合している
•位置正確度又は取得方法が変わる場所でも道路オブジェクトを区切り、データ品質属性を記述できる状態になっている
5.参考資料
•3D都市モデル標準作業手順書(附属書D 妥当な道路オブジェクト):D.3.1.2、D.6.1.2.1、D.6.1.2.2、D.6.2.2、D.6.2.3を参照
•作業規程の準則(付録7 公共測量標準図式):道路縁、道路橋、道路のトンネルの分類・取得方法を参照
•FME Form Documentation:Bufferer、LineOnAreaOverlayer、GeometryValidator、Snapper、HoleCounter、Tester、AreaBuilder、CenterPointReplacer、SpatialFilter、Dissolver、CenterlineReplacer、Intersector、PointOnLineOverlayer、AttributeCreator、PointOnAreaOverlayer、TestFilter
※:各資料及びFMEの仕様は2026年8月27日時点の公開情報を確認しています。
最後に
当社では3Dモデルの作成やCityGMLの作成をはじめ、様々なGISデータの作成・活用も行っております。
もしお困りごとなどありましたら当社の問い合わせフォームよりお気軽にご相談ください。
※:FME®を使用。FME®はSafe Software Inc.の登録商標です。
■お問い合わせ先
アサミ情報システム株式会社 https://www.asamisun.com/contact
(2026年9月 ニュースレター掲載)