Skip to content

Data Generation Manual

1. Introduction

1.1 Purpose of this manual

Demonstrates Optimal Shared Mobility Deployment's ability to upload files and create data for API data registration.

1.2 Prerequisites

  • Have a FUJITSU Research Portal account

1.3 Sample Data

The demo simulation results and the data used in the demo simulation are published to the demo application. Please use this data when creating data.

  • Demo Simulation Results
    You can view the demo simulation results from the top screen.
  • List of sample data
    Sample data used in the demo simulation is available. Click the Upload Data Files button to view the data list.

2. Procedure

2.1 Creating Data Using Data Generation Tools

From the FUJITSU Research Portal, select Technology Browser - > Optimal Shared Mobility Deployment. You can use this service by clicking the Try Data Generation Tools button at the bottom of the page. The top screen of Optimal Shared Mobility Deployment is shown below.

2.1.1 Map Data Generation: OSM Converter

OSM Converter generates map data at any point.

  • Enter the city you want in Geocoding
  • Adjust the parameters as necessary.
  • Press the Generate button
  • Press the Download button

2.1.2 OD Data Generation

You can generate data on people's movements by setting the movement start and destination locations.

Method 1: Manual Registration Using OD Builder

  • Open OD Builder
  • Register your starting point and destination on the map
  • Adjust the parameters as necessary
  • Press the Download button

Method 2: Automatic generation using OD Generator

  • Open Synthetic OD Generator
  • Set the number of people with the slider
  • Adjust the parameters as necessary
  • Press the Download button

2.1.3 Shared e-Scooter Station Settings

Method 1 Manual Registration Using Stations Builder

  • Open Stations Builder
  • Register station location on map
  • Adjust the parameters as necessary.
  • Press the Download button

Method 2 Automatic generation using Stations Generator

  • Opens the Synthetic Stations Generator
  • Set the number of stations with the slider
  • Adjust the parameters as necessary.
  • Press the Download button

2.1.4 model.json Settings

This is a configuration file for when you want to specify an arbitrary selection probability as a human behavior selection model.

  • Open model.json Generator
  • Adjust the parameters as necessary.
  • Press the Download button

2.1.5 precondition.json Settings

Generates the JSON data needed to upload on the demo app (web app) and perform digital Rehearsal.

  • Open precondition.json Builder
  • Adjust the parameters as necessary.
  • Press the Download button
{
"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"
}

2.1.6 road-closure.csv road-pricing.csv Settings

road-closure.csv

A CSV file that sets the roads to be closed.

road-pricing.csv

A CSV file that sets the roads to be charged.

  • Open closure.csv road-pricing.csv Generator
  • Adjust the parameters as necessary.
  • Press the Download button

2.2 Use Case: Dynamic Discount

Overview

It is a use case where people have the option of driving, walking, or scooter to get to a destination, and each person chooses the means of transportation depending on the cost and time, and then rehearses digitally. When renting an scooter, discounts based on the status of the scooter station will impact costs and change people's transportation choices. That way, you can see what the changes to scooter utilization and user fee revenue are. You can also modify the initial deployment of the scooter.

Digital Rehearsal Input/Output

Digital rehearsal input/output is defined for each use case. Dynamic Discount provides input files in the following formats: The output is in the "File output as a result of digital rehearsal" format described below.

Input Files Required for Digital Rehearsal

(Common)

  • stations.csv
  • map.net.xml.gz
  • od.csv.gz
  • (model.json)

map.net.xml.gz and od.csv.gz must be gzip.

(WebApp)

  • precondition.json

(API)

  • condition.json
  • env.json

map.net.xml.gz

Net file used by SUMO. For the creation method, please refer to 2.1.1 Map Data Generation: OSM Converter or 2.6 Map Data Registration Procedure.

stations.csv

name,zone,latitude,longitude,initial
bay1,a,35.55934337167842,139.63850582201087,3
bay2,a,35.580495,139.6351646,3
...

A CSV file that sets the initial placement of the scooter stations.

Item Example value Description
name bay0 The name of the station.
zone b The zone to which the station belongs. You can only move between stations in the same zone.
latitude 35.58 The latitude of the station.
longitude 139.64 Longitude of the station.
initial 2 Initial deployment number of scooters.

od.csv.gz

A file that specifies a person's travel as a point of departure and arrival.

oid,timestamp,origin_lon,origin_lat,dest_lon,dest_lat,household_carvan,sex_type,age_type
person-0,05:00:22,139.582230,35.436874,139.558556,35.424722,3,1,3
...

Item Example value Description
oid person-0 Required. Must be a unique ID in the OD.
timestamp 05:00:00 Required. ISO_LOCAL_TIME format.
origin_lon 139.582230 Required. Longitude of the origin.
origin_lat 35.436874 Required. Latitude of the point of departure.
dest_lon 139.558556 Required. Longitude of the place of arrival.
dest_lat 35.424722 Required. Latitude of the place of arrival.
age 52 Optional, Actual age.
gender_type 1 Optional. Sex. 1 for women and 0 for others.
driving_license 1 Optional. Does the person have a driver's license? 1 if the person has one, 0 otherwise.
car_ownership 2 Optional. Household car retention status. 0 if not held, 1 if less than one unit per adult is held, and 2 if more than one unit per adult is held.
household_carvan 1 Optional. Specifies the number of private cars. Valid only when car_ownership is not specified.
sex_type 1 Optional. 1 is male. 2 is female. Valid only when gender_type is not specified.
age_type 1 Optional. 1: 0 to 15 years, 2: 16 to 24 years, 3: 25 to 34 years, 4: 35 to 49 years, 5: 50 to 64 years, 6: 65 years and older. Valid only when age is not specified.

If you omit an item, omit it for all lines. If there are only required items, the format is as follows:

oid,timestamp,origin_lon,origin_lat,dest_lon,dest_lat
person-0,05:00:22,139.582230,35.436874,139.558556,35.424722
...

model.json

This file is for the case where you want to specify an arbitrary selection probability as a human behavior selection model.

Fixed Probability
{
  "rulebase_model": "fixed",
  "fixed_weights": {
    "CAR": 1,
    "WALKING": 1,
    "CYCLING": 1
  }
}

For specifying the selection probability (weight) of each means of transportation.

Key Value Example Description
rulebase_model "fixed" fixed probability
fixed_weights CAR 1 car weight. If not specified, 0 is assumed.
WALKING 1 pedestrian weight. If not specified, 0 is assumed.
CYCLING 1 escooter weight. If not specified, 0 is assumed.

  • To select only escooter: "fixed_weights": {"CYCLING": 1}
  • To select only car: "fixed_weights": {"CAR": 1}
  • To select only pedestrian: "fixed_weights": {"WALKING": 1}
Random
{"rulebase_model": "random"}

For randomizing the selection probability of each means of transportation.

Specifying Time and Cost Weight Factors
{
  "rulebase_model": "linear",
  "w_time": 1,
  "w_cost": 1
}

For specifying time and cost weights for each transportation choice.

Key Value Example Description
rulebase_model "linear"
w_time 1 Time weight. If not specified, 1 is assumed.
w_cost 1 Cost weight. If not specified, 1 is assumed.

  • To choose transportation based on time alone (i.e., a mean of transportation with a shorter duration), "w_time": 1, "w_cost": 0
  • To choose transportation based on cost alone (i.e., less expensive transportation), "w_time": 0, "w_cost": 1

precondition.json

{
"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"
}

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"},...]
}

A JSON-formatted file that registers the conditions under which the digital rehearsal was performed. Refer to the above for the property names. The sample web server uses this file to display digital rehearsal results.

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",
 "SOARS_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",
 "CURRENCY_RATE":"1.0",
 "VTYPES":"car,pedestrian,escooter",
 "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"
}

A JSON-formatted file that contains information that is input to the digital rehearsal when the digital rehearsal is executed. Specify this env.json to indicate the execution of the digital rehearsal.

Key Value example Description
USECASE "dynamic-discount" Specifies the use case for the digital rehearsal to be performed.
CONDITION_JSON_ID "simdata-d2d0e1b3-7f78-4939-affc-939d712b15d7" Specifies the simdataId of "condition.json".
ASSIMIL_PERSON_FILE "simdata-272c8229-5a50-48c1-b0db-771c46e3b5d3/od.csv.gz" Specifies that the registered OD file will be used for digital rehearsal. Specifies in simdataId/filename. If not specified, the sample OD file is used.
ASSIMIL_ALIGNER_MAX_STEPS "3600" Specifies the time (in seconds) for the digital rehearsal. An example is an hour.
ASSIMIL_ALIGNER_START_TIME "5" Specifies the start time of the digital rehearsal (in hours). Digitally rehearses the OD of the timestamp for the period of ASSIMIL_ALIGNER_MAX_STEPS after the start time.
SOARS_STATIONS_FILE "simdata-1c480139-c8d5-4d24-a551-af10f008339a/stations.csv" Specifies the registered initial deployment file of the scooter for the station. Specifies in simdataId/filename.
SUMO_NET_FILE "simdata-4467079a-fbd0-440e-8505-a8c518e94562/map.net.xml.gz" Specify this to execute digital rehearsal using a registered SUMO net file. Specifies in simdataId/filename. If not specified, the sample net file is used.
DMM_MODEL_INFO_FILE "simdata-feaf5067-43c2-4673-a229-43e0d7d5dc6d/model.json" Specify this to execute digital rehearsal using a registered behavior selection model file. Specifies in simdataId/filename. If not specified, the behavior selection model learned from the London data is used.
RANDOM_SEED "0" Sets the seed for the random number. The same seed does not mean the same digital rehearsal results.
CURRENCY_RATE "1.0" Set the currency rate. It is based on £, so if you want to convert it to yen, you can specify 186.0 for example.
VTYPES "car,pedestrian,escooter" Specifies the transportation options for digital rehearsals. You can configure car, pedestrian, escooter.
USECASE_BATTERY_ENABLED "false" Set to true to enable the discount policy for returning to stations with low battery scooters.
USECASE_BATTERY_DISCOUNT "0" The percentage to discount (%).
USECASE_BATTERY_LOW_PERCENT "15" Specifies the amount of battery remaining to be considered low (%).
USECASE_NUMBER_ENABLED "false" Set to true to enable the discount policy for returning to stations with fewer scooters available.
USECASE_NUMBER_DISCOUNT "0" The percentage to discount (%).
USECASE_NUMBER_THRESHOLD "1" Specify the number of units for which you want to determine that the number of available units is small.

File output as a result of digital rehearsal

  • states.txt
  • output.txt
  • current-usage.txt
  • total-usage.txt

These files can be obtained using the digital rehearsal result file acquisition API.

states.txt

{"name":"states","time":180,"data":{"oid":"person-12","value":{"co2":0.0,"lon":139.64,"type":"pedestrian","lat":35.58,"speed":1.39}}}
...

Output in JSON Lines format. Every minute, it shows where a person is using what means of transportation in latitude and longitude. co2 is the current amount of co2 emissions. speed is the speed at that point.

key value example Description
name "states"
time 180 Elapsed digital rehearsal time in seconds
data oid "person-12" ID of the person appearing in the digital rehearsal
value co2 0.0 CO2 emissions (mg/s)
lon 139.64 Longitude of the current location
type "pedestrian" Travel (pedestrian, car, scooter)
lat 35.58 Latitude of the current location
speed 1.39 Speed at current position (m/s)

output.txt

{"name":"output","time":310,"data":{"oid":"person-119","value":{"move":{"travelTime":60,"totalCo2":11818.295182953709,"type":"car"}}}}
{"name":"output","time":310,"data":{"oid":"person-3","value":{"move":{"travelTime":180,"totalCo2":0.0,"type":"pedestrian"}}}}
...
{"name":"output","time":480,"data":{"oid":"person-118","value":{"move":{"opportunityLoss":2.0},"move2":{"travelTime":150,"totalCo2":34648.580464738196,"type":"car"}}}}
...
{"name":"output","time":1010,"data":{"oid":"person-269","value":{"move":{"pedestrianTime":380,"travelTime":500,"escooterDiscount":0.0,"escooterCost":1.7,"totalCo2":0.0,"escooterTime":120,"type":"escooter"}}}}
...

Output in JSON Lines format. Prints a travel history of people arriving at their destination at 10 second intervals. For one person, information about that person is output only once when that person arrives.

key value example Description
name "output"
time 310 Elapsed digital rehearsal time in seconds
data oid "person-119" ID of the person appearing in the digital rehearsal
value move travelTime 60 Time taken to move (s)
totalCo2 11818.295182953709 CO2 emissions (mg)
type "car" Means of travel (pedestrian, car, scooter)
scooterCost 1.7 Usage fee (scooter only)
escorterDiscount 0.0 Discounted amount (escorters only)
scooterTime 120 Time using scooter (s) (scooter only)
pedestrianTime 380 Time spent walking (s) (scooter only)

The rates for escooterCost and escooterDiscount start at £and are converted by the rate by setting CURRENCY_RATE in env.json.

Also, if the scooter is not borrowed, the output is:

key value example Description
name "output"
time 480 Elapsed digital rehearsal time in seconds
data oid "person-118" ID of the person appearing in the digital rehearsal
value move opportunityLoss 2.0 Output the fee if the scooter was available when it was available
move2 travelTime 150 Time taken to move (s)
totalCo2 34648.580464738196 CO2 emissions (mg)
type "car" Means of travel (pedestrian, car)

current-usage.txt

{"simulator":"soars","name":"current-usage","time":60,"data":{"oid":"bay91","value":{"available":2,"reserved":0,"low":0,"minBattery":100.0}}}
...

Output in JSON Lines format. At 1-minute intervals, the status of the escooer for all stations is printed.

key value example Description
simulator "soars"
name "current-usage"
time 60 Elapsed digital rehearsal time in seconds
data oid "bay91" ID of the station
value available 2 Number of scooters available at the station
reserved 0 Number of scooters reserved at the station
low 0 Number of scooters with low battery capacity at the station
minBattery 100.0 Minimum battery level (%) for the scooter located at the station

An escorter that is considered low is one that is less than or equal to the amount left in env.json specified by USECASE_BATTERY_LOW_PERCENT.

total-usage.txt

{"simulator":"soars","name":"total-usage","time":3600,"data":{"oid":"bay34","value":{"rentScooters":4,"returnScooters":5}}}
...

Output in JSON Lines format. At the end of the digital rehearsal, the lending result of the escooer for all stations is output.

key value example Description
simulator "soars"
name "total-usage"
time 3600 Elapsed digital rehearsal time in seconds
data oid "bay34" ID of the station
value rentScooters 4 Number of scooters rented at the station
retuenScooters 5 Number of scooters returned to the station

2.3 Use Case: Road Closure

Summary

It is a use case in which a person has the option of driving, walking, biking, or scooter to get to a destination, and each person chooses the means of transportation depending on the cost and time, and rehearses it digitally. By closing roads by time of day for each mode of travel, travel routes change, affecting travel times and changing people's choice of mode of travel.

As with the dynamic discount and initial deployment use cases, you can also see the impact of:

  • When renting an scooter, discounts based on the status of the escooter's station will impact costs and change people's transportation choices. That way, you can see what the changes to scooter utilization and user fee revenue are.
  • You can also modify the initial deployment of the scooter, similar to the initial deployment use case.

Trucks also exist as a means of transportation. However, the truck will always appear in the digital rehearsal as someone who travels by truck, rather than as a mode of transportation of choice.

Digital rehearsal input/output

Digital rehearsal input/output is defined for each use case. Road Closure provides input files in the following formats:

The output is in the "File output as a result of digital rehearsal" format described below.

Input files required for digital rehearsal

(Common)

  • stations.csv
  • road-closure.csv
  • map.net.xml.gz
  • od.csv.gz
  • (model.json)

map.net.xml.gz and od.csv.gz must be gzip.

(WebApp)

  • precondition.json

(API)

  • condition.json
  • env.json

precondition.json

{
  "USECASE": "road-closure",
  "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",
  "ROAD_CLOSURE_FILE": "simdata-your-simdataId-of-road-closure-file/road-closure.csv",
  "MAP_CENTER_LATITUDE":"35.444395",
  "MAP_CENTER_LONGITUDE":"139.636773",
  "MAP_ZOOM": "14",
  "CURRENCY_SYMBOL": "¥",
  "CURRENCY_RATE":"189.1800",
  "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"},...]
}

A JSON-formatted file that registers the conditions under which the digital rehearsal was performed. The format is up to you. The sample web server uses this file to display digital rehearsal results.

stations.csv

name,zone,latitude,longitude,initial
bay1,a,35.55934337167842,139.63850582201087,3
bay2,a,35.580495,139.6351646,3
...

A CSV file that sets the initial placement of the scooter stations.

Item Example values Description
name bay0 The name of the station.
zone b The zone to which the station belongs. Scooter can only move between stations in the same zone.
latitude 35.58 The latitude of the station.
longitude 139.64 The Longitude of the station.
initial 2 Initial deployment of escooters.

road-closure.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",""
...

A CSV file that sets the roads to be closed.

Item Example values Description
oid 948feb22aa309eda98f5f36cee428b4b The ID of the road closure setting.
start 05:00:00 Time to start the road closure. ISO_LOCAL_TIME format.
end 06:00:00 Time to end the road closure. ISO_LOCAL_TIME format.
type car a means of transportation that becomes impassable.
polygon "139.66056921784974,35.57560496598741,139.66658309933842,35.57404537981951,139.66449131447303,35.56879927623754,139.66056921784974,35.57560496598741" Specify the area as a pair of longitude,latitudes, separated by ,. Enclose with ".
lanes "" Specify the lane IDs, separated by a comma (,). Enclose with ".

map.net.xml.gz

Net file used by SUMO. For the creation method, please refer to 2.1.1 Map Data Generation: OSM Converter or 2.6 Map Data Registration Procedure.

od.csv.gz

A file that specifies a person's travel as a point of departure and arrival.

oid,timestamp,origin_lon,origin_lat,dest_lon,dest_lat,type,age,gender_type,driving_license,car_ownership
person-0,05:00:00,139.582230,35.436874,139.558556,35.424722,truck,52,1,1,2
...

Item Example values Description
oid person-0 Required. Must be a unique ID in the OD.
timestamp 05:00:00 Required. ISO_LOCAL_TIME format.
origin_lon 139.582230 Required. Longitude of the origin.
origin_lat 35.436874 Required. Latitude of the point of departure.
dest_lon 139.558556 Required. Longitude of the place of arrival.
dest_lat 35.424722 Required. Latitude of the place of arrival.
type truck Optional. Specifies that the moving means is fixed. Possible values are: car, pedestrian, escooter, bicycle, truck. If you do not specify anything, select the mode of travel.
age 52 Optional, Actual age.
gender_type 1 Optional. Sex. 1 for women and 0 for others.
driving_license 1 Optional. Does the person have a driver's license? 1 if the person has one, 0 otherwise.
car_ownership 2 Optional. Household car retention status. 0 if not held, 1 if less than one unit per adult is held, and 2 if more than one unit per adult is held.
household_carvan 1 Optional. Specifies the number of private cars. Valid only when car_ownership is not specified.
sex_type 1 Optional. 1 is male. 2 is female. Valid only when gender_type is not specified.
age_type 1 Optional. 1: 0 to 15 years, 2: 16 to 24 years, 3: 25 to 34 years, 4: 35 to 49 years, 5: 50 to 64 years, 6: 65 years and older. Valid only when age is not specified.

If you omit an item, omit it for all lines. If there are only required items, the format is as follows:

oid,timestamp,origin_lon,origin_lat,dest_lon,dest_lat
person-0,05:00:00,139.582230,35.436874,139.558556,35.424722
...

model.json

This file is for the case where you want to specify an arbitrary selection probability as a human behavior selection model.

Fixed Probability
{
  "rulebase_model": "fixed",
  "fixed_weights": {
    "CAR": 1,
    "WALKING": 1,
    "CYCLING": 1
  }
}

For specifying the selection probability (weight) of each means of transportation.

Key Value Example Description
rulebase_model "fixed" fixed probability
fixed_weights CAR 1 car weight. If not specified, 0 is assumed.
WALKING 1 pedestrian weight. If not specified, 0 is assumed.
CYCLING 1 escooter weight. If not specified, 0 is assumed.

  • To select only escooter: "fixed_weights": {"CYCLING": 1}
  • To select only car: "fixed_weights": {"CAR": 1}
  • To select only pedestrian: "fixed_weights": {"WALKING": 1}
Random
{"rulebase_model": "random"}

For randomizing the selection probability of each means of transportation.

Specifying Time and Cost Weight Factors
{
  "rulebase_model": "linear",
  "w_time": 1,
  "w_cost": 1
}

For specifying time and cost weights for each transportation choice.

Key Value Example Description
rulebase_model "linear"
w_time 1 Time weight. If not specified, 1 is assumed.
w_cost 1 Cost weight. If not specified, 1 is assumed.

  • To choose transportation based on time alone (i.e., a mean of transportation with a shorter duration), "w_time": 1, "w_cost": 0
  • To choose transportation based on cost alone (i.e., less expensive transportation), "w_time": 0, "w_cost": 1

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",
 "SOARS_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",
 "CURRENCY_RATE":"1.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"
}

A JSON-formatted file that contains information that is input to the digital rehearsal when the digital rehearsal is executed. Specify this env.json to indicate the execution of the digital rehearsal.

Key Value example Description
USECASE "road-closure" Specifies the use case for the digital rehearsal to be performed.
CONDITION_JSON_ID "simdata-d2d0e1b3-7f78-4939-affc-939d712b15d7" Specifies the simdataId of "condition.json".
ASSIMIL_PERSON_FILE "simdata-272c8229-5a50-48c1-b0db-771c46e3b5d3/od.csv.gz" Specifies that the registered OD file will be used for digital rehearsal. Specifies in simdataId/filename. If not specified, the sample OD file is used.
ASSIMIL_ALIGNER_MAX_STEPS "3600" Specifies the time (in seconds) for the digital rehearsal. An example is an hour.
ASSIMIL_ALIGNER_START_TIME "5" Specifies the start time of the digital rehearsal (in hours). Digitally rehearses the OD of the timestamp for the period of ASSIMIL_ALIGNER_MAX_STEPS after the start time.
SOARS_STATIONS_FILE "simdata-1c480139-c8d5-4d24-a551-af10f008339a/stations.csv" Specifies the registered initial deployment file of the scooter for the station. Specifies in simdataId/filename.
SUMO_NET_FILE "simdata-4467079a-fbd0-440e-8505-a8c518e94562/map.net.xml.gz" Specify this to execute digital rehearsal using a registered SUMO net file. Specifies in simdataId/filename. If not specified, the sample net file is used.
DMM_MODEL_INFO_FILE "simdata-feaf5067-43c2-4673-a229-43e0d7d5dc6d/model.json" Specify this to execute digital rehearsal using a registered behavior selection model file. Specifies in simdataId/filename. If not specified, the behavior selection model learned from the London data is used.
RANDOM_SEED "0" Sets the seed for the random number. The same seed does not mean the same digital rehearsal results.
CURRENCY_RATE "1.0" Set the currency rate. It is based on £, so if you want to convert it to yen, you can specify 186.0 for example.
ROAD_CLOSURE_FILE "simdata-f261a82b-dac2-4034-a765-7e4d56901c12/road-closure.csv" Specifies the registered road closure configuration file. Specifies in `simdataId/filename.
VTYPES "car,pedestrian" Specifies the transportation options for digital rehearsals. You can configure car, pedestrian, escooter, bicycle, and truck. However, truck is not selected as the mode of travel.
USECASE_BATTERY_ENABLED "false" Set to true to enable the discount policy for returning to stations with low battery scooters.
USECASE_BATTERY_DISCOUNT "0" The percentage to discount (%).
USECASE_BATTERY_LOW_PERCENT "15" Specifies the amount of battery remaining to be considered low (%).
USECASE_NUMBER_ENABLED "false" Set to true to enable the discount policy for returning to stations with fewer scooters available.
USECASE_NUMBER_DISCOUNT "0" The percentage to discount (%).
USECASE_NUMBER_THRESHOLD "1" Specify the number of units for which you want to determine that the number of available units is small.

File output as a result of digital rehearsal

  • states.txt
  • output.txt
  • current-usage.txt
  • total-usage.txt

These files can be obtained using the digital rehearsal result file acquisition API.

states.txt

{"name":"states","time":180,"data":{"oid":"person-12","value":{"co2":0.0,"lon":139.64,"type":"pedestrian","lat":35.58,"speed":1.39}}}
...

Output in JSON Lines format. Every minute, it shows where a person is using what means of transportation in latitude and longitude. co2 is the current amount of co2 emissions. speed is the speed at that point.

Key Value example Description
name "states"
time 180 Elapsed digital rehearsal time (seconds)
data oid "person-12" ID of the person appearing in the digital rehearsal
value co2 0.0 CO2 emissions (mg/s)
lon 139.64 Longitude of the current location
type "pedestrian" Means of transportation (pedestrian, car, escooter, bicycle, truck)
lat 35.58 Latitude of the current location
speed 1.39 Velocity at current position (m/s)
ec 0.3372070179260734 Electricity consumption (Wh/s) (escooter only)

When no one is moving, data is null.

{"name":"states","time":60,"data":null}

output.txt

{"name":"output","time":310,"data":{"oid":"person-119","value":{"move":{"travelTime":60,"totalCo2":11818.295182953709,"type":"car"}}}}
{"name":"output","time":310,"data":{"oid":"person-3","value":{"move":{"travelTime":180,"totalCo2":0.0,"type":"pedestrian"}}}}
...
{"name":"output","time":480,"data":{"oid":"person-118","value":{"move":{"opportunityLoss":2.0},"move2":{"travelTime":150,"totalCo2":34648.580464738196,"type":"car"}}}}
...
{"name":"output","time":1010,"data":{"oid":"person-269","value":{"move":{"pedestrianTime":380,"travelTime":500,"escooterDiscount":0.0,"escooterCost":1.7,"totalCo2":0.0,"escooterTime":120,"type":"escooter"}}}}
...

Output in JSON Lines format. Prints a travel history of people arriving at their destination at 10 second intervals. For one person, information about that person is output only once when that person arrives.

Key Value example Description
name "output"
time 310 Elapsed digital rehearsal time (seconds)
data oid "person-119" ID of the person appearing in the digital rehearsal
value move travelTime 60 Time taken to move (seconds)
totalCo2 11818.295182953709 CO2 emissions (mg)
type "car" means of transportation (pedestrian, car, escooter, bicycle, truck)
escooterCost 1.7 Usage fee (escooter only)
escooterDiscount 0.0 Discounted amount (escooter only)
escooterTime 120 Time spent using escooter (seconds) (escooter only)
pedestrianTime 380 Time traveled on foot (seconds) (escooter only)

The rates for escooterCost and escooterDiscount start at £ and are converted to rates by setting: CURRENCY_RATE in env.json.

Also, if the escooter is not borrowed, the output is:

Key Value example Description
name "output"
time 480 Elapsed digital rehearsal time (seconds)
data oid "person-118" ID of the person appearing in the digital rehearsal
value move opportunityLoss 2.0 If you cannot reserve the escooter, print the charge if it is available.
move2 travelTime 150 Time taken to move (seconds)
totalCo2 34648.580464738196 CO2 emissions (mg)
type "car" means of transportation(pedestrian, car, bicycle)

If it is not possible to move using the alternative means, the following is output:

{"name":"output","time":150,"data":{"oid":"person-18","value":{"move":{"message":"Could not create plan."}}}}

current-usage.txt

{"simulator":"soars","name":"current-usage","time":60,"data":{"oid":"bay91","value":{"available":2,"reserved":0,"low":0,"minBattery":100.0}}}
...

Output in JSON Lines format. At 1-minute intervals, the status of the escooter for all stations is printed.

Key Value example Description
simulator "soars"
name "current-usage"
time 60 Elapsed digital rehearsal time (seconds)
data oid "bay91" ID of the station
value available 2 Number of scooters available at the station
reserved 0 Number of scooters reserved at the station
low 0 Number of scooters with a low battery at the station
minBattery 100.0 Minimum battery level (%) for the scooter located at the station

An escooter that is considered low is one that is less than or equal to the amount left in env.json specified by USECASE_BATTERY_LOW_PERCENT.

total-usage.txt

{"simulator":"soars","name":"total-usage","time":3600,"data":{"oid":"bay34","value":{"rentScooters":4,"returnScooters":5}}}
...

Output in JSON Lines format. At the end of the digital rehearsal, the lending result of the escooter for all stations is output.

Key Value example Description
simulator "soars"
name "total-usage"
time 3600 Elapsed digital rehearsal time (seconds)
data oid "bay34" ID of the station
value rentScooters 4 Number of scooters rented at the station
returnScooters 5 Number of scooters returned to the station

2.4 Use Case: Road Pricing

Summary

It is a use case in which a person has the option of driving, walking, biking, or scooter to get to a destination, and each person chooses the means of transportation depending on the cost and time, and rehearses it digitally. By charging roads by time of day for each mode of travel, costs are affected, and when detours are made, travel times are affected, and people's choice of mode of travel is changed.

As with road closures, dynamic discounts, and initial deployment use cases, the following impacts can also be observed:

  • By closing roads by time zone for each mode of travel, travel routes change, affecting travel times and changing people's choice of mode of travel.
  • When renting an scooter, discounts based on the status of the scooter's station will impact costs and change people's transportation choices. That way, you can see what the changes to scooter utilization and user fee revenue are.
  • You can also modify the initial deployment of the scooter, similar to the initial deployment use case.

Trucks also exist as a means of transportation. However, the truck will always appear in the digital rehearsal as someone who travels by truck, rather than as a mode of transportation of choice.

Digital rehearsal input/output

Digital rehearsal input/output is defined for each use case. Road Pricing provides input files in the following formats:

The output is in the "File output as a result of digital rehearsal" format described below.

Input files required for digital rehearsal

(Common)

  • stations.csv
  • road-closure.csv
  • road-pricing.csv
  • map.net.xml.gz
  • od.csv.gz
  • (model.json)

map.net.xml.gz and od.csv.gz must be gzip.

(WebApp)

  • precondition.json

(API)

  • condition.json
  • env.json

precondition.json

{
  "USECASE": "road-pricing",
  "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",
  "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",
  "MAP_CENTER_LATITUDE":"35.444395",
  "MAP_CENTER_LONGITUDE":"139.636773",
  "MAP_ZOOM": "14",
  "CURRENCY_SYMBOL": "¥",
  "CURRENCY_RATE":"189.1800",
  "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"},...]

A JSON-formatted file that registers the conditions under which the digital rehearsal was performed. The format is up to you. The sample web server uses this file to display digital rehearsal results.

stations.csv

name,zone,latitude,longitude,initial
bay1,a,35.55934337167842,139.63850582201087,3
bay2,a,35.580495,139.6351646,3
...

A CSV file that sets the initial placement of the scooter stations.

Item Example values Description
name bay0 The name of the station.
zone b The zone to which the station belongs. Scooter can only move between stations in the same zone.
latitude 35.58 The latitude of the station.
longitude 139.64 The Longitude of the station.
initial 2 Initial deployment of escooters.

road-closure.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",""
...

A CSV file that sets the roads to be closed.

Item Example values Description
oid 948feb22aa309eda98f5f36cee428b4b The ID of the road closure setting.
start 05:00:00 Time to start the road closure. ISO_LOCAL_TIME format.
end 06:00:00 Time to end the road closure. ISO_LOCAL_TIME format.
type car a means of transportation that becomes impassable.
polygon "139.66056921784974,35.57560496598741,139.66658309933842,35.57404537981951,139.66449131447303,35.56879927623754,139.66056921784974,35.57560496598741" Specify the area as a pair of longitude,latitudes, separated by ,. Enclose with ".
lanes "" Specify the lane IDs, separated by a comma (,). Enclose with ".

road-pricing.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"
...

A CSV file that sets the roads to be charged.

Item Example values Description
oid 2ac5dc629aebf5a9077c2a77178a0b84 The ID of the road charging configuration.
start 05:00:00 The time to start road charging. ISO_LOCAL_TIME format.
end 06:00:00 Time to end road charging. ISO_LOCAL_TIME foramt.
type car Charged transportation.
price 200 The charge amount.
polygon "139.66056921784974,35.57560496598741,139.66658309933842,35.57404537981951,139.66449131447303,35.56879927623754,139.66056921784974,35.57560496598741" Specify the area as a pair of longitude,latitudes, separated by ,. Enclose with ".

map.net.xml.gz

Net file used by SUMO. For the creation method, please refer to 2.1.1 Map Data Generation: OSM Converter or 2.6 Map Data Registration Procedure.

od.csv.gz

A file that specifies a person's travel as a point of departure and arrival.

oid,timestamp,origin_lon,origin_lat,dest_lon,dest_lat,type,age,gender_type,driving_license,car_ownership
person-0,05:00:00,139.582230,35.436874,139.558556,35.424722,truck,52,1,1,2
...

Item Example values Description
oid person-0 Required. Must be a unique ID in the OD.
timestamp 05:00:00 Required. ISO_LOCAL_TIME format.
origin_lon 139.582230 Required. Longitude of the origin.
origin_lat 35.436874 Required. Latitude of the point of departure.
dest_lon 139.558556 Required. Longitude of the place of arrival.
dest_lat 35.424722 Required. Latitude of the place of arrival.
type truck Optional. Specifies that the moving means is fixed. Possible values are: car, pedestrian, escooter, bicycle, truck. If you do not specify anything, select the mode of travel.
age 52 Optional, Actual age.
gender_type 1 Optional. Sex. 1 for women and 0 for others.
driving_license 1 Optional. Does the person have a driver's license? 1 if the person has one, 0 otherwise.
car_ownership 2 Optional. Household car retention status. 0 if not held, 1 if less than one unit per adult is held, and 2 if more than one unit per adult is held.
household_carvan 1 Optional. Specifies the number of private cars. Valid only when car_ownership is not specified.
sex_type 1 Optional. 1 is male. 2 is female. Valid only when gender_type is not specified.
age_type 1 Optional. 1: 0 to 15 years, 2: 16 to 24 years, 3: 25 to 34 years, 4: 35 to 49 years, 5: 50 to 64 years, 6: 65 years and older. Valid only when age is not specified.

If you omit an item, omit it for all lines. If there are only required items, the format is as follows:

oid,timestamp,origin_lon,origin_lat,dest_lon,dest_lat
person-0,05:00:00,139.582230,35.436874,139.558556,35.424722
...

model.json

This file is for the case where you want to specify an arbitrary selection probability as a human behavior selection model.

Fixed Probability
{
  "rulebase_model": "fixed",
  "fixed_weights": {
    "CAR": 1,
    "WALKING": 1,
    "CYCLING": 1
  }
}

For specifying the selection probability (weight) of each means of transportation.

Key Value Example Description
rulebase_model "fixed" fixed probability
fixed_weights CAR 1 car weight. If not specified, 0 is assumed.
WALKING 1 pedestrian weight. If not specified, 0 is assumed.
CYCLING 1 escooter weight. If not specified, 0 is assumed.

  • To select only escooter: "fixed_weights": {"CYCLING": 1}
  • To select only car: "fixed_weights": {"CAR": 1}
  • To select only pedestrian: "fixed_weights": {"WALKING": 1}
Random
{"rulebase_model": "random"}

For randomizing the selection probability of each means of transportation.

Specifying Time and Cost Weight Factors
{
  "rulebase_model": "linear",
  "w_time": 1,
  "w_cost": 1
}

For specifying time and cost weights for each transportation choice.

Key Value Example Description
rulebase_model "linear"
w_time 1 Time weight. If not specified, 1 is assumed.
w_cost 1 Cost weight. If not specified, 1 is assumed.

  • To choose transportation based on time alone (i.e., a mean of transportation with a shorter duration), "w_time": 1, "w_cost": 0
  • To choose transportation based on cost alone (i.e., less expensive transportation), "w_time": 0, "w_cost": 1

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",
 "SOARS_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",
 "CURRENCY_RATE":"1.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"
}

A JSON-formatted file that contains information that is input to the digital rehearsal when the digital rehearsal is executed. Specify this env.json to indicate the execution of the digital rehearsal.

Key Value example Description
USECASE "road-pricing" Specifies the use case for the digital rehearsal to be performed.
CONDITION_JSON_ID "simdata-d2d0e1b3-7f78-4939-affc-939d712b15d7" Specifies the simdataId of "condition.json".
ASSIMIL_PERSON_FILE "simdata-272c8229-5a50-48c1-b0db-771c46e3b5d3/od.csv.gz" Specifies that the registered OD file will be used for digital rehearsal. Specifies in simdataId/filename. If not specified, the sample OD file is used.
ASSIMIL_ALIGNER_MAX_STEPS "3600" Specifies the time (in seconds) for the digital rehearsal. An example is an hour.
ASSIMIL_ALIGNER_START_TIME "5" Specifies the start time of the digital rehearsal (in hours). Digitally rehearses the OD of the timestamp for the period of ASSIMIL_ALIGNER_MAX_STEPS after the start time.
SOARS_STATIONS_FILE "simdata-1c480139-c8d5-4d24-a551-af10f008339a/stations.csv" Specifies the registered initial deployment file of the scooter for the station. Specifies in simdataId/filename.
SUMO_NET_FILE "simdata-4467079a-fbd0-440e-8505-a8c518e94562/map.net.xml.gz" Specify this to execute digital rehearsal using a registered SUMO net file. Specifies in simdataId/filename. If not specified, the sample net file is used.
DMM_MODEL_INFO_FILE "simdata-feaf5067-43c2-4673-a229-43e0d7d5dc6d/model.json" Specify this to execute digital rehearsal using a registered behavior selection model file. Specifies in simdataId/filename. If not specified, the behavior selection model learned from the London data is used.
RANDOM_SEED "0" Sets the seed for the random number. The same seed does not mean the same digital rehearsal results.
CURRENCY_RATE "1.0" Set the currency rate. It is based on £, so if you want to convert it to yen, you can specify 186.0 for example.
ROAD_CLOSURE_FILE "simdata-f261a82b-dac2-4034-a765-7e4d56901c12/road-closure.csv" Specifies the registered road closure configuration file. Specifies in `simdataId/filename.
ROAD_PRICING_FILE "simdata-f0917da6-4a9b-4e24-99f4-909f240be14d/road-pricing.csv" Specifies the registered road charging configuration file. Specifies in simdataId/filename.
VTYPES "car,pedestrian" Specifies the transportation options for digital rehearsals. You can configure car, pedestrian, escooter, bicycle, and truck. However, truck is not selected as the mode of travel.
DETOUR_VTYPES "car" Specifies the means of travel to bypass. You can configure car, pedestrian, and bicycle.
USECASE_BATTERY_ENABLED "false" Set to true to enable the discount policy for returning to stations with low battery scooters.
USECASE_BATTERY_DISCOUNT "0" The percentage to discount (%).
USECASE_BATTERY_LOW_PERCENT "15" Specifies the amount of battery remaining to be considered low (%).
USECASE_NUMBER_ENABLED "false" Set to true to enable the discount policy for returning to stations with fewer scooters available.
USECASE_NUMBER_DISCOUNT "0" The percentage to discount (%).
USECASE_NUMBER_THRESHOLD "1" Specify the number of units for which you want to determine that the number of available units is small.

File output as a result of digital rehearsal

  • states.txt
  • output.txt
  • current-usage.txt
  • total-usage.txt

These files can be obtained using the digital rehearsal result file acquisition API.

states.txt

{"name":"states","time":180,"data":{"oid":"person-12","value":{"co2":0.0,"lon":139.64,"type":"pedestrian","lat":35.58,"speed":1.39}}}
...

Output in JSON Lines format. Every minute, it shows where a person is using what means of transportation in latitude and longitude. co2 is the current amount of co2 emissions. speed is the speed at that point.

Key Value example Description
name "states"
time 180 Elapsed digital rehearsal time (seconds)
data oid "person-12" ID of the person appearing in the digital rehearsal
value co2 0.0 CO2 emissions (mg/s)
lon 139.64 Longitude of the current location
type "pedestrian" Means of transportation (pedestrian, car, escooter, bicycle, truck)
lat 35.58 Latitude of the current location
speed 1.39 Velocity at current position (m/s)
ec 0.3372070179260734 Electricity consumption (Wh/s) (escooter only)

When no one is moving, data is null.

{"name":"states","time":60,"data":null}

output.txt

{"name":"output","time":310,"data":{"oid":"person-119","value":{"move":{"travelTime":60,"totalCo2":11818.295182953709,"type":"car","toll":0.0}}}}
{"name":"output","time":310,"data":{"oid":"person-3","value":{"move":{"travelTime":180,"totalCo2":0.0,"type":"pedestrian","toll":0.0}}}}
...
{"name":"output","time":480,"data":{"oid":"person-118","value":{"move":{"opportunityLoss":2.0},"move2":{"travelTime":150,"totalCo2":34648.580464738196,"type":"car","toll":0.0}}}}
...
{"name":"output","time":1010,"data":{"oid":"person-269","value":{"move":{"pedestrianTime":380,"travelTime":500,"escooterDiscount":0.0,"escooterCost":1.7,"totalCo2":0.0,"escooterTime":120,"type":"escooter","toll":0.0}}}}
...

Output in JSON Lines format. Prints a travel history of people arriving at their destination at 10 second intervals. For one person, information about that person is output only once when that person arrives.

Key Value example Description
name "output"
time 310 Elapsed digital rehearsal time (seconds)
data oid "person-119" ID of the person appearing in the digital rehearsal
value move travelTime 60 Time taken to move (seconds)
totalCo2 11818.295182953709 CO2 emissions (mg)
type "car" means of transportation (pedestrian, car, escooter, bicycle, truck)
toll 200 amount charged
escooterCost 1.7 Usage fee (escooter only)
escooterDiscount 0.0 Discounted amount (escooter only)
escooterTime 120 Time spent using escooter (seconds) (escooter only)
pedestrianTime 380 Time traveled on foot (seconds) (escooter only)

The rates for escooterCost and escooterDiscount start at £ and are converted to rates by setting: CURRENCY_RATE in env.json.

Also, if the escooter is not borrowed, the output is:

Key Value example Description
name "output"
time 480 Elapsed digital rehearsal time (seconds)
data oid "person-118" ID of the person appearing in the digital rehearsal
value move opportunityLoss 2.0 If you cannot reserve the escooter, print the charge if it is available.
move2 travelTime 150 Time taken to move (seconds)
totalCo2 34648.580464738196 CO2 emissions (mg)
type "car" means of transportation(pedestrian, car, bicycle)
toll 200 amount charged

If it is not possible to move using the alternative means, the following is output:

{"name":"output","time":150,"data":{"oid":"person-18","value":{"move":{"message":"Could not create plan."}}}}

current-usage.txt

{"simulator":"soars","name":"current-usage","time":60,"data":{"oid":"bay91","value":{"available":2,"reserved":0,"low":0,"minBattery":100.0}}}
...

Output in JSON Lines format. At 1-minute intervals, the status of the escooter for all stations is printed.

Key Value example Description
simulator "soars"
name "current-usage"
time 60 Elapsed digital rehearsal time (seconds)
data oid "bay91" ID of the station
value available 2 Number of scooters available at the station
reserved 0 Number of scooters reserved at the station
low 0 Number of scooters with a low battery at the station
minBattery 100.0 Minimum battery level (%) for the scooter located at the station

An escooter that is considered low is one that is less than or equal to the amount left in env.json specified by USECASE_BATTERY_LOW_PERCENT.

total-usage.txt

{"simulator":"soars","name":"total-usage","time":3600,"data":{"oid":"bay34","value":{"rentScooters":4,"returnScooters":5}}}
...

Output in JSON Lines format. At the end of the digital rehearsal, the lending result of the escooter for all stations is output.

Key Value example Description
simulator "soars"
name "total-usage"
time 3600 Elapsed digital rehearsal time (seconds)
data oid "bay34" ID of the station
value rentScooters 4 Number of scooters rented at the station
returnScooters 5 Number of scooters returned to the station

2.5 Use Case: Park and Ride

Summary

This is a use case where people can choose to travel to a destination by car, by foot, by escooter, by bicycle, or by a public common authority, and then digital rehearsal each person's choice of transportation based on cost and time.

By installing a parking lot, transferring to public transport becomes an option, affecting costs and travel times, and changing people's choice of transportation.

As with the dynamic discount and initial deployment use cases, you can also see the impact of:

  • When renting an scooter, discounts based on the status of the escooter's station will impact costs and change people's transportation choices. That way, you can see what the changes to scooter utilization and user fee revenue are.
  • You can also modify the initial deployment of the scooter, similar to the initial deployment use case.

Digital rehearsal input/output

Digital rehearsal input/output is defined for each use case. Park and Ride provides input files in the following formats:

The output is in the "File output as a result of digital rehearsal" format described below.

Input files required for digital rehearsal

(Common)

  • stations.csv
  • map.net.xml.gz
  • od.csv.gz
  • parking.csv
  • (osm.pbf)
  • (gtfs.zip)

map.net.xml.gz and od.csv.gz must be gzip.

(WebApp)

  • precondition.json

(API)

  • condition.json
  • env.json

precondition.json

{
  "USECASE": "park-and-ride",
  "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",
  "MAP_CENTER_LATITUDE":"35.444395",
  "MAP_CENTER_LONGITUDE":"139.636773",
  "MAP_ZOOM": "14",
  "CURRENCY_SYMBOL": "¥",
  "CURRENCY_RATE":"189.1800",
  "START_HOUR": "10",
  "END_HOUR": "12",
  "DATE": "2024-05-13",
  "TIMEZONE": "Asia/Tokyo",
  "PARKING_FILE": "simdata-your-simdataId-of-parking-csv/parking.csv",
  "PARK_CHARGE_DST": 0,
  "OTP_OSM_FILE": "simdata-your-simdataId-of-otp-osm-pbf/osm.pbf",
  "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,
 "park_charge_dst":0,
 "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},
 "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}]
}

A JSON-formatted file that registers the conditions under which the digital rehearsal was performed. The format is up to you. The sample web server uses this file to display digital rehearsal results.

stations.csv

name,zone,latitude,longitude,initial
bay1,a,35.55934337167842,139.63850582201087,3
bay2,a,35.580495,139.6351646,3
...

A CSV file that sets the initial placement of the scooter stations.

Item Example values Description
name bay0 The name of the station.
zone b The zone to which the station belongs. Scooter can only move between stations in the same zone.
latitude 35.58 The latitude of the station.
longitude 139.64 The Longitude of the station.
initial 2 Initial deployment of escooters.

parking.csv

name,latitude,longitude,total,type,charge
parking1,35.58139979797416,139.64179207801715,5,car,100
parking2,35.58081517716869,139.64339067458974,5,car,100
...

A CSV file for setting parking lot placement.

Item Example values Description
name parking1 The name of the parking.
latitude 35.58139979797416 The latitude of the parking.
longitude 139.64179207801715 The longitude of the parking.
total 5 Number of cars that can be parked.
type car Types of Parking. (car or bicycle)
charge 100 Parking fee.

map.net.xml.gz

Net file used by SUMO. For the creation method, please refer to 2.1.1 Map Data Generation: OSM Converter or 2.6 Map Data Registration Procedure.

od.csv.gz

A file that specifies a person's travel as a point of departure and arrival.

oid,timestamp,origin_lon,origin_lat,dest_lon,dest_lat,age,gender_type,driving_license,car_ownership
person-0,05:00:00,139.582230,35.436874,139.558556,35.424722,52,1,1,2
...

Item Example values Description
oid person-0 Required. Must be a unique ID in the OD.
timestamp 05:00:00 Required. ISO_LOCAL_TIME format.
origin_lon 139.582230 Required. Longitude of the origin.
origin_lat 35.436874 Required. Latitude of the point of departure.
dest_lon 139.558556 Required. Longitude of the place of arrival.
dest_lat 35.424722 Required. Latitude of the place of arrival.
type car Optional. Specifies that the moving means is fixed. Possible values are: car, pedestrian, escooter, bicycle. If you do not specify anything, select the mode of travel.
age 52 Optional, Actual age.
gender_type 1 Optional. Sex. 1 for women and 0 for others.
driving_license 1 Optional. Does the person have a driver's license? 1 if the person has one, 0 otherwise.
car_ownership 2 Optional. Household car retention status. 0 if not held, 1 if less than one unit per adult is held, and 2 if more than one unit per adult is held.
household_carvan 1 Optional. Specifies the number of private cars. Valid only when car_ownership is not specified.
sex_type 1 Optional. 1 is male. 2 is female. Valid only when gender_type is not specified.
age_type 1 Optional. 1: 0 to 15 years, 2: 16 to 24 years, 3: 25 to 34 years, 4: 35 to 49 years, 5: 50 to 64 years, 6: 65 years and older. Valid only when age is not specified.

If you omit an item, omit it for all lines. If there are only required items, the format is as follows:

oid,timestamp,origin_lon,origin_lat,dest_lon,dest_lat
person-0,05:00:00,139.582230,35.436874,139.558556,35.424722
...

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",
 "SOARS_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",
 "CURRENCY_RATE":"186.0",
 "VTYPES":"car,pedestrian,bicycle",
 "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",
 "PARK_CHARGE_DST":0,
}

A JSON-formatted file that contains information that is input to the digital rehearsal when the digital rehearsal is executed. Specify this env.json to indicate the execution of the digital rehearsal.

Key Value example Description
USECASE "park-and-ride" Specifies the use case for the digital rehearsal to be performed.
CONDITION_JSON_ID "simdata-d2d0e1b3-7f78-4939-affc-939d712b15d7" Specifies the simdataId of "condition.json".
ASSIMIL_PERSON_FILE "simdata-272c8229-5a50-48c1-b0db-771c46e3b5d3/od.csv.gz" Specifies that the registered OD file will be used for digital rehearsal. Specifies in simdataId/filename. If not specified, the sample OD file is used.
ASSIMIL_ALIGNER_MAX_STEPS "3600" Specifies the time (in seconds) for the digital rehearsal. An example is an hour.
ASSIMIL_ALIGNER_START_TIME "5" Specifies the start time of the digital rehearsal (in hours). Digitally rehearses the OD of the timestamp for the period of ASSIMIL_ALIGNER_MAX_STEPS after the start time.
SOARS_STATIONS_FILE "simdata-1c480139-c8d5-4d24-a551-af10f008339a/stations.csv" Specifies the registered initial deployment file of the scooter for the station. Specifies in simdataId/filename.
SUMO_NET_FILE "simdata-4467079a-fbd0-440e-8505-a8c518e94562/map.net.xml.gz" Specify this to execute digital rehearsal using a registered SUMO net file. Specifies in simdataId/filename. If not specified, the sample net file is used.
DMM_MODEL_INFO_FILE "simdata-feaf5067-43c2-4673-a229-43e0d7d5dc6d/model.json" Specify this to execute digital rehearsal using a registered behavior selection model file. Specifies in simdataId/filename. If not specified, the behavior selection model learned from the London data is used.
RANDOM_SEED "0" Sets the seed for the random number. The same seed does not mean the same digital rehearsal results.
CURRENCY_RATE "1.0" Set the currency rate. It is based on £, so if you want to convert it to yen, you can specify 186.0 for example.
VTYPES "car,pedestrian,escooter" Specifies the transportation options for digital rehearsals. You can configure car, pedestrian, escooter, and bicycle.
USECASE_BATTERY_ENABLED "false" Set to true to enable the discount policy for returning to stations with low battery scooters.
USECASE_BATTERY_DISCOUNT "0" The percentage to discount (%).
USECASE_BATTERY_LOW_PERCENT "15" Specifies the amount of battery remaining to be considered low (%).
USECASE_NUMBER_ENABLED "false" Set to true to enable the discount policy for returning to stations with fewer scooters available.
USECASE_NUMBER_DISCOUNT "0" The percentage to discount (%).
USECASE_NUMBER_THRESHOLD "1" Specify the number of units for which you want to determine that the number of available units is small.
DATE "2024-03-14" Specifies the date of the digital rehearsal. ISO_LOCAL_DATE format.
TIMEZONE "Asia/Tokyo" Specifies the timezone of the digital rehearsal. Specifies the time zone defined by Time Zone Database.
PARKING_FILE "simdata-10f56ac9-9296-4c9b-ba34-7db6ddda809d/parking.csv" Specifies a file for the parking. Specifies in simdataId/filename.
PARK_CHARGE_DST "0" In case of traveling by car, set the fee for parking at the destination.
OTP_OSM_FILE "simdata-b5824fa3-97e5-45a3-b087-fa7b5bb9c6b0/osm.pbf" Specifies the map information used by OpenTripPlanner. Specifies in simdataId/filename. If not specified, the sample osm file is used.
OTP_GTFS_USE_DEFAULT "true" true if OpenTripPlanner uses a pre-set file as the GTFS file to use. The sample files include Kawasaki City Bus, JR(Nambu Line, Yokosuka Line, Tsurumi Line), and Tokyu (Toyoko Line, Meguro Line, Denentoshi Line, Oimachi Line).
OTP_GTFS_FILE_0 "simdata-59d4f411-8fc8-411d-a882-c5e9e233cdcf/0_.gtfs.zip" Specifies the GTFS file used by OpenTripPlanner. Specifies in simdataId/filename.
OTP_GTFS_FILE_1 "simdata-59d4f411-8fc8-411d-a883-c5e9e233cdcf/1_.gtfs.zip" Specifies the GTFS file used by OpenTripPlanner. Specifies in simdataId/filename.
OTP_GTFS_FILE_2 "simdata-59d4f411-8fc8-411d-a884-c5e9e233cdcf/2_.gtfs.zip" Specifies the GTFS file used by OpenTripPlanner. Specifies in simdataId/filename.
OTP_GTFS_FILE_3 "simdata-59d4f411-8fc8-411d-a885-c5e9e233cdcf/3_.gtfs.zip" Specifies the GTFS file used by OpenTripPlanner. Specifies in simdataId/filename.
OTP_GTFS_FILE_4 "simdata-59d4f411-8fc8-411d-a886-c5e9e233cdcf/4_.gtfs.zip" Specifies the GTFS file used by OpenTripPlanner. Specifies in simdataId/filename.
OTP_GTFS_FILE_5 "simdata-59d4f411-8fc8-411d-a887-c5e9e233cdcf/5_.gtfs.zip" Specifies the GTFS file used by OpenTripPlanner. Specifies in simdataId/filename.

GTFS files must be specified in order, starting with 0. If it is not specified in the middle, it is not used thereafter. For example, if you specify 0 and 2, only 0 is used.

osm.pbf

Map information used by OpenTripPlanner. See here how to create it.

gtfs.zip

GTFS fie used by OpenTripPlanner. See here about GTFS.

File output as a result of digital rehearsal

  • states.txt
  • output.txt
  • current-usage.txt
  • total-usage.txt

These files can be obtained using the digital rehearsal result file acquisition API.

states.txt

{"name":"states","time":180,"data":{"oid":"person-12","value":{"co2":0.0,"lon":139.64,"type":"pedestrian","lat":35.58,"speed":1.39}}}
...

Output in JSON Lines format. Every minute, it shows where a person is using what means of transportation in latitude and longitude. co2 is the current amount of co2 emissions. speed is the speed at that point.

Key Value example Description
name "states"
time 180 Elapsed digital rehearsal time (seconds)
data oid "person-12" ID of the person appearing in the digital rehearsal
value co2 0.0 CO2 emissions (mg/s)
lon 139.64 Longitude of the current location
type "pedestrian" Means of transportation (pedestrian, car, escooter, bicycle, bus, rail, tram, subway, waiting)
lat 35.58 Latitude of the current location
speed 1.39 Velocity at current position (m/s)
ec 0.3372070179260734 Electricity consumption (Wh/s) (escooter only)

When no one is moving, data is null.

{"name":"states","time":60,"data":null}

output.txt

{"name":"output","time":310,"data":{"oid":"person-119","value":{"move":{"travelTime":60,"totalCo2":11818.295182953709,"type":"car"}}}}
{"name":"output","time":310,"data":{"oid":"person-3","value":{"move":{"travelTime":180,"totalCo2":0.0,"type":"pedestrian"}}}}
...
{"name":"output","time":480,"data":{"oid":"person-118","value":{"move":{"opportunityLoss":2.0},"move2":{"travelTime":150,"totalCo2":34648.580464738196,"type":"car"}}}}
...
{"name":"output","time":1010,"data":{"oid":"person-269","value":{"move":{"pedestrianTime":380,"travelTime":500,"escooterDiscount":0.0,"escooterCost":1.7,"totalCo2":0.0,"escooterTime":120,"type":"escooter"}}}}
{"name":"output","time":660,"data":{"oid":"person-34","value":{"move":{"travelTime":100,"carDistance":775.9799999999999,"totalCo2":203530.09611421896,"travelRoute":{"type":"FeatureCollection","features":[{"type":"feature","properties":{"mode":"car"},"geometry":{"type":"LineString","coordinates":[[139.6496,35.57605],[139.64991,35.57605],[139.6502,35.57604],[139.6502,35.57637],[139.65021,35.57682],[139.65022,35.57693],[139.6499,35.57699],[139.64954,35.57705],[139.64873,35.57706],[139.64745,35.57709],[139.64747,35.57743],[139.64746,35.57759],[139.64744,35.57773],[139.64722,35.57782],[139.64698,35.57795],[139.64674,35.57807],[139.64626,35.57834],[139.64603,35.57846],[139.64587,35.57855],[139.64567,35.57865],[139.64413,35.57949],[139.64414,35.57939],[139.64418,35.57895]]}}]},"park_dst":0.0,"type":"car","carTime":100,"fuelCost":13.869874222266384}}}}
...

Output in JSON Lines format. Prints a travel history of people arriving at their destination at 10 second intervals. For one person, information about that person is output only once when that person arrives.

Key Value example Description
name "output"
time 310 Elapsed digital rehearsal time (seconds)
data oid "person-119" ID of the person appearing in the digital rehearsal
value move travelTime 60 Time taken to move (seconds)
totalCo2 11818.295182953709 CO2 emissions (mg)
type "car" means of transportation (combination of pedestrian, car, escooter, bicycle, bus, rail, tram, and subway)
escooterCost 1.7 Usage fee (escooter only)
escooterDiscount 0.0 Discounted amount (escooter only)
escooterTime 120 Time spent using escooter (seconds) (escooter only)
escooterDistance 765.0 Distance traveled by scooter (m)
pedestrianTime 380 Time traveled on foot (seconds)
pedestrianDistance 510.0 Distance traveled on foot (m)
carTime 300 Time spent in a car (s)
carDistance 2037.8 Distance traveled by car (m)
bicycleTime 420 Time traveled by bicycle (s)
bicycleDistance 1762.2 Distance traveled by bicycle (m)
busTime 390 Time traveled by bus (s)
busDistance 765.0 Distance traveled by bus (m)
railTime 880 Time traveled by rail (s)
railDistance 3012.0 Distance traveled by rail (m)
tramTime 880 Time traveled by tram (s)
tramDistance 3012.0 Distance traveled by tram (m)
subwayTime 880 Time traveled by subway (s)
subwayDistance 3012.0 Distance traveled by subway (m)
fare 200.0 Fare
fuelCost 201.1 Fuel cost (car only)
park_api 100.0 Parking charge
park_dst 200.0 Destination parking fee for car-only travel
travelRoute Travel path including means of travel

The rates for escooterCost and escooterDiscount start at £ and are converted to rates by setting: CURRENCY_RATE in env.json.

If the escooter is not borrowed or the parking lot is full, the output is:

Key Value example Description
name "output"
time 480 Elapsed digital rehearsal time (seconds)
data oid "person-118" ID of the person appearing in the digital rehearsal
value move opportunityLoss 2.0 If you cannot reserve the escooter, print the charge if it is available.
carParkingFull 100.0 If you cannot reserve the escooter, print the charge if it is available.
bicycleParkingFull 100.0 If you cannot reserve the escooter, print the charge if it is available.

If the reservation fails, the same output as above is additionally performed as move2 to move5 in order to narrow down the means of travel and try to move again.

If it is not possible to move using the alternative means, the following is output:

{"name":"output","time":150,"data":{"oid":"person-18","value":{"move":{"message":"Could not create plan."}}}}

If person miss the departure of public transportation, the following is output.

{"name":"output","time":1020,"data":{"oid":"person-36","value":{"move":{"message":"The departure time has passed."}}}}

current-usage.txt

{"simulator":"soars","name":"current-usage","time":60,"data":{"oid":"bay91","value":{"available":2,"reserved":0,"low":0,"minBattery":100.0}}}
{"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}]}}}}
...

Output in JSON Lines format. At 1-minute intervals, the status of the escooter for all stations is printed.

Key Value example Description
simulator "soars"
name "current-usage"
time 60 Elapsed digital rehearsal time (seconds)
data oid "bay91" ID of the station
value available 2 Number of scooters available at the station
reserved 0 Number of scooters reserved at the station
low 0 Number of scooters with a low battery at the station
minBattery 100.0 Minimum battery level (%) for the scooter located at the station

An escooter that is considered low is one that is less than or equal to the amount left in env.json specified by USECASE_BATTERY_LOW_PERCENT.

The status of the parking lot is also output.

Key Value example Description
name "current-usage"
time 1320 Elapsed digital rehearsal time (seconds)
data oid "parking5" Parking ID
value available 1 Number of parking spaces available
reserved 1 Number of reserved parking spaces
type "car-parking" car-parking or bicycle-parking
details Reservation and parking details

total-usage.txt

{"simulator":"soars","name":"total-usage","time":3600,"data":{"oid":"bay34","value":{"rentScooters":4,"returnScooters":5}}}
{"name":"total-usage","time":0,"data":{"oid":"parking5","value":{"type":"car-parking","rentCount":8,"returnCount":4}}}
...

Output in JSON Lines format. At the end of the digital rehearsal, the lending result of the escooter for all stations is output.

Key Value example Description
simulator "soars"
name "total-usage"
time 3600 Elapsed digital rehearsal time (seconds)
data oid "bay34" ID of the station
value rentScooters 4 Number of scooters rented at the station
returnScooters 5 Number of scooters returned to the station

Parking results are also output.

Key Value example Description
name "total-usage"
time 0 0 Fixed
data oid "parking5" Parking ID
value rentCount 8 Total number of vehicles in the parking lot
returnCount 4 Total number of vehicles leaving the parking lot
type "car-parking" car-parking or bicycle-parking

2.6 Map Data Registration Procedure

SUMO Site

For instructions, see HERE.

Procedure for creating sample data

The procedure for creating a net file for Kawasaki City, which is provided as a sample, is shown for reference.

Retrieve the OSM file from the Open Street Map Site.

Click Export to export the specified range. The following ranges are specified:

  • Latitude: 35.5667000 -35.5955000
  • Longitude: 139.6178000 -139.6760000

The export results in an error, so we are using the Overpass API to download.

Convert the OSM file with the SUMO netconvert command.

netconvert --osm-files osmfile -o map.net.xml --speed-in-kmh --junctions.join --sidewalks.guess.from-permissions --crossings.guess --lefthand

These options are different from the options on the SUMO site, but they cause an error when loading into SUMO.

Load the map.net.xml that you created in SUMO and verify that there are no errors.

Finally, gzip makes map.net.xml.gz.

For information about how to install and use SUMO, see SUMO Site.