Skip to content

SCOG Model User Guide

Michael McCarthy edited this page Jan 29, 2026 · 3 revisions

Model Setup

Running the Model

Model Parameters

Model Outputs

Creating a New Scenario

Loading a scenario

Model Setup

Requirements

The SCOG Model with a 2022 base year was developed in PTV Visum 2024 and requires a license and computer capable of running that software.

The model was built and tested on a server running Windows Server 2016 with 2x Intel Xeon E5-2690 2.60 GHz processors and 128 GB RAM. This machine calculates a model scenario in about 2.5 minutes.

Downloading the Model

The model is maintained by RSG in a public GitHub repository which allows for multiple developers to work on the project simultaneously and roll back to a previous working version.

To keep track of your local changes and allow pushing your changes back to GitHub, we recommend using GitHub Desktop software.

1. Cloning the Repository

After installing and launching the software, click File then Clone Repository. Either search for "scog_model" or click on URL and paste the repository URL https://github.com/RSGInc/scog_model/ into the text box. Choose a location for the files on your PC and click Clone. The files will download and Git will start tracking added, changed, and removed files.

After cloning, users will have a clean version of the repository with no local changes.

With GitHub Desktop, you may see new changes available in the repository next to Pull origin box. "Pulling" will download and apply these updates to your local files.

2. Static File Download

If not using GitHub, the static model files are available as a zip file from the Releases page (latest stable version used for deliverables) or from the repository home page by clicking on the green Code button, then Download ZIP (this downloads the latest version).

Folder Structure

The 1-Inputs_Preparation folder contains Python notebooks used to process survey and Replica data and obtain Census data.

SCOG_Model_2022 contains the model itself and follows Visum's project layout. Some of these folders are created by the PTV Visum software and may not be included in the initial download.

File/Folder Purpose
📁 Backups Visum version file backups
📁 Comparisons Visum
📁 GlobalLayouts Visum layout files
📁 GridLayouts Visum layout files
📁 Modifications Visum modification files
📁 Outputs Empty folder for script outputs
📁 Procedures Visum procedure sequences
📁 Scenarios Visum folder created to store calculated results
📁 SharedData Custom Scripts and Model Parameters
📁 Temp Visum temporary files
SCOG_Model_2022.vpdb Visum project database
SCOG_Model_2022.vpdbx Visum Project file
SCOG_Model_2022Base.ver Visum Base version file (do not edit)
VISUMProject.pfd Visum project settings

Double-click SCOG_Model_2022.vpdbx to launch the Visum project. Users should avoid opening or editing the base version file (SCOG_Model_2022Base.ver) as this can corrupt the project.

Running the Model in Visum 2024

Double-click SCOG_Model_2022.vpdbx to launch the Visum project. Users should avoid opening or editing the base version file (SCOG_Model_2022Base.ver) as this can corrupt the project.

If a newer version of Visum is installed, you may need to right-cick on the vpdbx file and open with PTV Visum 2024 to run the model as-built.

IMPORTANT: This model was calibrated and built in Visum 24. It will run in newer versions of Visum, but once it is opened in a newer version, that installation cannot be used in Visum 24 anymore. Results may vary slightly when running in newer versions of Visum.

To run the base version of the model, follow these steps:

Open the model system by double-clicking SCOG_Model_2022.vpdbx in the model directory.

Navigate to the 'Scenarios' tab.

Ensure the checkbox under 'Active' is marked in the 2022 Base row. Optionally, uncheck the other boxes the 'Active' column to avoid running the remaining scenarios.

Press the green 'play' button, then 'yes' in the popup window.

The 2022 Base, 2045 No Build, and 2050 No Build scenarios are displayed in the project manager interface. The scenarios may be run simultaneously if all are marked active or the user can run a single scenario by marking only . Click the green play icon to calculate all active scenarios.

Model Parameters

The SCOG Model has a significant number of model parameters, both within the model procedure sequence and saved externally.

Within Visum Procedure Sequence

Many model parameters are included in the model procedure sequence and can be edited there directly. These include parameters for:

  • Trip generation (internal person trips)
  • Zone skimming and feedback using Method of Successive Averages (MSA)
  • Trip distribution (internal and external auto trips)
  • Time of Day and PA/AP directional factors for PA to OD conversion
  • Auto Mode Share and Auto Occupancy factors
  • VDF parameters for Assignment (private transport)

Saved Outside Visum (SharedData Folder)

The SharedData folder contains all of the model parameters that are stored outside of Visum. Within this folder, several sub-folders correspond to a variety of modeling functions:

Filters

This folder contains Visum filters for various network objects. These are used during model runs to apply functions to a subset of zones, links, nodes, etc.

Filter Description
AllZones.fil Zone No > 0
ExternalZones.fil Zone No >= 1000
InternalZones.fil Zone No < 1000
NodeVDF.fil Node ControlType is 5, 20, or 43 (Stop control)
TSysCar.fil TSysSet contains "C" (Cars are allowed)

HH_Submodel

Outputs

This folder contains CSV files that hold intermediate outputs of the household submodel before they are pasted into the Visum zone object table.

Parameters

This folder contains parameters for use in the household submodel, the script for which is described in the Scripts section below.

File Description
HHsize_income_2d_table.csv Input table with household size - household income breakdown from census data (PUMS)
HHsize_vehicles_2d_table.csv Input table with household size - household income breakdown from census data (PUMS)
HHsize_workers_2d_table.csv Input table with household size x number of workers from census data (PUMS)
HHSizeModel.csv Percentage of households of size (1, 2, 3, 4+) by average household size
IncomeModel.csv Percentage of households of income (<25k, 25-50k, 50-75k, >75k) by average household income, indexed to regional income
NumberOfWorkersModel_MNL.csv Model coefficients for classifying households by number of workers based on household size and income
NumberOfVehiclesModel_MNL.csv Model coefficients for classifying households by number of vehicles based on household size, income, and number of workers

External

The External folder contains inputs for External model trips. The XX matrices in OMX format have been imported to Visum. The Replica XX trips are currently used in the model and resulted in better calibration to more recent counts, although the 2019 passive data is also available here.

File Description
Ext_Sta_Summary.csv Contains external auto trip inputs used in the model for each external station
SCOG_Replica_XX_trips.omx Base year XX matrix in OMX format, developed from Replica data
SCOG_base_XX_trips.omx Base year XX matrix in OMX format, developed from passive data collected in 2019 (not used in model)

Reports

The Reports folder contains :

File Description
Counts/calrepinfo.csv List of queries for reporting model error by Area Type, Functional Class, AADT, and Screenlines
Counts/Auto_Counts.csv Count data input including external station counts
Template/ Contains CSV format templates for Reporting outputs

Scripts

The SCOG model uses several Python scripts to customize model processes that cannot be feasibly built through Visum functionality alone.

Script Description
Calc_Skim_Gap.py Calculates the skim gap in the network to determine if the assignment feedback loop should be followed
Calrep.py Calculates percent error, root mean squared error (RMSE), and other statistics for links with traffic counts
HH_SubModel.py Breaks households out by size, income, and workers, with double and triple distributions as well
Prep_ExternalModel.py Grows external trips (IX, XI, and XX) based on annual growth factors
TLFD.py Calculates trip length frequency distributions for model calibration
VMTReport.py Calculates model VMT by Functional Class

Model Outputs

The SCOG Model produces model outputs within the Visum version file, and aggregated summaries stored in csv files and other formats.

Within Visum Objects

Many model outputs are stored within their respective Visum network objects. These include:

  • Zone household breakdowns by size, income, workers, and vehicles from the Household submodel
  • Link flows, congested speeds and times, demand/capacity ratios
  • Connector flows

Saved Outside Visum (Outputs Folder)

During the Model_Runner.xml procedure sequence, the 'SCOG_Output_Processing.py' script is run. This script creates a timestamped folder named 'ModelRun_(DATE)-TIME' within the 'Outputs' folder to hold all model outputs from that run. This timestamped folder contains these subfolders:

Model Reporting

This folder contains csv files with summary statistics about different facets of the model. These include:

File Description
Matrix_Summary.csv Contains the sum of all OD Demand matrices (no skims)
Model_Summary.csv Overall summary of various model statistics
Total_Internal_Person_Trips_Summary.csv Sum of internal person trips by purpose
Vehicle_Trips_Matrices_Summary.csv Sum of vehicle trips by period
Vehicle_Trips_Summary.csv Sum of vehicle trips by period, and internal vs. external

The following reports are produced for defined corridors (using the ):

File Description
Travel_Time_Corridor_Summary.csv Free-flow vs. Congested travel time and level of service for corridors in the model region
Volume_Corridor_Summary.csv Volumes and level of service for corridors in the model region

Creating a New Scenario

The Visum 24 scenario manager allows for flexible scenario creation and adjustment. To create a new scenario, navigate to the 'Scenarios' tab in the scenario manager and click the '+' button in the bottom left. After naming the scenario, there are 3 fields to specify, each of which have a corresponding tab:

Modifications

Modifications define changes to apply to the scenario. These changes can be physical network changes, like a new or closed roadway or transit line, or attribute adjustments, like changing socioeconomic data or roadway speeds.

To add a Modification:

  1. Navigate to the 'Modifications' tab and click the '+' button in the bottom left

  1. Name the new Modification. Click 'OK'

  2. Select Dependencies and Exclusions (if applicable)

    • Dependencies are Modifications that must exist for the new Modification to exist. For example, a new transit line running along a new highway is dependent on that highway being built first.

    • Exclusions are Modifications that cannot exist together with the new Modification. Visum will prevent both Modifications from being used in the same scenario. For example, 2 new bridges are being considered but only 1 will eventually be built.

    • If no Dependencies or Exclusions are required, select 'Base version'. Other scenarios can be selected if their Dependencies and Exclusions all apply to the new Modification.

  1. Click OK and a new window of Visum will open. The network and attribute values will be set up according to the Dependencies selected for the Modification

  2. Make changes to the network and attributes as desired. Save the Modification

Back in the 'Scenarios' tab, Modifications can be added to each scenario one by one by clicking on the three dots in the specific scenarios row, under the 'Modifications' field.

The below window will open, allowing the user to select specific Modifications for the specific scenario. This allows for very fine customization of model scenarios.

When Modifications are selected and the scenario is run, Visum will reconcile all selected Modifications into a working network and object attribute tables.

When no Modifications are specified, the model runs with all network objects set to the 'Base' version.

Procedure parameter set

This field defines the procedure sequence to be used when running the scenario. New Procedure parameter sets can be added in the corresponding tab in the scenario manager.

When no Procedure parameter set is specified, the model runs with the Procedure sequence present in the 'Base' version.

Global layout

Global layout gives the user the ability to define the layout of tables and other visualizations in the version file. This can be useful for setting up congestion maps and other ways to view model outputs, and not have to recreate the visualization every time the model is run. This field is optional and will not affect the way the model operates when running.

Key Attributes

When editing the network, it is important to ensure that key link and node attributes are updated where appropriate. These attributes are critical to the model's representation of the road network.

Link Attributes

| Attribute | Description | | LinkType | VDF Lookup | | V0PrT | Free-flow Speed in mph | | NumLanes | Number of Lanes (by direction) |

Node Attributes

Additionally, the configuration of turn lanes may be modified by double-clicking a node to access the Junction Editor.

Loading a Scenario

IMPORTANT: Any changes made to the uncalculated or calculated scenario from opening the scenario with the following methods will not be reflected in model runs. Changes must be made to either the Base version or the Modifications applied to the scenario. Opening a scenario with one of these methods is purely for viewing the inputs and outputs.

Both of these methods will open a new instance of Visum behind the scenario manager, which can be accessed by minimizing the scenario manager window.

Loading a scenario that has not been calculated

The user may want to view the model scenario before calculation for a few reasons. One is if the scenario has yet to be calculated, in which case opening it as a calculated scenario will not work. Another reason is to view the inputs to the scenario without the clutter of model outputs. This is especially useful for confirming the implementation of modifications to a particular scenario.

To open a scenario without the calculated results, follow these steps:

  1. Navigate to the 'Scenarios' tab in the scenario manager

  2. Highlight the desired scenario ('Base' in the example below)

  3. Click the button highlighted in the picture below at the bottom of the scenario manager window

Loading a scenario that has been calculated

The user can view the model scenario after calculation in order to review the results of the model run. Opening a scenario this way will include all modified attributes and network objects from the particular model run.

To open a scenario with the calculated results, follow these steps:

  1. Navigate to the 'Scenarios' tab in the scenario manager

  2. Highlight the desired scenario ('Base' in the example below)

  3. Click the button highlighted in the picture below at the bottom of the scenario manager window

Clone this wiki locally