コンテンツ
IDEからプログラマとしてMATSimを使用する
この方法は、JavaとIDE(EclipseやIntelliJなど)を使いこなすプログラマーを対象としています。これにより、MATSimを自動的にダウンロードし、ソースコードを閲覧することができ、リリースやスナップショットの最新情報を得ることができます。
インストール:
- (オプションだが推奨として)matsim-example-projectをフォークします
- matsim-example-projectをローカルディレクトリにクローンします。
- IDEにmavenプロジェクトとしてインポートします。Mavenが依存関係を整理してくれます。MATSimのメインリポジトリをダウンロードする必要はありません。 ソースが用意されています。
- IntelliJ: Import project –> browse to dir –> maven –> Next, Next, Next
- Eclipse: Import … –> … as maven project –> browse to dir –> accept, accept, accept
- IDEから
MATSimGUI
を実行します。- 設定ファイルの例は
scenarios/equil
にあります。 Run
を押してMATSimを実行します。
- 設定ファイルの例は
- (オプションだが推奨として)
RunMATSim
をIDEからRUNします。 - (オプションだが推奨として) フォークしたレポに対して、継続的インテグレーション(CI)のワークフローを設定します。 自分のレポのgithubサイトにて、
Actions
–>New Workflow
–>More continuous integration workflows...
–>Java with Maven
–>Set up this workflow
–>Start commit
–>...
. この結果、各コミット後に自動ビルドをトリガーするファイル .github/workflows/maven.yml が生成されます。このファイルによるワークフローの詳細な設定は、後の時点で可能です。
注意事項:
- コード例はgithubのmatsim-code-examples にあります. また、拡張機能 (package
extensions
)の使用例もそこにあります。 - もしあなたが独自の拡張機能を書きたい/書く必要がある場合に使って下さい
- ここでもmatsim-code-examplesを見て、例を探してください。
ControlerDefaultsModule
(IDE内、ソースはmavenで取得)を見て、MATSimがどのようにプラグイン化されているかを確認します。
- 既存のMATSimのソースコードを変更することはできません(強調 by 江端)。これは、科学的な再現性を向上させるという点で利点があります。もし、既存のMATSimのソースコードを修正する必要性を感じたら、https://matsim.org/faq を使って下さい。私たちは、足りない拡張ポイントを実装したり、手助けするように努めます。
mvn package
で、自分のコードの「クリックできる jar ファイル」を生成することができます。これは、例えば、特定の研究のために学生やクライアントに渡すことができます。
MATSimのGUIを使う
この「スタンドアロン」バージョンは、config.xmlを含む入力ファイルを直接編集してMATSimを使いたいユーザーを対象にしています。基本的なGUIが提供されています。
- matsim-example-project をダウンロードし、解凍してください。zipfileをダウンロードするオプションがあります。
- クリックできる jar ファイルは、git repo が大きくなりすぎるため、提供されなくなりました。代わりに、matsim-example-project の "Building and Running it locally" at matsim-example-projectにある説明に従ってください。.
- そこに書かれているように、生成されたMATSimのjarファイルをダブルクリックすることになります。開くのは、MATSimのGUIと呼ばれるものです。
設定ファイルの例は、
scenarios/equil
にあります。Run
を押すと、MATSimが実行されます。ログファイルには、他の多くの情報の他に、matsim の完全な設定のダンプも含まれています。もし興味深いパラメータがあれば、それを自分の設定ファイルにコピーし、修正して再実行するとよいでしょう。
私(kn)の考えでは、この方法、つまり設定ファイルを編集するだけで、かなり遠くまで行くことができると思います。主な問題は、自分のシナリオのネットワーク、特にいわゆる初期需要をどのように入手するかということです。もし、どこからか入手できないのであれば、チュートリアルを通した方が良いでしょう。
最新の安定版リリース
Version 14.0 “Spring 2022”, released April 2022
開発版
This (= using a development version of MATSim via the GUI) is not recommended any longer. If you cannot work with a release, you should use the IDE and maven.
MATSimをmavenプラグインとして使用する
Maven」バージョンは、Mavenについて知っていて、すでに存在するMavenプロジェクトにMATSimを含めたいプログラマーを対象としています。上記の「MATSimサンプルプロジェクト」と同様に、MavenアプローチはMATSimをmavenダウンロードし、ソースコードを閲覧できるようにし、リリースまたはスナップショット(pom.xmlに依存)で最新の状態を維持することができるようにします。
既存のMATSimのコードを修正することはできませんが、ほとんどの場合、その必要もありません。このような場合は、開発者に連絡していただければ、不足する拡張ポイントを実装するなどの支援を行います。
(プレ)リリース
<repositories> <repository> <id>matsim</id> <name>MATSim Maven repository</name> <url>https://repo.matsim.org/repository/matsim/</url> </repository> </repositories> <dependencies> <dependency> <groupId>org.matsim</groupId> <artifactId>matsim</artifactId> <version>14.0</version> </dependency> </dependencies>
GitHubにあるサンプルプロジェクトには有効な
pom.xml
が含まれています。Extensions拡張機能も同様に追加されています。
pom.xml
を見てください。のコードサンプルとしてあります開発版の自動スナップショット
<repositories> <repository> <id>matsim</id> <name>MATSim Maven repository</name> <url>https://repo.matsim.org/repository/matsim/</url> </repository> </repositories> <dependencies> <dependency> <groupId>org.matsim</groupId> <artifactId>matsim</artifactId> <version>15.0-SNAPSHOT</version> </dependency> </dependencies>
これらのバージョンは通常、安定性が低く、最新のドキュメントが付属していませんが、新機能が含まれている場合があります。
可視化
シミュレーションが実行されると、その出力ディレクトリに多くのファイルが作成されます。GUIには出力ディレクトリに到達するためのボタンがあることに注意してください。そのうちの1つは、いわゆるイベントファイルで、通常10回目のイテレーションごとに生成されます。0回目の繰り返しのイベントファイルは
.../ITERS/it.0/...0.events.xml.gz
に格納されています。これには、可視化できる多くの情報が含まれています。MATSimの出力を可視化する最も簡単な方法は、VIAを使用することです。エージェントの数に制限のある無料版が「available for download」です。VIAを起動すると、大きな黒い領域が表示されるはずです。ここがトラフィックを可視化する場所です。このエリアの左側には、上部に4つのアイコンがある小さなエリアがあります(「コントロール」)。最初のアイコン(Data Sources)をクリックします。このセクションにファイルをドラッグ&ドロップするか(例:
network.xml
、events.xml.gz
)、下部の「+」をクリックして追加するファイルを選択できます。いずれかの方法で、まずnetwork.xml
を利用可能なデータのリストに追加し、次にevents.xml.gz
を追加します。これで、ビジュアライザーが私たちのデータを認識し、どのようにビジュアル化するかを指示できるようになりました。次に、コントロールセクションの2番目のアイコン(Layers)をクリックします。初期状態では、背景レイヤーのみが表示されています。をクリックして、表示させたいデータを選択します。読み込んだ
network.xml
でネットワークを視覚化するよう既に提案されているはずなので、Add
をクリックします。しばらくすると、ネットワークが可視化エリアに表示されるはずです。をもう一度クリックし、今度はレイヤーの種類として「ビークル」を選択します。events.xml.gz
ファイルはすでに選択されています。Add
をクリックします。イベントに依存するレイヤと同様に、レイヤタグの下部にLoad Data
ボタンが表示されます。これをクリックすると、イベントから車両の位置が抽出されます。リリースについて
通常、ベルリン工科大学での夏期講習と一緒にリリースしています。
- 3月から4月にかけてプレリリースを行います。
- 授業が行われている間、バグフィックス版をリリースする可能性があります。
- 6月から7月にかけて、最後のバグフィックスバージョンが安定版としてリリースされます。
その結果、「最新の(プレ)リリース」は「最新の安定版」よりも最新になる可能性があります。
ベンチマーク
Download Benchmark ZIP, ca. 180 MB
の詳細はこちらです。MATSim Benchmark.