Skip to main content
Skip table of contents

Autonomous Traffic

Introduction

Nova supports autonomous traffic on roads and waterways. The traffic simulation is rendered using feedback from the Simulation of Urban Mobility (SUMO). Offline data can be read into the simulation to create the advanced traffic patterns and routing. There is plenty of customization available including the types of models, the number of vehicles in the scene, and the placement of dynamic exclusion zones.

Configuration

Several tokens are needed to setup the auto traffic simulation.

CIGI

File

Token

Value

Notes

data\versions\dlls\config_host_if_cigi.cfg

AutoTrafficDllEnable

ON

Assumes you're including ovrd_host_cigi.cfg

Nova

File

Token

Value

Notes

ovrd_node_local.cfg

GndTargetFilterNormals

ON

Prevents the vehicles from jittering on bumpy roads

ovrd_node_local.cfg

ConfigTgts_File

DB/DB_CONFIG/config_tgts_auto_traffic.cfg

There are special visual models for auto traffic so you should set your config tgts to load them.

Traffic Data

While the traffic data can be downloaded and built on the fly for anywhere you go, it's faster to install it if it already exists. Typically auto traffic data is placed on the system under E:\CLIPMAPS\autotraffic or E:\CM\data\autotraffic

Runtime Control

The auto traffic feature is controlled using the following CIGI Component Control Packets. Each component control packet shares the same Component Class and Component ID value.

  • Component Class: Global Terrain Surface (8)

  • Component ID: 0

Instance ID

Functionality Mapping

Description

Control Parameter

0

enableAutoTraffic

Enables or disables the auto traffic

CompState [0,1]

max_vehicles

The maximum number of vehicles in the simulation.

CompData[0] as float

[0,512]

draw_range

The maximum draw distance for the auto traffic targets

CompData[1] as float

vehicle_lights

Enables or disables the vehicle lights

CompData[2] as char

CigiBaseCompCtrl::LSB

ship_lights

Enables or disables the ship lights

CompData[2] as char

CigiBaseCompCtrl::Ord3

1

exclusion_zone[].enable

Enables or disables the given exclusion zone

CompData(0) as long

 

Exclusion Zone from CompData

 

2

exclusion_zone[]

Clears the exclusion zone

Exclusion zone as CompState

3

exclusion_zones[].vertices[]

Sets a set of vertices for the exclusion zone

Exclusion zone as CompState

CompData[0] as float for vertex 1

CompData[1] as float for vertex 2

Advanced Setup

Downloading New Areas

Once auto traffic is enabled you can simply visit a new area to download and build traffic simulations on an Internet connected IG, but it is preferable to do this processing before hand as it can often be a lengthy process due to OSM server-side request throttling.

To download new areas, you run autoTrafficSim.exe with the --batchBuild argument.

autoTrafficSim --batchBuild

The autoTrafficSim --batchBuild command allows users to specify a bounding box to download and build sims for:

CODE
--batchbuild arg      Allows simulations to be built for a large area by specifying the bounding box in geo coordinates south(lat),west(lon),north(lat),east(lon) ...

As an example, to create a scenario in Washington DC the following positions would be suitable:

image-20250613-031317.png

And the command would look like this:

CODE
E:\CM\data>E:\CM\software\<version>\bin\optimized-x64\autoTrafficSim.exe --cfgFile autoTraffic.cfg --batchBuild 38.812798,-77.162116,38.997030,-76.917536

As the command executes you'll be given feedback as depending on how large the area is (and if the server is throttling your requests) the operation can take a long time:

CODE
[2022-07-26 10:38:41]    INFO [autoTrafficSim]: Downloading and building 121 simulations for 38.812798,-77.162116,38.997030,-76.917536 ... 
[2022-07-26 10:44:02]    INFO [4682.6264]: Completed building simulation 1 of 121. [0.83%] 
[2022-07-26 10:44:09]    INFO [4684.6265]: Completed building simulation 2 of 121. [1.65%]

As an example, downloading and creating simulations for all of Switzerland with the default settings took about 27 hours.

Some important notes:

  1. --versionsRoot must be specified to locate python.exe and sumo

  2. --cfgFile should be specified to ensure the correct simulation parameters are used for building

  3. You must run the command from the directory you run pC-Nova, e.g. your "data" directory.

autoTrafficSim --rebuild

As previously mentioned, when creating new simulations, the bottleneck is downloading the data.

If you already have the data downloaded at the correct level (AutoTrafficBboxZoomLevel) but need to change some SUMO simulation parameters you can run autoTrafficSim with the --rebuild option:

Turn on wrapCopy as text

CODE
--rebuild             Rebuilds simulations even if they exist

The --rebuild option must be used with the --batchBuild argument to specify the area you'd like to rebuild or --batchBuild all to rebuild your entire cache.  For example:

CODE
E:\CM\software\<version>\bin\optimized-x64\autoTrafficSim.exe --cfgFile autoTraffic.cfg --batchBuild all --rebuild

From there autoTrafficSim will query your cache and update you on the progress:

CODE
[2022-07-26 11:14:50]    INFO [autoTrafficSim]: Rebuilding all 27492 simulations in autoTrafficData/14 ...

Rebuilding is significantly faster than downloading and building. 

Where downloading and building Switzerland from scratch took about 27 hours, rebuilding took about 3.5 hours.

Configuring Visual Models

The default autoTraffic.cfg settings select models from the config_tgts_auto_traffic.cfg file to use for traffic.

If you need to use another config_tgts file or would like to change the models that can be used you'd modify the following tokens:

File

Token

Value

Notes

data\versions\dlls\autoTraffic.cfg

AutoTrafficVehicleTypes

A comma separated list of type IDs from ASIGN_TER_SIMPLE to use

This should be limited to vehicle models that are a maximum of 5m in length

data\versions\dlls\autoTraffic.cfg

AutoTrafficTruckTypes

A comma separated list of type IDs from ASIGN_TER_SIMPLE to use

This should be limited to truck models that are a maximum of 7.1m in length

data\versions\dlls\autoTraffic.cfg

AutoTrafficBusTypes

A comma separated list of type IDs from ASIGN_TER_SIMPLE to use

This should be limited to bus models that are a maximum of 15m in length

data\versions\dlls\autoTraffic.cfg

AutoTrafficShipTypes

A comma separated list of type IDs from ASIGN_SEA_SIMPLE to use

data\versions\dlls\autoTraffic.cfg

AutoTrafficPedestrianTypes

A comma separated list of type IDs from skins.csv to use

Pedestrians are experimental and not for customer use

It's important to note the lengths mentioned in the notes above. If the visual model dimensions don't match with SUMO's internal sizes, vehicles will clip into each other.

See https://sumo.dlr.de/docs/Vehicle_Type_Parameter_Defaults.html for specifics on SUMO vehicle dimensions.

Note that these are configurable and I have made the bus length longer in code.

Removing Vehicle Shadows from Buildings and Bridges

If you notice vehicle shadows on the top of buildings, trees, or bridges like the image shown here you need to modify the following token:

File

Token

Value

Notes

DB\DB_SYSTEM\DB_SYS_DATA\PROJSHADOWS\ProjShadows.fx

TARGETS_USE_DEPTH_BUFFER

ON

This isn't a free. Check for performance drops.

image-20250613-031348.png

Tuning Traffic Density

Enabling All 512 Vehicles

While there are 512 simple_gnd_target_hv slots in the ICD, only 256 of them are supported by default.  To enable all 512, you need to modify some pC-Nova FX parameters:

File

Token

Value

Notes

DB/DB_SYSTEM/DB_SYS_DATA/ICD/ICD.fx

NUM_SIMPLE_GROUND_TARGETS

512

DB/DB_SYSTEM/DB_SYS_DATA/UBER/Uber.fx

UBER_ICD_MAXSIZE

???

There is no way to calculate this.  As of 7/26/2022, I've been making this 300,000 larger.

DB/DB_SYSTEM/DB_SYS_DATA/UBER/Uber.fx

UBER_NET_MAXSIZE

???

There is no way to calculate this.  As of 7/26/2022, I've been making this 300,000 larger.

DB/DB_SYSTEM/DB_SYS_DATA/UBER/Uber.fx

UBER_RENDER_MAXSIZE

???

There is no way to calculate this.  As of 7/26/2022, I've been making this 300,000 larger.

Simulation Tile Size

The size of the simulation tiles is controlled by the AutoTrafficBboxZoomLevel token, which can be set to one of the level found here: https://wiki.openstreetmap.org/wiki/Zoom_levels

image-20250613-031410.png

In testing we've found that level 14 proves to be a good default for rotary wing aircraft as it provides decent traffic density and reduces the visibility of the "seams" between tiles.

For fixed wing aircraft you may want to use larger tiles to provide more vehicles in the distance.

Note that each traffic tile in the cache directory contains a bbox.kml file showing the area of coverage:

image-20250613-031427.png
Creating More Vehicles

The quick way to achieve this is to increase AutoTrafficMaxVehicleScale.

image-20250613-031440.png
image-20250613-031447.png

The image on the right has AutoTrafficMaxVehicleScale set 3 times higher than the left.

NOTE: It may be tempting to crank this token way up but at some point the traffic will jam and you'll hit performance issues indicated by stuttering vehicles.

Paging in Vehicles Faster

When flying at high speeds the traffic might not page in fast enough.  This can be tackled by loading the simulations before you actually get to the tile and by advancing the simulation time when a tile is first loaded to skip the "building up effect".

AutoTrafficLookaheadSeconds will extrapolate the ownship position to load simulations ahead of time depending on your speed and direction.  AutoTrafficStartSeconds will "fast-forward" a simulation when it's first loaded to make sure the maximum amount of vehicles are inserted.

Only Rendering Vehicles in the FOV

The AutoTrafficRenderFov token allows us to set a vertical FOV for rendering the traffic.

In this image I've placed the ownship 10000 feet above Bern Switzerland with AutoTrafficRenderFov set to the default 120.0 degrees.

I then used the ownship_offset to move the camera to look straight down to show that the traffic is only rendered 120.0 degrees in front of the ownship.

image-20250613-031522.png

Here's AutoTrafficRenderFov 360.0, which effectively disables the token and renders the closest traffic all around the ownship.

image-20250613-031531.png

As you can see, by only rendering the closest vehicles in front of the eyepoint we can increase the density on screen.

Note that my ownship_offset test illustrates how this will look in a stealth or weapon channel however.

Vehicle Lights in the Distance

Auto traffic can be created quite far from the ownship in some configurations, to the point where the models won't be visible but their lights should be.

If you want a model's headlights/taillights to be visible at further distances you may need to modify the light's VANISHDISTANCE in the model's .db file. 

Using "road_traffic" in the Distance

The auto traffic will also control the following ICD fields if AutoTrafficRoadTrafficControl is ON to render vehicle lights beyond the auto traffic vehicles at night.

Field

Description

Value

Notes

host2pcnova->h2ig.dat.fx_data.road_traffic.intensity

Global traffic intensity adjust. Values = 0-255, (default = 127, maps to 0-2.0)

127

We set the default here.

host2pcnova->h2ig.dat.fx_data.road_traffic.density

Global traffic density adjust. Values = 0(no traffic), 1, 2, 3, 4(default),5, 6(highest density)

4

We set the default here.

host2pcnova->h2ig.dat.fx_data.road_traffic.speed

Global speed adjust. Values = -3 to 3, 0=default db speed

0

We set the default here.

host2pcnova->h2ig.dat.fx_data.road_traffic.fadeInDistance

Near range at which alpha value is 50%

Variable

We set this to the range of the furthest rendered simple_gnd_target.

As an example, the first image is auto traffic + road traffic and the second has the auto traffic vehicle lights turned off to illustrate the difference.

image-20250613-031542.png
image-20250613-031548.png

Disabling Downloading Data at Runtime

This can be accomplished by turning the AutoTrafficRuntimeBuildEnable OFF.

Exclusion Zones

Exclusion zones are polygonal areas defined at runtime that prevent the auto traffic from routing through. This can be to prevent traffic from running through damages areas or to setup a safe zone for landing. When an exclusion zone is activated traffic will re route around the area if possible. If not, traffic will back up until the exclusion zone is lifted. Nova supports up to 255 exclusion zones.

Exclusion zones should be at least 100x100 meters to prevent anomalies in the simulation.

General Info

AutoTrafficDebug STATS

f you add the keyword STATS to the AutoTrafficDebug token, e.g. AutoTrafficDebug STATS,BRIDGES, some auto traffic status messages will be printed to the console every 10 seconds:

image-20250613-031557.png

Let's take a closer look at the information contained in the STATS.

INFO [AutoTraffic]: SimFrame = 1030 [Total=9, Build=0, Ready=0, Run=9, Del=0]

This message is printed by autoTraffic.dll, which spawns autoTrafficSim.exe instances around the ownship and collects their data.

It's telling us that it's on frame 1030 (it runs at 1Hz) and that their are 9 autoTrafficSim.exe instances running (by virtue of AutoTrafficSurroundingTileDepth 1).

Of these 9, all 9 are running. If new simulations were being built for a new area, you'd see them in Build, the Ready, then they'd switch to Run.

Finally, as you fly along and tiles are unloaded they're placed in a queue for deletion, indicated by Del.

8598.5804 [time=1039, veh=98/99, truck=1, bus=0, ship=0, ped=0, density=131275, 35.48% max] 8598.5805 [time=1039.00, veh=60/60, truck=0, bus=0, ship=0, ped=0, density=80595.90, 21.78% max] 8598.5806 [time=0.00, veh=0/0, truck=0, bus=0, ship=0, ped=0, density=0.00, 0.00% max]

Each of the sims prints some info as well, uniquely identified by their XXXX.YYYY tile name.

Of interest is veh=X/Y where X is the number of active vehicles, and Y is the maximum.

The density is the length in meters of all passenger vehicle accessible lanes in the tile and what percentage of AutoTrafficDensityScalingMax this is.  If AutoTrafficDensityScaling is ON this will be used to determine how many of the max_vehicles to distribute to the sim.

TOTAL [Vehicles=719, Trucks=5, Buses=2, Ships=6, Pedestrians=0, NumSims=9] STATUS [InTunnel=7, OnBridge=43, OutsideBbox=195] PERF [Main=0.60 ms, Cull=2.25 ms, Sims=37.84 ms]

Next, we have some more autoTraffic.dll stats.

We're shown the TOTAL number of objects by type across all the sims.

We're provided some STATUS on how many objects are in a tunnel, on a bridge, or outside their simulation bounding box.  The OnBridge can be useful to debug performance issues because it gives some insight into how many vehicles have conform_roadways on.  Roads that are intersected by the simulation bounding box are included in the network so vehicles can drive outside their tile into adjacent simulations.  OutsideBbox shows how many vehicles are outside their bounding box and won't be rendered (we don't want cars driving through each other).

Lastly, PERF gives some performance stats.  Main is the nova thread, which just updates the ICD and leaves the heavy lifting to the other threads to avoid effecting the frame rate.  Cull is the thread that manages calculating the distance and bearing of all simulated objects to only render the closest that are in the FOV.  It runs at the same frame rate as pC-Nova.  The Sims thread collects object updates from all the running simulations and runs at 1 Hz.

Using the Hidden Spy 'Stealth' Camera to View Traffic

The Spy has a hidden tab that allows you to move the camera to targets.  Very useful for viewing the traffic!

Depending on whether you're running in CIGI or Standalone you can add the following Spy token to enable the hidden tab:

Mode

File

Token

Value

Notes

Standalone

data\versions\dlls\spy.cfg

SpyTabs

Stealth

This token is actually a comma separated list supporting Playback,IOS,Stealth.

CIGI

data\versions\dlls\config_host_if_cigi.cfg

SpyTabs

Stealth

Switching to the Stealth tab in the Spy you can now check "Override Eyepoint and Show Target" and select any of the active targets to move the camera to.

image-20250613-031633.png

From here you can adjust the position of the camera and even enable some budget effects!

Using SUMO GUI to Run a Simulation

When a simulation is run a file is created allowing you to run it in the SUMO GUI for debugging purpose.

Given the lat, lon of the area in question you can get the tile name using autoTrafficSim --geo2tile.

Once you've located the tile, find the file named "run" and add a .bat extension to it.  Double-clicking the batch file will open the SUMO GUI allowing you to run the simulation:

image-20250613-031641.png

More information on the SUMO GUI can be found here: https://sumo.dlr.de/docs/sumo-gui.html

Using SUMO netedit to View the SUMO Simulation Network

Similarly, you can add a .bat extension to the "edit" file to open the simulation in the SUMO netedit tool.  netedit is useful for viewing edge tags when diagnosing bridge/tunnel issues.

image-20250613-031649.png

More information on netedit can be found here: https://sumo.dlr.de/docs/Netedit/index.html

Getting the Tile Name from a Lat/Lon with autoTrafficSim --geo2tile

You can run autoTrafficSim with the --geo2tile argument to convert a lat lon to a X.Y tile.

CODE
E:\CM\software\<version>\bin\optimized-x64\autoTrafficSim.exe --cfgFile autoTraffic.cfg --geo2tile 46.353034,8.959935 
[2022-07-27 11:12:41]    INFO [autoTrafficSim]: Geo position 46.353034, 8.959935 is in tile 8599.5805

All Tokens

Here is an explanation of all the data\versions\dlls\autoTraffic.cfg tokens and what they're used for.

Token

Default

Type

Range

Description

AutoTrafficDebug

""

string

A comma separated list of several debugging options. Valid options include:
 STATS - Prints some stats to the frontend console every 10 seconds.
 DEBUG - Prints debug messages like sim frame misses and sync issues.
 DLL_LOG - The autoTraffic.dll will write a log file.
 DLL_LOG_VERBOSE - Includes performance timing information.
 DEAD_RECKON_POS - Shows an air target (type 10) at the dead reckoned position.
 SIM_LOG - Each autoTrafficSim.exe will write a log file.
 TUNNELS - When a vehicle enters a tunnels as defined by the OSM data it's heading will change -90 degrees for visual indication.
 BRIDGES - When a vehicle enters a bridge as defined by the OSM data it's heading will change +180 degrees for visual indication.
 BBOX - When a vehicle is outside the simulation bounding box it's heading will change +90 degrees for a visual indication.

AutoTrafficSimExe

autoTrafficSim.exe

string

The location of the auto traffic simulation executable.

The code will search in the following locations:

<versionsRoot>\..\bin\<AutoTrafficSimExe>

<versionsRoot>\..\bin\optimized-x64\<AutoTrafficSimExe>

If all else fails, this can be set to an absolute value.

AutoTrafficSumoHome

sumo

string

The SUMO root directory.

This is used to set the SUMO_HOME environment variable which is needed by the SUMO python scripts and runtime.  Additionally,
it is used to add %SUMO_HOME%/bin to the DLL search locations as the SUMO delay lib loads a few DLLs located there.

The code will search in the following locations:

<versionsRoot>\..\<AutoTrafficSumoHome>

<versionsRoot>\..\..\..\devtools\<AutoTrafficSumoHome>

If all else fails, this can be set to an absolute value.

AutoTrafficSurroundingTileDepth

1

unsigned short

0-3

Specifies the number of simulations to run around the ownship.
A setting of 1 means we'll run simulations 1 tile around the ownship resulting in a 9x9 grid.  Setting 2 results in a 5x5 grid, etc:

 0 = 1 simulation (useful for debugging)
 1 = 3x3 grid = 9 simulations
 2 = 5x5 grid = 25 simulations
 3 = 7x7 grid = 49 simulations
Running more simulations around the ownship can improve realism by putting more traffic in the distance at the cost of traffic density.
For this reason we will clamp this token to values between 1 and 3.

AutoTrafficBboxZoomLevel

14

unsigned short

0 - 20

The size of the simulation tiles, the larger the number the smaller the tile.

See: https://wiki.openstreetmap.org/wiki/Zoom_levels

AutoTrafficMaxVehicleScale

10.0

float

Allows the user to tweak the amount of _host2pcnova->h2traffic.auto_traffic.max_vehicles distributed to each running simulation.

By default, there are 9 simulations running at a time (see AutoTrafficSurroundingTileDepth), and each is given max_vehicles/9
vehicles.  For example if the host sets max_vehicles=256, each sim will get 256/9=28.444 (28) vehicles.

This token allows you to scale that value by (max_vehicles * AutoTrafficMaxVehicleScale) to increase or decrease density.
For example, if the host sets max_vehicles=256, and AutoTrafficMaxVehicleScale=2.0, each sim would get (256 * 2.0)/9 = 56.88 (57) vehicles.
At render time, only the 256 closest vehicles would be drawn.

This token can also be used when AutoTrafficDensityScaling is ON.

AutoTrafficNumRenderTrucks

10

unsigned short

Maximum simulated trucks passed to the runtime for rendering.  If the number of simulated trucks across all simulations is larger
than the number specified here, they will be sorted by distance.

In the case of trucks and buses, while SUMO makes a distinction they're just simple ground targets to us.  We'll give these first crack before
we start mapping the vehicles since there aren't many of them.

AutoTrafficNumRenderBuses

5

unsigned short

Same as above.

AutoTrafficNumRenderShips

10

unsigned short

Same as above.

AutoTrafficNumRenderPedestrians

0

unsigned short

Pedestrians (actors) are too expensive and are disabled.

AutoTrafficDensityScaling

ON

bool

Dedicate more vehicles to populated areas and less to rural areas.

When enabled, the density (total length of passenger vehicles accessible lanes) is used to determine how many vehicles a simulation gets.
The density for a network is compared to the density of the AutoTrafficDensityScalingMax, which should be set to a densely
populated road network (e.g. Times Square).

For example, the default AutoTrafficDensityScalingMax is Times Square at AutoTrafficBboxZoomLevel 15 which has
128270 meters of passenger accessible lanes.  If the host sets max_vehicles=256, each simulation would get 256/9=28.444 (28) vehicles by
default if this token is off.

When AutoTrafficDensityScaling is ON, they'll get sim_density/max_density * 28 vehicles instead.  In highly populated areas, they
should get close to 28 vehicles.  In rural areas they'll get much less.

This is a linear curve, but the token can also be set to "EXP" which changes the formula to sim_density^2/max_density^2 resulting in even less
vehicles in rural areas.

NOTE: This has the effect of making the host specified max_vehicles an upper bound rather than a hard limit.

AutoTrafficDensityScalingMax

370000.0

float

When AutoTrafficDensityScaling is ON, this number serves as the maximum.

When running with AutoTrafficDebug "STATS" enabled, each sim will print their density and it's percentage of the
the AutoTrafficDensityScalingMax.  If you see a percentage above 100% you may want to use that as the new max!

AutoTrafficVehicleTypes

string

Object types will be randomly selected from these comma-delimited lists.

For example, setting AutoTrafficShipTypes to "1,2,3,4,5,6,7,8" will randomly select a type 1-8 when a ship is created.
Note that these values are dependent of your config_tgts.cfg settings.

SUMO separates vehicles, buses, and trucks as they have different speed, follow distance, and size characteristics.
The size is the most important to us as we don't want bus models being mapped to simulation vehicles.  This will cause them
to clip each other (e.g. SUMO thinks the vehicle length is 15 feet but we map it to a 40 foot bus model ...).
While simulated vehicles could be mapped to truck models we add the separation here as well to allow the simulation to
use different vehicle dynamics for trucks, hopefully making them behave more realistically.

In the case of pedestrians, the types are dependent on your skins.csv and the idle animations on your animations.csv file.

AutoTrafficTruckTypes

string

Same as above.

AutoTrafficBusTypes

string

Same as above.

AutoTrafficShipTypes

string

Same as above.

AutoTrafficPedestrianTypes

string

Same as above.

AutoTrafficPedestrianIdle

string

Like the types, but IDs for idle animations the actors will perform while waiting at an exclusion zone.

AutoTrafficShipWakeType

0

char

Sets the wake type for the ships.

AutoTrafficForceConformRoadways

OFF

bool

When enabled, turns on simple_gnd_target_hv::conform_roadways for every vehicle.
Debugging Only! Do not enable on a customer system as it'll cause a huge performance hit.

AutoTrafficFadeSeconds

3.0

float

Specifies the amount of seconds to fade vehicles in/out as they are created/removed.

Don't set this too low or you'll see the vehicles render above ground then snap down after the get the HOT from the isect.

AutoTrafficLookaheadSeconds

10.0

float

If greater than 0, the ownship position will be dead reckoned by this amount of time to load simulations before we actually enter the new tile.

AutoTrafficRenderFov

120.0

float

0-360

Vehicles in the vertical FOV will be rendered. Can be used to render more traffic in front of the eyepoint.

AutoTrafficFovFadeDisable

ON

bool

When enabled, vehicles outside the AutoTrafficRenderFov will immediately be removed rather than fading out to free up simple_gnd_target slots faster.  This allows more traffic to be pushed in front of the eyepoint.

This is on a token in case it's too jarring in stealth or sensor views.

AutoTrafficRoadTrafficControl

ON

bool

Allows the auto traffic to also control the road_traffic ICD fields to create traffic in the distance outside of the auto traffic render range.

This is on a token to allow hosts to control it if desired.

AutoTrafficCache

autoTrafficData

string

The cache folder for creating simulations.

Simulations are cached in the form <AutoTrafficCache>/<AutoTrafficBboxZoomLevel>/<tileX.tileY>/...

AutoTrafficPythonExe

python.exe

string

The location of the python interpreter.

The code will search in the following locations:

<versionsRoot>\..\bin\<AutoTrafficSimExe>

<versionsRoot>\..\bin\optimized-x64\<AutoTrafficSimExe>

If all else fails, this can be set to an absolute value.

AutoTrafficRuntimeBuildEnable

ON

bool

Allows users to disable downloading and building new simulations when a new area is visited at runtime.

This is desirable on programs where we deliver autoTrafficData for their area of interest and don't want to create traffic when they go elsewhere.

AutoTrafficMaxConcurrentBuilds

50

unsigned short

The maximum number of simulations that can be build concurrently in --batchBuild mode.
Simulations are built in parallel by starting autoTrafficSim.exe child processes, so prepare to have up to
AutoTrafficMaxConcurrentBuilds of them running!

AutoTrafficOsmServerUrl

www.overpass-api.de/api/interpreter

string

OSM overpass API server URL.

See https://wiki.openstreetmap.org/wiki/Overpass_API for a list.

AutoTrafficSimBuildRoadTypes

{\"Highway\":[\"motorway\",\"motorway_link\",

\"trunk\",\"trunk_link\",

\"primary\",\"primary_link\",

\"secondary\",\"secondary_link\",

\"tertiary\",\"tertiary_link\",

\"unclassified\",\"residential\",

\"living_street\",\"unsurfaced\",

\"service\",\"raceway\",

\"bus_guideway\",\"track\",

\"bridleway\",\"cycleway\"],

\"Waterway\":[\"river\",\"canal\"],

\"Route\":[\"ferry\"]}

JSON string

The osmGet.py <code>--road-type</code> option so we can filter downloaded roads.

Here's an example of checking everything in the osmWebWizard:

{"Highway": ["motorway","motorway_link","trunk","trunk_link","primary",
     "primary_link","secondary","secondary_link","tertiary","tertiary_link",
     "unclassified","residential","living_street","unsurfaced","service","raceway",
     "bus_guideway","track","footway","pedestrian","path","bridleway","cycleway",
     "step","steps","stairs"] ,
"Railway" : ["preserved","tram","subway","light_rail","rail","highspeed"] ,
"Aeroway" : ["stopway","parking_position","taxiway","taxilane","runway","highway_strip"] ,
"Waterway" : ["river","canal"] ,"Route" : ["ferry"] }

AutoTrafficSimBuildVehOptions

--validate --period 0.1 --trip-attributes "departLane=\"best\"" --lanes --length --min-distance 300

string

The randomTrips.py options for building routes for vehicles, trucks, buses, and ships 

For more information: https://sumo.dlr.de/docs/Tools/Trip.html

AutoTrafficSimBuildTruckOptions

--validate --period 10.0 --trip-attributes "departLane=\"best\"" --lanes --length --min-distance 600

string

Same as above.

AutoTrafficSimBuildBusOptions

--validate --period 20.0 --trip-attributes "departLane=\"best\"" --lanes --length --min-distance 600

string

Same as above.

AutoTrafficSimBuildShipOptions

--validate --period 300.0

string

Same as above.

AutoTrafficSimBuildPedOptions

--validate --period 2.0 --max-distance 2000

string

Same as above.

AutoTrafficSimBuildAllowFringe

ON

bool

Enables/disables creating routes that begin/end at the edges of the network.

AutoTrafficSimBuildFringeOptions

--allow-fringe --fringe-factor 2 --fringe-start-attributes "departSpeed=\"max\"" --allow-fringe.min-length 500

string

Fringe options.

AutoTrafficStartSeconds

10

unsigned short

Specifies the seconds to start the simulation at.

This allows the simulation to be "fast-forwarded" when enabled to give tiles more density when they're first enabled rather than
having to wait for the traffic to develop.

AutoTrafficSimEndSeconds

900

int

The simulation duration in seconds that will be passed to the simulation building tools as well
as the simulation runtime.  In practice the simulation will continue to create new vehicles after the simulation
has surpassed this time, this is probably the limit for new vehicles being created, but existing vehicles still need
to complete their routes.

AutoTrafficSimRestartThreshold

10

int

As the simulation runs it's course it stops creating new vehicles after AutoTrafficSimEndSeconds has
been surpassed and traffic lessens as vehicles arrive to there destinations and are removed.  When this number of
vehicles is reached (and the sim has run for at least AutoTrafficSimEndSeconds) the simulation will be
restarted to keep continuous traffic.

AutoTrafficBuildTruckRoutes

ON

bool

Enables/disables building pedestrian and ship routes.  Disabling can speed up simulation builds but you won't be able to enable pedestrians or ships later unless you rebuild.

AutoTrafficBuildBusRoutes

ON

bool

Same as above.

AutoTrafficBuildShipRoutes

ON

bool

Same as above.

AutoTrafficBuildPedestrianRoutes

ON

bool

Same as above.

AutoTrafficNumSimTrucks

5

unsigned short

Maximum simulated objects per type passed to the runtime for rendering.  If the number of simulated vehicles is larger than the number specified here, they will be sorted by distance.

AutoTrafficNumSimBuses

2

unsigned short

Same as above.

AutoTrafficNumSimShips

5

unsigned short

Same as above.

AutoTrafficNumSimPedestrians

0

unsigned short

Same as above.

AutoTrafficBridgeBufferMeters

50.0

float

35.0 - 100.0

The number of meters before/after a bridge edge to also mark as a bridge in meters.

The conform_roadways tag needs some time before and after a bridge to avoid dropping through.  Additionally,
this will help cover up any inconsistencies between the OSM position of bridges and the position in the visual database.

NOTE: Since the sim runs at 1Hz, if you set this number too low, it may have no effect.  For example, if a car is traveling at
80 mph (35.7 m/s) and this token is set to say 30, it's possible the car could be off the bridge, then on it 1 second later
effectively invalidating this token.

We set the default to 50 -- 50 m/s = 111.8 mph.

AutoTrafficTunnelBufferMeters

30.0

float

5.0 - 100.0

The number of meters before and after a tunnel to include.

This gives the fading out time to take place and hides inconsistencies between the OSM tunnel data and the visual database.

AutoTrafficAddedBridgeWays

string

A comma separated list of additional OSM way IDs that should be considered bridges.

AutoTrafficAddedTunnelWays

string

A comma separated list of additional OSM way IDs that should be considered tunnels.

Cache Structure

The cache structure is in the form <AutoTrafficCache>/<AutoTrafficBboxZoomLevel>/XXXX.YYYY

For example:

E:\CM\data\autoTrafficData\14\4680.6261\.....

E:\CM\data\autoTrafficData\15\17065.11537\...

This allows you to keep different AutoTrafficBboxZoomLevel settings side by side for testing.

Tile Naming Convention

The auto traffic uses the OSM "slippy maps" convention and algorithms to break the world into X.Y tiles.  More information can be found here: https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames

Tile Contents

Each X.Y simulation tile contains the following files:

Filename

Description

bbox.kml

A KML file that can be opened in Google Earth showing a polygon for this simulation's bounding box.

build_i

The command line used to run the SUMO osmBuild.py script to convert the OSM data to SUMO format.

Can be given a .bat extension and rerun to test different settings.

More information on osmBuild.py can be found here:

https://sumo.dlr.de/docs/Tools/Import/OSM.html#osmbuildpy

build_o

The output of the osmBuild.py command in "build_i".

Used by the auto traffic at runtime to identify tiles with no road data.

bus_i

The command line used to run the SUMO randomTrips.py script to create bus routes.

Can be given a .bat extension and rerun to test different settings.

More information on randomTrips.py can be found here: https://sumo.dlr.de/docs/Tools/Trip.html

Note that the options can also be tweaked via AutoTrafficSimBuildTruckOptions and AutoTrafficSimBuildFringeOptions

bus_o

The output of the randomTrips.py command in "bus_i".

Used by the auto traffic at runtime to identify tiles with no viable bus routes.

cfg

The autoTraffic.cg tokens used when generating this tile. Used for debugging.

edit

Can be given a .bat extension and run to open the network in SUMO's netedit tool.

Useful for debugging bridge/tunnel issues to see if a edge has the needed tag.

More info on netedit can be found here: https://sumo.dlr.de/docs/Netedit/index.html

get_i

The command line used to run the SUMO osmGet.py script for downloading the OSM data.

Can be given a .bat extension and rerun to test different settings.

More information on osmGet.py can be found here:

https://sumo.dlr.de/docs/Tools/Import/OSM.html#osmgetpy

Note that the options can also be tweaked via AutoTrafficOsmServerUrl and AutoTrafficSimBuildRoadTypes

get_o

The output of the osmGet.py script.

Used during the simulation building process to determine if the request timed out, was denied (429 Too Many Requests) or completed (200 OK)

osm.bus.trips.xml

The bus routes created by the "bus_i" command line.

Used at runtime to route the buses.

osm.net.xml

The SUMO network file.

osm.netccfg

Generated as part of the SUMO netconvert process.

osm.passenger.trips.xml

The vehicles trips created by the "veh_i" command.

osm.pedestrian.trips.xml

The pedestrian trips created by the "ped_i" command.

osm.poly.xml

Generated as part of the SUMO netconvert process.

osm.polycfg

Generated as part of the SUMO netconvert process.

osm.ship.trips.xml

The ship trips created by the "ship_i" command.

osm.truck.trips.xml

The truck trips created by the "truck_i" command.

osm_bbox.osm.xml

The raw OSM network data generated from the "get_i" command.

run

A debug file created when a simulation is run.

Can be given a .bat extension and run to open and run the simulation in the SUMO GUI.

More information on the SUMO GUI can be found here:

https://sumo.dlr.de/docs/sumo-gui.html

version

The cache version used to check for compatibility issues by autoTraffic.dll

ped_i

ped_o

ship_i

ship_o

truck_i

truck_o

veh_i

veh_o

See bus_i/bus_o.

Same concept but for different vehicle classes.

 

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.