| 更新日時 | リリース | 更新内容 |
|---|---|---|
| 2025/03/26 | 2nd | 3D都市モデル編集機能やシミュレーション結果可視化機能の改修と熱流体解析における湿度考慮 |
| 2024/03/29 | 1st | 初版リリース |
本リポジトリでは、Project PLATEAUの令和6年度「都市デジタルツインの実現に向けた実証調査業務」(内閣府/研究開発とSociety5.0との橋渡しプログラム(BRIDGE))におけるUC24-04「熱流体解析に関する大規模シミュレーション」において開発した「熱流体シミュレーションシステム」のソースコードを公開しています。
「熱流体シミュレーションシステム」は、ウェブ上で実施可能な3D 都市モデルを利用した熱流体シミュレーションシステムです。
3D都市モデルを用いた大規模なシミュレーション技術は高負荷のコンピューティングを前提とするものが多く、その実施はオンプレミスの専門ツールを用いることが一般的です。他方、3D 都市モデルが普及するにつれ、地方公共団体職員等のノンエンジニア属性のユーザが簡易にシミュレーションを実施して業務に活用するニーズが高まっています。そこで、本ユースケースでは、直感的で理解しやすい操作性かつ利便性を考慮したGUIを備えたウェブアプリとしての温熱環境シミュレータを実現しました。本システムにより、地方公共団体職員等のノンエンジニア属性のユーザが、簡易にシミュレーションを実施して業務に活用するニーズに応えることを目指しています。
本システムの構築手順及び利用手順は利用チュートリアルを参照してください。
ユーザをログイン認証し、当該ユーザがこれまでにこのウェブアプリで登録した3D都市モデルやシミュレーションモデルを一覧表示します。またプリセットされたサンプルモデルや、他のユーザから共有されたモデルについても、閲覧および複製できます。
外部システムでデータ変換しアップロードした3D都市モデル(OBJ/STLファイル)に対して、本システム上にて地図操作でポイントを指定し、高さや建物種別を設定することで架空の建物モデルを作成します。また、自分で作成した建物に限らず既存建物を選択することで削除できます。これにより、オリジナルの3D都市モデルデータを作成することができます。
ウェブアプリの画面上で外気温などの外力等環境条件を入力し、外部システムでデータ変換した3D都市モデル(STLファイル)をウェブアプリにアップロードすることで、サーバの計算機資源を用いて温熱環境シミュレーションを実行することができます。 熱流体解析ソフトとしてはOpenFOAMを利用します。標準のソルバを用いるノンエンジニアのユーザは、OpenFOAMの入出力や計算仕様を理解する必要はありません。また熱流体解析に精通したユーザはOpenFOAMのソルバや設定をカスタマイズして利用することも可能です(詳細についてはdocsフォルダのシミュレーションモデル仕様書をご参照ください)。
温熱環境シミュレーション結果(風況、中空温度、暑さ指数)を示す矢印やヒートマップを、PLATEAU-3DTilesの配信サービスなどで提供されている3D都市モデル(3Dタイル)および地形モデルに重畳してウェブアプリの画面上に表示します。また温熱環境シミュレーション結果をGeoJSONファイル形式でダウンロードすることができます。
温熱環境シミュレーション結果について、本システムのログインアカウントを持たない利用者も閲覧可能なURLを発行することができます。
| 用途 | 名称 | 製品バージョン | 内容 |
|---|---|---|---|
| ウェブアプリ構成要素 | Ubuntu | 22.04.3 LTS | 開発環境として使用したOS |
| Apache Server | 2.4.52 | Webアプリの動作環境であるWebブラウザと通信するために利用したWebサーバ | |
| Bootstrap | 5.2.3 | フロントエンドのUIを構築するために使用したライブラリ | |
| jQuery | 3.7.1 | フロントエンドの動的処理のために使用したJavaScriptライブラリ | |
| jQuery UI | 1.13.2 | jQueryの拡張機能として利用 | |
| CesiumJS | 1.104 | データを地図上に描画するために利用した3D地図プラットフォーム | |
| Leaflet | 1.9.4 | データを地図上に描画するために利用した2D地図ライブラリ | |
| Laravel | 10.28.0 | バックエンドで利用したPHPフレームワーク | |
| PHP | 8.1 | Webアプリのバックエンド開発に利用したプログラミング言語 | |
| NodeJS | 12.22.9 | フロントエンドと連携して動作するバックエンドの実行環境 | |
| npm | 8.5.1 | Node.jsのパッケージ管理ツール | |
| PostgresSQL | 15.4 | データベースエンジン | |
| Python | 3.12.7 | コンテナモジュールの実装に利用したプログラミング言語 | |
| pip | 24.3.1 | Pythonのパッケージ管理ツール | |
| fastapi | 0.115.4 | APIを構築するためのWebフレームワーク | |
| fastapi-cli | 0.0.5 | fastapiの拡張機能として利用 | |
| pyproj | 3.7.0 | 座標変換のために利用したPythonライブラリ | |
| numpy | 2.1.2 | 数値計算のために利用したPythonライブラリ | |
| numpy-stl | 3.1.2 | numpy上で3DモデルのSTLファイルを操作するためのPythonライブラリ | |
| SQLAlchemy | 2.0.36 | データベース操作のために利用したPythonのORMライブラリ | |
| psycopg2 | 2.9.10 | データベース操作のために利用したPythonライブラリ | |
| paramiko | 3.5.0 | SSH接続を行うために利用したPythonライブラリ | |
| OpenFOAM (ESI-OpenCFD) | 2206 | 熱流体解析に用いた流体解析用ソフトウェア | |
| 環境構築 | docker | 24.0.6 | サーバー上にコンテナを構築するために利用した |
| docker compose | 2.22.0 | 複数のDockerコンテナを操作するために利用したプラットフォーム | |
| Git | 2.43.0 | ファイル構成管理に利用 | |
| pgAdmin 4 | 8.3 | データベースのGUI操作に利用したツール | |
| 対向システム | PLATEAUストリーミング配信サービス | 3Dタイル配信 | |
| 地理院タイル | 2Dタイル配信 | ||
| FME Desktop | 2023.2.0.0 | 3D都市モデルのデータ変換を行うために利用したソフトウェア | |
| QGIS | 3.40.4 | GISソフトウェア |
本システムの稼働環境は、利用者端末であるクライアントPCおよびネットワーク接続するサーバマシンの各ハードウェアより構成されます。サーバマシンでは複数のマシン(コンテナ)から構成され、うちWebコンテナがクライアントPC上のブラウザに対してウェブアプリをホストし、他のコンテナはWebコンテナと結合して諸機能を提供します。ここでは、クライアントPCとサーバーマシンの最小動作環境を下記に示します。
| 項目 | 最小動作環境 | 推奨動作環境 |
|---|---|---|
| ブラウザ | JavaScript、jQuery、CesiumJS対応ブラウザ | Google Chrome 120.0以上 |
| ディスプレイ解像度 | 1920×1080以上 | 1920×1080以上 |
| ネットワーク | 以下のURLを閲覧可能。 ・サーバマシンのWebアプリ ・PLATEAU-3DTilesの配信サービス |
インターネット接続 |
| 項目 | 最小動作環境 | 推奨動作環境 |
|---|---|---|
| OS | Ubuntu | Dockerファイルに依り立ち上げた仮想環境 |
| DBMS | PostgresSQL | 同左 |
| ファイルシステム | Ubuntu(Webコンテナ、Wrapperコンテナ、APIコンテナ)がマウント可能なファイルシステム | Amazon EFSあるいはsamba |
| ネットワーク | 各コンテナ及びファイルストレージとのネットワーク接続 | サーバマシン内でのVPN |
| フォルダ名 | 詳細 |
|---|---|
| docs | 参考資料(ドキュメント) |
| examples | 参考資料(ドキュメント以外) |
| examples/input | 本システムにユーザがアップロードするファイルのサンプル |
| examples/output | 本システムからユーザがダウンロードするファイルのサンプル |
| src | ソースコード |
| src/container | サーバマシンの各コンテナを仮想化技術により構築するための設定ファイル |
| src/query | サーバマシンのDBコンテナで動作するデータベースの構築用DDLおよび初期データ投入用DML |
| src/srcBatch | サーバマシンのWrapperコンテナで動作する熱流体解析の非同期実行管理モジュールのソースコード |
| src/srcWeb | サーバマシンのWebコンテナで動作するWebアプリのソースコード |
| src/srcAPI | サーバマシンのAPIコンテナで動作する3つのFatAPIのソースコード |
| src/template | 「標準」ソルバとしてプリセットされているOpenFOAMの入力ファイル (ユーザがアップロードするファイル、Webアプリが動的に生成するファイルを除く) |
なお、ウェブアプリを構成する各モジュールはphp、pythonなどインタプリタ型言語で実装されているため、オブジェクトプログラム(バイナリファイル)は構成管理下に含まれません。
- ソースコードおよび関連ドキュメントの著作権は国土交通省に帰属します。
- 本ドキュメントはProject PLATEAUのサイトポリシー(CCBY4.0および公共データ利用規約第1.0版)に従い提供されています。
- 本リポジトリは参考資料として提供しているものです。動作保証は行っておりません。
- 予告なく変更・削除する可能性があります。
- 本リポジトリの利用により生じた損失及び損害等について、国土交通省はいかなる責任も負わないものとします。
- PLATEAU Webサイト Use caseページ「3D都市モデルを活用した熱流体シミュレーションシステムの開発」: https://www.mlit.go.jp/plateau/use-case/uc24-04/
