Vehicle Tracker configuration
Important: To configure Vehicle Tracker properly, you need to understand how Vehicle Tracker works (→ Vehicle Tracker methodology).
You can configure Vehicle Tracker with the help of the text-based configuration file CommandLineTDE.csv, which is located in the same folder as the Vehicle Tracker executable.
Within the configuration file, each configuration parameter starts a new row. The parameter’s value is given in the subsequent row. All other rows are skipped.
For general information on how to edit the configuration file: → Setting TDE parameters.
You can specify the following parameters:

Parameter | Type | Description |
---|---|---|
DS_MAIN | String | Main datasource where the street graph is stored. Begins with a prefix that specifies whether your graph is stored to a Optima database (postgresql), to a Visum text file (visum), or to a Visum binary file (visumcom). To store to a Visum binary file, you need to have Visum installed. Following the prefix, divided by a colon, you need to specify the full path of the Visum file or the connection string to the database. Examples:
|
DS_STRT | String | Specifies where the street graph is stored if this is different from DS_MAIN. If you want Vehicle Tracker to read data from DS_MAIN, specify a value of −1. |
TRAJECTORY_CSV_HEADER |
String with comma separated values. |
Admissible values (case sensitive) for building the string are:
Other values will be skipped. Default is ID, Date, Lat, Lon. |
DS_MODE | String | This data source is intended to specify explicitly where the transportation modes are stored if different from DS_MAIN. If you want Vehicle Tracker to read data from DS_MAIN, specify a value of −1. |
WebService Address |
String | Specifies the trajectory datasource where the FCD web service is located. So it is the binding address from where GPS points are retrieved. Example:
|
DS_OPUT | String | Specifies the Optima database where speeds computed by the FCD service have to be stored. |

Parameter | Description |
---|---|
BKGM |
Data type: Integer Specifies the Vehicle Tracker running mode:
Default is 0. |
showGUI |
Data type: Integer Enables the Graphic User Interface (GUI).
Default value: 2 |
DBUG |
Data type: Integer Enables/disables debugging mode.
|

Parameter | Type | Description |
---|---|---|
GEOC | Integer | Defines the coordinate type:
Default is 2. |
SRID | EPSG code of the input geographic data. Default is 4326, which refers to geographic WGS84. |
|
DSPE | Default street speed (km/h). Used for the computation of the base travel times for the streets when a speed is not explicitly specified in the model. Default is 50. |
|
MAXD | Maximum inter-node distance (meters) for Q-tree segments on the street graph. Default is 100. |
|
→ Hyperpath configuration parameters >
Important: SATTlist must be considered DEPRECATED, starting from the version 19.5 (see → What’s new?). Information associated to the → User Defined Attributes (UDAs) should be used instead. |
String with comma separated values. | List of custom attributes on streets. |
FieldSPED | String | Speed field attribute. This attribute lets you retrieve the base speed of the street as specified in the model. Default is SPED. Important: If you are using Visum input, the string must be V0PrT. |
FieldITIM | String | Intersection delay time attribute. This attribute lets you retrieve the waiting time on the To node of the street that has to be added to the travel time given by the base sped. Default is ITIM. |
FieldGREN | String | Green share attribute. This attribute lets you retrieve the green share of a traffic light on the To node of the street. Used within the cycle value (see FieldCYCL) to compute the extra waiting time on top of the street due to the traffic light. For example by using the Webster formula. Default is GREN. |
FieldCYCL | String | Cycle attribute. This attribute lets you retrieve the periodic cycle time of the traffic light on the To node of the street. In combination with the green share makes it possible to compute the extra waiting time on top of the street due to the traffic light. For example by using the Webster formula. Default is CYCL. |

Parameter | Type | Description |
---|---|---|
DUMP_RAW_DATA | Boolean |
Enables input raw data to be written to a file. The file is set in DUMP_RAW_DATA_SINGLEFILE. Default is false. Important: Enable this feature only temporarily for debugging purposes if you need to postanalyze some issues. |
DUMP_RAW_DATA_SINGLEFILE | Boolean | Specifies whether raw data is written to a single file or to multiple files if DUMP_RAW_DATA has been enabled.
The files are written to the Vehicle Tracker installation folder. Default is true. Tip: Prefer writing to single file. Else you could produce plenty of files in your installation folder. Having single files for each request can be useful for debugging purposes in situations where you need to analyze the process of a single request. |
FILTER_RAWDATA |
Boolean |
Activates filtering on incoming data. Default value is false. Data filtering is necessary to remove noisy GPS data. The filtering actions can be used to manage:
For example, if we receive 5 positions at exactly 10 meters away each other on the same street, the average speed computation for that car is could be enough good just taking the first and the fifth (distance of 50 meters), discarding three intermediate points. Each time a new GPS point arrives, this point is considered or discarded according to the values of thresholds FILTER_DISTANCE_THR and FILTER_TIME_THR. The GPS point is discarded only if are contemporaneously verified (logical AND):
Important: The default values of the thresholds are only indicative values that need to be adapted. You need a good knowledge of the input data in order to set the thresholds properly. If you want to filter ONLY for a specific criteria, you must set the other criteria to a very high value to enforce the associated condition always true. For example, for a Bluetooth network, if you set the FILTER_DISTANCE_THR to 200 meters, you are filtering only through elapsed time criteria, because is always true the condition: Distance < FILTER_DISTANCE_THR. Tip: Filtering raw data at least by distance (usual values of about 30–50 meters), removes the random noise of the GPS signal, which could badly affect the matching procedure and even more the speed computation. For example, for a car moving at 130 km/h, two consecutive GPS points are sent with a time lag of 2 seconds, therefore the car has moved about 72 meters. If the first GPS point has an error of 30 meters in one direction and the second GPS point has the same error in the opposite direction, you could measure a distance anywhere in between 2 and 132 meters, with calculated speeds between 4 km/h and 238 km/h: a really big error! |
FILTER_DISTANCE_THR | Integer |
Threshold distance (meters) from the previous point. This setting makes sense only if: FILTER_RAWDATA=true Default is 50. If distance => FILTER_DISTANCE_THR, the current point is processed. |
FILTER_TIME_THR |
Integer |
Threshold time (seconds) from the previous point. This setting makes sense only if: FILTER_RAWDATA=true. Default is 10. If elapsed time => FILTER_TIME_THR, the current time is processed. |
FILTER_DISTANCE_FROM_GRAPH | Integer | Filter distance (meters) from the nearest link of the graph over which the current GPS point is discarded. (Independent from FILTER_RAWDATA.) Default is 1000. |

Parameter | Type | Description |
---|---|---|
FCD_FORMAT | String | FCD request type. Can either be XML or CSV. Default is XML. |
SORT_POINTS | String | Enables sorting of points that belong to the same input message. If you know that input data is sent unordered with respect to the time, you need to enable this sorting feature. Else some points will be discarded. Possible values are:
Default is disabled. |
SPEEDS_RECOMPUTATION_INTERVAL | Integer | Time (minutes) after which the speed estimate over the streets is recomputed. Usually a refresh rate of 5 minutes is fine. A value of 0 disables re-computation. Default is 0. |
SPEEDS_TIME_WINDOW | Integer | Time window (minutes) of which FCD data is used for computing speed estimates. For example, if this parameter is N, only FCD data of the last N minutes is used. The narrower the time window is, the less averaged is the speed result. A narrow time window also results in computing speeds for a smaller number of streets because the number of FCD will be smaller and the distances covered by individual GPS devices will be shorter. Default is 30. |
SPEEDS_TABLE_TYPE_NAME | String | Part of the database table names to which the speeds are written. The two tables are:
Default is FCD. |
SPEEDS_FILTER_UDA_NAME |
String |
Name of the UDA (→ User Defined Attributes) associated with the traffic state of all the streets of the model. The UDA value can be set to:
If SPEEDS_FILTER_UDA_NAME is an empty string, all streets are exported. |
sqlBEFORE | SQL query string that is executed prior to the speed computation. Default is empty. |
|
sqlAFTER | SQL query string that is executed after the speed computation. By default, you need to insert the shape attribute into the TRAFFICSTATE_* tables. Default is: UPDATE trafficstate_fcd_rltm as TSRLTM SET strt_shap = STRT.shap,strt_sped = STRT.sped FROM strt as STRT WHERE TSRLTM.strt = STRT.idno and TSRLTM.fsnd = STRT.tail |
|
SPEEDS_UNRELIABLE_MATCHING_THRESHOLD | Double | Multiplier of the base speed. If the computed speed is greater than the base multiplied by this multiplier, the computed speed is discarded. Example: If SPEEDS_UNRELIABLE_MATCHING_THRESHOLD=2 this means that the default threshold is twice the base speed. If, for example, on one street there is a base speed of 50 km/h, and the FCD speed computation provides a value of 110 km/h, it is not written to the database. Default is 2. |
BSPE_ONFREEFLOW | Boolean | Value to decide to compute base speeds of the streets taking into account waiting times due to GREN, CYCL, ITIM. Default is false. |
SINGLE_VEHICLE_ACCURACY | Integer positive value | Minimum number of probe vehicles that is required for successful speed calculation. Lower values are discarded. Default is 1. |
ENABLE_MINIMUM_SPEED_WARNING | Boolean | Enables some more verbose logging for speeds that are below the value set for MINIMUM_SPEED_WARNING. Important: Use only for debugging purposes. Default is false. |
MINIMUM_SPEED_WARNING | Integer | If ENABLE_MINIMUM_SPEED_WARNING has been enabled, setting this parameter sets the corresponding minimum speed (km/h). For speeds below this value, some more verbose logging is performed. Default is 5. |
SPEED_WEIGHT_TYPE | Type of the weight function used for creating average speeds on streets. Possible values are:
Use linear if you want to penalize older data slightly or squared if you want to penalize older data heavily. Penalizing older data makes sense if the average time window for the speed is quite large (roughly more than about 15 minutes). Default is constant. |

Parameter | Type | Description |
---|---|---|
EXPANSION | Selects the trajectory expansion method. Possible values are:
Default is improved. |
|
MAX_PATH_NUM | Integer | Maximum number of trajectories that are kept in memory and that are expanded each time a new GPS point arrives. The higher the number is:
Reasonable values typically are in between 15 and 45. Default is 30. |
MAX_SEGMENT_DISTANCE | Integer | Maximum distance (meters) between two consecutive GPS points over which the actual trajectory is cut and a new trajectory is created. Important: This parameter deeply affects the performances of the software when an A* search is performed because it impacts one of the stopping conditions of the algorithm. Default is 1000. |
MAX_SEGMENT_INTERVAL | Integer | Maximum time interval (seconds) between two consecutive GPS points over which the actual trajectory is cut and a new trajectory is created. Default is 60. |
WEIGHT1 | Weight for the score (→ Map matching > Trajectory score) | |
WEIGHT2 | Weight for the score (→ Map matching > Trajectory score) | |
WEIGHT3 | Weight for the score (→ Map matching > Trajectory score) | |
WEIGHT4 | Weight for the score (→ Map matching > Trajectory score) | |
WEIGHT5 | Weight for the score (→ Map matching > Trajectory score) | |
CHECK_PROJECTION_DISTANCES | Boolean | Enables trajectory breaking based on distance. Default is true. |
AVOID_WANDERING_LOOPS | Boolean | If this option is enabled, an arc is not expanded if during expansion the To node of the new arc is the From node of an arc previously explored during the same expansion (an arc that has not been matched to any point). Default is true. |
RECOMPUTE_MATCHINGS | Boolean | If this option is enabled, at the end of computation the algorithm computes the matching between points and arcs of the best path again. This can improve the result. Only the distance-based score is used to rematch points on the best path. Default is true. |
CHECK_LINK_EXISTENCE | Boolean | If this option is enabled, when the algorithm inserts a new path into the set of new paths, the algorithm verifies whether the last arc already is one of the last arcs of other paths in the set. This saves computation time during the next steps because two paths with the same final arc will evolve identically. Default is true. |
COMPARE_LENGTH_WHEN_CONFLICTING | Boolean | If this option is enabled, when the algorithm finds two paths that have the same score, the algorithm uses the length of the paths to decide which one is best (the shorter one). The better path is added to the set of new paths. Default is true. |
ALLOW_Astar_EXPLORATION | Boolean | Enables A* exploration if EXPANSION has been set to improved. Tip: We recommend enabling this option. Default is FALSE |
Astar_ACTIVATION_RATIO | Double | Share between A* and Marshall algorithm. Range [0, 1]. Default is 0.3. |
Astar_MAX_GOAL_NODES | Integer | Maximum number of goal nodes for the A* search path that will create an equal number of paths to be inserted into the new set of trajectories. Default is 5. |
ACTIVATION_DISTANCE_TO_PROJECTION | Integer | Threshold distance (meters) between the last GPS point and the foot of its projection. For points that have a distance greater than this threshold, the A* search is performed. Default is 300. |
PRINT_WARNINGS | Boolean | Enables some more verbose logging when the A* search is performed during the matching algorithm. Default is true. |
PRIVATE_NET_FILTER | Sets a filter for the graph on which map-matching is performed. The main goal of this filter is to exclude closed streets from the graph. This can be done by using one or more attributes defined on the streets themselves. For example, if the speed is zero or if the street is closed, you can avoid adding the street to the graph. The filter condition is defined by a string that has the structure: “Attribute Operator Value”, where:
You can use logical operators to chain single logical propositions, separated by a comma.
Example: O SPED > 0,O DISA = 0 Default is A SPED > 0. |