Skip to content
ASU Trans+AI Lab edited this page Oct 8, 2024 · 4 revisions

Design Principles

Zone ID Assignment for Activity Nodes (Using Chicago Dataset Example) https://github.com/asu-trans-ai-lab/grid2demand/blob/main/datasets/Chicago_30K_nodes/poi.csv

  • Start with an initial zone ID based on OpenStreamMap (using the OSM2gmns package). For example, in the Chicago dataset, we have 30K nodes, and around 3K activity nodes are identified from primary and secondary streets or interfacing points. The initial zone_id from osm2gmns is the same as the node ID. These IDs will be overwritten by grid2demand when using grid systems or external TAZ.
  • Zone IDs should remain consistent. For example, once the grid2demand process assigns activity nodes within the 10x10 grid, nodes will maintain consistent zone assignments unless explicitly modified by external TAZ data, such as the 40K census blocks in the Chicago dataset.

Step 1: Two Zone System Setup Modes

  1. 2D Grid Setup:
    In the Chicago dataset, a 10x10 grid is created, where each activity node from the 3K activity nodes is assigned a grid cell.

  2. External TAZ Setup:
    After completing the grid-based assignment, the Chicago dataset also supports using 40K census blocks as external TAZ zones. The zone.csv file containing the coordinates or polygon data of these zones will be used to further refine the zone structure. This transition allows for greater flexibility and precision in capturing demand patterns. If we directly use the 2D grid zone without TAZ input, the zones are automatically created for each grid cell.

Step 2: Mapping between Grid and Activity Node Complexity (Using Chicago Example)

  • After establishing the 10x10 grid, each of the 3K activity nodes is assigned to one of the 100 grid cells, resulting in complexity proportional to the number of activity nodes.
  • If you opt to use external TAZ zones (such as the 40K census blocks in the Chicago dataset), the system loops through each TAZ zone, fitting it into grid cells, leading to complexity proportional to the number of TAZ zones.

Step 3: POI Demand Assignment (Example with 80K POIs)

  • In the Chicago dataset, there are around 80K POIs. Instead of processing every single POI, grid2demand implements sampling, for example, processing 10% of POIs for preliminary calculations. This reduces the need to scan all POIs and optimizes the system’s performance.
  • Each POI is mapped to its closest zone ID based on the grid cell structure. Demand from POIs is accumulated within these zones for further analysis. For instance, in a 10x10 grid, each grid cell will collect POI demand related to its assigned zone.
  • Complexity is reduced by using the average number of zones per cell. In a typical scenario like the Chicago dataset, this method reduces complexity from # of zones * # of POIs to something more manageable by reducing the factor (e.g., 100x from the grid system).

Special Cases:

  • In cases where no POI exists for a grid cell, demand can still be generated based on node-level data.

Step 4: Gravity Model for Demand Calculation (Chicago Dataset Example)

  • For demand estimation between zones (either grid-based or TAZ-based), the production-attraction model follows a gravity model approach. In the case of the Chicago dataset, demand between origin and destination zones is calculated using a matrix format, with each cell representing the interaction between zones.

Simplicity and Control (Chicago Dataset Example)

  • The system avoids complex GIS-based spatial indices, ensuring that even with datasets like Chicago’s 30K nodes, 3K activity nodes, 80K POIs, and 40K census blocks, the processes remain manageable.
  • By relying on simpler techniques like grid structures and point-based calculations, the system ensures efficient and scalable demand estimation for real-world applications.