Migrating from UrbanSim 3 to UrbanSim 4

This document describes the steps necessary to migrate an UrbanSim 3 application to work with UrbanSim 4.

If you find any omissions or errors, please report them to bugs at urbansim dot org.  

General Comments

Be careful to use the same version of the documentation as the code, since the documentation and code continue to change daily.

UrbanSim 4 does not have a consistency checker.  In general, the consistency constraints of UrbanSim 3 still apply to UrbanSim 4, unless the relevant database table columns have changed in their semantics (see the list of table changes, below).

The "configurations" mentioned in the manual are similar to the "scenario file" used in UrbanSim 3, though they use different technology.  Both specify how to setup or configure the simulation.  The UrbanSim 4 configuration allows you to configure much more of the simulation than was possible with the scenario file. 

Do not have NULL values in any database column used by UrbanSim 4.  If you do, UrbanSim 4 will fail in confusing ways.

We recommend that you use lower-case names for databases, tables, and columns.  Our experience is that using a single case for all of these avoids problems if you ever need to migrate your data to another database system or operating system.  Opus converts all table and column names into lower-case when it creates a dataset from a database table.

The set of variables used by a model is determined completely by the model's specification.  Thus, it is impossible for our User Manual to document the set of variables used by a model.

The set of variable names implemented in UrbanSim 4's urbansim package is different than those that came with UrbanSim 3.  Some UrbanSim 3 variables have no direct counter-part in UrbanSim 4, and UrbanSim 4 contains many variables not found in UrbanSim 3.

UrbanSim 4 makes it clearer that the set of appropriate accessibility variables depends upon the region being modeled, and the particular implementation of the region's travel model.  Thus, in UrbanSim 4, the accessibility variables are packaged in the psrc package that is used to specialize UrbanSim to run on the Puget Sound Regional Council's metropolitan area.

The use of development type is much less prominent in UrbanSim 4, since the developer model now is a location choice model where projects (agents) choose from gridcells (locations).  

User lower-case for the name of any Python package containing a module defining an Opus variable.  For instance, the Python package 'gridcell' within urbansim must be lower-case, so that Opus can find the Opus variables defined within that package, e.g. 'urbansim.gridcell.acres_of_land'.

We recommend using lower-case for the name of all Python packages.

Use lower-case for any Opus variable names.

Changes to Specific Baseyear Database Tables

This section describes the specific changes needed to be made to the tables in the baseyear database.

accessibilities

accessibilities_input

annual_employment_control_totals

developer_model_coefficients
developer_model_specification

development_constraints

development_events_exogenous

This table replaces the development_events table used in UrbanSim 3.  It uses the same schema, except that all of the improvement_value fields must contain 'A' (for adding units or sqft).  

This name change was done since the development_events dataset will contain both prescheduled development events from the development_events_exogenous table as well as development events created by the sequence of development_project_transition model (to create new development projects; not events), the *_development_project_location_choice_models (to place those projects), the development_event_transition_model (to convert the development projects into development events), and the events_coordinator (to process those newly created events).

development_event_history

development_types

employment_adhoc_sector_groups

gridcell

household_characteristics_for_ht

jobs

jobs_for_estimation

model_variables

sampling_rates

urbansim_constants

The following fields are no longer used in UrbanSim 4:

zones

zones_in_faz

Specification and Coefficients Tables

In UrbanSim 4, the specification and coefficient tables, e.g. land_price_model_specification and land_price_model_coefficients, are intermediary tables produced by the running the integrated estimation process.  Thus, if you need to update the set of variables used by a model, or you need to re-estimate the coefficients, you should do this by re-running the estimation process; you probably should never directly edit the specification or coefficients tables in the database. 

Database Tables no Longer Used

The following tables were used by UrbanSim 3 but are no longer used by UrbanSim 4: