Skip to content

Use Cases

Ben Stabler edited this page Feb 27, 2016 · 1 revision

Matrices are used in various ways in transportation models.

What is in a matrix?

In practice, matrices handle the following kinds of things (with more to be added, hint hint):

  • Trips by purpose (Home-Based Work trips; Census or LEHD Journey-to-Work data)
  • Trips by type of vehicle (Bicycles or Trucks)
  • "Skims" of network values (a skim is a statistic, usually a sum, indexed by origin and destination zones and compiled by visiting each link along one or more network paths between the zones; a skim will yield values such as "the total travel time between zones", or total distance, total tolls paid, total transit fare, etc.)
  • Friction Factors for a Gravity Model
  • Economic flows (commodities, commodity value)

What roles do matrices play in travel models?

Matrices are used in common travel modeling operations:

  • Trip Distribution, where matrices of impedance or skim values and tables of zonal trip generation are used to develop a matrix of trips between each pair of zones.
  • Trip Assignment, where a matrix of trips between zones is mapped onto a network using various shortest path or congestion balancing algorithms
  • Network Analysis, where paths on a network are summarized into statistics about travel between zones (Skims)
  • Mode choice, where matrices will hold information about the utility of moving from zone to zone by certain modes (or information used to compute such utilities)

What operations are performed on matrices?

Certain operations are commonly applied to matrices in travel modeling applications:

  • Compute marginal totals (total by destination for all origins or origin for all destinations)
  • Extract or compute a value (e.g. a trip assignment) for each origin-destination pair
  • Peform a computation on a subset of origin-destination pairs (e.g. by specifying all destinations but only certain origins, or just specific pairs, or just pairs whose existing values meet some filter criterion)
  • Aggregate a matrix to a smaller number of zones in a larger geographic unit (e.g. take a matrix that presents data for Census block group pairs and turn it into a matrix that presents data for county pairs)
  • Disaggregate a matrix to a larger number of zones, using a table of distribution factors indicating the fraction of each source zone pair that gets aggregated into each target zone pair.
  • Iterative proportional fitting (IPF) or raking, where target marginal totals (different from the existing matrix marginal toals) are provided and the matrix cell values are proportionally adjusted so that the matrix marginal totals match the target marginal totals

Where do matrices come from?

Matrices may be the product of a model operation, or they may be filled out by hand. In practice, matrices are often passed back and forth between unrelated programs. If a matrix is being used to pass data between unrelated programs ("data interchange"), both programs must have the same understanding of the specific data storage format. There are many data storage formats that have been used to store and exchange matrix data, but there is no single, widely-supported format available for transportation modeling applications. Moving matrix data from one program to another can be a terrifying journey through proprietary code requiring expensive licenses, APIs with hidden assumptions, non-standard extensions, arbitrary limitations, custom programming, and the near-certainty of having to take that trip again (usually under great time pressure and other less-than-optimal conditions). See the Case Studies page, and the page on Existing (Lack of) Solutions for additional details.