A dynamic OD adjustment is a procedure to refine a set of prior matrices (profiled demand) with traffic counts from a real data set. The dynamic OD adjustment uses a gradient descent method to iteratively adjust the traffic demand in each time interval, using the outputs of a dynamic simulation.

Each time interval is adjusted in turn using a rolling horizon where earlier intervals are adjusted first to ensure the prior conditions are properly set for the interval being adjusted. The dynamic adjustment methodology and algorithms are documented in the Dynamic OD Adjustment Algorithms section. The result of the dynamic OD adjustment is a new set of matrices that form a profiled traffic demand.

For a wider theoretical explanation about matrix adjustment, see Estimation of OD Demand Flows Using Traffic Counts: Matrix Adjustment.

The dynamic adjustment is based on a dynamic simulation which can be implemented as a microsimulation, a mesoscopic simulation, or as a hybrid simulation. This is because paths chosen by vehicles are independent of the means by which they are moved through the network.

Like the static OD adjustment, the dynamic OD adjustment is iterative and has two levels of calculations. First, the inner layer runs a dynamic assignment to generate paths and link flows, assigning the set of OD matrices in the current iteration to the network. The dynamic assignment uses the method and parameters specified in the experiment's Dynamic Traffic Assignment tab, which are the same as in a standard simulation experiment.

Second, a gradient descent step adjusts the OD matrix using the paths and flows obtained in the static assignment.

### Data and Preconditions¶

#### Prior Matrices¶

The traffic demand specified in the scenario must split the prior matrices by user class and by time slice. The same structure of OD matrices will be used in the adjusted matrices.

If the original demand consists of a flat matrix per vehicle type, for a single time period, it should be split into smaller time slices using OD matrix editing tools. Alternatively, a static OD departure adjustment should be applied first and a new Traffic Demand object created with the sliced matrices.

#### Real Data Set¶

The real data set used in the dynamic OD adjustment will specify the observed traffic counts. These can be traffic counts for detectors, detector stations, road sections, or turns contained in nodes from the same period as the demand period to be adjusted. The demand slice duration should be a multiple of the interval times of the real data set traffic counts. Otherwise, the dynamic OD adjustment will not be executed.

If detector or detector station counts are used, these will be converted to section counts using a linear extrapolation if the section and the detector have different numbers of lanes. For example, a detector covering two of the three lanes of its section, having an observed count of 500 vehicles, will be converted into a section count of 3/2 x 500 = 750 vehicles. If the counts are expressed by user class, these must be the same classes as specified in the prior matrices.

The real data set can include a Reliability value per each detection value. This value is taken into account in the adjustment process as a weight for the difference between observed and assigned counts (that is, the bigger the Reliability, the more effort the adjustment will make to match that particular pair of values). If no reliabilities are set, they are assumed to be 1.0 by default.

An extra column named Congested can be included in the real data set. This column specifies, for each count, whether this count is observed under congested conditions (1) or uncongested conditions (0). If this data is not specified, the count is considered to be observed under uncongested conditions.

In the Dynamic Models tab of each road section, there is a parameter named Congestion Speed Threshold Ratio. This parameter indicates below which factor of speed a section is considered to be congested in the simulation. A default value of 0.5 will be used (e.g. on a section with a default congestion speed threshold ratio of 0.5, and a speed limit of 80 km/h, the section is considered to be congested for a particular statistical interval if the average simulated speed of that interval drops below 40 km/h). #### Effects of Congestion on the Adjustment Calculation¶

One of the aims of an adjustment is to be able to replicate congestion. Congestion can be detected in the observed data or in the simulation, producing the following possible situations and actions.

• If there is congestion in the observed data but not in the simulation: the current simulated value is targeted to be increased by the Demand Increase to Reach Congestion percentage.
• If there is no congestion in the observed data but congestion in the simulation: the current simulated value is targeted to be decreased by the Demand Increase to Reach Congestion percentage.
• If there is congestion in both observed and simulation data: an increase in demand will lead to a decrease in flow and vice versa. The current simulated value is targeted to be increased or decreased, depending on the difference between simulated and observed congestion, by the Demand Increase to Reach Congestion percentage.

## Dynamic OD Adjustment Scenario ¶

A dynamic OD adjustment scenario needs a dynamic OD adjustment experiment. The scenario contains the input data for the adjustment: the prior matrices in a traffic demand, the control plan, the transit plan, and any geometry configurations. The parameters for the scenario are set in the same manner as for any dynamic scenario, with the proviso that a real data set must be specified, with a format that includes the time, location, count, and any additional congestion data required for the adjustment experiment.

The Dynamic OD Adjustment Experiment dialog contains all the algorithm parameters. To create a dynamic OD adjustment experiment, right-click on the scenario and select New Dynamic OD Adjustment Experiment. As with a dynamic assignment experiment you are required to choose the network-loading method (mesoscopic simulation, microscopic, hybrid meso-micro, or hybrid macro-meso) and the path assignment method (stochastic route choice or dynamic user equilibrium).

Next, configure the dynamic OD adjustment experiment for simulation behavior, reaction times, traffic arrivals, assignment parameters, traffic management policies, and other variables and attributes. This process is the same as for any other dynamic experiment but the dynamic OD adjustment experiment has one extra tab named Adjustment Parameters. This enables you to control the adjustment process. For each of the time intervals, the Maximum Number of Iterations (or a lower number if the Target R2 is reached) is completed before moving onto the next interval. In each iteration, the process will run a dynamic assignment and use the paths and path percentages obtained from it.

The number of Gradient Descent Iterations indicates, for each iteration of the adjustment, how many iterations of the gradient descent method will be run without changing the path-choice results: that is, without running a new assignment. The default number of these is 1, which implies that a dynamic traffic assignment will be run at each iteration of the adjustment.

Assuming that the path percentages do not change significantly at each iteration, computing time can be reduced by increasing the Gradient Descent Iterations and decreasing the Maximum Number of Iterations.

The Initial Time is the interval at which the process will start adjusting the demand. Matrices earlier than this time will not be adjusted and will remain the same as the originals.

The Duration calculates at which interval the process will stop adjusting the demand. Matrices later than this time will not be adjusted and will remain the same as the originals.

The Demand Increase to Reach Congestion specifies the percentage increase to be targeted in the different cases of congestion.

The Detector Lane Coverage Threshold determines the percentage of lanes that a detector and/or detector station should cover in order for its data to be included in the adjustment process.

The Matrix Elasticity indicates the elasticity of the adjusted matrix, for each user class, with respect to the Reference Demand selected (which is, by default, the Scenario Demand). It can have a value between 0.01 and 1.0. Trips comparison is one of the adjustment outputs and the significance of this comparison is controlled through the Matrix Elasticity parameter.

A Matrix Elasticity value close to zero means that the values in the adjusted matrix will be almost unchanged from the prior matrix for that user class. An elasticity value of 1.0 means that no penalization has been applied to the amount by which the value can be adjusted to match the observed counts.

The only requirement for the Reference Demand selection is to have the same user classes and the same duration as the scenario's traffic demand. However, there are two possibilities for how the distance to the reference demand is considered in the algorithm:

• The reference demand has the same time-slicing as the scenario demand. In this case, the OD term will be as described in the Adjustment Algorithms section. In other words, the difference taken into account by the algorithm will be between trips for each OD pair, user class, and interval.

• The reference demand has a different time-slicing to the scenario demand. In this case, the OD term will be aggregated over all intervals. In other words, the difference taken into account will be between the sum of trips over all the intervals, for each OD pair and user class.

The Maximum Deviation matrices with (Contents: Max Deviation) are used to specify, for each user class, the deviation from the reference demand permitted as a percentage, an absolute value, or as a multiplicative factor. See Adjustment Maximum Deviation Section for more details.

As before, the only requirement for the Reference Demand selection is to have the same user classes and the same duration as the Scenario Demand. However, there are two possibilities for how deviations will be calculated:

• The reference demand has the same time-slicing as the scenario demand. In this case, the deviations will be calculated using the deviation matrix for each user class and each interval separately.

• The reference demand has a different time-slicing to the scenario demand. In this case, the deviations will be calculated using the deviation matrix for the total, which will be distributed proportionally to the scenario demand profile while preserving the total upper- and lower-bound values.

In other words, if, after adjusting an interval, the deviation of that interval has not been exhausted, the remaining deviation will be distributed again among the intervals waiting to be adjusted. This iterative procedure ensures that the sum of all upper (and lower) bounds is exactly equal to the total upper (and lower) bounds for each OD pair.

### Variables Tab¶

The Variables tab enables you to define values that are not defined in the dynamic OD adjustment scenario dialog, or to define different values than those set in the scenario. Variables specified in the experiment take priority over the same variables in the scenario.

To start every gradient descent with the prior matrix instead of the current matrix, add the variable \$FIX_PRIOR_MATRIX to the experiment and set its value to TRUE. This approach should only be used when complying with UK Department for Transport (DfT) guidelines.

To execute the dynamic OD adjustment, first right-click on the adjustment experiment and select New Replication. The parameters to set for this replication are the same as those for a dynamic replication (or, for a result, they are the same as those for a dynamic result).

To run the replication, right-click it and select Run Dynamic OD Adjustment. When the replication finishes, the Dynamic OD Adjustment dialog is displayed. The tabs and subtabs of the dialog that contain outputs are described below.

### Outputs Summary¶

The Outputs Summary tab is the same as for a dynamic assignment replication.

### Validation¶

The Validation tab is the same as for a dynamic assignment replication.

### Time Series¶

The Time Series tab is the same as for a dynamic assignment replication.

### Path Assignment¶

The Path Assignment tab is the same as for a dynamic assignment replication and is described in Path Analysis Tool.

The Adjustment Output tab contains three subtabs: Trips, Convergence, and Validation.

#### Trips Subtab¶

The Trips subtab shows the adjusted demand compared with the reference demand for each Vehicle and time Interval. The data is first presented as a table but to view it as a regression plot, click .

To copy the data or save a screenshot of the data, click Action and select Copy Table Data or Copy Graph (Snapshot). You can now paste the saved data or graphic into other applications for analysis or display.

To generate a new set of OD matrices and a new Traffic Demand object using the adjusted values, click Create Demand and Matrices. You can use these in subsequent dynamic scenarios. #### Convergence Subtab¶

The Convergence subtab displays information about the evolution of the R^2^ value for each iteration of each interval. #### Validation Subtab¶

The validation tab displays the comparison between the measurements used by the adjustment process and the final simulated values (using the adjusted demand) associated with each of them. To view the data for different time intervals, click Interval to select from the drop-down list.

The data is presented as a table but to view it as a line graph, click .

To view it as a regression plot, click .

To copy the data or save a screenshot of the data, click Action and select Copy Table Data or Copy Graph (Snapshot). You can now paste the saved data or graphic into other applications for analysis or display. 