Matrices

Matrices are one of the most important components of traffic models. There are two different matrix types:

  • Demand matrices are used to show the transport demand between origin and destination zones.
  • Skim matrices show the origin-destination zone skims, e.g. the travel time.

In OD matrices, the demand is coded (by the number of trips) from origin zone i to destination zone j. The temporal distribution of travel demand within the analysis period is described by a start time and a time series that is considered during PuT assignment and dynamic PrT assignments (Time series). The demand distribution is ignored in the case of static PrT assignments.

In Visum, OD matrices and time series are independent objects which can freely be allocated to demand segments for assignment. This means that you can also use a matrix for more than one demand segment.

Note: It is not mandatory to create a separate demand model in Visum, which calculates the matrices for the assignment. You can also use and assign matrices from external sources.

The Matrix editor integrated in Visum allows you to process existing matrix data and perform calculations based on the gravity approach (Gravity model calculation). In addition, there are effective procedures that allow you to change individual or multiple matrices during the calculation process.

You can organize working with matrices in various ways. You can create interactive matrices or have matrices generated automatically during the calculation process. Matrices can basically be selected via a number or via their properties, i.e. their attribute values. Both options have their advantages and disadvantages that you should weigh against each other for your project.

The selection and use of matrices via properties provides a number of advantages:

  • You do not have to create matrices before using them. If output matrices with the defined properties do not exist in the model, they are automatically generated during a procedure. If they already exist, their matrix values are overwritten. On the other hand, you can use matrices (e.g. skim matrices) in other procedures, although they are only generated during the calculation process.
  • You can further perform analogous calculations for a number of matrices with the same function in the model, e.g. calculation of the total demand per demand segment based on the results of a demand calculation. The program, for example, iterates over all modes and sums up matrices with certain properties if the ModeCode attribute of the matrices matches the code of the mode being iterated over. In addition, you can use attribute values of network objects that can be accessed by the target matrix through relations, e.g. a demand segment dependent occupancy rate or a demand stratum dependent value of time.
  • Procedures using matrices can be defined in a universally valid form, so that extensions of the model by a transport mode or a demand stratum only require slight or no adjustments at all.
  • The transferability of procedure sequences to other models is simplified if matrices are referred to via their properties, without using actual attribute values, e.g. when calculating utility matrices for all demand strata of a demand model.

For the selection via properties (however not for the selection via matrix number), you need to make sure that the matrices used are unique in terms of the combination of properties.

Example: Procedures for skim calculation create matrices that are uniquely defined through a combination of Code, Demand segment and MatrixType. If you need time-interval based skims for further processing and decide to calculate them, existing skims will lose their uniqueness. To restore the uniqueness of existing skims, include the matrix attributes FromTime and/or ToTime through properties into the matrix description.