と、ここまでで、前々回(第3回)までに作成した2つのファイル、output_events.xml.gzとoutput_network.xml.gzを出力するプロセスを、あらためて復習しました。
で、今回あらためて考えてみたのですが、MASがいまひとつ世間(というか研究者の世界)に定着しない理由は、それを「見える化」するのが恐ろしく面倒くさいことにあると思うのです。
実際に私も、output_events.xml.gzとoutput_network.xml.gzからエージェントの動きを可視化する方法を、QGIS(ツール)などを使って確立はしたのですが――とても他の人に「やってみて」と言えるような作業手順にはなりませんでした。
MASは、上空から人々の営みが見えてナンボであり、ここを突破すれば、MATSimに限らずMASはもっと流行る、と思ったのですよね。
いや、正確に言えば、MATSimの見える化ツールはあるにはあります。例えば、MATSim OTFVisやVia、さらにはQGISなどを使えば、可視化自体は可能です。実際に、私も全部試しました。
| ツール名 | 位置付け | 特徴 | 利点 | 欠点 |
|---|---|---|---|---|
| MATSim OTFVis | 公式に近い専用可視化ツール | eventsをそのまま再生するシミュレーションビューア | 動的な挙動(時間変化)がそのまま見える | セットアップが面倒・操作が直感的でない |
| Via | 軽量なWeb可視化ツール | ブラウザで動作する簡易ビューア | 導入が容易・手軽に全体像を把握できる | カスタマイズ性や分析機能が弱い |
| QGIS | 汎用GISツール(非MATSim特化) | 空間データとして自由に加工・可視化可能 | 表現力・分析力が非常に高い | 前処理が重く、初心者には事実上使えない |
結論:(恐ろしく)使いにくく、面倒くさい
私が欲しかったのは、ファイルをドラッグ&ドロップするだけで、簡単にレビューできるツールでした。
ですので今回、頑張ってツールを作りました――“MATSim Live Map Viewer(仮称)”です。
使い方は簡単です。
(Step 1) https://matsim-live-map.kobore.net/ にアクセスする
(Step 2) output_events.xml.gzとoutput_network.xml.gzをドラッグする
(Step 3) 「解析」やら「再生」のボタンを押すと、地図の上でエージェントがワラワラと動き出すのが見える
以上!
MASの結果が「見える化」できると、なんだかワクワクして、次のことを考えたくなります(私はそうです)。現在のMASの世界には、こうした超軽量でトライアル的なツールが、まだ足りていないと思うのです。
では、最後に、~/matsim-example-projectの中に入っているサンプル「Berlin」から、MATSimを使って、output_events.xml.gzとoutput_network.xml.gz を作成し、それを、私のMATSim Live Map Viewerで表示してみましょう。
このディレクトリに、以下の3つのファイルが入っているはずです。
これらを使い、前述の手続き(GUIでもCUIでも可)でMATSimを起動し、output_events.xml.gzとoutput_network.xml.gzを作成してください。
$ cd ~/matsim-example-project $ mvn \ -Dexec.mainClass=org.matsim.project.RunMatsim \ -Dexec.args="examples/berlin/config.xml" exec:java
output_events.xml.gzと output_network.xml.gzが生成された状態になります。
ただ、これは、WSL2(ubuntu24.04)の中にできますので、基本的にはWindowsのエクスプローラーでは見えないのですが、実は裏技(?)があって、エクスプローラから、
\\wsl$
と入力すると、WSL2の中のファイルを操作することができます。
ですので、私の場合は、
\\wsl.localhost\Ubuntu\home\tomoi\matsim-example-project\examples\berlin\output\berlin
とエクスプローラーに入力すると、そのファイルをWindowsから扱うことができます。
ここから、output_events.xml.gzとoutput_network.xml.gzを、”MATSim Live Map Viewer”にドラッグしてください。
「解析」ボタン→「再生」ボタンで、Berlinの1万6000エージェントが動き出します。Type1〜4は、エージェント番号を4で割った余りに1を足したものになっています つまり、1, 2, 3, 4, 1, 2, 3, 4, 1, 2....と1万6000人まで続きます(ただ、恐ろしく"重い"し、表示速度のコントロールはほとんど機能していません)。
htmlなどのコードは、curlなどで取得して頂いて、勝手に改造して頂いて結構です(そんでもって、改造後のものを、私にも提供してくれたらうれしいです)。こちらのページになんやかんや書いていますので、適当に参照してください。また、私のサイトに”MATSim”と入力すると、MATSimに関するメモが大量に出てきますので、そちらもご覧ください。
今回のMATSimの解説パートでは、以下についてお話しました。
バッチ処理型シミュレータであり、現実をそのまま再現するものではなく、入力条件に依存する「モデル出力」を扱う枠組みである
config.xml(設定)、network.xml(道路)、plans.xml(人間)の3ファイルで全体が構成される
CPU・メモリ依存が強く、GPUは無効/結果の収束や正しさは保証されないため解釈が重要
MASは「見える化」が困難であり、既存ツール(OTFVis・Via・QGIS)はあるが実用上扱いにくい
ドラッグ&ドロップで可視化できる軽量ツール(MATSim Live Map Viewer)を作成し、Berlinサンプルで動作確認可能
次回は、config.xml、network.xml、plans.xmlの内容の解説を予定しているのですが ―― これが、かなり「つまらなくて退屈」なので、現在考え中です(実際、今回“これ”を書いたのですが、全体で40ページを越えたので、全部削除してしまいました)。
それでは、では、また次回お会いしましょう。
Copyright © ITmedia, Inc. All Rights Reserved.
記事ランキング