コンテンツにスキップ

データ作成マニュアル

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データは、最新のシミュレータエンジンでは次のカラムが不足しているため、手動で追加する必要があります:priceper_min_pricing_rateper_min_pricing_startper_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>
各Idは省略可能で、すべて省略すると、どの公共交通機関を利用しても条件に合致します。 「:」は省略できません。 stopIdは、乗車か降車の停留所や駅のときに合致します。途中の駅は合致しません。

andとorによる条件指定も可能です。

0:1:: and 1:2:: or 1:3::stop
andを優先します。

()も利用できます。上記は()ありで記述すると以下になります。

(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のサイトを参照ください。