| 08 12 | Check variant and prevent hard coding |
| 06 17 | OmniTRANS V6: RubyGems |
| 06 16 | Create a process bar |
| 06 08 | OmniTRANS V6: Speed improvements for assignments |
| 06 08 | OmniTRANS V6: Cordon assignment |
| 06 08 | OmniTRANS V6: Capacity restraint assignment for transit |
| 06 08 | OmniTRANS V6: Multiple Egress Routes |
| 06 08 | OmniTRANS V6: Network viewing and editing |
| 06 08 | OmniTRANS V6: Fast and flexible analysis |
| 06 08 | OmniTRANS V6: Ruby running as seperate thread |
Version 6.0 introduces the ability to carry out a static assignment (OtTraffic) for a subarea of your network. This saves a significant amount of time when analysing the impact of small local changes to the infrastructure of large networks. The technology is based on the creation of cordon matrices for pre-defined subareas and the subsequent assignment of these cordon matrices to a variety of network configurations for the pre-defined areas.
The concept of Cordon assignment is to perform an assignment on a specific part of the network, with maintaining the routes and traffic flows for external relations. This is specifically useful for the quick evaluation of local traffic measures or small network modifications. For example, the effects in the vicinity of a modified road crossing in the city centre can be looked at without having to repeat the highway assignment.
Before using the cordon assignment method, there are a couple of things to keep in mind:
Version 6 allows you to perform cordon assignments in four steps.
Step 1: Define a cordon
This can be achieved by the cordon selection tool. Make sure you draw the cordon in such a way that inbound links are selected. For right-hand-rule driving this is clockwise, for left-hand-rule driving this is counter clockwise.
A couple of things to keep in mind:
Once you have defined the cordon, you can save it. Specify a suitable name for the selection, for example one that refers to the area like 'Cordonlinks Maastricht city centre'. The image below shows a cordon selection.
Step 2: Create a cordon matrix during complete network assignment
In your regular assignment job, you have to add several lines to get the cordon matrix.
First, we define the saved selection with the inbound links:
# open the network for the current variant
my_network = OtNetwork.new
# get a selection from a predefined set called 'Cordonlinks Maastricht city centre'
my_cordon_links = my_network.selection('Cordonlinks Maastricht city centre')
This selection is input for the OtTraffic assignment:
my_assignment.cordonLinks = [my_cordon_links]
Second, we define the cordonmatrix:
my_assignment.cordonMatrix = [1,10,10,11,3,1]
Merging these code together with the current assignment code results for example in:
my_network = OtNetwork.new
my_cordon_links = my_network.selection('Cordonlinks Maastricht city centre')
my_assignment = OtTraffic.new
my_assignment.assignMethod = VOLUMEAVERAGING
my_assignment.bprPerType = [[0,[0.87,4.0]]]
my_assignment.iterations = 10
my_assignment .epsilon = 0.00001
my_assignment .junctions = true
my_assignment.load = [1,10,10,11,2,1]
my_assignment.network = [10,10]
my_assignment.cordonMatrix = [1,10,10,11,3,1]
my_assignment.cordonLinks = [my_cordon_links]
my_assignment.execute
Step 3: Assign the cordon matrix
Duplicate your original assignment job. First, we define the cordonMatrix again like:
traffic.cordonMatrix = [1,10,10,11,3,1]
Furthermore, we extend the value for the assignmethod using a pipe or plus sign. For example assignMethod was 'VOLAVG' and now becomes 'VOLAVG + CORDON':
traffic.assignMethod = VOLUMEAVERAGING | CORDON
The final cordon assignment job will look like:
traffic = OtTraffic.new traffic.network = [10,10] traffic.iterations = 10 traffic.epsilon = 0.00001 traffic.junctions = true # Save the load for the network delimited by the cordon in result=4 traffic.load = [1,10,10,1,4,1] # Specify that the assignment is to be carried out on a cordon traffic.assignMethod = VOLUMEAVERAGING | CORDON # Specify the cordon matrix to be used as input - pseudo OD matrix traffic.cordonMatrix = [1,10,10,11,3,1] traffic.execute
Step 4: Analyse the result
You can verify that the outcome of a cordon assignment with equal demand/network leads to same flow pattern.
With a small change, you get a different flow pattern, which can be illustrated (e.g.) by compare bandwidth plot.
Note that assigning the cordon matrix to the sub-network without making any modifications may not lead to the same flows. It is dependent on how much you have a solution that is converging in the first global assignment. You will get the exact same flows when the solution has converged.