1. はじめに
都市交通の動きを仮想的に再現できるオープンソースのシミュレーションツール「MATSim(マットシム)」。
この記事では、MATSimの環境を構築し、シナリオを実行して、その結果を可視化するまでの流れの概要を紹介します。
2. MATSimとは(前の記事のおさらい)
MATSim(Multi-Agent Transport Simulation)は、以下のような特徴を持つ交通シミュレーションツールです。
- 各個人(エージェント)の1日の行動を再現
- 都市スケールの道路ネットワーク上で移動をシミュレート
- 渋滞や混雑の発生も含めて動的に再現
- オープンソース & 拡張可能(Java)
3. 環境構築の方法
MATSimは2つの方法で始めることができます。
(筆者は後者で取組んでいます)
3.1 方法①:GUI版
MATSimにはGUI付きのスターターアプリが用意されています。Javaさえインストールしていれば、実行可能です。
- 対応OS:Windows / Mac / Linux
- 操作:GUI上でconfigファイルを選んで実行
- メリット:ビルド不要、すぐに試せる
- デメリット:シナリオの拡張やプログラム的な制御は難しい
→ ダウンロードはこちら:https://matsim.org/install/
まずは動かしてみたいという方に最適です。
3.2 方法②:GitHubからビルド(カスタマイズしたい方向け)
本格的に使いたい方や、独自のネットワークや人口データを使いたい方は、GitHubからソースを取得してビルドする方法をおすすめします。
(筆者はこちらの方法で取組んでいます)
主な必要なツール
- Java(11 または 17)
- Git:https://github.com/matsim-org
- Maven(または Gradle)
手順(概要)
- 公式サンプルプロジェクトをクローン
- Mavenでビルド
- JARファイルを使ってシミュレーション実行
4. シミュレーションを実行する
シナリオを実行する方法は、GUI版を使う方法とコマンドライン(CLI)で実行する方法の2通りがあります。
4.1 GUI版(方法①)での実行
GUI版では、起動後に以下の操作でシナリオを実行できます:
-
config.xmlを選択(サンプルプロジェクトに含まれています) - [Run] ボタンをクリック
-
output/フォルダに結果が出力される(場所は設定可能)
ポイント: GUIを使えば、XMLファイルの中身が分からなくても動作確認ができます。
4.2 コマンドライン(方法②)での実行
ビルドした.jarファイルを使って、以下のようにシナリオを実行できます。
java -jar matsim-example-project-0.0.1-SNAPSHOT.jar
5. シミュレート結果の可視化
MATSimのシミュレーションが完了すると、以下のような出力ファイルが生成されます。(30ファイル程)
output_network.xml.gzoutput_events.xml.gz
これらのファイルは非常に情報量が多く、テキストや統計だけで分析するには限界があります。そこで活躍するのが、SimWrapperという可視化ツールです。
5-1. SimWrapperとは?
SimWrapperは、MATSimの出力ファイルを、直感的に可視化・分析するためのオープンソースWebアプリケーションです。
主な特徴:
- 地図ベースのアニメーションでエージェントの移動を可視化
- 時間帯ごとの混雑状況・速度・交通量などを表示
- 複数シナリオの比較や統計も可能
- GUI/CLIのどちらで出力された結果も読み込み可能
開発元:ドイツ・ベルリン工科大学の交通研究チーム(VSP)、主要開発者は Billy Charlton 博士
利用料金:無料(MITライセンスのオープンソース)
公式サイト:https://simwrapper.app/
使用方法については、ファイルのアップロードまたはフォルダ選択により、すぐに可視化を開始できます。
5-2. 可視化の様子
以下は、東京都市圏パーソントリップ調査の集計データを基に、埼玉県川越市における自動車のトリップをSimWrapperで可視化・再現した様子です。黄緑色の▲が一台一台の自動車を表現するエージェントとなっています。
- 1つ1つのエージェントのネットワークを動く様子が時系列のアニメーションで表示
- 時間スライダーを使って任意の時間帯に切り替え可能
実際に動かすと、「都市が動いている」感覚を直感的に味わえます。数値や統計表だけでは見えにくい、交通の流れ・滞留・集中箇所を把握することができます。
6.終わりに
MATsimは日本語でのドキュメントがあまりなく、javaやPythonを活用するため、筆者のような都市計画がバックグラウンドでエンジニア経験もないような方には、まだまだとっつきづらいかと思います。
(幸いChatGPTが登場してくれたおかげで、筆者はどうにか可視化まで漕ぎつけました。)
オープンソースで誰でもエージェントシミュレーションが構築できるため、このようなMATsimの紹介を通して、日本における都市・交通シミュレートの民主化に少しでも寄与できればと思っています。
MATsimに少しでも興味がある方はぜひお気軽にお声がけください!
