Running day type simulations using DNL mode
In addition to the ability to perform a Dynamic Traffic Assignment, TRE can also perform Dynamic Network Loading (DNL).
To reproduce route choices, DNL computes the performance of the network by propagating the demand flows through the network according to the input splitting or turning rates.
Limitations of DNL
- DNL is consistent with OD flows if the propagation travel times are the same as those used in generating the turn rates.
- DNL does not allow for computing path flows.
- The turning rates can be dynamic, so they can vary with time during the day.

When using DTA, the path choices of the network users (expressed as turning rates) are computed with an iterative algorithm. When using DNL, the path choices of the network users are given as an input from some external source, such as from a Visum assignment. For example, the turning rates can be exported from a Visum assignment generating the corrected matrices. You can either:
- Export one constant turn rate for the whole day (TFlowFuzzy of 24-hours matrices)
- Export different turning rates corresponding to several time intervals of the day (for example, different TFLowFuzzy for off-peak, hourly peak-hours, again off-peak, etc.)
This guarantees that the simulated flows match the count values as long as the turn rates’ discretization is comparable to the one of the flow values.

To export the turn probabilities from Visum assignment and to write them to the TPRB table, you need to run a script to create the necessaries "dummy links", for the Visum model.
A dummy link, also named Connector-Link, is a short link used as connection for each connector and its head node.
The script CreateConnectorLinksForDNL is placed in the scripts folder of TDE: $INSTALL_PATH\TDE\script.
To run the script:
- Login to Visum.
- Open Scripts-menu > Run Script filearea.
-
From the $INSTALL_PATH\TDE\script folder , select the CreateConnectorLinksForDNL.py.
-
Click Open.
The script runs in background.
Important: To run the script is necessary to calculate in Visum the turn probabilities, having either FromLinkNo or ToLinkNo that coincide with a connector (in Optima connectors are considered as links).
After the run of the script CreateConnectorLinksForDNL, export the turn probabilities from Visum assignment to the TPRB table:
-
Within Visum, open the Main turns list and select the following attributes:
- FromLinkNo
- FromNodeNo
- ToLinkNo
- ToCordonNodeNo
-
For each row in the Visum table, generate insert queries according to the following template:
INSERT INTO TPRB (DTYP,FRLK,FNOD,TOLK,VNOD,INST,WEIGHT)
VALUES (…,…,…,…,…,…,…); - Execute the queries on the temporary Optima database.
-
In Visum, open the Turns list and select the following attributes:
- FromLinkNo
- FromNodeNo
- ToLinkNo
- ViaNodeNo
Exclude turns on nodes in main nodes.
-
In Visum, open the Connectors list and select the following attributes:
- Null
- Null
- ConnectorNo
- ZoneNo
Connectors are internally numbered with a progressive negative ID. To get the ID that corresponds to a connector in TRE: (1) Open Visum. (2) Show the Connectors list. (3) Filter the Connectors list by showing only O connectors. The TRE ID is same as the connector count record CountNo multiplied by −1.
- For each row in the Visum table, generate insert queries according to the following template:
- INSERT INTO TPRB (DTYP,FRLK,FNOD,TOLK,VNOD,INST,WEIGHT)
VALUES (…,…,…,…,…,…,…); - Execute the queries on the temporary Optima database.

In general, you can use the same configuration as for DTA (→ Running day type simulations using DTA mode). The only differences are:
-
When using the TDE workflow:
- Set EquAss to 0 to disable DTA computation.
- Set DS_TPRB equal to DS_OPUT to take splitting rates directly from the temporary Optima database.
- Set DS_TPRB_OUT to −2 to avoid exporting new splitting rates.
-
When using the TMB workflow:
- Set EquAss to 0 to disable DTA computation.
- Set DS_TPRB to −1 to take splitting rates directly from the temporary Optima database.
- Set DS_TPRB_OUT to −2 to avoid exporting new splitting rates.