こぼれネット

Javaを使ったMATSim network.xml.gz 構築手順メモ(hirohakama)

Javaを使ったMATSim network.xml.gz 構築手順メモ(hirohakama)

1. 目的

OpenStreetMap から取得した OSM ファイルを入力として、
MATSim で利用可能な network.xml.gz を安定的・再現可能に生成する。

対象は以下。


2. なぜ Python プログラムではなく、MATSim 公式 API を使うのか

2.1 当初の疑問

2.2 結論

network.xml は「MATSim の内部仕様そのもの」であり、
MATSim 自身が生成した network.xml を使うことに意味がある

理由:

  1. リンク属性(freespeed / capacity / lanes / allowedModes)の解釈が MATSim と完全一致

  2. 将来 MATSim のバージョンが変わっても、
    network.xml の生成ロジックが MATSim 側で追従される

  3. 論文・研究・再現性の観点で

    「MATSim 標準の OsmNetworkReader を用いて生成した network を使用した」
    と明記できる

結論として、

Python は補助・可視化・後処理に使う
network.xml の生成は MATSim に任せる

という役割分担にした。


3. 現在のディレクトリ構成(WSL)

/home/ebata/matsim-example-project/hirohakama/
├── hirohakama.osm
├── pom.xml
├── target/
│   ├── matsim-osm2network-1.0.0.jar
│   └── original-matsim-osm2network-1.0.0.jar
└── src/
    └── main/
        └── java/
            └── net/
                └── kobore/
                    └── matsim/
                        └── Osm2NetworkCli.java

補足(Windows から見たパス)

\\wsl$\Ubuntu\home\ebata\matsim-example-project\hirohakama\

4. 各ファイルの役割

4.1 hirohakama.osm


4.2 Osm2NetworkCli.java

パス:

src/main/java/net/kobore/matsim/Osm2NetworkCli.java

役割:

このファイルは:


4.3 pom.xml

役割:

この pom.xml によって「java -jar で動く単一 JAR」が作られる


4.4 target/matsim-osm2network-1.0.0.jar

役割:


5. ビルド手順(必要な場合のみ)

Java ソースを変更した場合のみ実行。

cd /home/ebata/matsim-example-project/hirohakama
mvn -q -DskipTests clean package

成功すると:

target/matsim-osm2network-1.0.0.jar

が生成される。


6. network.xml.gz の生成手順(通常作業)

cd /home/ebata/matsim-example-project/hirohakama

java -jar target/matsim-osm2network-1.0.0.jar \
  --osm hirohakama.osm \
  --out output_network.xml.gz \
  --toCRS EPSG:6685 \
  --modes car

実行ログ例

[INFO] OSM      : hirohakama.osm
[INFO] OUT      : output_network.xml.gz
[INFO] toCRS    : EPSG:6685
[INFO] modes    : [car]
[INFO] highways : [motorway, motorway_link, trunk, ...]

成功すると、同ディレクトリに

output_network.xml.gz

が生成される。


7. 深いディレクトリ構造についての補足メモ

src/main/java/net/kobore/matsim/

という深さは、

という Java の設計思想そのもの

個人研究・小規模用途としては冗長だが、

と共存する以上、受け入れるのが最短ルート


8. 今後の使い方方針(整理)


9. まとめ(判断の記録)

 

モバイルバージョンを終了