データ作成マニュアル
1.はじめに
1.1 本マニュアルの目的
シェアドモビリティ最適配置のデモアプリケーションのファイルアップロード機能や、APIによるデータ登録で利用するデータの作成方法をご紹介します。
1.2 前提条件
- FUJITSU Research Portalのアカウントを保有していること
1.3 サンプルデータについて
デモアプリにデモ用シミュレーション結果と、デモシミュレーションで利用したデータを公開しています。データ作成の際にはこちらのデータもご活用ください。
- デモシミュレーション結果一覧
トップ画面からデモシミュレーション結果を確認できます。
- サンプルデータ一覧
デモシミュレーションで利用したサンプルデータを公開しています。Upload Data Filesボタンをクリックし、データ一覧を参照ください。
2.手順
2.1 データ生成ツールを利用したデータ作成
FUJITSU Research Portalから、技術一覧→シェアドモビリティ最適配置を選択します。 ページ下部にあるデータ生成ツールを試すボタンをクリックすると、本サービスを利用することができます。 シェアドモビリティ最適配置のトップ画面は以下のような画面です。
2.1.1 地図データ生成:OSM Converter
OSM Converterでは、任意の地点での地図データを生成します。
- Geocodingで好きな都市を入力します
- 必要に応じてParameterを調整します
- Generateボタンを押します
- Downloadボタンを押します
2.1.2 ODデータ生成
移動開始場所・移動目的場所を設定することで人々の動きのデータを生成します。
方法1: OD Builderを利用した手動登録
- OD Builderを開きます
- 地図上で出発地・目的地を登録します
- 必要に応じてParameterを調整します
- Downloadボタンを押します
方法2: OD Generatorを利用した自動生成
- Synthetic OD Generatorを開きます
- スライダで人数を設定します
- 必要に応じてParameterを調整します
- Downloadボタンを押します
2.1.3 シェアドeスクータのステーション設定
方法1 Stations Builderを利用した手動登録
- Stations Builderを開きます
- 地図上でステーション位置を登録します
- 必要に応じてParameterを調整します
- Downloadボタンを押します
方法2 Stations Generatorを利用した自動生成
- Synthetic Stations Generatorを開きます
- スライダでstation数を設定します
- 必要に応じてParameterを調整します
- Downloadボタンを押します
注意: このツールで生成したstations.csvデータは、最新のシミュレータエンジンでは次のカラムが不足しているため、手動で追加する必要があります:
price、per_min_pricing_rate、per_min_pricing_start、per_min_pricing_interval。詳細はstations.csvの仕様を参照してください。
2.1.4 model.jsonデータ生成
人の行動選択モデルとして、恣意的な選択確率を指定したい場合向けの設定ファイルです。
- model.json Generatorを開きます
- 必要に応じてParameterを調整します
- Downloadボタンを押します
2.1.5 precondition.jsonデータ生成
デモアプリ(Webアプリ)からファイルアップロードを行ってデジタルリハーサルを行うときに必要なJSONデータを生成します。
- precondition.json Builderを開きます
- 必要に応じてParameterを調整します
- Downloadボタンを押します
{
"USECASE":"dynamic-discount"
"ASSIMIL_PERSON_FILE":"simdata-your-simdataId-of-od/od.csv.gz"
"SOARS_STATIONS_FILE":"simdata-your-simdataId-of-stations-csv/stations.csv"
"SUMO_NET_FILE":"simdata-your-simdataId-of-net-file/map.net.xml.gz"
"DMM_MODEL_INFO_FILE":"simdata-your-simdataId-of-model-file/model.json"
"MAP_CENTER_LATITUDE":"35.444395"
"MAP_CENTER_LONGITUDE":"139.636773"
"CURRENCY_SYMBOL":"¥"
"CURRENCY_RATE":"189.1800"
"START_HOUR":"10"
"END_HOUR":"12"
}
注意:
CURRENCY_RATEは最新のシミュレータエンジンでは無視されます。 注意:SOARS_STATIONS_FILEは最新のシミュレータエンジンではSTATIONS_FILEに変更して使用してください。詳細はenv.jsonの仕様を参照してください。
2.1.6 road-closure.csv road-pricing.csv データ生成
road-closure.csv
閉鎖する道路を設定するCSV形式のファイルです。
road-pricing.csv
課金する道路を設定するCSV形式のファイルです。
- closure.csv road-pricing.csv Generatorを開きます
- 必要に応じてParameterを調整します
- Downloadボタンを押します
2.2 ユースケース: ダイナミックディスカウント
概要
人が目的地に移動する手段として、車、徒歩、escooterの選択肢を設け、それぞれの人がコストや時間によって、移動手段を選択し、移動するというデジタルリハーサルを行うユースケースです。 escooterを借りるときに、escooterのステーションの状況に応じてディスカウントすることで、コストに影響を与え、人の移動手段の選択に変化を与えます。 それにより、escooterの利用率や利用料収入への変化がどうなるかを確認することができます。 また、escooterの初期配備を変更することもできます。
デジタルリハーサルの入出力
デジタルリハーサルの入出力は、ユースケースごとに定義されます。 ダイナミックディスカウントは、以下のフォーマットで入力ファイルを用意します。 出力は後述する「デジタルリハーサルの結果として出力されるファイル」のフォーマットで出力されます。
デジタルリハーサルに必要な入力ファイル
(共通)
- stations.csv
- map.net.xml.gz
- od.csv.gz
- (model.json)
- (fuel-cost.csv)
- (park-charge-dst.csv)
map.net.xml.gzおよびod.csv.gzは、必ずgzipしてください。
(WEBアプリの場合)
- precondition.json
(APIの場合)
- (condition.json)
- env.json
precondition.json
{
"USECASE":"dynamic-discount",
"ASSIMIL_PERSON_FILE":"simdata-your-simdataId-of-od/od.csv.gz",
"STATIONS_FILE":"simdata-your-simdataId-of-stations-csv/stations.csv",
"SUMO_NET_FILE":"simdata-your-simdataId-of-net-file/map.net.xml.gz",
"DMM_MODEL_INFO_FILE":"simdata-your-simdataId-of-model-file/model.json",
"FUEL_COST_FILE": "simdata-your-simdataId-of-fuel-cost/fuel-cost.csv",
"PARK_CHARGE_DST_FILE": "simdata-your-simdataId-of-park-charge-dst/park-charge-dst.csv",
"MAP_CENTER_LATITUDE":"35.444395",
"MAP_CENTER_LONGITUDE":"139.636773",
"CURRENCY_SYMBOL":"¥",
"START_HOUR":"10",
"END_HOUR":"12"
}
condition.json
{
"name":"09/11_14:59:08",
"seed":0,
"start":5,
"end":6,
"usecases":{"batteryBased":{"enabled":true,"discount":10,"lowBatteryPercent":15},"numberBased":{"enabled":true,"discount":25,"scooterNumberThreshold":1}},
"usecase":"dynamic-discount",
"vtypes":{"car":true,"pedestrian":true,"escooter":true},
"dmmmodel":{},
"currencySymbol":"¥","createdAt":"2023-09-11T05:59:18.403Z","mapcenter":[139.645,35.584],
"stations":[{"id":"bay0","initial":2,"pos":[35.438606,139.642578],"zone":"b"},{"id":"bay1","initial":0,"pos":[35.449786,139.642196],"zone":"a"},{"id":"bay2","initial":1,"pos":[35.440275,139.645568],"zone":"a"},...]
}
どのような条件でデジタルリハーサルを実行したかを登録するJSON形式のファイルです。各プロパティ名は上記を参考にしてください。 サンプルWebサーバでは、このファイルを用いて、デジタルリハーサル結果表示を行っています。
env.json
デジタルリハーサル実行時にデジタルリハーサルへの入力となる情報を記載するJSON形式のファイルです。 デジタルリハーサルの実行指示は、このenv.jsonを指定して行います。
{
"USECASE":"dynamic-discount",
"CONDITION_JSON_ID":"simdata-d2d0e1b3-7f78-4939-affc-939d712b15d7",
"ASSIMIL_PERSON_FILE":"simdata-272c8229-5a50-48c1-b0db-771c46e3b5d3/od.csv.gz",
"ASSIMIL_ALIGNER_MAX_STEPS":"3600",
"ASSIMIL_ALIGNER_START_TIME":"5",
"STATIONS_FILE":"simdata-1c480139-c8d5-4d24-a551-af10f008339a/stations.csv",
"SUMO_NET_FILE":"simdata-4467079a-fbd0-440e-8505-a8c518e94562/map.net.xml.gz",
"DMM_MODEL_INFO_FILE":"simdata-feaf5067-43c2-4673-a229-43e0d7d5dc6d/model.json",
"RANDOM_SEED":"0",
"VTYPES":"car,pedestrian",
"USECASE_BATTERY_ENABLED":"false",
"USECASE_BATTERY_DISCOUNT":"0",
"USECASE_BATTERY_LOW_PERCENT":"15",
"USECASE_NUMBER_ENABLED":"false",
"USECASE_NUMBER_DISCOUNT":"0",
"USECASE_NUMBER_THRESHOLD":"1",
"NAME":"02/05_09:59:07",
"SHARED_VTYPES":"escooter",
"FUEL_COST_FILE": "simdata-f0920147-324b-45da-8c74-21b906b5fbf0/fuel-cost.csv",
"PARK_CHARGE_DST_FILE": "simdata-6a642247-38fa-47c9-b985-61642a170df6/park-charge-dst.csv"
}
| key | valueの例 | 必須 | 説明 |
|---|---|---|---|
| USECASE | "dynamic-discount" | 必須 | 実行するデジタルリハーサルのユースケースを指定します。 |
| CONDITION_JSON_ID | "simdata-d2d0e1b3-7f78-4939-affc-939d712b15d7" | "condition.json"のsimdataIdを指定します。 | |
| ASSIMIL_PERSON_FILE | "simdata-272c8229-5a50-48c1-b0db-771c46e3b5d3/od.csv.gz" | 登録したODファイルを使用してデジタルリハーサルを実行する場合に指定します。simdataId/ファイル名で指定します。指定しない場合はサンプルとして用意されているODファイルが使用されます。 |
|
| ASSIMIL_ALIGNER_MAX_STEPS | "3600" | デジタルリハーサルを実行する時間を指定します(秒)。指定しない場合は、14400になります。 | |
| ASSIMIL_ALIGNER_START_TIME | "5" | デジタルリハーサルの開始時間を指定します(時)。ODファイルのtimestampが、この時間以降で、ASSIMIL_ALIGNER_MAX_STEPSの期間のODを対象としてデジタルリハーサルを行います。指定しない場合は、6になります。 | |
| STATIONS_FILE | "simdata-1c480139-c8d5-4d24-a551-af10f008339a/stations.csv" | 登録したステーションの初期配置ファイルを指定します。simdataId/ファイル名で指定します。指定しない場合は、ステーションはなしです。 |
|
| SUMO_NET_FILE | "simdata-4467079a-fbd0-440e-8505-a8c518e94562/map.net.xml.gz" | 登録したSUMOのネットファイルを使用してデジタルリハーサルを実行する場合に指定します。simdataId/ファイル名で指定します。指定しない場合はサンプルとして用意されているネットファイルが使用されます。 |
|
| DMM_MODEL_INFO_FILE | "simdata-feaf5067-43c2-4673-a229-43e0d7d5dc6d/model.json" | 選択確率を指定して行動選択を行うデジタルリハーサルを実行する場合に指定します。simdataId/ファイル名で指定します。 |
|
| RANDOM_SEED | "0" | 乱数のシードを設定します。シードが同じであっても、デジタルリハーサルの結果が異なる場合があります。指定しない場合は、0になります。 | |
| VTYPES | "car,pedestrian" | デジタルリハーサルにおいて、移動手段の選択肢とするものを指定します。設定できるのは、car、pedestrian、escooter、bicycleです。指定しない場合は、選択肢なしです。 | |
| USECASE_BATTERY_ENABLED | "false" | バッテリ残量が低いescooterのあるステーションへ返却する際に割引する施策を有効にする際にtrueにします。 | |
| USECASE_BATTERY_DISCOUNT | "0" | 割引する率を指定します(%)。 | |
| USECASE_BATTERY_LOW_PERCENT | "15" | バッテリ残量が低いと判断する残量を指定します(%)。 | |
| USECASE_NUMBER_ENABLED | "false" | 利用可能なescooterの台数が少ないステーションへ返却する際に割引する施策を有効にする際にtrueにします。 | |
| USECASE_NUMBER_DISCOUNT | "0" | 割引する率を指定します(%)。 | |
| USECASE_NUMBER_THRESHOLD | "1" | 利用可能な台数が少ないと判断する台数を指定します。 | |
| NAME | "02/05_09:59:07" | デジタルリハーサルに名前を設定します。指定されない場合は、名前は空になります。 | |
| SHARED_VTYPES | "escooter" | デジタルリハーサルにおいて、シェアドモビリティの選択肢とするものを指定します。設定できるのは、car、escooter、bicycle、aircarです。指定しない場合は、選択肢なしです。 | |
| FUEL_COST_FILE | "simdata-f0920147-324b-45da-8c74-21b906b5fbf0/fuel-cost.csv" | 移動手段の燃料費計算のための設定ファイルを指定します。 | |
| PARK_CHARGE_DST_FILE | "simdata-6a642247-38fa-47c9-b985-61642a170df6/park-charge-dst.csv" | 一つの移動手段で目的地まで移動する場合の駐車料金を設定するファイルです。 |
デジタルリハーサルの結果として出力されるファイル
- states.txt
- output.txt
- current-usage.txt
- total-usage.txt
- choice.txt
これらのファイルは、デジタルリハーサル結果ファイル取得APIにて取得できます。
2.3 ユースケース: 道路閉鎖
概要
人が目的地に移動する手段として、車、徒歩、自転車、escooterの選択肢を設け、それぞれの人がコストや時間によって、移動手段を選択し、移動するというデジタルリハーサルを行うユースケースです。 道路を移動手段毎に時間帯で閉鎖することにより、移動ルートが変わり、移動時間に影響を与え、人の移動手段の選択に変化を与えます。
また、ダイナミックディスカウントや初期配備のユースケースと同様、以下の影響の確認も可能です。
- escooterを借りるときに、escooterのステーションの状況に応じてディスカウントすることで、コストに影響を与え、人の移動手段の選択に変化を与えます。それにより、escooterの利用率や利用料収入への変化がどうなるかを確認することができます。
- また、初期配備のユースケースと同様、escooterの初期配備を変更することもできます。
移動手段として、トラックも存在しています。ただし、トラックは移動手段として選択するのではなく、必ずトラックで移動する人としてデジタルリハーサルに登場します。
デジタルリハーサルの入出力
デジタルリハーサルの入出力は、ユースケースごとに定義されます。 道路閉鎖は、以下のフォーマットで入力ファイルを用意します。 出力は後述する「デジタルリハーサルの結果として出力されるファイル」のフォーマットで出力されます。
デジタルリハーサルに必要な入力ファイル
(共通)
- stations.csv
- road-closure.csv
- map.net.xml.gz
- od.csv.gz
- (model.json)
- (fuel-cost.csv)
- (park-charge-dst.csv)
map.net.xml.gzおよびod.csv.gzは、必ずgzipしてください。
(WEBアプリの場合)
- precondition.json
(APIの場合)
- (condition.json)
- env.json
precondition.json
{
"USECASE": "road-closure",
"ASSIMIL_PERSON_FILE": "simdata-your-simdataId-of-od/od.csv.gz",
"STATIONS_FILE": "simdata-your-simdataId-of-stations-csv/stations.csv",
"SUMO_NET_FILE": "simdata-your-simdataId-of-net-file/map.net.xml.gz",
"DMM_MODEL_INFO_FILE": "simdata-your-simdataId-of-model-file/model.json",
"ROAD_CLOSURE_FILE": "simdata-your-simdataId-of-road-closure-file/road-closure.csv",
"FUEL_COST_FILE": "simdata-your-simdataId-of-fuel-cost/fuel-cost.csv",
"PARK_CHARGE_DST_FILE": "simdata-your-simdataId-of-park-charge-dst/park-charge-dst.csv",
"MAP_CENTER_LATITUDE":"35.444395",
"MAP_CENTER_LONGITUDE":"139.636773",
"MAP_ZOOM": "14",
"CURRENCY_SYMBOL": "¥",
"START_HOUR": "10",
"END_HOUR": "12"
}
condition.json
{
"name":"09/11_14:59:08",
"seed":0,
"start":5,
"end":6,
"usecases":{"batteryBased":{"enabled":true,"discount":10,"lowBatteryPercent":15},"numberBased":{"enabled":true,"discount":25,"scooterNumberThreshold":1}},
"usecase":"road-closure",
"vtypes":{"car":true,"pedestrian":true,"escooter":false,"bicycle":false,"truck":false},
"dmmmodel":{},
"currencySymbol":"¥","createdAt":"2023-09-11T05:59:18.403Z","mapcenter":[139.645,35.584],
"stations":[{"id":"bay0","initial":2,"pos":[35.438606,139.642578],"zone":"b"},{"id":"bay1","initial":0,"pos":[35.449786,139.642196],"zone":"a"},{"id":"bay2","initial":1,"pos":[35.440275,139.645568],"zone":"a"},...]
}
どのような条件でデジタルリハーサルを実行したかを登録するJSON形式のファイルです。 フォーマットは自由です。 サンプルWebサーバでは、このファイルを用いて、デジタルリハーサル結果表示を行っています。
env.json
{
"USECASE":"road-closure",
"CONDITION_JSON_ID":"simdata-d2d0e1b3-7f78-4939-affc-939d712b15d7",
"ASSIMIL_PERSON_FILE":"simdata-272c8229-5a50-48c1-b0db-771c46e3b5d3/od.csv.gz",
"ASSIMIL_ALIGNER_MAX_STEPS":"3600",
"ASSIMIL_ALIGNER_START_TIME":"5",
"STATIONS_FILE":"simdata-1c480139-c8d5-4d24-a551-af10f008339a/stations.csv",
"SUMO_NET_FILE":"simdata-4467079a-fbd0-440e-8505-a8c518e94562/map.net.xml.gz",
"DMM_MODEL_INFO_FILE":"simdata-feaf5067-43c2-4673-a229-43e0d7d5dc6d/model.json",
"RANDOM_SEED":"0",
"ROAD_CLOSURE_FILE":"simdata-f261a82b-dac2-4034-a765-7e4d56901c12/road-closure.csv",
"VTYPES":"car,pedestrian",
"USECASE_BATTERY_ENABLED":"false",
"USECASE_BATTERY_DISCOUNT":"0",
"USECASE_BATTERY_LOW_PERCENT":"15",
"USECASE_NUMBER_ENABLED":"false",
"USECASE_NUMBER_DISCOUNT":"0",
"USECASE_NUMBER_THRESHOLD":"1",
"NAME":"02/05_09:59:07",
"SHARED_VTYPES":"",
"FUEL_COST_FILE": "simdata-f0920147-324b-45da-8c74-21b906b5fbf0/fuel-cost.csv",
"PARK_CHARGE_DST_FILE": "simdata-6a642247-38fa-47c9-b985-61642a170df6/park-charge-dst.csv"
}
デジタルリハーサル実行時にデジタルリハーサルへの入力となる情報を記載するJSON形式のファイルです。 デジタルリハーサルの実行指示は、このenv.jsonを指定して行います。
| key | valueの例 | 説明 |
|---|---|---|
| USECASE | "road-closure" | 実行するデジタルリハーサルのユースケースを指定します。 |
| CONDITION_JSON_ID | "simdata-d2d0e1b3-7f78-4939-affc-939d712b15d7" | "condition.json"のsimdataIdを指定します。 |
| ASSIMIL_PERSON_FILE | "simdata-272c8229-5a50-48c1-b0db-771c46e3b5d3/od.csv.gz" | 登録したODファイルを使用してデジタルリハーサルを実行する場合に指定します。simdataId/ファイル名で指定します。指定しない場合はサンプルとして用意されているODファイルが使用されます。 |
| ASSIMIL_ALIGNER_MAX_STEPS | "3600" | デジタルリハーサルの時間を指定します(秒)。例は1時間です |
| ASSIMIL_ALIGNER_START_TIME | "5" | デジタルリハーサルの開始時間を指定します(時)。ODファイルのtimestampが、この時間以降で、ASSIMIL_ALIGNER_MAX_STEPSの期間のODを対象としてデジタルリハーサルを行います。 |
| STATIONS_FILE | "simdata-1c480139-c8d5-4d24-a551-af10f008339a/stations.csv" | 登録したステーションのescooterの初期配置ファイルを指定します。simdataId/ファイル名で指定します。 |
| SUMO_NET_FILE | "simdata-4467079a-fbd0-440e-8505-a8c518e94562/map.net.xml.gz" | 登録したSUMOのネットファイルを使用してデジタルリハーサルを実行する場合に指定します。simdataId/ファイル名で指定します。指定しない場合はサンプルとして用意されているネットファイルが使用されます。 |
| DMM_MODEL_INFO_FILE | "simdata-feaf5067-43c2-4673-a229-43e0d7d5dc6d/model.json" | 登録した行動選択モデルファイルを使用してデジタルリハーサルを実行する場合に指定します。simdataId/ファイル名で指定します。指定しない場合はロンドンのデータで学習された行動選択モデルが使用されます。 |
| RANDOM_SEED | "0" | 乱数のシードを設定します。シードが同じであっても、デジタルリハーサルの結果が異なる場合があります。指定しない場合は、0になります。 |
| ROAD_CLOSURE_FILE | "simdata-f261a82b-dac2-4034-a765-7e4d56901c12/road-closure.csv" | 登録した道路閉鎖設定ファイルを指定します。simdataId/ファイル名で指定します。 |
| VTYPES | "car,pedestrian" | デジタルリハーサルにおいて、移動手段の選択肢とするものを指定します。設定できるのは、car、pedestrian、escooter、bicycle、truckです。ただし、truckは、移動手段として選択されません。指定しない場合は、選択肢なしです。 |
| USECASE_BATTERY_ENABLED | "false" | バッテリ残量が低いescooterのあるステーションへ返却する際に割引する施策を有効にする際にtrueにします。 |
| USECASE_BATTERY_DISCOUNT | "0" | 割引する率を指定します(%)。 |
| USECASE_BATTERY_LOW_PERCENT | "15" | バッテリ残量が低いと判断する残量を指定します(%)。 |
| USECASE_NUMBER_ENABLED | "false" | 利用可能なescooterの台数が少ないステーションへ返却する際に割引する施策を有効にする際にtrueにします。 |
| USECASE_NUMBER_DISCOUNT | "0" | 割引する率を指定します(%)。 |
| USECASE_NUMBER_THRESHOLD | "1" | 利用可能な台数が少ないと判断する台数を指定します。 |
| NAME | "02/05_09:59:07" | デジタルリハーサルに名前を設定します。指定されない場合は、名前は空になります。 |
| SHARED_VTYPES | "" | デジタルリハーサルにおいて、シェアドモビリティの選択肢とするものを指定します。設定できるのは、car、escooter、bicycle、aircarです。指定しない場合は、選択肢なしです。 |
| FUEL_COST_FILE | "simdata-f0920147-324b-45da-8c74-21b906b5fbf0/fuel-cost.csv" | 移動手段の燃料費計算のための設定ファイルを指定します。 |
| PARK_CHARGE_DST_FILE | "simdata-6a642247-38fa-47c9-b985-61642a170df6/park-charge-dst.csv" | 一つの移動手段で目的地まで移動する場合の駐車料金を設定するファイルです。 |
| USECASE_BATTERY_ENABLED | "false" | バッテリ残量が低いescooterのあるステーションへ返却する際に割引する施策を有効にする際にtrueにします。 |
| USECASE_BATTERY_DISCOUNT | "0" | 割引する率を指定します(%)。 |
| USECASE_BATTERY_LOW_PERCENT | "15" | バッテリ残量が低いと判断する残量を指定します(%)。 |
| USECASE_NUMBER_ENABLED | "false" | 利用可能なescooterの台数が少ないステーションへ返却する際に割引する施策を有効にする際にtrueにします。 |
| USECASE_NUMBER_DISCOUNT | "0" | 割引する率を指定します(%)。 |
| USECASE_NUMBER_THRESHOLD | "1" | 利用可能な台数が少ないと判断する台数を指定します。 |
デジタルリハーサルの結果として出力されるファイル
- states.txt
- output.txt
- current-usage.txt
- total-usage.txt
- choice.txt
これらのファイルは、デジタルリハーサル結果ファイル取得APIにて取得できます。
2.4 ユースケース: ロードプライシング
概要
人が目的地に移動する手段として、車、徒歩、自転車、escooterの選択肢を設け、それぞれの人がコストや時間によって、移動手段を選択し、移動するというデジタルリハーサルを行うユースケースです。 道路に対して、移動手段毎に時間帯で課金することにより、コストに影響を与え、迂回する場合には移動時間に影響を与え、人の移動手段の選択に変化を与えます。
また、道路閉鎖やダイナミックディスカウントや初期配備のユースケースと同様、以下の影響の確認も可能です。
- 道路を移動手段毎に時間帯で閉鎖することにより、移動ルートが変わり、移動時間に影響を与え、人の移動手段の選択に変化を与えます。
- escooterを借りるときに、escooterのステーションの状況に応じてディスカウントすることで、コストに影響を与え、人の移動手段の選択に変化を与えます。それにより、escooterの利用率や利用料収入への変化がどうなるかを確認することができます。
- また、初期配備のユースケースと同様、escooterの初期配備を変更することもできます。
移動手段として、トラックも存在しています。ただし、トラックは移動手段として選択するのではなく、必ずトラックで移動する人としてデジタルリハーサルに登場します。
デジタルリハーサルの入出力
デジタルリハーサルの入出力は、ユースケースごとに定義されます。 ロードプライシングは、以下のフォーマットで入力ファイルを用意します。 出力は後述する「デジタルリハーサルの結果として出力されるファイル」のフォーマットで出力されます。
デジタルリハーサルに必要な入力ファイル
(共通)
- stations.csv
- road-closure.csv
- road-pricing.csv
- map.net.xml.gz
- od.csv.gz
- (model.json)
- (fuel-cost.csv)
- (park-charge-dst.csv)
map.net.xml.gzおよびod.csv.gzは、必ずgzipしてください。
(WEBアプリの場合)
- precondition.json
(APIの場合)
- (condition.json)
- env.json
precondition.json
{
"USECASE": "road-pricing",
"ASSIMIL_PERSON_FILE": "simdata-your-simdataId-of-od/od.csv.gz",
"STATIONS_FILE": "simdata-your-simdataId-of-stations-csv/stations.csv",
"SUMO_NET_FILE": "simdata-your-simdataId-of-net-file/map.net.xml.gz",
"DMM_MODEL_INFO_FILE": "simdata-your-simdataId-of-model-file/model.json",
"ROAD_CLOSURE_FILE": "simdata-your-simdataId-of-road-closure-file/road-closure.csv",
"ROAD_PRICING_FILE": "simdata-your-simdataId-of-road-pricing-file/road-pricing.csv",
"FUEL_COST_FILE": "simdata-your-simdataId-of-fuel-cost/fuel-cost.csv",
"PARK_CHARGE_DST_FILE": "simdata-your-simdataId-of-park-charge-dst/park-charge-dst.csv",
"MAP_CENTER_LATITUDE":"35.444395",
"MAP_CENTER_LONGITUDE":"139.636773",
"MAP_ZOOM": "14",
"CURRENCY_SYMBOL": "¥",
"START_HOUR": "10",
"END_HOUR": "12"
}
condition.json
{
"name":"09/11_14:59:08",
"seed":0,
"start":5,
"end":6,
"usecases":{"batteryBased":{"enabled":true,"discount":10,"lowBatteryPercent":15},"numberBased":{"enabled":true,"discount":25,"scooterNumberThreshold":1}},
"usecase":"road-pricing",
"vtypes":{"car":true,"pedestrian":true,"escooter":false,"bicycle":false,"truck":false},
"detour":{"car":true,"pedestrian":false,"bicycle":false},
"dmmmodel":{},
"currencySymbol":"¥","createdAt":"2023-09-11T05:59:18.403Z","mapcenter":[139.645,35.584],
"stations":[{"id":"bay0","initial":2,"pos":[35.438606,139.642578],"zone":"b"},{"id":"bay1","initial":0,"pos":[35.449786,139.642196],"zone":"a"},{"id":"bay2","initial":1,"pos":[35.440275,139.645568],"zone":"a"},...]
}
どのような条件でデジタルリハーサルを実行したかを登録するJSON形式のファイルです。 フォーマットは自由です。 サンプルWebサーバでは、このファイルを用いて、デジタルリハーサル結果表示を行っています。
env.json
{
"USECASE":"road-pricing",
"CONDITION_JSON_ID":"simdata-d2d0e1b3-7f78-4939-affc-939d712b15d7",
"ASSIMIL_PERSON_FILE":"simdata-272c8229-5a50-48c1-b0db-771c46e3b5d3/od.csv.gz",
"ASSIMIL_ALIGNER_MAX_STEPS":"3600",
"ASSIMIL_ALIGNER_START_TIME":"5",
"STATIONS_FILE":"simdata-1c480139-c8d5-4d24-a551-af10f008339a/stations.csv",
"SUMO_NET_FILE":"simdata-4467079a-fbd0-440e-8505-a8c518e94562/map.net.xml.gz",
"DMM_MODEL_INFO_FILE":"simdata-feaf5067-43c2-4673-a229-43e0d7d5dc6d/model.json",
"RANDOM_SEED":"0",
"ROAD_CLOSURE_FILE":"simdata-f261a82b-dac2-4034-a765-7e4d56901c12/road-closure.csv",
"ROAD_PRICING_FILE":"simdata-f0917da6-4a9b-4e24-99f4-909f240be14d/road-pricing.csv",
"VTYPES":"car,pedestrian",
"DETOUR_VTYPES":"car",
"USECASE_BATTERY_ENABLED":"false",
"USECASE_BATTERY_DISCOUNT":"0",
"USECASE_BATTERY_LOW_PERCENT":"15",
"USECASE_NUMBER_ENABLED":"false",
"USECASE_NUMBER_DISCOUNT":"0",
"USECASE_NUMBER_THRESHOLD":"1",
"NAME":"02/05_09:59:07",
"SHARED_VTYPES":"",
"FUEL_COST_FILE": "simdata-f0920147-324b-45da-8c74-21b906b5fbf0/fuel-cost.csv",
"PARK_CHARGE_DST_FILE": "simdata-6a642247-38fa-47c9-b985-61642a170df6/park-charge-dst.csv"
}
デジタルリハーサル実行時にデジタルリハーサルへの入力となる情報を記載するJSON形式のファイルです。 デジタルリハーサルの実行指示は、このenv.jsonを指定して行います。
| key | valueの例 | 説明 |
|---|---|---|
| USECASE | "road-pricing" | 実行するデジタルリハーサルのユースケースを指定します。 |
| CONDITION_JSON_ID | "simdata-d2d0e1b3-7f78-4939-affc-939d712b15d7" | "condition.json"のsimdataIdを指定します。 |
| ASSIMIL_PERSON_FILE | "simdata-272c8229-5a50-48c1-b0db-771c46e3b5d3/od.csv.gz" | 登録したODファイルを使用してデジタルリハーサルを実行する場合に指定します。simdataId/ファイル名で指定します。指定しない場合はサンプルとして用意されているODファイルが使用されます。 |
| ASSIMIL_ALIGNER_MAX_STEPS | "3600" | デジタルリハーサルの時間を指定します(秒)。例は1時間です |
| ASSIMIL_ALIGNER_START_TIME | "5" | デジタルリハーサルの開始時間を指定します(時)。ODファイルのtimestampが、この時間以降で、ASSIMIL_ALIGNER_MAX_STEPSの期間のODを対象としてデジタルリハーサルを行います。 |
| STATIONS_FILE | "simdata-1c480139-c8d5-4d24-a551-af10f008339a/stations.csv" | 登録したステーションのescooterの初期配置ファイルを指定します。simdataId/ファイル名で指定します。 |
| SUMO_NET_FILE | "simdata-4467079a-fbd0-440e-8505-a8c518e94562/map.net.xml.gz" | 登録したSUMOのネットファイルを使用してデジタルリハーサルを実行する場合に指定します。simdataId/ファイル名で指定します。指定しない場合はサンプルとして用意されているネットファイルが使用されます。 |
| DMM_MODEL_INFO_FILE | "simdata-feaf5067-43c2-4673-a229-43e0d7d5dc6d/model.json" | 登録した行動選択モデルファイルを使用してデジタルリハーサルを実行する場合に指定します。simdataId/ファイル名で指定します。指定しない場合はロンドンのデータで学習された行動選択モデルが使用されます。 |
| RANDOM_SEED | "0" | 乱数のシードを設定します。シードが同じであっても、デジタルリハーサルの結果が異なる場合があります。指定しない場合は、0になります。 |
| ROAD_CLOSURE_FILE | "simdata-f261a82b-dac2-4034-a765-7e4d56901c12/road-closure.csv" | 登録した道路閉鎖設定ファイルを指定します。simdataId/ファイル名で指定します。 |
| ROAD_PRICING_FILE | "simdata-f0917da6-4a9b-4e24-99f4-909f240be14d/road-pricing.csv" | 登録した道路課金設定ファイルを指定します。simdataId/ファイル名で指定します。 |
| VTYPES | "car,pedestrian" | デジタルリハーサルにおいて、移動手段の選択肢とするものを指定します。設定できるのは、car、pedestrian、escooter、bicycle、truckです。ただし、truckは、移動手段として選択されません。指定しない場合は、選択肢なしです。 |
| DETOUR_VTYPES | "car" | 迂回する移動手段を指定します。設定できるのは、car、pedestrian、bicycleです。 |
| USECASE_BATTERY_ENABLED | "false" | バッテリ残量が低いescooterのあるステーションへ返却する際に割引する施策を有効にする際にtrueにします。 |
| USECASE_BATTERY_DISCOUNT | "0" | 割引する率を指定します(%)。 |
| USECASE_BATTERY_LOW_PERCENT | "15" | バッテリ残量が低いと判断する残量を指定します(%)。 |
| USECASE_NUMBER_ENABLED | "false" | 利用可能なescooterの台数が少ないステーションへ返却する際に割引する施策を有効にする際にtrueにします。 |
| USECASE_NUMBER_DISCOUNT | "0" | 割引する率を指定します(%)。 |
| USECASE_NUMBER_THRESHOLD | "1" | 利用可能な台数が少ないと判断する台数を指定します。 |
| NAME | "02/05_09:59:07" | デジタルリハーサルに名前を設定します。指定されない場合は、名前は空になります。 |
| SHARED_VTYPES | "" | デジタルリハーサルにおいて、シェアドモビリティの選択肢とするものを指定します。設定できるのは、car、escooter、bicycle、aircarです。指定しない場合は、選択肢なしです。 |
| FUEL_COST_FILE | "simdata-f0920147-324b-45da-8c74-21b906b5fbf0/fuel-cost.csv" | 移動手段の燃料費計算のための設定ファイルを指定します。 |
| PARK_CHARGE_DST_FILE | "simdata-6a642247-38fa-47c9-b985-61642a170df6/park-charge-dst.csv" | 一つの移動手段で目的地まで移動する場合の駐車料金を設定するファイルです。 |
デジタルリハーサルの結果として出力されるファイル
- states.txt
- output.txt
- current-usage.txt
- total-usage.txt
- choice.txt
これらのファイルは、デジタルリハーサル結果ファイル取得APIにて取得できます。
2.5 ユースケース: パーク&ライド
概要
人が目的地に移動する手段として、車、徒歩、escooter、自転車、公共共通機関の選択肢を設け、それぞれの人がコストや時間によって、移動手段を選択し、移動するというデジタルリハーサルを行うユースケースです。
駐車場を設置することにより、公共交通機関への乗り換えが選択肢になり、コストや移動時間に影響を与え、人の移動手段の選択に変化を与えます。
また、ダイナミックディスカウントや初期配備のユースケースと同様、以下の影響の確認も可能です。
- escooterを借りるときに、escooterのステーションの状況に応じてディスカウントすることで、コストに影響を与え、人の移動手段の選択に変化を与えます。それにより、escooterの利用率や利用料収入への変化がどうなるかを確認することができます。
- また、初期配備のユースケースと同様、escooterの初期配備を変更することもできます。
デジタルリハーサルの入出力
デジタルリハーサルの入出力は、ユースケースごとに定義されます。 パーク&ライドは、以下のフォーマットで入力ファイルを用意します。 出力は後述する「デジタルリハーサルの結果として出力されるファイル」のフォーマットで出力されます。
デジタルリハーサルに必要な入力ファイル
(共通)
- stations.csv
- map.net.xml.gz
- od.csv.gz
- parking.csv
- osm.pbf
- (model.json)
- (gtfs.zip)
- (fuel-cost.csv)
- (park-charge-dst.csv)
- (public-transport.csv)
- (stops.csv)
- (coupon.csv)
map.net.xml.gzおよびod.csv.gzは、必ずgzipしてください。
(WEBアプリの場合)
- precondition.json
(APIの場合)
- (condition.json)
- env.json
precondition.json
{
"USECASE": "park-and-ride",
"ASSIMIL_PERSON_FILE": "simdata-your-simdataId-of-od/od.csv.gz",
"STATIONS_FILE": "simdata-your-simdataId-of-stations-csv/stations.csv",
"SUMO_NET_FILE": "simdata-your-simdataId-of-net-file/map.net.xml.gz",
"FUEL_COST_FILE": "simdata-your-simdataId-of-fuel-cost/fuel-cost.csv",
"PARK_CHARGE_DST_FILE": "simdata-your-simdataId-of-park-charge-dst/park-charge-dst.csv",
"MAP_CENTER_LATITUDE":"35.444395",
"MAP_CENTER_LONGITUDE":"139.636773",
"MAP_ZOOM": "14",
"CURRENCY_SYMBOL": "¥",
"START_HOUR": "10",
"END_HOUR": "12",
"DATE": "2024-05-13",
"TIMEZONE": "Asia/Tokyo",
"PARKING_FILE": "simdata-your-simdataId-of-parking-csv/parking.csv",
"OTP_OSM_FILE": "simdata-your-simdataId-of-otp-osm-pbf/osm.pbf",
"PUBLIC_TRANSPORT_FILE": "simdata-your-simdataId-of-public-transport/public-transport.csv",
"STOPS_FILE": "simdata-your-simdataId-of-stops/stops.csv",
"COUPON_FILE": "simdata-your-simdataId-of-coupon/coupon.csv",
"OTP_GTFS_USE_DEFAULT": true
}
condition.json
{
"name":"03/15_16:17:44",
"seed":0,
"date":{"year":2024,"month":3,"day":14},
"start":5,
"end":6,
"usecases":{"batteryBased":{"enabled":false,"discount":0,"lowBatteryPercent":15},"numberBased":{"enabled":false,"discount":0,"scooterNumberThreshold":1}},
"usecase":"park-and-ride",
"vtypes":{"car":true,"pedestrian":true,"escooter":false,"bicycle":true,"pt":true},
"dmmmodel":{},
"currencySymbol":"¥",
"createdAt":"2024-03-15T07:17:58.470Z",
"mapcenter":[139.645,35.584],
"parking":[{"id":"parking1","total":5,"pos":[139.64652349472,35.58208039592385],"type":"car","charge":100},{"id":"parking2","total":5,"pos":[139.64478542327885,35.58114675367203],"type":"bicycle","charge":100},{"id":"parking3","total":5,"pos":[139.64345504760655,35.581207833404605],"type":"car","charge":100},{"id":"parking4","total":5,"pos":[139.64252163887005,35.58129509008397],"type":"car","charge":100}]
}
どのような条件でデジタルリハーサルを実行したかを登録するJSON形式のファイルです。 フォーマットは自由です。 サンプルWebサーバでは、このファイルを用いて、デジタルリハーサル結果表示を行っています。
env.json
{
"USECASE":"park-and-ride",
"CONDITION_JSON_ID":"simdata-79e4b04f-532e-43b5-8898-22b71e0b3aa4",
"ASSIMIL_PERSON_FILE":"simdata-272c8229-5a50-48c1-b0db-771c46e3b5d3/od.csv.gz",
"ASSIMIL_ALIGNER_MAX_STEPS":"3600",
"ASSIMIL_ALIGNER_START_TIME":"5",
"STATIONS_FILE":"simdata-1c480139-c8d5-4d24-a551-af10f008339a/stations.csv",
"SUMO_NET_FILE":"simdata-4467079a-fbd0-440e-8505-a8c518e94562/map.net.xml.gz",
"DMM_MODEL_INFO_FILE":"simdata-feaf5067-43c2-4673-a229-43e0d7d5dc6d/model.json",
"RANDOM_SEED":"0",
"VTYPES":"car,pedestrian,bicycle,pt",
"USECASE_BATTERY_ENABLED":"false",
"USECASE_BATTERY_DISCOUNT":"0",
"USECASE_BATTERY_LOW_PERCENT":"15",
"USECASE_NUMBER_ENABLED":"false",
"USECASE_NUMBER_DISCOUNT":"0",
"USECASE_NUMBER_THRESHOLD":"1",
"DATE":"2024-03-14",
"TIMEZONE":"Asia/Tokyo",
"PARKING_FILE":"simdata-10f56ac9-9296-4c9b-ba34-7db6ddda809d/parking.csv",
"NAME":"02/05_09:59:07",
"SHARED_VTYPES":"",
"PUBLIC_TRANSPORT_FILE": "simdata-a82086cb-dda5-44db-8a05-f89da971ce44/public-transport.csv",
"STOPS_FILE": "simdata-397ffe05-da3d-40c8-b0da-1ec8f3a4490a/stops.csv",
"COUPON_FILE": "simdata-d3862a7f-5c0f-4b54-84c3-c7a37d72d311/coupon.csv",
"FUEL_COST_FILE": "simdata-f0920147-324b-45da-8c74-21b906b5fbf0/fuel-cost.csv",
"PARK_CHARGE_DST_FILE": "simdata-6a642247-38fa-47c9-b985-61642a170df6/park-charge-dst.csv"
}
デジタルリハーサル実行時にデジタルリハーサルへの入力となる情報を記載するJSON形式のファイルです。 デジタルリハーサルの実行指示は、このenv.jsonを指定して行います。
| key | valueの例 | 説明 |
|---|---|---|
| USECASE | "park-and-ride" | 実行するデジタルリハーサルのユースケースを指定します。 |
| CONDITION_JSON_ID | "simdata-d2d0e1b3-7f78-4939-affc-939d712b15d7" | "condition.json"のsimdataIdを指定します。 |
| ASSIMIL_PERSON_FILE | "simdata-272c8229-5a50-48c1-b0db-771c46e3b5d3/od.csv.gz" | 登録したODファイルを使用してデジタルリハーサルを実行する場合に指定します。simdataId/ファイル名で指定します。指定しない場合はサンプルとして用意されているODファイルが使用されます。 |
| ASSIMIL_ALIGNER_MAX_STEPS | "3600" | デジタルリハーサルの時間を指定します(秒)。例は1時間です |
| ASSIMIL_ALIGNER_START_TIME | "5" | デジタルリハーサルの開始時間を指定します(時)。ODファイルのtimestampが、この時間以降で、ASSIMIL_ALIGNER_MAX_STEPSの期間のODを対象としてデジタルリハーサルを行います。 |
| STATIONS_FILE | "simdata-1c480139-c8d5-4d24-a551-af10f008339a/stations.csv" | 登録したステーションのescooterの初期配置ファイルを指定します。simdataId/ファイル名で指定します。 |
| SUMO_NET_FILE | "simdata-4467079a-fbd0-440e-8505-a8c518e94562/map.net.xml.gz" | 登録したSUMOのネットファイルを使用してデジタルリハーサルを実行する場合に指定します。simdataId/ファイル名で指定します。指定しない場合はサンプルとして用意されているネットファイルが使用されます。 |
| DMM_MODEL_INFO_FILE | "simdata-feaf5067-43c2-4673-a229-43e0d7d5dc6d/model.json" | 登録した行動選択モデルファイルを使用してデジタルリハーサルを実行する場合に指定します。simdataId/ファイル名で指定します。指定しない場合はロンドンのデータで学習された行動選択モデルが使用されます。 |
| RANDOM_SEED | "0" | 乱数のシードを設定します。シードが同じであっても、デジタルリハーサルの結果が異なる場合があります。指定しない場合は、0になります。 |
| VTYPES | "car,pedestrian,bicycle,escooter,pt" | デジタルリハーサルにおいて、移動手段の選択肢とするものを指定します。設定できるのは、car、pedestrian、escooter、bicycle、ptです。指定しない場合は、選択肢なしです。 |
| USECASE_BATTERY_ENABLED | "false" | バッテリ残量が低いescooterのあるステーションへ返却する際に割引する施策を有効にする際にtrueにします。 |
| USECASE_BATTERY_DISCOUNT | "0" | 割引する率を指定します(%)。 |
| USECASE_BATTERY_LOW_PERCENT | "15" | バッテリ残量が低いと判断する残量を指定します(%)。 |
| USECASE_NUMBER_ENABLED | "false" | 利用可能なescooterの台数が少ないステーションへ返却する際に割引する施策を有効にする際にtrueにします。 |
| USECASE_NUMBER_DISCOUNT | "0" | 割引する率を指定します(%)。 |
| USECASE_NUMBER_THRESHOLD | "1" | 利用可能な台数が少ないと判断する台数を指定します。 |
| DATE | "2024-03-14" | デジタルリハーサルを実行する日付を指定します。ISO_LOCAL_DATEの形式。 |
| TIMEZONE | "Asia/Tokyo" | デジタルリハーサルを実行する場所のタイムゾーンを指定します。Time Zone Databaseによって定義されているタイムゾーンを指定します。 |
| PARKING_FILE | "simdata-10f56ac9-9296-4c9b-ba34-7db6ddda809d/parking.csv" | 駐車場情報のファイルを指定します。simdataId/ファイル名`で指定します。 |
| OTP_OSM_FILE | "simdata-b5824fa3-97e5-45a3-b087-fa7b5bb9c6b0/osm.pbf" | OpenTripPlannerが使用する地図情報を指定します。simdataId/ファイル名`で指定します。指定しない場合はサンプルとして用意されているファイルが使用されます。 |
| OTP_GTFS_USE_DEFAULT | "true" | OpenTripPlannerで使用するGTFSファイルとして、あらかじめ用意しているファイルを使用する場合にtrueにします。サンプルファイルの内容は、川崎市バス、JR(南武線、横須賀線、鶴見線)、東急(東横線、目黒線、田園都市線、大井町線)です。 |
| OTP_GTFS_FILE_0 | "simdata-59d4f411-8fc8-411d-a882-c5e9e233cdcf/0_.gtfs.zip" | OpenTripPlannerが使用するGTFSファイルを指定します。simdataId/ファイル名`で指定します。 |
| OTP_GTFS_FILE_1 | "simdata-59d4f411-8fc8-411d-a883-c5e9e233cdcf/1_.gtfs.zip" | OpenTripPlannerが使用するGTFSファイルを指定します。simdataId/ファイル名`で指定します。 |
| OTP_GTFS_FILE_2 | "simdata-59d4f411-8fc8-411d-a884-c5e9e233cdcf/2_.gtfs.zip" | OpenTripPlannerが使用するGTFSファイルを指定します。simdataId/ファイル名`で指定します。 |
| OTP_GTFS_FILE_3 | "simdata-59d4f411-8fc8-411d-a885-c5e9e233cdcf/3_.gtfs.zip" | OpenTripPlannerが使用するGTFSファイルを指定します。simdataId/ファイル名`で指定します。 |
| OTP_GTFS_FILE_4 | "simdata-59d4f411-8fc8-411d-a886-c5e9e233cdcf/4_.gtfs.zip" | OpenTripPlannerが使用するGTFSファイルを指定します。simdataId/ファイル名`で指定します。 |
| OTP_GTFS_FILE_5 | "simdata-59d4f411-8fc8-411d-a887-c5e9e233cdcf/5_.gtfs.zip" | OpenTripPlannerが使用するGTFSファイルを指定します。simdataId/ファイル名`で指定します。 |
| OTP_GTFS_FILE_6 | "simdata-59d4f411-8fc8-411d-a887-c5e9e233cdc6/6_.gtfs.zip" | OpenTripPlannerが使用するGTFSファイルを指定します。simdataId/ファイル名`で指定します。 |
| OTP_GTFS_FILE_7 | "simdata-59d4f411-8fc8-411d-a887-c5e9e233cdc7/7_.gtfs.zip" | OpenTripPlannerが使用するGTFSファイルを指定します。simdataId/ファイル名`で指定します。 |
| OTP_GTFS_FILE_8 | "simdata-59d4f411-8fc8-411d-a887-c5e9e233cdc8/8_.gtfs.zip" | OpenTripPlannerが使用するGTFSファイルを指定します。simdataId/ファイル名`で指定します。 |
| OTP_GTFS_FILE_9 | "simdata-59d4f411-8fc8-411d-a887-c5e9e233cdc9/9_.gtfs.zip" | OpenTripPlannerが使用するGTFSファイルを指定します。simdataId/ファイル名`で指定します。 |
| NAME | "02/05_09:59:07" | デジタルリハーサルに名前を設定します。指定されない場合は、名前は空になります。 |
| SHARED_VTYPES | "" | デジタルリハーサルにおいて、シェアドモビリティの選択肢とするものを指定します。設定できるのは、car、escooter、bicycle、aircarです。指定しない場合は、選択肢なしです。 |
| PUBLIC_TRANSPORT_FILE | "simdata-a82086cb-dda5-44db-8a05-f89da971ce44/public-transport.csv" | 登録した公共交通の設定ファイルを指定します。simdataId/ファイル名で指定します。 |
| STOPS_FILE | "simdata-397ffe05-da3d-40c8-b0da-1ec8f3a4490a/stops.csv" | 登録した停留所の設定ファイルを指定します。simdataId/ファイル名で指定します。 |
| COUPON_FILE | "simdata-d3862a7f-5c0f-4b54-84c3-c7a37d72d311/coupon.csv" | 登録したクーポン配布条件の設定ファイルを指定します。simdataId/ファイル名で指定します。 |
| FUEL_COST_FILE | "simdata-f0920147-324b-45da-8c74-21b906b5fbf0/fuel-cost.csv" | 移動手段の燃料費計算のための設定ファイルを指定します。 |
| PARK_CHARGE_DST_FILE | "simdata-6a642247-38fa-47c9-b985-61642a170df6/park-charge-dst.csv" | 一つの移動手段で目的地まで移動する場合の駐車料金を設定するファイルです。 |
GTFSファイルは、0から順に指定してください。途中指定されていないと、それ以降は使用されません。 例えば、0と2に指定していると、0のみが使用されます。
デジタルリハーサルの結果として出力されるファイル
- states.txt
- output.txt
- current-usage.txt
- total-usage.txt
- choice.txt
これらのファイルは、デジタルリハーサル結果ファイル取得APIにて取得できます。
2.6 入出力ファイル仕様
デジタルリハーサルの入力ファイル
通貨レートの変換は行いません。 各ファイルの通貨単位を合わせて金額を設定してください。 デフォルトは、円で設定しています。
condition.json
どのような条件でデジタルリハーサルを実行したかを登録するファイルです。 JSON形式であればフォーマットは自由です。
{
"name":"02/05_09:59:07",
"seed":0,
"start":5,
"end":6,
"mapcenter":[139.65339660644534,35.587806006729444],
"mapzoom":13,
"usecase":"initial-location",
"vtypes":{"car":true,"pedestrian":true,"escooter":true},
"dmmmodel":{},
"currencySymbol":"¥",
"createdAt":"2025-02-05T00:59:09.157Z",
"stations":[
{"id":"station-1","initial":5,"pos":[139.65688347811465,35.5821084092067],"zone":"a"},
{"id":"station-2","initial":5,"pos":[139.6258342265674,35.57889733338234],"zone":"a"}
]
}
stations.csv
シェアドモビリティのステーションの初期配置を設定するCSV形式のファイルです。
name,zone,latitude,longitude,initial,type,capacity,price,per_min_pricing_rate,per_min_pricing_start,per_min_pricing_interval
station-1,a,35.5821084092067,139.65688347811465,5,escooter,-1,200,20,0,1
| 項目 | 値の例 | 必須 | 説明 |
|---|---|---|---|
| name | station-1 | 必須 | ステーションの名前。ユニークなIDである必要があります。 |
| zone | a | 必須 | ステーションが所属するゾーン。同じゾーンのステーション間の移動しかできない。 |
| latitude | 35.5821084092067 | 必須 | ステーションの緯度。 |
| longitude | 139.65688347811465 | 必須 | ステーションの経度。 |
| initial | 5 | 必須 | 初期配備台数。 |
| type | escooter | シェアドモビリティの種類。指定可能なのは、escooter、car、bicycle、aircarです。何も指定しなければescooterになります。 | |
| capacity | -1 | 配備可能な最大台数。-1は、制限なしです。 | |
| price | 200 | 必須 | 基本料金。 |
| per_min_pricing_rate | 20 | 必須 | 単位時間当たりの料金。 |
| per_min_pricing_start | 0 | 必須 | 時間課金が開始される時間(分)。 |
| per_min_pricing_interval | 1 | 必須 | 時間課金の単位時間(分)。 |
road-closure.csv
閉鎖する道路を設定するCSV形式のファイルです。
oid,start,end,type,polygon,lanes
948feb22aa309eda98f5f36cee428b4b,05:00:00,06:00:00,car,"139.66056921784974,35.57560496598741,139.66658309933842,35.57404537981951,139.66449131447303,35.56879927623754,139.66056921784974,35.57560496598741",""
| 項目 | 値の例 | 必須 | 説明 |
|---|---|---|---|
| oid | 948feb22aa309eda98f5f36cee428b4b | 必須 | 道路閉鎖設定のID。 |
| start | 05:00:00 | 必須 | 道路閉鎖を開始する時刻。ISO_LOCAL_TIMEの形式。 |
| end | 06:00:00 | 必須 | 道路閉鎖を終了する時刻。ISO_LOCAL_TIMEの形式。 |
| type | car | 必須 | 通行できなくなる移動手段。(car, pedestrian, escooter, bicycle, truck) |
| polygon | "139.66056921784974,35.57560496598741,139.66658309933842,35.57404537981951,139.66449131447303,35.56879927623754,139.66056921784974,35.57560496598741" | 経度,緯度を組として、,で区切って領域を指定。"で囲む。 |
|
| lanes | "" | レーンIDを,区切りで指定します。 |
road-pricing.csv
課金する道路を設定するCSV形式のファイルです。
oid,start,end,type,price,polygon
2ac5dc629aebf5a9077c2a77178a0b84,05:00:00,06:00:00,car,200,"139.6512009048468,35.579720773775605,139.6559554628551,35.5770538920699,139.65275843247736,35.57592044045461,139.6512009048468,35.579720773775605"
| 項目 | 値の例 | 必須 | 説明 |
|---|---|---|---|
| oid | 2ac5dc629aebf5a9077c2a77178a0b84 | 必須 | 道路課金設定のID。 |
| start | 05:00:00 | 必須 | 道路課金を開始する時刻。ISO_LOCAL_TIMEの形式。 |
| end | 06:00:00 | 必須 | 道路課金を終了する時刻。ISO_LOCAL_TIMEの形式。 |
| type | car | 必須 | 課金される移動手段。(car, pedestrian, escooter, bicycle, truck) |
| price | 200 | 必須 | 課金額。 |
| polygon | "139.66056921784974,35.57560496598741,139.66658309933842,35.57404537981951,139.66449131447303,35.56879927623754,139.66056921784974,35.57560496598741" | 経度,緯度を組として、,で区切って領域を指定。"で囲む。 |
parking.csv
駐車場の配置を設定するCSV形式のファイルです。
name,latitude,longitude,total,type,charge
parking1,35.58139979797416,139.64179207801715,5,car,100
| 項目 | 値の例 | 必須 | 説明 |
|---|---|---|---|
| name | parking1 | 必須 | 駐車場の名前。 |
| latitude | 35.58139979797416 | 必須 | 駐車場の緯度。 |
| longitude | 139.64179207801715 | 必須 | 駐車場の経度。 |
| total | 5 | 必須 | 駐車可能な台数。 |
| type | car | 必須 | 駐車可能な種類。carかbicycle |
| charge | 100 | 必須 | 駐車料金。 |
public-transport.csv
公共交通の定員を設定するためのファイルです。
oid,transportName,agencyId,agencyName,tripId,routeId,capacity,maxOccupancy
| key | valueの例 | 必須 | 説明 |
|---|---|---|---|
| oid | "123:456" | 必須 | GTFSにて設定されているagencyIdとtripIdから作成する。agencyId + ":" + tripId |
| transportName | "bus" | 必須 | 公共交通の種類。bus, rail, subway, tram |
| agencyId | "123" | 必須 | GTFSにて設定されているagencyId |
| agencyName | "XX" | 必須 | 自由に名前を設定可能。GTFSにて設定されているagencyNameでもよい |
| tripId | "456" | GTFSにて設定されているtripId | |
| routeId | "302" | GTFSにて設定されているrouteId | |
| capacity | 50 | 必須 | このtripIdの定員の数 |
| maxOccupancy | 200 | 必須 | 許容する乗車率(%) |
tripIdが設定されていない場合は、agencyIdとrouteIdに対して定員が設定される。routeIdが設定されていなければ、agencyIdに対して定員が設定される。 tripIdが設定されているときは、tripIdのみに定員が設定される。
定員の設定がされなければ、capacityは20、maxOccupancyは200である。 つまり、乗車可能な人数は、40である。
stops.csv
公共交通の停留所の名前を設定するためのファイルです。
oid,name,transportName,lat,lon
| key | valueの例 | 必須 | 説明 |
|---|---|---|---|
| oid | "123:456" | 必須 | GTFSにて設定されているagencyIdとstopのgtfsIdから作成する。agencyId + ":" + gtfsId |
| name | "XX" | 必須 | 自由に名前を設定可能 |
| transportName | "bus" | 必須 | 公共交通の種類。bus, rail, subway, tram |
| lat | 35.577139 | 必須 | 停留所の緯度 |
| lon | 139.62693 | 必須 | 停留所の経度 |
coupon.csv
クーポン配布の公共交通機関利用条件を設定するCSV形式のファイルです。
id,start,end,requirements,amount
coupon-1,05:00:00,06:00:00,":::",200
| 項目 | 値の例 | 必須 | 説明 |
|---|---|---|---|
| id | coupon-1 | 必須 | クーポン配布設定のID。 |
| start | 05:00:00 | 必須 | クーポン配布を開始する時刻。ISO_LOCAL_TIMEの形式。 |
| end | 06:00:00 | 必須 | クーポン配布を終了する時刻。ISO_LOCAL_TIMEの形式。 |
| requirements | ":::" | 必須 | クーポンを配布する条件を記載。"で囲む。詳細は下記。 |
| amount | 200 | 必須 | クーポンの金額。 |
requirements
公共交通機関の利用条件を設定します。 GTFSにて設定されている、agencyId、routeId、tripId、stopのgtfsId(stopId)を「:」で区切って指定します。
<agencyId>:<routeId>:<tripId>:<stopId>
andとorによる条件指定も可能です。
0:1:: and 1:2:: or 1:3::stop
()も利用できます。上記は()ありで記述すると以下になります。
(0:1:: and 1:2::) or 1:3::stop
fuel-cost.csv
燃料費を計算するための設定をするファイルです。
以下は設定されていないときに使用される内容です。 金額は円で設定しています。
name,type,per_meter_cost,per_mg_cost
fuel-cost-car,car,0.018,0.00024
fuel-cost-escooter,escooter,0.0005,0
| 項目 | 値の例 | 必須 | 説明 |
|---|---|---|---|
| name | fuel-cost-car | 必須 | ユニークなIDである必要があります。 |
| type | car | 必須 | 移動手段。指定可能なのは、escooter、carです。 |
| per_meter_cost | 0.018 | 必須 | 走行距離(m)ごとの燃料費。 |
| per_mg_cost | 0.00024 | 消費燃料ごとの金額。 |
park-charge-dst.csv
一つの移動手段で移動した場合に、駐車場に停めたとし、その駐車場の料金を設定するファイルです。
以下は設定されていないときに使用される内容です。 金額は円で設定しています。
name,type,charge
bicycle_dst,bicycle,100
car_dst,car,500
escooter_dst,escooter,100
| 項目 | 値の例 | 必須 | 説明 |
|---|---|---|---|
| name | car_dst | 必須 | ユニークなIDである必要があります。 |
| type | car | 必須 | 移動手段。指定可能なのは、escooter、car、bicycleです。 |
| charge | 500 | 必須 | 駐車料金。 |
map.net.xml.gz
SUMOで使用するネットファイルです。 作成方法は、SUMOネットファイル作成方法を参照ください。
osm.pbf
OpenTripPlannerで使用する地図情報です。 作成方法は、こちらを参照ください。
gtfs.zip
OpenTripPlannerで使用するGTFSです。 GTFSについては、こちらを参照ください。
od.csv.gz
人の移動を出発地と到着地として指定するファイルです。
oid,timestamp,origin_lon,origin_lat,dest_lon,dest_lat,type,age,gender_type,driving_license,car_ownership
person-0,05:00:00,-1.2987283570204764,50.762434607015,-1.3250637544733517,50.75024253566608,car,52,1,1,2
| 項目 | 値の例 | 必須 | 説明 |
|---|---|---|---|
| oid | person-0 | 必須 | ユニークなIDである必要があります。 |
| timestamp | 05:00:00 | 必須 | ISO_LOCAL_TIMEの形式。 |
| origin_lon | -1.2987283570204764 | 必須 | 出発地の経度。 |
| origin_lat | 50.762434607015 | 必須 | 出発地の緯度。 |
| dest_lon | -1.3250637544733517 | 必須 | 到着地の経度。 |
| dest_lat | 50.75024253566608 | 必須 | 到着地の緯度。 |
| type | car | 移動手段を固定する場合に指定します。指定可能なのは、car、pedestrian、escooter、bicycle、truck、pt、bus、rail、subway、tramです。ptは、bus、rail、subway、tramの組み合わせでの移動になります。何も指定しなければ、移動手段を選択します。ユースケースで対応していない場合には移動は失敗します。 | |
| age | 52 | 実年齢。 | |
| gender_type | 1 | 性別。女性の場合は1、その他の場合は0。 | |
| driving_license | 1 | 運転免許を持っているか。持っている場合は1、その他の場合は0。 | |
| car_ownership | 2 | 世帯の車保持状況。保持していない場合は0, 大人一人につき一台以下しか保持していない場合は1、大人一人につき一台より多く保持している場合は2。 | |
| household_carvan | 1 | 自家用車の数を指定します。car_ownershipが指定されていないときのみ有効です。 | |
| sex_type | 1 | 1は男性。2は女性。gender_typeが指定されていないときのみ有効です。 | |
| age_type | 1 | 1: 0~15歳、2: 16~24歳、3: 25~34歳、4: 35~49歳、5: 50~64歳、6: 65歳以上。ageが指定されていないときのみ有効です。 |
timestampの値で昇順に並んでいる必要があります。
項目を省略する場合は、すべての行で省略します。 必須項目のみの場合は以下のような形になります。
oid,timestamp,origin_lon,origin_lat,dest_lon,dest_lat
person-0,05:00:00,-1.2987283570204764,50.762434607015,-1.3250637544733517,50.75024253566608
model.json
人の行動選択モデルとして、恣意的な選択確率を指定したい場合向けのファイルです。
固定確率
{
"rulebase_model": "fixed",
"fixed_weights": {
"CAR": 1,
"WALKING": 1,
"CYCLING": 1,
"PT": 1,
"bicycle": 1
}
}
各移動手段の選択確率(重み)を指定する場合向け。
| key | valueの例 | 説明 | |
|---|---|---|---|
| rulebase_model | "fixed" | 固定確率指定 | |
| fixed_weights | CAR | 1 | carの重み。指定しない場合は0になります。 |
| WALKING | 1 | pedestrianの重み。指定しない場合は0になります。 | |
| CYCLING | 1 | escooterの重み。指定しない場合は0になります。 | |
| PT | 1 | 公共交通機関の重み。指定しない場合は0になります。 | |
| bicycle | 1 | bicycleの重み。指定しない場合は0になります。 |
- escooterだけを選択させたい場合、
"fixed_weights": {"CYCLING": 1} - carだけを選択させたい場合、
"fixed_weights": {"CAR": 1} - pedestrianだけを選択させたい場合、
"fixed_weights": {"WALKING": 1}
ランダム
{"rulebase_model": "random"}
各移動手段の選択確率をランダムにする場合向け。
時間とコストの重み係数指定
{
"rulebase_model": "linear",
"w_time": 1,
"w_cost": 1
}
移動時の各選択肢に関し、時間とコストの重みを指定する場合向け。
| key | valueの例 | 説明 |
|---|---|---|
| rulebase_model | "linear" | |
| w_time | 1 | 時間の重み。指定しない場合は1になります。 |
| w_cost | 1 | コストの重み。指定しない場合は1になります。 |
- 時間のみで移動手段を選択(時間が短い移動手段を選択)させたい場合、
"w_time": 1, "w_cost": 0 - コストのみで移動手段を選択(コストが安い移動手段を選択)させたい場合、
"w_time": 0, "w_cost": 1
デジタルリハーサルの出力ファイル
states.txt
JSON Linesフォーマットで出力されます。 1分毎に、人がどのような移動手段を用いてどこにいるかを緯度経度で示しています。 co2は、その時点でのco2排出量です。speedはその地点での速度になります。 wayIdは、その地点のSUMOにおける道路IDです。
{"name":"states","time":180,"data":{"oid":"person-12","value":{"wayId":"254070103#2","co2":0.0,"lon":-1.177771521711512,"type":"pedestrian","lat":50.644622474368944,"speed":1.39,"ec":0.0}}}
| key | valueの例 | 説明 | ||
|---|---|---|---|---|
| name | "states" | |||
| time | 180 | デジタルリハーサルの経過時間(秒) | ||
| data | oid | "person-12" | デジタルリハーサルに登場する人のID | |
| value | co2 | 0.0 | CO2排出量(mg/s) | |
| lon | -1.177771521711512 | 現在位置の経度 | ||
| type | "pedestrian" | 移動手段(pedestrian, car, escooter, bicycle, aircar, truck, bus, rail, subway, tram) | ||
| lat | 50.644622474368944 | 現在位置の緯度 | ||
| speed | 1.39 | 現在位置での速度(m/s) | ||
| ec | 0.0 | 電力消費量(Wh/s) | ||
| wayId | "254070103#2" | 道路ID | ||
| tripInfo | "222_111" | 公共交通の便名 |
output.txt
JSON Linesフォーマットで出力されます。 10秒間隔で、目的地に到着した人の移動の履歴を出力します。 一人に対して、その人が到着した時のみ、その人の情報が一度だけ出力されます。
{"name":"output","time":8700,"data":{"oid":"person-695","value":{"move":{"travelTime":330,"carFuelCost":54.833810134163656,"carParkCharge":558.0,"carDistance":2939.5950000000003,"totalCo2":804645.4112034136,"travelRoute":{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"mode":"car"},"geometry":{"type":"LineString","coordinates":[[139.6663565,35.5956173],[139.6494531,35.6088534]]}}]},"park_dst":558.0,"type":"car","carTime":330,"fuelCost":54.833810134163656}}}}
{"name":"output","time":980,"data":{"oid":"person-9","value":{"move":{"pedestrianTime":750,"travelTime":750,"pedestrianDistance":1004.0500000000001,"totalCo2":0.0,"travelRoute":{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"mode":"pedestrian"},"geometry":{"type":"LineString","coordinates":[[139.6758158,35.6039659],[139.6678026,35.6030643]]}}]},"type":"pedestrian"}}}}
{"name":"output","time":8780,"data":{"oid":"person-557","value":{"move":{"pedestrianTime":1690,"escooterFee":390.6,"travelTime":2030,"escooterCost":390.6,"pedestrianDistance":2221.3799999999997,"totalCo2":0.0,"travelRoute":{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"mode":"pedestrian"},"geometry":{"type":"LineString","coordinates":[[139.6432041,35.5893203],[139.64313983916975,35.59300591030757]]}},{"type":"Feature","properties":{"mode":"escooter"},"geometry":{"type":"LineString","coordinates":[[139.64313983916975,35.59300591030757],[139.63704586028888,35.585746891164035]]}},{"type":"Feature","properties":{"mode":"pedestrian"},"geometry":{"type":"LineString","coordinates":[[139.63704586028888,35.585746891164035],[139.6295781,35.5803826]]}}]},"escooterDistance":1499.86,"escooterTime":340,"type":"pedestrian-escooter-pedestrian"}}}}
{"name":"output","time":8670,"data":{"oid":"person-564","value":{"move":{"reason":"escooterEmpty","opportunityLoss":409.20000000000005},"move2":{"pedestrianTime":1810,"travelTime":1810,"pedestrianDistance":2249.7899999999995,"totalCo2":0.0,"travelRoute":{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"mode":"pedestrian"},"geometry":{"type":"LineString","coordinates":[[139.6307184,35.5844267],[139.6429601,35.5702724]]}}]},"type":"pedestrian"}}}}
| key | valueの例 | 説明 | |||
|---|---|---|---|---|---|
| name | "output" | ||||
| time | 1010 | デジタルリハーサルの経過時間(秒) | |||
| data | oid | "person-269" | デジタルリハーサルに登場する人のID | ||
| value | move | travelTime | 500 | 移動にかかった時間(s) | |
| totalCo2 | 11818.295182953709 | CO2排出量(mg) | |||
| type | "car" | 移動手段(pedestrian, car, escooter, bicycle, aircar, truck, bus, rail, tram, subwayの組み合わせ) | |||
| carTime | 380 | carで移動した時間(s) | |||
| carDistance | 330 | carで移動した距離(m) | |||
| carFeeCost | 240 | car利用料金 | |||
| carFuelCost | 201.1 | car燃料代 | |||
| carParkCharge | 200.0 | 駐車料金 | |||
| pedestrianTime | 380 | pedestrianで移動した時間(s) | |||
| pedestrianDistance | 330 | pedestrianで移動した距離(m) | |||
| escooterTime | 380 | escooterで移動した時間(s) | |||
| escooterDistance | 330 | escooterで移動した距離(m) | |||
| escooterFeeCost | 210 | escooter利用料金 | |||
| escooterFuelCost | 201.1 | escooter燃料代 | |||
| escooterParkCharge | 200.0 | 駐車料金 | |||
| bicycleTime | 380 | bicycleで移動した時間(s) | |||
| bicycleDistance | 330 | bicycleで移動した距離(m) | |||
| bicycleFeeCost | 180 | bicycle利用料金 | |||
| bicycleParkCharge | 200.0 | 駐車料金 | |||
| aircarTime | 380 | aircarで移動した時間(s) | |||
| aircarDistance | 330 | aircarで移動した距離(m) | |||
| aircarFeeCost | 300 | aircar利用料金 | |||
| carToll | 200 | 課金額 | |||
| pedestrianToll | 200 | 課金額 | |||
| escooterToll | 200 | 課金額 | |||
| bicycleToll | 200 | 課金額 | |||
| truckToll | 200 | 課金額 | |||
| busTime | 390 | バスで移動した時間(s) | |||
| busDistance | 765.0 | バスで移動した距離(m) | |||
| busFare | 200.0 | 運賃 | |||
| railTime | 880 | 電車で移動した時間(s) | |||
| railDistance | 3012.0 | 電車で移動した距離(m) | |||
| railFare | 200.0 | 運賃 | |||
| tramTime | 880 | トラムで移動した時間(s) | |||
| tramDistance | 3012.0 | トラムで移動した距離(m) | |||
| tramFare | 200.0 | 運賃 | |||
| subwayTime | 880 | 地下鉄で移動した時間(s) | |||
| subwayDistance | 3012.0 | 地下鉄で移動した距離(m) | |||
| subwayFare | 200.0 | 運賃 | |||
| escooterFeeDiscount | 0.0 | 割引される額(負の値) | |||
| detour | true | 課金道路を迂回した場合にtrue | |||
| fare | 200.0 | 運賃 | |||
| fee | 300 | 利用料金 | |||
| toll | 200 | 課金額 | |||
| fuelCost | 201.1 | 燃料代 | |||
| park_dst | 200.0 | 目的地の駐車料金 | |||
| park_api | 200.0 | 駐車料金 | |||
| travelRoute | 移動手段を含む移動経路 | ||||
| escooterEmpty | 240.0 | escooterが借りれなかった場合、借りていたとしたときの料金 | |||
| carEmpty | 240.0 | carが借りれなかった場合、借りていたとしたときの料金 | |||
| bicycleEmpty | 240.0 | bicycleが借りれなかった場合、借りていたとしたときの料金 | |||
| aircarEmpty | 240.0 | aircarが借りれなかった場合、借りていたとしたときの料金 | |||
| carParkingFull | 200.0 | 満車の場合、借りていたとしたときの料金 | |||
| bicycleParkingFull | 200.0 | 満車の場合、借りていたとしたときの料金 | |||
| busFull | 200.0 | 満員の場合、乗車したとしたときの料金 | |||
| railFull | 200.0 | 満員の場合、乗車したとしたときの料金 | |||
| tramFull | 200.0 | 満員の場合、乗車したとしたときの料金 | |||
| subwayFull | 200.0 | 満員の場合、乗車したとしたときの料金 | |||
| tripDiscount | -1000.0 | 移動を通してクーポンなどにより割引された金額(負の値) | |||
| tripMeasures | ["coupon"] | 適用された施策のIDのリスト | |||
| escooterFeeMeasures | ["lowbattery-discount", "return-discount"] | 適用された利用料金に対する施策のIDのリスト |
選択肢の移動手段を用いて、移動することができない場合には、以下のいずれかが出力されます。
{"name":"output","time":150,"data":{"oid":"person-18","value":{"move":{"message":"Could not create plan."}}}}
{"name":"output","time":160,"data":{"oid":"person-19","value":{"move":{"message":"Could not choice plan."}}}}
current-usage.txt
JSON Linesフォーマットで出力されます。 1分間隔で、ステーションなどの状況が出力されています。
ステーションの状況の出力フォーマットは以下になります。
{"name":"current-usage","time":60,"data":{"oid":"station-18","value":{"reserved":0,"minBattery":100.0,"type":"station","low":0,"available":4}}}
| key | valueの例 | 説明 | ||
|---|---|---|---|---|
| name | "current-usage" | |||
| time | 60 | デジタルリハーサルの経過時間(秒) | ||
| data | oid | "station-18" | ステーションのID | |
| value | available | 4 | ステーションにおいて利用可能な台数 | |
| reserved | 0 | ステーションにおいて予約されている台数 | ||
| low | 0 | ステーションにおいてバッテリの残量が低い台数 | ||
| minBattery | 100.0 | ステーションに配置されているバッテリ残量の最小値(%) | ||
| type | "escooter-station" | シェアドモビリティの種類+"-station" |
lowと判断されるescooterは、env.jsonにおけるUSECASE_BATTERY_LOW_PERCENTによって指定された残量以下になったもの、もしくは、バッテリ残量が15%以下になったものです。
パーク&ライドでは、駐車場、公共交通、停留所の状況も出力されます。
駐車場の状況の出力フォーマットは以下になります。
{"name":"current-usage","time":1320,"data":{"oid":"parking5","value":{"reserved":1,"available":1,"type":"car-parking","details":{"reserved":["person-87"],"parked":[{"oid":"person-6","start":400},{"oid":"person-41","start":840},{"oid":"person-76","start":1280}]}}}}
| key | valueの例 | 説明 | ||
|---|---|---|---|---|
| name | "current-usage" | |||
| time | 1320 | デジタルリハーサルの経過時間(秒) | ||
| data | oid | "parking5" | 駐車場のID | |
| value | available | 1 | 駐車場の空き数 | |
| reserved | 1 | 駐車場の予約されている数 | ||
| type | "car-parking" | car-parkingかbicycle-parking | ||
| details | 予約や駐車状況の詳細 |
公共交通の状況の出力フォーマットは以下になります。
{"name":"current-usage","time":1320,"data":{"oid":"123:456","value":{"type":"rail","tripInfo":"456","lat":35.6063,"lon":139.6568,"speed":6.7583}}}
| key | valueの例 | 説明 | ||
|---|---|---|---|---|
| name | "current-usage" | |||
| time | 1320 | デジタルリハーサルの経過時間(秒) | ||
| data | oid | "123;456" | 公共交通の便のID | |
| value | type | "rail" | 公共交通の種類 | |
| tripInfo | "456" | GTFSでのtripInfo | ||
| lat | 35.6063 | 現在地の緯度 | ||
| lon | 139.6568 | 現在地の経度 | ||
| speed | 6.7583 | 速度(m/s) |
停留所の状況の出力フォーマットは以下になります。
{"name":"current-usage","time":720,"data":{"oid":"123:789","value":{"in":0,"type":"rail-stop","services":{"456":{"waiting":1,"in":0,"out":0}},"out":0}}}
| key | valueの例 | 説明 | ||||
|---|---|---|---|---|---|---|
| name | "current-usage" | |||||
| time | 1320 | デジタルリハーサルの経過時間(秒) | ||||
| data | oid | "123;789" | 公共交通の停留所のID | |||
| value | type | "rail-stop" | 公共交通の種類 + "-stop" | |||
| in | 0 | この停留所からの乗車人数 | ||||
| out | 0 | この停留所での降車人数 | ||||
| services | "456" | 公共交通の便名。便ごとの情報 | ||||
| waiting | 1 | 待っている人の数 | ||||
| in | 0 | 乗車した人の数 | ||||
| out | 0 | 降車した人の数 |
total-usage.txt
JSON Linesフォーマットで出力されます。 デジタルリハーサル終了時に、ステーションなどの結果が出力されます。
ステーションの貸し出し結果の出力フォーマットは以下になります。
{"name":"total-usage","time":0,"data":{"oid":"station-14","value":{"rentCount":2,"type":"station","returnCount":1}}}
| key | valueの例 | 説明 | ||
|---|---|---|---|---|
| name | "total-usage" | |||
| time | 0 | 0固定です | ||
| data | oid | "station-14" | ステーションのID | |
| value | rentCount | 2 | ステーションにおいて貸し出したescooterの台数 | |
| returnCount | 1 | ステーションに返却されたescooterの台数 | ||
| type | "escooter-station" | シェアドモビリティの種類+"-station" |
パーク&ライドでは、駐車場、公共交通、停留所の結果も出力されます。
駐車場の貸し出し結果の出力フォーマットは以下になります。
{"name":"total-usage","time":0,"data":{"oid":"parking5","value":{"type":"car-parking","rentCount":8,"returnCount":4}}}
| key | valueの例 | 説明 | ||
|---|---|---|---|---|
| name | "total-usage" | |||
| time | 0 | 0固定です | ||
| data | oid | "parking5" | 駐車場のID | |
| value | rentCount | 8 | 駐車場に入庫した台数 | |
| returnCount | 4 | 駐車場から出庫した台数 | ||
| type | "car-parking" | car-parkingかbicycle-parking |
公共交通の乗車人数の出力フォーマットは以下になります。
{"name":"total-usage","time":0,"data":{"oid":"123:456","value":{"type":"rail","stops":[{"arrival":0,"departure":840,"id":"789","name":"XX","in":1,"on":0,"out":0},{"arrival":960,"departure":960,"id":"790","name":"YY","in":1,"on":1,"out":0},{"arrival":1140,"departure":0,"id":"791","name":"ZZ","in":0,"on":0,"out":2}],"agencyId":"123","capacity":20,"agencyName":"XYZ","tripId":"456","maxOccupancy":200}}}
| key | valueの例 | 説明 | |||
|---|---|---|---|---|---|
| name | "total-usage" | ||||
| time | 0 | 0固定です | |||
| data | oid | "123:456" | 公共交通の便のID | ||
| value | type | "rail" | 公共交通の種類 | ||
| agencyId | "123" | この便のGTFSにおけるagencyId | |||
| agencyName | "XYZ" | この便のGTFSにおけるagencyName | |||
| tripId | "456" | この便のGTFSにおけるtripId | |||
| capacity | 20 | 定員 | |||
| maxOccupancy | 200 | 最大乗車率(%) | |||
| stops | arrival | 0 | 停留所に到着するシミュレーション時刻(秒) | ||
| departure | 840 | 停留所から出発するシミュレーション時刻(秒) | |||
| id | "789" | 停留所のGTFSにおけるgtfsId | |||
| name | "XX" | 停留所の名前 | |||
| in | 1 | 停留所から乗車した人数 | |||
| on | 0 | 乗車している人数 | |||
| out | 0 | 停留所で降車した人数 |
停留所での乗降結果の出力フォーマットは以下になります。
{"name":"total-usage","time":0,"data":{"oid":"123:789","value":{"name":"XX","services":{"456":{"arrival":3360,"departure":3360,"in":[2920],"out":0}},"lat":35.565647,"type":"bus-stop","lon":139.63945}}}
| key | valueの例 | 説明 | ||||
|---|---|---|---|---|---|---|
| name | "total-usage" | |||||
| time | 0 | 0固定です | ||||
| data | oid | "123:789" | 停留所のID | |||
| value | type | "bus-stop" | 公共交通の種類 + "-stop" | |||
| name | "XX" | 停留所の名前 | ||||
| lat | 35.565647 | 停留所の緯度 | ||||
| lon | 139.63945 | 停留所の経度 | ||||
| services | "456" | 停留所を使用した公共交通のID | ||||
| arrival | 3360 | この公共交通が到着したシミュレーション時刻(秒) | ||||
| departure | 3360 | この公共交通が出発したシミュレーション時刻(秒) | ||||
| in | [2920] | この停留所でこの公共交通に乗車した人がいつから待っていたか(秒の配列) | ||||
| out | 0 | この停留所でこの公共交通から降車した人数 |
choice.txt
JSON Linesフォーマットで出力されます。 移動手段を選択する際に出力されます。 選択肢と選択結果が出力されます。
{"name": "choice", "time": 3560, "data": {"oid": "person-298", "value": {"plans": {"alternative_attributes": [{"alternative": "drive", "attributes": {}, "nested_alternatives": [{"alternative": "drive", "attributes": {"Time": -0.002125621296651265, "Time_std": 0.0, "Cost": -0.0055169897702107016, "Cost_std": 0.0}}]}, {"alternative": "walk", "attributes": {}, "nested_alternatives": [{"alternative": "walk", "attributes": {"Time": -0.02176516454458408, "Time_std": 0.0, "Cost": -0.0, "Cost_std": 0.0}}]}, {"alternative": "cycle", "attributes": {}, "nested_alternatives": [{"alternative": "cycle", "attributes": {"Time": -0.007963595280411781, "Time_std": 0.0, "Cost": -0.0, "Cost_std": 0.0}}]}], "individual_characteristics": {"driving_license": 1.0, "car_ownership": 1.0, "female": 0.0, "age": 0.5050505050505051}, "environment_attributes": {"distance": 0.017476198408906202}}, "probabilities": [0.0989997481591047, 0.8343262552561719, 0.06667399658472349], "order": [0, 1, 2]}}}
{"name":"choice","time":3570,"data":{"oid":"person-298","value":{"choice":[1]}}}
選択肢は以下のフォーマットで出力されます。
| key | valueの例 | 説明 | |||||
|---|---|---|---|---|---|---|---|
| name | "choice" | ||||||
| time | 3560 | デジタルリハーサルの経過時間(秒) | |||||
| data | oid | "person-298" | デジタルリハーサルに登場する人のID | ||||
| value | plans | alternative_attributes | alternative | "drive" | 移動距離が一番長い選択肢 (デフォルトではdrive, cycle, pt, walk) | ||
| attributes | {} | 固定 | |||||
| nested_attributes | alternative | "drive" | 二番目に距離が長い選択肢 (デフォルトではdrive, cycle, pt, walk) | ||||
| attributes | {...} | 行動選択モデルにより出力内容が決まります。 | |||||
| individual_characteristics | {...} | 行動選択モデルにより出力内容が決まります。 | |||||
| environment_attributes | {...} | 行動選択モデルにより出力内容が決まります。 | |||||
| probabilities | [...] | 選択肢ごとの確率の配列 | |||||
| order | [...] | 行動計画の順序との対応 |
alternative_attributes、nested_attributesは配列になります。
選択結果は、以下のフォーマットで出力されます。
| key | valueの例 | 説明 | ||
|---|---|---|---|---|
| name | "choice" | |||
| time | 120 | デジタルリハーサルの経過時間(秒) | ||
| data | oid | "person-4" | デジタルリハーサルに登場する人のID | |
| value | choice | [0, 2] | 選択されたplansのインデックスの配列。予約失敗により移動できなかったときは他の選択肢から選択するため、配列となる。 |
予約失敗などにより移動できない場合は、他の選択肢から選択しなおすため、同じIDに対して複数回選択結果が出力される場合があります。
恣意的な確率を設定したときの選択肢は以下のフォーマットで出力されます。
| key | valueの例 | 説明 | |||
|---|---|---|---|---|---|
| name | "choice" | ||||
| time | 110 | デジタルリハーサルの経過時間(秒) | |||
| data | oid | "person-4" | デジタルリハーサルに登場する人のID | ||
| value | plans | mainMode | "CAR" | 移動距離が一番長い移動手段 (CAR, WALKING, CYCLING, PT) | |
| subMode | "CAR" | 二番目に移動距離が長い移動手段 (CAR, WALKING, CYCLING, PT) | |||
| time | 285 | 移動にかかる時間(秒) | |||
| cost | 3.425899683600594 | 移動にかかるコスト(£) | |||
| distance | 3047.582709127686 | 移動距離(m) | |||
| type | "car" | output.txtにて出力されるtype | |||
| normalized_time | 1807.0 | 平準化された時間。選択肢の平均値の10%以内に平準化 | |||
| normalized_cost | 1.0 | 平準化されたコスト。0~1に平準化 | |||
| probability | 0.925650575652241 | この選択肢が選択される確率 | |||
| people_features | [ 40, 1, 0, 1 ] | 人の属性のリスト。od.csv.gzのage、gender_type、driving_license、car_ownershipのリスト | |||
| environment_features | [ 3047 ] | 環境属性のリスト。OからDの距離(m) |
plansは、選択肢の配列になります。
2.7 地図データ登録手順
SUMOサイト
作成方法は、こちらを参照ください。
サンプルデータの作成手順
サンプルとして用意している川崎市のネットファイルの作成手順を参考までに示します。
Open Street Mapのサイトから、OSMファイルを取得します。
エクスポートをクリックし、範囲を指定してエクスポートします。 以下の範囲を指定しています。
- 緯度: 35.5667000 - 35.5955000
- 経度: 139.6178000 - 139.6760000
エクスポートはエラーになるので、Overpass APIによりダウンロードしています。
SUMOのnetconvertコマンドによりOSMファイルを変換します。
netconvert --osm-files osmfile -o map.net.xml --speed-in-kmh --junctions.join --sidewalks.guess.from-permissions --crossings.guess --lefthand
SUMOのサイトのオプションとは異なりますが、SUMOにロードする際にエラーとなるため、これらのオプションとしています。
SUMOに作成したmap.net.xmlをロードしてエラーが出ないことを確認します。
最後に、gzipにより、map.net.xml.gzとします。
SUMOのインストールや利用方法は、SUMOのサイトを参照ください。