技術コラム

CityGMLから”屋根の3D表面積”をFMEで集計し、建物属性に付与

サマリー

太陽光設置規模の試算に必要な「屋根の実面積」は2Dでは把握しにくいという課題があります。そこで、PLATEAUのCityGML(建築物LOD2のRoofSurface)をFMEで読み込み、SRS軸順(2,1,3)設定と平面直角座標(第6系)へ変換後、AreaCalculator(Sloped Area)で屋根の3D表面積を算出します。さらに、StatisticsCalculatorでgml_parent_id単位に面積を集計し、FeatureMergerで建物属性へ付与します。これにより、m²の屋根の実面積が都市スケールで建物ごとに属性化され、LOD別出力・他ソフトでの利活用が容易になります。

用語解説

  • CityGML:都市や景観の3Dモデルを表現・交換するためのOGC標準の概念モデル/交換形式。(XML/GMLベース)
  • LOD2:CityGMLの詳細度レベルの一つ。屋根形状(切妻・寄棟など)を表現した建物外形(Solid)と、屋根・壁などの境界面(Surface)を持つ。
  • DSM(Digital Surface Model):建物・樹木など地上物を含む地表面の標高モデル。DTM(裸地)に対し、上物を含むのが特徴。
  • FME: Safe Software社の空間データETL/統合プラットフォーム。多形式の変換・加工・検証をノーコードで実行可能。
  • PLATEAU:国土交通省主導の3D都市モデル整備・活用プロジェクト。CityGML準拠の建物・道路・災害リスクなどのデータ(LOD1~4等)を自治体単位で整備し、オープンデータとして公開。ユースケース実証やツール群(SDK/ビューア)も提供し、都市計画・防災・不動産・エネルギーなどでの利活用を促進する取り組み。

記事本文

当社では3D都市モデルの構築にFMEを利用する事が多くあります。
FMEはCityGMLの構築や変換の為に利用される事が多いですが、それ以外でも3Dデータを利用したデータ処理や論理検査等、様々な場面で活用する事が可能です。

今回は、太陽光発電の設置規模・発電量の試算の参考として、PLATEAUで公開されている3D都市モデルを使い、建築物モデル(LOD2)の屋根面(bldg:RoofSurface)の3D表面積を計算し、それを建物単位の属性として付与する手順をご紹介します。

ワークスペースの全体像

CityGMLの読み込み

  • 建築物モデルのCityGMLを読み込みます。
  • Parametersの中のGML SRS Axis Orderを 2,1,3 に設定

GML SRS Axis Orderを設定することでPLATEAUデータの座標軸の順番を正しく解釈できます。

今回必要なFeatureTypeはBuilding(建築物)、RoofSurface(屋根面)のみのため必要なFeatureTypeのみインポートします。

  • 屋根面は面積計算にのみ使用するため、AppearanceRemoverテクスチャ/マテリアルを事前に除去して軽量化し、処理速度を向上させています。
  • 屋根面(LOD2)の抽出は Testerで citygml_level_of_detail{0} = 2 とし、LOD2の屋根面を抽出します。

座標変換

今回は 大阪市のオープンデータを使用したために、CsmapReprojectorを使って平面直角座標系 第6系へ変換します。メートル系へ変換することで、正しいm²単位の面積が算出できます。

面積計算(屋根の3D表面積)

  • 屋根ごと(フィーチャごと)に3D表面積を計算します。
    AreaCalculatorをMultiSurface に対して使用すると、その3D Surface群の累積面積を取得できます。AreaCalculatorのパラメータのTypeは Sloped Area とすることで傾斜を考慮した面積が計算されます。

  • 出力属性名例:各屋根面に roof_area_3d_m2。

集計(建物単位)

  • StatisticsCalculator建物IDごとに roof_area_3d_m2 を累積し、roof_area_3d_m2.sum を作成します。
  • Group By キーは親建物のgml:id(属性名gml_parent_id)とします。

建築物モデルと屋根の3D表面積を紐づけ

  • FeatureMergerでBuilding(Requestor)に対し、屋根面の集計結果(Supplier)をRequestorはgml_parent_idをキーに、Supplierはgml_idをキーに結合し、roof_area_3d_m2.sum を建物属性として付与します。

建築物モデルをLODごとに分解

  • CityGMLのBuilding にはlod1Solid, lod2Solid, lod2MultiSurfaceなど複数 LODが併存します。
  • Deaggregatorで分解後、AttributeFilterでLOD 別に分けることで、必要なLODのみを抽出でき活用しやすい形になります。

出力

  • FMEのWriterで対応可能なフォーマットとして出力します。(shpやgdbなど)
  • 必要なLODのみを出力することで別ソフトウェアでの活用が可能になります。
    LOD2

    LOD1

    LOD0


おわりに

今回は3Dデータだからこそ算出できる表面積に着目してみました。
PLATEAUのCityGMLは単なる属性だけではなく、建物の屋根、壁、床等のサーフェス自体の意味が付加されています。これを利用すれば今回のような2Dデータでは抽出できないデータを取得する事が可能です。

お問い合わせ

もしPLATEAUのCityGMLの利活用にお困りの方がいらっしゃいましたら、当社までご相談ください。
お問い合わせフォーム

関連ページ

GIS – アサミ情報システム株式会社|GIS/3D/CityGML
AutoCAD初心者でもできる、生成AIを活用したスクリプト作成 – アサミ情報システム株式会社|GIS/3D/CityGML


※FME®を使用。FME®はSafe Software Inc.の登録商標です。

関連記事

TOP