サマリー
太陽光設置規模の試算に必要な「屋根の実面積」は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.の登録商標です。