How triangle-modeling-and-analytics/trmg2 works
Purpose and Entry Points
TRMG2 is the Triangle Regional Model’s second-generation regional travel-demand model. Its executable workflow is a sequenced set of Caliper/TransCAD-style resource scripts, compiled through src/_TRMCompile.lst, with model/scenario definitions in trmg2.model and trmg2.scenarios. The published technical documentation is rendered under docs/, notably docs/index.Rmd and docs/index.html.
Scenario, Network, and Socioeconomic Foundation
Scenario creation establishes a model-year network and inputs from baseline master data plus project lists. src/01 - CreateScenario.rsc consumes year-specific roadway/transit changes under scenarios/2035/ (and corresponding model years) and network assets under master/networks/. Socioeconomic data and TAZ geography are versioned separately in master/sedata/ and master/tazs/; these are core boundaries between scenario inputs, geography, and demand modeling.
Supply Preparation and Accessibility
Network calculations and accessibility prepare the impedance and land-use measures required by downstream demand models. src/02 - Network Calculations.rsc precedes src/03 - Accessibility.rsc; accessibility parameters and outputs are represented in master/accessibility/accessibilities.csv and master/accessibility/attraction_rates.csv. Skimming is an explicit later supply-demand feedback boundary in src/10 - Skimming.rsc, producing travel impedances after network conditions are available.
Resident Travel Demand Pipeline
The resident model follows a conventional person/household-to-trip pipeline: synthetic population, productions, nonmotorized processing, aggregation, time-of-day, parking, mode choice, and destination choice. Principal stages are src/04 - PopulationSynthesis.rsc, src/05 - Resident Productions.rsc, src/08 - Time of Day.rsc, src/12 - Mode Choice.rsc, and src/13 - Destination Choice.rsc. Their calibrated model inputs are versioned by purpose under master/resident/, including population seeds, generation rates, mode coefficients, destination-choice size terms, and time-of-day factors.
Specialized Demand Submodels
Separate scripts add demand not handled by the resident home-based pipeline: non-home-based travel (src/14 - NHB Models.rsc), airport trips (src/Airport.rsc), commercial vehicles (src/Commercial Vehicles.rsc), external/internal-external travel (src/External Models.rsc), and university travel (src/University.rsc). These models maintain distinct calibration/configuration boundaries in master/airport/, master/cv/, master/external/, and master/university/, while their R-based estimation/preprocessing artifacts and validation outputs reside in docs/R/ and docs/data/output/.
Assignment and Feedback Outputs
Demand is converted into assignment-ready matrices by src/16 - Create Assignment Matrices.rsc, then loaded onto roadway and transit networks by src/17 - Roadway Assignment.rsc and src/18 - Transit Assignment.rsc. src/19 - Summaries.rsc is the terminal reporting stage. Assignment depends on Caliper binary network, route, matrix, and scenario formats in master/networks/, rather than a database or web service.
R Documentation and Calibration Boundary
R is used primarily for data preparation, estimation, calibration, and static documentation—not as the runtime orchestrator. Scripts such as docs/R/create_dc_est_tables.R, docs/R/estimate_nhb.R, and docs/R/university_productions.R transform survey, census, GIS, and observed-count inputs under docs/data/input/ into calibrated tables and diagnostic outputs under docs/data/output/. The R environment is pinned with docs/renv.lock; rendered HTML documentation is deployable as a static site.
Main entry points: 01 - CreateScenario.rsc Create Scenario · estimate_nhb.R R Calibration & Preparation · 16 - Create Assignment Matrices.rsc Create Assignment Matrices · 04 - PopulationSynthesis.rsc Population Synthesis
Components 27
Model Orchestration
- Resource Script Build · Defines the executable script sequence.
src/_TRMCompile.lst - Model & Scenario Definitions
trmg2.model - Create Assignment Matrices
src/16 - Create Assignment Matrices.rsc - Roadway Assignment
src/17 - Roadway Assignment.rsc - Transit Assignment
src/18 - Transit Assignment.rsc - Summaries · Terminal model reporting.
src/19 - Summaries.rsc
Scenario & Supply Inputs
- Create Scenario
src/01 - CreateScenario.rsc - Year-Specific Projects
- Network Assets · Binary networks, routes, matrices, and scenarios.
- Socioeconomic Data
- TAZ Geography
- Network Calculations
src/02 - Network Calculations.rsc - Accessibility
src/03 - Accessibility.rsc - Accessibility Parameters
master/accessibility/accessibilities.csv - Skimming · Produces travel impedances for demand feedback.
src/10 - Skimming.rsc
Resident Demand
- Population Synthesis
src/04 - PopulationSynthesis.rsc - Resident Productions
src/05 - Resident Productions.rsc - Resident Model Parameters · Purpose-specific generation, mode, destination, and time-of-day inputs.
- Time of Day
src/08 - Time of Day.rsc - Mode Choice
src/12 - Mode Choice.rsc - Destination Choice
src/13 - Destination Choice.rsc
Specialized Demand
- Specialized Demand Models · NHB, airport, commercial vehicle, external, and university demand.
src/14 - NHB Models.rsc - Specialized Model Inputs · Airport, commercial vehicle, external, and university model data.
Calibration & Documentation
- R Calibration & Preparation · Estimates models and prepares diagnostic data.
docs/R/estimate_nhb.R - Observed & Survey Inputs
- Calibration Outputs
- Technical Documentation · Rendered, deployable model documentation.
docs/index.Rmd
Connections 34
- Resource Script Build → Create Scenario: executes
- Model & Scenario Definitions → Create Scenario: defines
- Year-Specific Projects → Create Scenario: project changes
- Network Assets → Create Scenario: baseline network
- Create Scenario → Network Calculations: scenario network
- Network Calculations → Accessibility: network measures
- Accessibility Parameters → Accessibility: parameters
- Socioeconomic Data → Population Synthesis: household controls
- TAZ Geography → Population Synthesis: zone geography
- Resident Model Parameters → Population Synthesis: population seeds
- Population Synthesis → Resident Productions: synthetic households
- Resident Model Parameters → Resident Productions: generation rates
- Resident Productions → Time of Day: resident trips
- Resident Model Parameters → Time of Day: period factors
- Time of Day → Mode Choice: timed trips
- Skimming → Mode Choice: impedances
- Mode Choice → Destination Choice: mode trips
- Accessibility → Destination Choice: land-use measures
- Skimming → Destination Choice: impedances
- Network Calculations → Skimming: network conditions
- Specialized Model Inputs → Specialized Demand Models: calibrations
- Destination Choice → Create Assignment Matrices: resident demand
- Specialized Demand Models → Create Assignment Matrices: nonresident demand
- Create Assignment Matrices → Roadway Assignment: roadway matrices
- Create Assignment Matrices → Transit Assignment: transit matrices
- Network Assets → Roadway Assignment: road network
- Network Assets → Transit Assignment: transit network
- Roadway Assignment → Summaries: assignment results
- Transit Assignment → Summaries: assignment results
- Observed & Survey Inputs → R Calibration & Preparation: observations
- R Calibration & Preparation → Calibration Outputs: diagnostics
- R Calibration & Preparation → Resident Model Parameters: estimated tables
- R Calibration & Preparation → Specialized Model Inputs: estimated inputs
- Calibration Outputs → Technical Documentation: validation exhibits