This project documents the development of a model system and supporting software framework for building collaborative disaggregate strategic planning models. The name for this model system and framework is VisionEval. This name combines two key concepts which characterize the model system and supporting framework:
- 'Vision' connotes that models built in the system are mostly intended to be high level models that are used to analyze alternative future visions. These models are used for strategic planning purposes. The alternative visions (scenarios) may represent different policy visions for a state or metropolitan area, different future contingencies (e.g. high fuel prices), or both.
- 'Eval' identifies that the purpose of the models is to evaluate alternative scenarios with a number of performance metrics. The models are intended to support performance-based planning approaches.
Several related strategic planning models have been built to assist with the evaluation of alternative transportation and land use visions for states and for metropolitan areas. The first of these, the Oregon Department of Transportation's GreenSTEP model, was built to evaluate the potential for reducing greenhouse gas (GHG) emissions from light duty vehicles in various ways. Although the initial purpose of GreenSTEP was to estimate the effects of various actions on GHG emissions, it has been found to be useful for other strategic transportation planning purposes such as evaluating the effect of improvements to vehicle fuel economy on future highway revenues. Subsequently GreenSTEP became the basis for the FHWA’s Energy and Emissions Reduction Policy Analysis Tool (EERPAT), ODOT’s Regional Strategic Planning Model (RSPM), and the Rapid Policy Assessment Tool (RPAT, formerly SmartGAP, a product of the SHRP 2 C16 project).
All of these models belong to a class called disaggregate strategic planning models. They are disaggregate because, like many modern transportation models, they simulate behavior at the individual household level rather than at a more aggregate 'zonal' level. This enables the assessment of how prospective policies or other changes could have different impacts on different types of households (e.g. low income vs. high income). The models are strategic planning models because they are built to support long-range strategic planning decisions such as community visioning, policy development, and scenario planning. Strategic planning processes most often need to consider a number of possibilities about how the future may unfold and a range of potential actions that might be taken. As a consequence, models built to support strategic planning need to be responsive to a large number of variables and be capable of running quickly so that a large number of runs can be done to explore the decision space. This webpage shows one example of the exploration of the potential for reducing GHG emissions from light-duty vehicle travel in a small metropolitan area. To meet the needs of strategic planning, these models favor breadth over depth of analysis.
GreenSTEP, the RSPM, EERPAT, and RPAT comprise a model system because they:
- Model similar types of problems;
- Represent data in similar ways;
- Share a number of components;
- Use similar approaches to implementing model components.
Modeling within a model system has a several advantages for model developers and users. Model developers can be much more productive in developing new models because they can use components from other models and can focus their efforts on building components that don't already exist. Also, because the model system has shared conventions, developers can more easily understand the work of other developers and modify existing components to fit their needs. Likewise, the existence of common conventions makes it easier for model users to understand the models they are using, and makes it less expensive for them to have a model customized to meet their needs.
The fact that GreenSTEP, the RSPM, EERPAT and RPAT comprise a model system is a result of their common origins in the GreenSTEP model. No common descriptions or specifications of the model system they comprise have been developed. To date, this has not created any substantial problems because the numbers of developers and users of these models has been fairly small. However, as the number of developers and users increases it will become increasingly difficult to maintain the model system and the benefits that such a system provides. Consequently, the first goal of this project is to develop a complete description of the VisionEval disaggregate strategic planning model system and a set of specifications for that system.
Although formalizing the description and specifications for the model system is necessary for exploiting the benefits of the system, it is not sufficient. In addition, a common software framework is needed so that model components (modules) can be easily shared. The GreenSTEP code provided some aspects of a common framework which enabled the sharing of modules between models, but it falls short of being an adequate framework in a number of ways including the lack of a formal API for modules, overreliance on the global namespace to glue modules together, an insufficient data model for persistent storage, and incomplete functionality and documentation to enable model re-estimation. Consequently, the second goal of this project is to develop a programming framework for building models in the VisionEval modeling system. The project will develop software that enables models to be built using interchangeable modules. It will develop specifications and an applications programming interface for building modules that can be used in a plug-and-play fashion. It will also develop documentation and tools to assist module developers.
This framework, like the RSPM and GreenSTEP, will be coded in the R language. There are several reasons for this. First, since the R language is an exemplary language for data analysis and statistical programming, it is well suited for model development. Using R facilitates the development of models that are open and replicable. Second, since R is a full-featured programming language, it can be used very efficiently in model development because all the steps of data processing, exploratory data analysis, model estimation, model implementation, and output visualization can be done in one language. Third, R has a very good system for package development and management which facilitates the creation and sharing of model modules. Finally, R can be interfaced with higher performance languages like C++ (although most often very acceptable performance can be achieve with R itself if properly used).
The code and other materials for this GitHub project are organized in several directories. The approach directory contains documents which give an overview of the project including background, rationale and approach. The api directory contains documents which detail the model system and framework specifications and application programming interface. The design directory contains documents which describe the design of the model system and framework. The manuals directory contains documentation on the model system and how to use the framework. Finally, the packages directory contains framework code and example module code. Final code will be distributed in the form of R packages.