Skip to content

MIERUNE/Earthquake-simulation-tools

 
 

Repository files navigation

3D都市モデルを活用した建物振動シミュレーションシステム

更新履歴

更新日時 リリース 更新内容
2026/3/20 3rd Release ダッシュボード機能の強化(道路閉塞率、建物被害率、応急仮設住宅必要数)
2025/3/21 2nd Release シミュレーションの種類を追加、ダッシュボードの機能を追加
2024/3/29 1st Release 初版リリース

1. 概要

本リポジトリでは、FY2023 の Project PLATEAU「都市デジタルツインの実現に向けた研究開発及び実証調査業務」(内閣府/研究開発とSociety5.0との橋渡しプログラム(BRIDGE))において開発された「3D都市モデルを活用した建物振動シミュレーションシステム」のソースコードを公開しています。また、FY2024〜FY2025にかけて同事業内で実施した追加開発・改修の内容も含まれています。

2. 「3D都市モデルを活用した建物振動シミュレーションシステム」について

3D都市モデルを活用し、地震動を設定して建物被害シミュレーションの実行、データのダウンロード、可視化までを完結できるWebアプリケーションです。

3. 利用手順

本システムの構築手順及び利用手順については 利用マニュアル を参照してください。

4. システム概要

本ソフトウェアの機能は以下の通りです:

  • 3D都市モデルを活用した建物振動シミュレーションの予約
  • (シミュレーションの実行はJAMSTECの環境で実行)
  • シミュレーション結果のダウンロード
  • シミュレーション結果のWeb表示用に最適化したデータへの変換
  • シミュレーション結果のダッシュボード表示(建物被害、道路閉塞、インタラクティブマップ)
  • 過去のシミュレーション結果の一覧表示

5. 利用技術

カテゴリ 技術
フロントエンド SvelteKit 2.x, TypeScript, Svelte 5, Tailwind CSS
UIコンポーネント Melt UI, Svelte Hero Icons
地図・可視化 MapLibre GL, Deck.gl, Terra Draw, Chart.js
バックエンド AWS Lambda, Amazon DynamoDB, Amazon S3, AWS Batch
認証 Amazon Cognito, AWS Amplify Auth
インフラ AWS CDK (TypeScript)
モノレポ管理 Turborepo, pnpm workspace
ビルドツール Vite, pnpm

6. 本リポジトリのフォルダ構成

このプロジェクトはTurborepoを使用したモノレポ構成になっています。

/
├── apps/
│   ├── admin/                  # 管理システム (wide/narrow機能)
│   └── viewer/                 # ビューワーアプリケーション
├── packages/
│   ├── shared/                 # 共有型定義・ユーティリティ
│   ├── ui/                     # 共通UIコンポーネント
│   ├── aws-client/             # AWS SDKクライアント
│   └── config/                 # 共通設定
└── cdk/                        # AWS CDKインフラストラクチャ
    ├── backend-stack/          # バックエンドリソース
    ├── platform-stack/         # Cognitoなどのプラットフォーム
    ├── narrowsim-batch-stack/  # 狭域シミュレーションバッチ
    └── widesim-batch-stack/    # 広域シミュレーションバッチ

7. 必要な環境

  • Node.js: >= 22.0.0 (推奨: 22.18.0)
  • pnpm: >= 9.11.0
  • mise: Node.jsバージョン管理に使用(.tool-versionsで管理)
  • Docker: ローカル開発環境の一部で使用

8. ライセンス

  • ソースコード及び関連ドキュメントの著作権は国土交通省に帰属します。
  • 本ドキュメントはProject PLATEAUのサイトポリシー(CCBY4.0及び公共データ利用規約第1.0版)に従い提供されています。

9. 注意事項

  • 本リポジトリおよびソフトウェアは Project PLATEAU の参考資料として提供しているものです。動作の保証は行っておりません。
  • 本リポジトリおよび本ソフトウェアの利用により生じた損失及び損害等について、開発者および国土交通省はいかなる責任も負わないものとします。
  • 本リポジトリの内容は予告なく変更・削除する場合があります。
  • 建物被害シミュレーションの実行には、別途JAMSTECのシミュレーション環境が必要となります。シミュレーションの実行には、JAMSTECとの別途契約が必要となる場合があります。
  • シミュレーションの精度や結果の解釈に十分注意してください。シミュレーション結果はあくまで予測であり、実際の被害状況を完全に反映するものではありません。

10. 参考資料

Development (開発者向け情報)

セットアップ

パッケージマネージャーとして pnpm を使用します。

1. 依存関係のインストール

pnpm install

2. 環境変数の設定

.env.exampleを参考に.envファイルを作成してください。

cp .env.example .env
# .envファイルを編集

apps/viewer/.env.exampleを参考にapps/viewer/.envファイルを作成してください。

cp apps/viewer/.env.example apps/viewer/.env
# .envファイルを編集

3. ローカル開発環境の起動(Docker)

make docker_build    # DynamoDBとMinIOを起動
make data_init       # 初期データを投入

開発コマンド

開発サーバーの起動

# 全アプリを起動
pnpm dev

# 管理システムのみ起動 (http://localhost:5173)
pnpm dev:admin

# ビューワーのみ起動 (http://localhost:5174)
pnpm dev:viewer

# Makefileを使用
make dev          # 全アプリ
make dev_admin    # 管理システム
make dev_viewer   # ビューワー

ビルド

# 全アプリをビルド
pnpm build

# 管理システムのみビルド
pnpm build:admin

# ビューワーのみビルド
pnpm build:viewer

# Makefileを使用(管理システムのみ)
make svelte_build

コード品質

# Lint実行
pnpm lint

# フォーマット
pnpm format

# 型チェック
pnpm check

# テスト実行
pnpm test

その他

# ビルド成果物の削除
pnpm clean

# node_modules削除
make remove_node_modules

デプロイ

フロントエンドのデプロイ

管理システム(admin)とビューワー(viewer)は独立してデプロイ可能です。

# 管理システムのビルド
pnpm build:admin

# ビューワーのビルド
pnpm build:viewer

ビルド成果物は各アプリのbuild/ディレクトリに生成されます。

バックエンドのデプロイ (AWS CDK)

# バックエンドスタック
make cdk_deploy_backend

# プラットフォームスタック
make cdk_deploy_platform

# 狭域シミュレーションバッチ
make cdk_deploy_narrow

# 広域シミュレーションバッチ
make cdk_deploy_wide

アプリケーション

管理システム (admin)

  • URL: http://localhost:5173
  • 機能:
    • 広域シミュレーション管理
    • 狭域シミュレーション管理
    • プリセット管理
    • シミュレーション予約

ビューワー (viewer)

  • URL: http://localhost:5174
  • 機能:
    • シミュレーション結果の可視化
      • S3からの実データ取得(本番環境)
      • モックデータによるフォールバック(開発環境)
    • 建物被害ダッシュボード
    • 道路閉塞ダッシュボード
    • インタラクティブマップ
    • 過去のシミュレーション一覧表示
    • デバッグモード対応(?debug=trueパラメータ)

認証

  • AWS Cognitoを使用
  • ユーザーロール: admin, operator, viewer
  • 管理システムへのアクセスには認証が必要

トラブルシューティング

Node.jsバージョンエラー

# miseでNode.jsをインストール
mise install node@22.18.0

# .tool-versionsが正しく設定されているか確認
cat .tool-versions
# 出力: nodejs 22.18.0

# 現在のバージョンを確認
mise current node

ビルドエラー

# 依存関係の再インストール
rm -rf node_modules
pnpm install

# キャッシュのクリア
pnpm clean
rm -rf .turbo

Docker関連

# コンテナを停止して削除
make docker_down

# 再起動
make docker_build
make data_init

型エラー

# 型チェック実行
pnpm check

# SvelteKitの同期
cd apps/admin  # または apps/viewer
npx svelte-kit sync

S3接続エラー(開発環境)

開発環境でS3/MinIOが起動していない場合、以下のようにデバッグモードを使用できます:

# デバッグモード(モックデータを使用)
# ブラウザで以下のURLにアクセス
http://localhost:5174/?debug=true

または、MinIOを起動:

make docker_build

About

地震災害を想定した建物振動シミュレーションを行うための支援ツール

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 40.7%
  • Svelte 32.1%
  • AMPL 20.4%
  • JavaScript 2.1%
  • Shell 1.9%
  • C++ 1.1%
  • Other 1.7%