&EPA Air and Radiation EPA420-P-04-017 November 2004 United States Environmental Protection Agency MOVES2004 Software Design Reference Manual Draft ------- EPA420-P-04-017 November 2004 MOVES2004 Software Design Reference Manual Draft Assessment and Standards Division Office of Transportation and Air Quality U.S. Environmental Protection Agency Authors: Mitch Cumberworth John Koupal Megan Beardsley Harvey Michaels Additional Software Designers: Wes Faler, Cimulus, Inc. David Brzezinski ------- A Note about the Capitalization and Naming Conventions Used in this Document Because object orientation is central to the design of the MOVES software, this document often refers to classes and objects. The class names used in MOVES are often formed from several English words which are run together without spaces, e.g. "EmissionCalculator", "RunSpecEditor", etc. MOVES follows the widely-used Java naming convention of capitalizing each word in these run-together names, and this convention is also used in this document. Because databases are also central to MOVES, this document includes many references to databases, tables, and fields. It is our intention that database and table names follow the same naming convention as classes in MOVES. The names of fields within these tables also use this scheme, except that they begin with a lower case letter (unless they begin with an acronym). E.g. there is a "MOVESDefault" database which contains an "EmissionRate" table and this table contains a field named "meanBaseRate". We've applied the same naming convention to file and directory names as well because they are somewhat analogous to tables and databases. Acronyms, such as "VMT" (from "vehicle miles traveled") or "AC" (from "air conditioning") are capitalized in all contexts, even when they begin a field name. Thus there is a field named "ACPenetrationFraction". A table of acronyms used in this document is contained in Appendix III. There are undoubtedly instances where this document fails to fully comply with these conventions. In some contexts it seems natural to use ordinary English, e.g. "emission rate", interchangeably with a class name, e.g. "EmissionRate", and we have not attempted to be highly rigorous in this regard. The Windows operating system is not case sensitive and MySQL is also rather forgiving in this respect. We hope our readers will be as well. ------- Table of Contents A Note about the Capitalization and Naming Conventions Used in this Document 2 1. Introduction 5 2. MOVES2004 Software Components 8 3. Computer Hardware and System Software Requirements 10 3.1. Details on JAVAPlatform Requirements 10 3.2. Details on My SQL Platform Requirements 11 3.3. Details on Shared File Directory Platform Requirements 12 4. MOVES Computer Platform Configuration 13 5.MOVES2004 Software Licensing 16 6. Installation Overview 17 7. MOVES2004 Processing Overview 18 8. MOVES2004 Data and Control Flow 20 9. MOVES Functional Design Concepts 24 9.1.Geographic Locations 24 9.2. Time Periods 25 9.3. Characterizing Emission Sources (Vehicle Classification) 26 9.4. Emission Pollutants 30 9.5. Emission Processes 30 9.6. Vehicle Fuel Classifications 32 9.7. Emission Source Activity 32 10. MOVES Functional Specifications 35 10.1. MOVES Graphical User Interface (GUI) / Run Specification Editor 35 10.2. MOVES Application Program Interface and Master Looping Mechanism 35 10.3. Input Data Manager 35 10.4. Database Pre-Aggregation 37 10.5. Total Activity Generator (TAG) 45 10.6. OperatingModeDistributionGenerator (OMDG) 54 10.7. Source Bin Distribution Generator (SBDG) 61 10.8. Meterology Generator 65 10.9. Alternative Vehicle Fuels and Technologies (AVFT) Strategy 66 ------- 10.10. Emission Calculators - Energy Consumption Calculator (ECC) 72 10.11. Distance Calculator 78 10.12. Methane (CH4) and Nitrous Oxide (N2O) Calculator 81 10.13. [This section number is reserved for future use.] 83 10.14. Result Data Aggregation and Engineering Units Conversion 83 10.15. Post-Processing Script Execution 86 10.16. GREET Model Interface 87 10.17 Future Emission Rate Creator (FERC) 91 10.18 EPA's Plans to Estimate the Uncertainty of MOVES Results 95 11. MOVES2004 Input and MOVESDefault Databases 99 11.1. Use of Data Types 100 11.2. Functional Types of Tables: 100 11.3. Tables Related to the Total Activity Generator (TAG): 102 11.4. Tables Related to the Operating Mode Distribution Generator (OMDG): 106 11.5. Tables related to the SourceBinDistributionGenerator (SBDG) and the Alternative Vehicle and Fuel Technology (AVFT) Strategy: 108 11.6. Tables Related to the MOVES Core Model 112 11.7.Miscellaneous Additional Tables 115 12. MOVES2004 Output Databases 116 12.1. MOVESRun Table 117 12.2. MOVESError Table 118 12.3. The MOVESActivityOutput and MOVESOutput Tables 118 Appendix I. EPA Response to Stakeholder and Peer Review Comments on Draft Design and Implementation Plan for MOVES pertaining to the MOVES Functional Design ... 123 Scope of the Design 124 Total Activity and Operating Mode Formulations 126 County Database 129 Input/Output/Model Operation 129 Appendix II. Pre-Publication Peer Review Comments and EPA Response 131 Appendix III. Table of Acronyms 140 ------- 1. Introduction MOVES2004 is EPA's initial release of the MOtor Vehicle Emission Simulator. This initial release can be used to estimate national inventories and projections at the county-level for energy consumption, N2O, and CH4from highway vehicles. It also includes an interface with an updated version of Argonne National Laboratory's model for Greenhouse gases, Regulated Emissions, and Energy uses in Transporation (GREET) to include life-cycle (i.e., well-to-pump) effects in estimates of energy consumption and emissions. Future versions of the model are planned to estimate pollutants from additional mobile sources such as aircraft, locomotives, and commercial marine activity, estimate non-highway mobile source emissions, estimate criteria pollutant emissions, and operate at smaller scales. For a brief overview of MOVES2004 and its documentation the reader is urged to consult^ Roadmap toMOVES2004 which explains the intended role of each MOVES2004 document, including this one. A precursor to this design manual is a report published in October 2002 entitled Draft Design and Implementation Plan for MOVES, available on the MOVES website (www.epa.gov/otaq/ngm.htm). This draft plan includes extensive background on the impetus for MOVES, an analysis of the "use cases" MOVES is attempting to address, and the conceptual design for the model. The reader is encouraged to consult this draft design plan if additional background is desired. The design presented in this document is based on that one. The draft plan underwent formal peer review and public stakeholder review; the comments resulting from this process are summarized in Appendix I. This Software Design and Reference Manual has several purposes: One is to provide an idea of what is involved in configuring, installing, and using MOVES2004. This document is not specifically tailored to the beginning user or to getting started quickly using the model, but is intended to answer questions about the model software such as "What software licensing terms apply to MOVES2004?" or "Can my computer run MOVES2004?" or "How might I set up multiple computers to run this model?" Chapter 2 identifies the software and database components which make up MOVES2004. Chapter 3 covers the hardware and system software required to run each component. ------- Chapter 4 covers configuration of the MOVES software, which can be run on a single computer or a network of computers. Chapter 5 covers MOVES software licensing, and Chapter 6 provides an overview of the MOVES installation process. Another document, the MOVES2004 Installation Guide describes installation in step-by-step detail for the beginning user, and is intended to be used when actually performing installation. This Software Design and Reference Manual is also not intended to function a "User Guide" for MOVES2004. Information as to how to begin using MOVES2004, including the functionality of its Graphical User Interface, is contained in theMOVES2004 User Guide. A second role of this document is to explain the design of the MOVES software including its databases. Chapter 7 provides a "processing overview" and Chapter 8 diagrams and discusses the flow of data and control between the components of MOVES. Chapter 9 discusses its functional design concepts and Chapters 11 and 12 explain its databases. A third purpose, related to the second, is to document the software's functionality: its inputs, the calculations it performs, and its outputs. Almost half of this document consists of its Chapter 10 which contains functional specifications for each software component of MOVES, including the calculations performed. Chapter 11 documents the MOVES2004 input and working database and Chapter 12 documents its output database. Finally this document contains comments received and EPA's responses to them. Appendix I summarizes comments received on the predecessor design document, the Draft Design and Implementation Plan for MOVES, dated October, 2002 and EPA responses to them. Appendix II contains the peer review comments received on an earlier draft of this document and EPA's reponses, a number of which include improvements made to this version. Other documents supplement this manual. Those most closely related to the software are listed below. Once MOVES has been installed, on-line help screens are also available to assist with more detailed operation of the MOVES Graphical User Interface (GUI). The MOVES Installation Guide., already mentioned above, is included on the MOVES installation CD. ------- TheMOVES2004 User Guide, already mentioned above, is included on the MOVES installation CD. More detailed documentation on the MOVES database is included within the database itself. Technical documentation explaining the default data sources and methods used to estimate fleet, activity, and emission data underlying MOVES2004 is contained in technical reports separately downloadable from the EPA web site. Documentation produced by Argonne Laboratories covering the GREET model is contained in the GREET directory within the model itself. ------- 2. MOVES2004 Software Components MOVES2004 is written in Java™ and the MySQL relational database management system, a product of MySQL AB. Its principal user inputs and outputs, and several of its internal working storage locations, are MySQL databases. A "default" input database, covering 3222 counties of the United States and which supports model runs for calendar years 1999 - 2050 is included with the model. MOVES2004 interfaces with a version of the GREET model produced by Argonne Laboratories, which is included on the MOVES2004 installation CD. MOVES2004 has a "master - worker" program architecture which enables multiple computers to work together on a single model run. A single computer can still be used to execute MOVES2004 runs by installing both the master and worker components on the same computer. Looking at this architecture in greater detail, the MOVES2004 software application consists of eight components, each described briefly here. MOVES2004 Graphical User Interface (GUI) and Master Program: This is a Java program which manages the overall execution of a model run. Its MOVES GUI (also sometimes referred to as the run specification editor) may be used to create, save, load, and modify a run specification or RunSpec, and to initiate and monitor the status of a model run. A basic command line interface may be employed (in lieu of the GUI) by users (or by other computer programs) to execute the model without interacting with the MOVES GUI. If MOVES is installed on a computer network several model runs may be executed concurrently by different copies of the MOVES 2004 Master Program. MOVES2004 Worker Program: This is also a Java program. At least one executing copy of this program is needed to complete a MOVES run. It may execute on the same computer as the MOVES Master Program, or on other computer(s) having access to the SharedWork directory. Default input database, normally named "MOVESDefault": this MySQL database must reside on the same computer as the MOVES Master Program. A version of this database is included in the MOVES2004 Installation Package. ------- SharedWork: This is a file directory or "folder" which is accessible to all executing copies of the MOVES Master program and to the MOVES Worker program. It is not a MySQL database but simply a file directory or "folder" provided by the file services of a software operating system. Optional user input databases: These MySQL databases are normally located on the same computer as the MOVES Master Program. They may contain any of the same tables that are in the MOVESDefault database and are used to add or replace records as desired by the user. The MOVESExecution database: This MySQL database is created by the MOVES2004 Master Program. It is used for temporary working storage and does not interact directly with the user. It must be on the same computer as the master program. MOVES output databases: MySQL databases are named by the user and produced by runs of MOVES2004. While normally located on the same computer as the MOVES Master program, they may be located on any MySQL server accessible to it. MOVESWorker database: This MySQL database is used as working storage by the MOVES2004 Worker Program. It does not interact directly with the user. It is on the same computer as the MOVES Worker program. ------- 3. Computer Hardware and System Software Requirements The MOVES2004 application software components require a computer hardware and software "platform" upon which to operate. The hardware platform can consist of a single computer system or a network of computers. Computer(s) used to run either of the MOVES application programs must have at least 128MB of RAM, (256MB or more is recommended). Execution run time performance is a constraint with MOVES so high speed processors ), at least IGHz and preferably faster, are highly recommended. The MOVESDefault database distributed with MOVES requires approximately 125MB of disk storage. MOVES Worker and Output databases are also often voluminous, so several gigabytes of disk space should be available on all machines used to run either MOVES program. Serious users of MOVES2004 will want to use late-model, high-performance microcomputer systems. 3.1. Details on JAVA Platform Requirements The MOVES GUI/Master and the MOVES Worker are Java programs and for operation require a Java RunTime Environment (also sometimes referred to as the "Java Virtual Machine"). The Java Software Development Kit (SDK) includes the Run Time Environment. The initial release of MOVES2004 uses version 1.4.2 of the Java SDK, produced by SUN Microsystems Inc. The MOVES Installation Package includes this Java version, suitable for installation on WINDOWS NT, WINDOWS 2000, and WINDOWS XP systems. MOVES2004 does not operate successfully on versions of WINDOWS that predate WINDOWS 98, and many WINDOWS 98 systems will not have sufficient processor speed, memory, and disk capacity to run MOVES2004 well. Users should not attempt to operate either MOVES2004 program with other versions. While Java is available for other software operating systems, such as LINUX, UNIX, etc. and porting MOVES to such software operating systems should not be difficult, EPA has not tested such configurations and is not prepared to support them. Sun's main web site for information related to Java is http://java.sun.com/. Several extensions to Java are also required by MOVES2004 and are included in its installation package. These include JUnit and JFCUnit, which facilitate software 10 ------- testing, and JavaHelp used to construct the on-line help facility in MOVES2004. The ANT software build utility is also included in the MOVES2004 installation package. 3.2. Details on MySQL Platform Requirements The MySQL database management software has client-server architecture. The MOVES GUI/Master and MOVES Worker programs function as MySQL clients and require access to MySQL server(s). Since both programs require a MySQL database to be located on the same computer (MOVESExecution and MOVESWorker), all computers that run either the MOVES GUI Master program or the MOVES Worker program must also operate a MySQL server. Additional computers operating MySQL servers can also be utilized; e.g., for MOVES Output databases. The initial release of MOVES2004 uses MySQL version 3.23.49. The MOVES Installation Package includes an installation package for this MySQL version, suitable for installation on WINDOWS NT, WINDOWS 2000 and WINDOWS XP systems. While this version of MySQL is now somewhat dated, users should not attempt to operate either MOVES2004 program with other versions. While MySQL is available for other software operating systems, such as LINUX, UNIX, etc. and porting MOVES to such software operating systems should not be difficult, EPA has not tested and is not prepared to support them. MOVES2004 does not operate successfully with versions of WINDOWS which predate WINDOWS 98 and most WINDOWS 98 systems do not have sufficient resources to run MOVES2004 well. The MOVES2004 installation package includes, in addition to the MySQL server component needed by MOVES itself, a command line MySQL client program and an installation package for the MySQL Control Center which is a GUI MySQL client program. Either of these MySQL client programs can be used to help construct MOVES2004 input databases and to analyze the contents of MOVES2004 output databases. Other data base management software, such as Microsoft ACCESS can also be used via an ODBC driver. Appendix B of the MOVES2004 User Guide explains how this is accomplished. Additional information about MySQL is available at the MySQL web site (http://www.mysql.com/) operated by MySQL AB. 11 ------- 3.3. Details on Shared File Directory Platform Requirements The SharedWork file directory may be located on a computer that runs the MOVES GUI/Master Program or the MOVES Worker Program or on a separate "file server" computer. All that is necessary is that the MOVES GUI/Master program and at least one MOVES Worker program have access to this shared file directory and permission to create, modify and delete files. In the simplest case, diagrammed early in the next section, all MOVES Application Software components may reside on a single computer. In this case the SharedWork directory is simply on this computer's local hard drive. All files created by MOVES in this directory are temporary, but because the files can be numerous and large, at least 1GB of disk space should be available. 12 ------- 4. MOVES Computer Platform Configuration All MOVES2004 application components may be installed on a single computer system as shown in the following Figure 4-1. Single Computer Configuration Computer # 1 MastsrfGUI Program Works* Program MOVES2004 may also be configured so that several computers work together to execute model simulation runs. This can significantly improve execution time performance of large simulations. (Improvements diminish, however, as more worker computers are added. The number of worker computers needed to approach the minimal execution time for a model run depends on the specific nature of the run.) All that is necessary for several computers to work together on a MOVES run, is for the computers to have access to the SharedWork directory. For one computer this file directory can be on its local hard drive; other computers must access the SharedWork directory via a computer network. Of course, the platform requirements of each MOVES 13 ------- component must still be satisfied by the computer(s) on which it is installed. A variety of network configurations are possible. The principal consideration is that each Master/GUI Program must have the MOVESDefault database on its computer and that each Worker Program must be able to create a MOVESWorker database on its computer. Two text files, MOVESConfiguration.txt, and WorkerConfiguration.txt, versions of which are built by the installation program, are used by the MOVES Master/GUI program and the MOVES Worker program to locate their databases and the SharedWork directory. Figure 4-2 shows a typical Multiple Computer configuration. 14 ------- Typical Multiple Computer Configuration Computer # 1 Master/GUI Program Computer # 2 Shared File Directory Computers # 3, ,n MySQL Server MGVESWorta Workai Program 15 ------- 5. MOVES2004 Software Licensing EPA distributes a complete installation package for MOVES2004 as open source software. EPA asserts a copyright to the MOVES2004 application but allows MOVES2004 to be used pursuant to the GNU General Public License (GPL), which is widely used for the distribution of open source software. Restrictions apply to use of MOVES2004 pursuant to the GPL. For example, the program may not be sold, even in modified form, for commercial profit without obtaining a commercial license to MySQL from MySQL AB and, if redistributed in modified form, must be identified accordingly and source code included. Distribution of modified versions of the program must also require compliance with the GPL unless commercial licenses are obtained. The terms of the GPL are explained in detail at http://www.gnu.org/licenses/. 16 ------- 6. Installation Overview The MOVES2004 installation package supplied by EPA includes two installation "setup" programs. The first, obtained directly from MySQL AB's web site, is used to install MySQL; the second installs the MOVES2004 application (including its Java source code and compiled class files) along with all other required software platform components. Before MOVES2004 can be installed it is first necessary to run the MySQL installation set up program on each computer where it is needed in the desired configuration. This installation program is included on the MOVES2004 installation package, and must be run separately, before MOVES2004 itself is installed. All other MOVES2004 and platform components can be installed by running the MOVES2004 installation. This graphical "wizard-style" program guides the user through the installation process. Default choices are offered which are suitable for the single computer configuration and for the "typical beginning" case where none of the MOVES platform software is currently installed. Options are available to install just the MOVES Master/GUI program, or just the MOVES Worker Program, and to specify the location of the SharedWork directory. The approach taken regarding the underlying MOVES software platform components, such as the Java SDK, is to offer the choice of installing them, or to indicate where they have already been installed. One should not rely upon previously installed components, however, unless they are the same version as those in the MOVES Installation package. Once the user has become familiar with the components of MOVES, this installation can be modified, in part by editing the configuration files. The MOVES installation keeps track of components it has installed and includes an "Uninstall" feature to remove those components. It generally cannot be used to remove components which have been modified or which have been installed in some other fashion. Additional step-by-step detail for installing MOVES2004 is contained in the MOVES Installation Guide which should be used when actually performing installation. 17 ------- 7. MOVES2004 Processing Overview This diagram illustrates the overall flow of processing in MOVES2004 in a way which illustrates the division of work between the MOVES Master and Worker programs. Master otal Activity Generator, WellToPumpProcessor, OperatingModeDistributionGenerator AVFTControlStrategy, MasterLoopables TotalActivity Generator. WellToPumpProcessor, OperatingModeDistributionGenerator, AVFTControl Strategy, "E SInstanti ator .performlnstantiation EmissionCalculatorlnboundUnBundlerO f~~~ -—-^ USERInput P MOVESExecutioiJ I > MYSQL '" Typical Processing Steps: Before beginning a model run any desired User Input datatabases (shown near the bottom left of the diagram) must be prepared. (The diagram does not attempt to show this intial step, which is only required if the user wishes to deviate from the default inputs in MOVESDefault). A button in the MOVES graphical user interface, represented in the diagram by its MOVESWindow, can be used to create an empty User Input database to which users can add the table records they need. The Future Emission Rate Creator external control strategy, discussed later, produces a User Input database for its particular purpose, as does the GREET model interface. 18 ------- A run specification, or RunSpec, is loaded or produced by using the MOVES graphical user interface (MOVESWindow). The user initiates execution of the actual model run via the "Action" menu item of MOVESWindow. The MasterLoop, within the MOVES Master program, then merges any User Input databases identified in the RunSpec with the MOVESDefault database to produce the MOVESExecution database. Most data not needed to fulfill the RunSpec is discarded or "filtered" in this process. The MasterLoop then uses the MOVESExecution database to produce files containing work "bundles" in the SharedWork directory. MOVES Worker program(s) perform these bundles of work, using their MOVESWorker databases for temporary storage. They place files containing the completed work back into the SharedWork directory. The MasterLoop retrieves these completed work files and processes them into a MOVES output database. The name of the output database is specified in the Run Spec. The "Post Processing" menu in the MOVESWindow allows for additional, optional processing steps to be performed on the output database. 19 ------- 8. MOVES2004 Data and Control Flow Figure 8-1 illustrates the logical flow of data and control within the MOVES2004 software. While generally more detailed than the diagram in the previous section, it does not attempt to illustrate the division of work between the MOVES Master and Worker. Figure 8-1 MOVES Logical Level Data Flow Diagram Via MOVES Command Line Interface Total Activity Generator (TAG) Operating Mode Distribution •t suon Generator (OMDG) Source Bin Distribution M Generator (SBDG) I v. . J Application Program Interface (API) / Master Loop V^ Database Pre-Aggregation Alternate Vehicle Fuels and Technology (AVFT) Strategy Emission Calculators Result Data Aggregation/ Units Conversion Post Processing Script Execution 20 ------- The same graphical conventions are used in this diagram as in Data Flow Design (chapter 5) of the Design and Implementation Plan for EPA 's Motor Vehicle Emission Simulator, namely: Cylinders represent databases. Rectangles open on the right hand side represent relatively simple data storage elements. Round-cornered rectangles represent processes that operate on and produce data. Square boxes represent interfaces external to the system. Solid line arrows represent data flow. Dashed line arrows represent control flow. The "RTC" notation on an arrow indicates that the control flow "runs to completion" before any of the data is processed by subsequent steps. In order to illustrate the specifics of MOVES2004, several databases envisioned by the general MOVES design have been combined into the MOVESDefault and MOVESExecution databases illustrated here. Chapter 11 contains a more detailed discussion of these databases. The following text attempts to lead the reader through the diagram. The first occurance of each diagram block is bolded. The User normally executes the MOVES GUI program, which may access and update files containing Saved Run Specifications and AVFT Strategy Definitions. A simple MOVES Command Line Interface is available as an alternative to execute an existing run specification or RunSpec. The Command Line Interface passes a selected Run Spec directly to the MOVES Application Program Interface (API), whereas the MOVES GUI Program allows the user to select, edit, and save run specifications, and/or operate the GREET Model Interface , and/or the Future Emission Rate Creator (FERC) External Control Strategy, before passing control to the MOVES API. Once control is passed to the MOVES API, it manages the remainder of the model run. Control is first passed to the Input Data Manager, which merges the 21 ------- MOVESDefault database with any User Input Databases specified by the RunSpec, producing the MOVESExecution database. A Database Pre-aggregation function was added to MOVES2004 to reduce execution time performance at the expense of some added approximation in the calculations. This function is executed next if called for by the run specification. The Master Loop then manages execution of the generators, internal control strategies, and calculators. MOVES2004 includes four generators: the Total Activity Generator (TAG), the Operating Mode Distribution Generator (OMDG), the SourceBinDistributionGenerator (SBDG), and the Meteorology Generator. It includes one internal control strategy: the Alternative Vehicle Fuels and Technologies (AVFT) Strategy. All generators and control strategies receive input from various portions of the MOVESExecution database and place their output there as well. Tables written by Generators are termed "Core Model Input Tables" or "CMITs" and have an important role in the design of MOVES. Additional detail as to which tables are used by each generator and control strategy is contained in Chapters 10, 11, and 12. Emission Calculators are the most central or "core" portion of MOVES model. They consume much of its execution time and so the MOVES software design provides for portions of them to run by the MOVES Worker Program. They receive input from the MOVESExecution database (some of which has been produced or altered by the generators and the control strategies). The CMIT tables within the MOVESExecution database provide their principal input data, but other tables may also be used by emission calculators for specialized calculations. The emission calculators output their results to databases on worker machines that are further processed to become the MOVESOutput Database. MOVES2004 includes EmissionCalculators for: energy consumption (all processes), distance (even though distance is not an emission), CH4 and N2O - start and running, and CH4 and N2O - well-to-pump. Result Aggregation and Engineering Units Conversion functions are performed on the MOVESOutput database as final steps of the model run. Following the model run, the MOVES GUI can be used to invoke additional "post-processing" functions to operate on MOVESOutput databases. MOVES2004 22 ------- includes one post-processing function, Post-Processing Script Execution, which runs a selected MySQL script against the MOVESOutput database specified by the run specification. Several post processing scripts are provided with the model and users may add to these if further customization of MOVES output is desired. 23 ------- 9. MOVES Functional Design Concepts The functional scope of MOVES2004 can be characterized as follows: Geography: The entire U.S. (plus Puerto Rico and the U.S Virgin Islands) at the county level, with options to run at a more aggregate state or national level. Time Spans: Energy/emission output by hour of the day, day of the week, and month for calendar years 1999 through 2050, with options to run at more aggregate day, month or year levels. Sources: All highway vehicle sources, divided into 13 "use types" Outputs and Pollutant Emissions: Energy consumption (characterized as total energy, petroleum-based energy and fossil fuel-based energy), N2O, and CH4 Emission Processes: running, start, extended idle (e.g. heavy-duty truck "hoteling"), and well-to-pump (via interface with an updated version of Argonne National Laboratory's GREET model) Understanding how MOVES2004 operates, and why the input and output databases are set up as they are, requires an understanding of some basic functional design concepts. Fundamental aspects of the MOVES design are geographic locations, time periods, emission sources, emission pollutants, emission processes, vehicle fuels, and emission source activity. 9.1.Geographic Locations The default geographic modeling domain in MOVES2004 is the entire United States of America. This domain is divided first into "states" In this context the District of Columbia, Puerto Rico, and the U.S. Virgin Islands are considered to be "states", so the nation has 53 states in the MOVES database. "States" are divided into "counties" In the MOVESDefault database these correspond to the 3222 political subdivisions of the states in 1999. Counties must belong to a single state. While the county-level subdivisions of some states have changed slightly over time, the MOVES database is set up to store only a single set of counties. The database could be adapted relatively easily to a different set of counties, but it would be a significant structural change to MOVES to allow the set of counties to depend upon the calendar year. 24 ------- In the general MOVES design framework, "counties" may be further divided into "zones," but in MOVES2004 each county is consists of a single zone. Zones are intended to play a distinct role in future versions of MOVES that operate at smaller scales. "Zones," and thus "counties," in MOVES2004, are further divided into "links" In MOVES2004 each county is divided into 13 links, corresponding to the twelve "road types" in HPMS, along with an off-network "road type" representing locations not on the county's roadway network. In MOVES2004, running process emissions are considered to occur on the twelve HPMS road types, while its other emission processes (i.e. start, extended idling, and well-to-pump) are associated with the "off network" link locations. (Emission processes are discussed in a subsequent section.) In MOVES2004, a link is a combination of a road type and a county. Road types, while not in themselves geographic locations, help to define links at the macroscale. In future versions of MOVES, however, when modeling at smaller scales, links may represent segments of actual roadways and road types will serve only to classify links. Finally, the general MOVES geographic framework envisions that zone locations may be overlaid by a set of "grids" or grid cells. There may be multiple grid cells in a zone and multiple zones in a grid cell, but grids play no role in MOVES2004. 9.2. Time Periods MOVES2004 describes time in terms of calendar years, 12 months of the year, 7 days of the week, and 24 hours of the day. This arrangement appears simple but there are several subtleties to keep in mind. First, while calendar years in MOVES are intended to represent actual historical years, the finer time period classifications (months, days, and hours) do not represent historical time periods and are best thought of as being "generic" time classifications. Among other things this means that MOVES does not attempt to model the fact that Fridays in December 2004 include a Christmas day holiday, and that in 2005 they do not. Another reason why MOVES should not normally be considered to model historical time periods smaller than a calendar year is the disconnection between "days of 25 ------- the week" and "months." For example, there is no way to represent data specific to both Monday, May 3, 2004 and Monday May 17, 2004 in a single MOVESDefault or Input Database. The database is only set up to store information about the year 2004 and about Mondays in May. Along the same lines, MOVES does not attempt to model facts such as that there are five Mondays in May, 2004 but only four in June, 2004. MOVES does account for the different number of days in each month (considering 1/7 of them to be Mondays, 1/7 Tuesdays, etc.). MOVES2004 does account for leap years in most respects. In order to model an actual historical time period, data corresponding to the unique time period would have to be supplied by the user. Depending on the accuracy and detail desired, multiple model runs might be necessary if the time period were longer than seven days. 9.3. Characterizing Emission Sources (Vehicle Classification) A long-standing challenge in the generation of on-road mobile source emission inventories is the disconnect between how vehicle activity data sources characterize vehicles and how emission or fuel economy regulations characterize vehicles. The crux of this issue is that there is a fundamental difference between factors influencing how vehicles are used, and their fuel consumption and emission performance. An example of this is how vehicles are characterized by the Highway Performance Monitoring System (HPMS) - by a combination of the number of tires and axles - and EPA's weight-based emission classifications such as LDV, LDT1, LDT2 etc. This disconnect is fundamental to matching activity data and emissions data, and generally requires some "mapping" of activity data to emission data. The MOBILE series of models have traditionally grouped vehicles according to the EPA emission classifications, and provided external guidance on mapping these categories to the sources of activity data, such as HPMS. MOVES is designed to take these mappings into account internally, such that the casual user of MOVES will not have to deal with external mapping. Doing this, however, requires some complexity in the design. Vehicles are characterized both according to activity patterns and energy/emission performance, and are mapped internal to the model. Thus the model uses data for both 26 ------- the activity and energy/emission methods of characterization. On the activity side, vehicles are grouped into "Source Use Types," or "Use Types", which are expected to have unique activity patterns. Because the HPMS is a fundamental source of activity information, the MOVES use types are defined as subsets of the HPMS vehicle classifications. These use types are shown in Table 9-1. 27 ------- Table 9-1. MOVES Source Use Type Definitions HPMS Class Passenger Cars Other 2-axle / 4-tire Vehicles Single Unit Trucks Buses Combination Trucks Motorcycles MOVES use type 2 1 . Passenger Car 3 1 . Passenger Truck 32. Light Commercial Truck 5 1 . Refuse Truck 52. Single-Unit Short-Haul Truck 53. Single-Unit Long-Haul Truck 54. Motor Home 41. Intercity Bus 42. Transit Bus 43. School Bus 61. Combination Short-Haul Truck 62. Combination Long -Haul Truck 1 1 . Motorcycle Description Minivans, pickups, SUVs and other 2-axle / 4-tire trucks used primarily for personal transportation Minivans, pickups, SUVs and other trucks 2-axle / 4-tire trucks used primarily for commercial applications. Expected to be unique from passenger trucks in terms of annual mileage, operation by time of day Garbage and recycling trucks Expected to be unique from other single unit trucks in terms of drive schedule, roadway type distributions, operation by time of day Single -unit trucks with majority of operation within 200 miles of home base Single -unit trucks with majority of operation outside of 200 miles of home base Buses used primarily by commercial carriers for city-to-city transport. Buses used within an urban area Combination trucks with majority of operation within 200 miles of home base Combination trucks with majority of operation outside of 200 miles of home base Activity patterns which may differ between the use types are: annual mileage, distribution of travel by time of day or day of week, driving schedule (i.e. real time 28 ------- speed/accel profile), average speeds, or distribution of travel by roadway type. For example, refuse trucks are separated out because their activity patterns are expected to vary significantly from other single-unit trucks, and accurately accounting for these vehicles requires accounting for their unique activity. Source use types are the principal method of vehicle characterization seen by the MOVES user. The user selects which use type and fuel combinations to model in the user interface, and results are best reported by use type.1 However, emission rates contained in the model are not broken down by use type, for two (related) reasons: first, emission and fuel consumption data are not gathered according to use types or other activity-based classifications (e.g. HPMS). Second, the factors that influence fuel consumption and emission production are different from how vehicles are used. For example, with regard to fuel consumption, loaded vehicle weight is a predominant influence; a 2000 Ib. compact car and 5000 Ib. SUV will have very different fuel consumption levels, although these vehicles may have similar use patterns. It is necessary to account for these differences in fuel consumption and emission generation, separate from activity pattern. To do this, the MOVES design has implemented the concept of "Source Bins." Unique source bins are differentiated by characteristics that significantly influence fuel (or energy) consumption and emissions - and because these vary by pollutant, they are allowed to vary by pollutant in MOVES. Table 9-2 shows the source bins fields used in MOVES2004, which vary by pollutant. Energy source bins are defined by fuel type, engine type, model year group, loaded weight and engine size. For CFLt and N2O, source bins are defined by fuel type, engine type, model year group (notice the definition of model year group can vary by pollutant, which is necessary to account for trends which vary by pollutant), and regulatory class. 1 Because Source Classification Codes (SCCs) have been and are used extensively in emission inventories MOVES2004 also offers the option of reporting results by SCC. There are currently 144 SCCs for mobile sources formed by the intersection of the 12 HPMS road types with the 12 vehicle classifications used in PARTS and NMIM. This scheme is not native to MOVEs, however, and the MOVEs modeling team would like to discourage continued use of this classification scheme. 29 ------- Table 9-2. MOVES Source Bin Definitions Fuel Type (Energy, CH4, N20) Gas Diesel CNG LPG Ethanol (E85) Methanol (E85) GasH2 Liquid H2 Electric Engine Technology (Energy, CH4, N2O) Conventional 1C (CIC) Advanced 1C (AIC) Hybrid - CIC Moderate Hybrid - CIC Full Hybrid - AIC Moderate Hybrid - AIC Full Fuel Cell Hybrid - Fuel Cell Model Year Group Energy 1980 and earlier 1981-85 1986-90 1991-2000 2001-2010 2011-2020 2021 and later (CH4, N20) 1972 and earlier 1973 1974 1975 1999 2000 2001-2010 2011-2020 2021 and later Loaded Weight (Energy) Null < 500 (for motorcycles) 500-700 (for motorcycles) > 700 (for motorcycles) <= 2000 Ibs 2001-2500 2501-3000 3001-3500 3501-4000 4001-4500 4501-5000 5001-6000 6001-7000 7001-8000 8001-9000 9001-10,000 10,001-14,000 14,001-16,000 16,001-19,500 19,501-26,000 26,001-33,000 33,001-40,000 40,001-50,000 50,001-60,000 60,001-80,000 80,001-100,000 100,001-130,000 >=130,001 Engine Size (Energy) Null < 2.0 liters 2. 1-2. 5 liters 2.6-3.0 liters 3. 1-3. 5 liters 3.6-4.0 liters 4. 1-5.0 liters > 5.0 liters Regulatory Class (CH4, N20) Null Motorcycle LDV LOT HOT Source bins are defined independently from use types, but are mapped to use types internal to MOVES by the SourceBinDistributionGenerator. 9.4. Emission Pollutants MOVES2004 estimates two fundamentally different kinds of results: energy consumption and mass emissions. For convenience, all these quantities are considered to be "emissions." "Energy emissions" estimated by MOVES2004 are total energy consumption, fossil fuel energy consumption, and petroleum fuel energy consumption. The more familiar mass emissions estimated by MOVES2004 are methane (CH4) and nitrous oxide (N2O. 9.5. Emission Processes On-road vehicles consume energy and produce mass emissions through several mechanisms or pathways, which are known within MOVES as "emission processes" or 30 ------- just "processes" and are accounted for and reported (if desired by the user) separately. The MOVES2004 mechanisms for "pump-to-wheel" energy consumption and gaseous emissions are limited to operation of the engine and emissions from the tailpipe. However, certain aspects of engine operation are so different in terms of their activity and affect on exhaust emissions, they merit treatment as separate exhaust emission processes. In addition to these "pump-to-wheel" exhaust emission processes MOVES2004 also includes a "well-to-pump" emission process. The processes for MOVES2004 are as follows: Running Exhaust, meaning the energy consumed or the tailpipe emissions produced during vehicle operation over freeways and surface streets while the engine is fully warmed up. Start Exhaust, meaning the additional energy consumed or tailpipe emissions produced during the period immediately following vehicle start-up. An important note is that this quantifies the energy consumed or emissions produced in addition to the "running" energy/emissions produced immediately following start-up. Start emissions represent the incremental emissions produced following vehicle start-up, after accounting for the baseline running emissions. Extended Idle, meaning energy consumed during long periods of engine idling off of the roadway network. This process applies mainly to combination long-haul trucks in MOVES, and is meant to account for the emerging issue of overnight "hoteling" at truck stops, although it could eventually be applied to idling of passenger vehicles in drive-thru lanes, etc. This process is implemented only for energy consumption in MOVES2004. Well-To-Pump, meaning the energy and emissions produced from processing and distributing vehicle fuel in the process of getting from raw feedstock to the fuel pump. These energy use and emission rates are produced by Argonne National Laboratory's GREET model. It should be noted that well-to-pump emissions have a different relationship to locations than those of the other processes. MOVES2004 associates well-to-pump results with the locations (e.g. Counties and RoadTypes) whose activity caused the emissions; the emissions are not produced at these locations as they are for the other processes. An additional process, manufacture/disposal, would account for energy and emissions from vehicle production and disposal. This is not ready for inclusion in MOVES2004, but is planned for inclusion in a later version. 31 ------- 9.6. Vehicle Fuel Classifications The top level vehicle fuel classifications are listed in Table 9-2, above, in the context of their role in vehicle source bin classification. Implicit in this source bin classification scheme is that a particular vehicle is designed to operate on one of these top level fuel types (e.g. gasoline, diesel fuel, electricity, etc.) To facilitate modeling the effects of alternative fuels, MOVES2004 further divides these top level fuel types into fuel subtypes. In MOVESDefault, for example, the gasoline fuel type has three subtypes: conventional, reformulated, and gasohol (E10). Diesel fuel has three subtypes: conventional, biodiesel, and Fischer-Tropsch diesel. Fuel subtypes represent alternative ways of meeting the demand for a general type of fuel. MOVES2004 assumes that vehicles designed to operate on a top level fuel type may be operated on any of its subtypes depending upon the fuel supply at a particular time and geographic location. 9.7. Emission Source Activity The cornerstone of estimating mobile source energy usage and emission inventories is vehicle activity. Vehicle activity centers on two fundamental questions: what is the total amount of vehicle activity, and how is this activity subdivided into modes that are unique to energy consumption and emissions. The first question is quantified in MOVES by the metric Total Activity. Total Activity, as the name implies, is the total amount of vehicle activity for source use types in the given location and time which the user has selected in the run specification. The basis of total activity depends on the emission process, as shown in Table 9-3. In MOVES2004 the Total Activity Generator estimates Total Activity for the Start Exhaust, Running Exhaust and Extended Idle emissions processes. 32 ------- Table 9-3. Total Activity Basis by Process Emission Process Total Activity Basis Description Running Source Hours Operating (SHO) Total hours, of all sources within a source type, spent operating on the roadway network for the given time and location of the run spec. The same as number of sources * per-source hours operating Start Number of Starts Total starts, of all sources within a source type, for the given time and location of the run spec. The same as number of sources * per-source starts Extended Idle Extended Idle Hours Total hours, of all sources within a source type, spent in extended idle operation for the given time and location of the run spec. Well-To-Pump Pump-To-Wheel Energy Consumed Total energy consumed, of all sources within a source type, for the given time and location of the run spec. The sum of running, start and extended idle. The second piece of activity characterization is to define how total activity is subdivided into operating modes which produce unique energy consumption and emission rates. In the MOVES design these operating modes are allowed to vary by emission process and even pollutant, although for MOVES2004, discrete operating modes are only employed for running energy consumption based on combinations of vehicle specific power (VSP) and instantaneous vehicle speed. These operating modes are shown in Table 9-4. The operating mode concept is central to MOVES multi-scale analysis capability, and will be expanded with the criteria pollutant version of the model. 33 ------- Table 9-4. Operating Mode Bin definitions for MOVES2004 (running energy consumption) Braking (Bin 0) Idle (Bin 1) VSP \ Speed < 0 kW/tonne Oto3 3 to 6 6 to 9 9 to 12 12 and greater 6 to 12 <6 0-25mph Bin 11 Bin 12 Bin 13 Bin 14 Bin 15 Bin 16 - - 25-50 Bin 21 Bin 22 Bin 23 Bin 24 Bin 25 Bin 26 - - >50 - - - - - Bin 36 Bin 35 Bin 33 34 ------- 10. MOVES Functional Specifications This chapter explains the functions performed by each portion of the MOVES software, or indicates where such information can be found. 10.1. MOVES Graphical User Interface (GUI) / Run Specification Editor The MOVES Graphical User Interface (GUI) is used to produce and modify MOVES run specifications. Its functionality is described in detail in the MOVES2004 User Guide. 10.2. MOVES Application Program Interface and Master Looping Mechanism This component, shown in figure 8-1, manages the overall execution of a MOVES model run. It includes an application program interface (API) callable by either the command line interface, or the MOVES GUI. It invokes the input data manager and any database pre-aggregation. This component includes a master looping mechanism. InternalControlStrategy, Generator, and EmissionCalculator objects "sign up" with this MasterLoop to execute over portions of the modeling domain (the modeling domain being defined by a RunSpec and being divisable by geography, time, and emission process). This component creates and manages a pool of control "threads" to bundle Calculator input data (and SQL scripts to be run on the data) for portions of the modeling domain and places them in the SharedWork directory. It also includes a thread of control to unbundle the results placed in the SharedWork directory by MOVES Worker program(s). This software component is rather complex and consists of a number of Java classes. Programmer level documentation is required to understand this component in greater detail. 10.3. Input Data Manager The InputDataManager generates the MOVESExecution database from the MOVESDefault database, removing (or "filtering") records in this process based on the 35 ------- needs of the run specification (RunSpec). The InputDataManager runs to completion before any InternalControlStrategy objects, Generators or Calculators begin the MOVES model calculations. The MOVES GUI and RunSpecs specify a list of input databases to be used in addition to the default database to construct the MOVESExecution database. The InputDataManager filters input records based on the following RunSpec criteria: year, month, link, zone, county, state, pollutant, emission process, day, hour, day and hour combination, roadtype, pollutant-process combination, sourceusetype, fueltype, fuelsubtype, and monthgroup. This filtering is specified in a table-specific manner and need not be applied to every table having these key fields. Filtering is not performed on particular table columns where doing so would interfere with correct result calculation. (The exact table columns to filter are specified in the Java code for the InputDataManager class in the "tablesAndFilterColumns" array.) The reasons for not filtering a particular table by all possible criteria are documented with program source code comments. Input databases have the same table contents and structure as the MOVESDefault database, but need not contain all tables. If a table is present, however, it must contain all the table columns. Records from user input databases add to or replace records in the MOVESDefault database. If the same record (i.e. a record having the same values of all primary key fields but generally different non-key field values) is present in more than one input database, the record from the user input database listed last in the GUI and in the RunSpec is the one which ends up in MOVESExecution. A field is added to core model input tables in the MOVESExecution Database as they are generated by the Input Data Manager to indicate that the record came from an input database so that Generators may avoid deleting such records. MOVES verifies that all input tables contain the required columns. The MOVES GUI also checks that the same database is not specified for both input (either as the default input database or an additional input database) and for output, and ensures that MOVESExecution is not used as either an input or an output database. Otherwise, however, it remains the responsibility of the user to ensure that the ordered application of any additional input databases called for in the run specification to the MOVESDefault 36 ------- database results in a MOVESExecution database that is accurate, complete and consistent. 10.4. Database Pre-Aggregation To improve execution run time performance, when geographic selections are made at the state or national level, MOVES "preaggregates" the MOVESExecution database so that each state selected, or the entire nation, appears in the database as if it were a single county. These geographic performance shortcuts are specified by the "STATE" and "NATION" GeographicSelectionType values produced by the "Macroscale Geographic Selection" GUI screen and stored in MOVES run specifications. No database preaggregation is performed when geographic selections are made at the County level. County selections may still be used to produce results for broad geographic areas if the user can endure their execution time performance. Options are also available to improve execution run time performance by "preaggregating" time periods in the MOVESExecution database. These options are specified by the "Time Aggregation Level" item in the MOVES GUI and MOVES RunSpec. This can assume the following values: HOUR - no time period aggregations are performed DAY - combine all hours of the day MONTH - combine all days of the week YEAR - combine months of the year All of these computational shortcuts (except COUNTY and HOUR) involve compromises to the accuracy of the results. The MOVES GUI adjusts the levels of geographic and time period detail specified for the output if necessary so that levels of output detail which can no longer be produced due to data preaggregation are not requested by the RunSpec. 10.4.1. Sequence of the Database Pre-Aggregation Operations: After creation of the MOVESExecution database by the input data manager the geographic and time period preaggregation operations are performed as follows: 37 ------- a. If the GeographicSeletionType = NATION, the model creates an average county which represents the entire nation. To do this the MOVESExecution database is aggregated to a level where the nation consists of a single representative state and this "state" consists of a single "county", and therefore a single "zone". There is a single "link" for each road type in the RunSpec. b. If the GeographicSeletionType = STATE, then the MOVESExecutionDatabase is aggregated to a level where each state selection in the RunSpec consists of a single "county" and therefore a single "zone". There is a single "link" in each such state for each road type in the RunSpec. c. if the Time Aggregation Level value is DAY, MONTH, or YEAR, all data pertaining to the 24 separate hours of the day in the MOVESExecution database is aggregated into a single "hour" representing the entire day. d. if the Time Aggregation Level value is MONTH, or YEAR, all data pertaining to the 7 separate days of the week in the MOVESExecution database is further aggregated into a single "day" representing the entire week. e. if the Time Aggregation Level value is YEAR, all data pertaining to the 12 separate months of the year in the MOVESExecution database is still further aggregated into a single "month" representing the entire year. f. Following any of the pre-aggregation operations performed in steps a. thru e. the set of ExecutionLocations used by the MasterLoop is recalculated based on the aggregated database. g. If the DAY, MONTH, or YEAR aggregations have been performed all information derived from the run specification used throughout the remainder of the run is made consistent with the aggregated time periods. These operations run to completion before any MOVES MasterLoopable objects (ControlStategy objects, Generators, and EmissionCalculators), are invoked. 10.4.2. How the Pre-aggregated Results are Reported If either of the geographic computational shortcuts is taken, the output database produced does not contain any "real" county (or perhaps even "real" state) level detail, 38 ------- even though such detail is generally present in the MOVESDefault and user input databases. Instead, additional "pseudo" values of statelD, countylD, etc. appear in the output records when a geographical computational shortcut is taken. If any one of the time period calculation shortcuts is taken, there may be only single representative "hour", "day" or "month" time periods for the MasterLoop to loop over, (though no MasterLoopable objects currently sign up at these low levels), and the output database produced may not contain any "real" hour, day, or month level detail, even though such detail will generally be present in the MOVESDefault and user input databases. Instead "pseudo" time period-identifying values will now be present in the MOVEExecution and MOVESOutput databases. 10.4.3. Algorithms Used to Perform the NATION and STATE Pre-Aggregations Table 10-1 describes the database aggregation algorithms used on a table-by-table basis for the NATION and STATE cases. Tables not listed contain no geographic identifiers and are therefore not affected by these aggregations. While some of these table aggregations are simple summations, others are "activity-weighted". For these activity-weighted summations to be performed entirely correctly, something approaching the full execution of the control strategies and generators would have to be performed which would defeat the purpose of the pre-aggregation. So, instead, these "activity- weighted" aggregations involve compromise and simplification. Specifically, the activity weighting is based entirely upon "startAllocFactor" values in the Zone table. The variable startAllocFactor is the factor used within MOVES to allocate the total number of starts from the national to the county / zone level. In MOVES2004, this allocation is based on vehicle miles traveled (VMT), hence the use of startAllocFactor for the pre- aggregation weightings is in essence a VMT weighting. More details on startAllocFactor and its derivation can be found in the report "MOVES2004 Highway Vehicle Population and Activity Data". Table 10-1. Database Aggregation Algorithms MOVES Database Table GeographicSelectionType =NATION GeoGraphicSelectionType =STATE 39 ------- State Single Record, stateID=0, stateName=Nation, stateAbbr=US No action required. Already filtered by statelD County Single Record, countylD = 0. stateID=0, countyName=Nation, altitude=L (not used yet) Single record per statelD, countyID=stateID* 1000, countyName = stateName, altitude = L (not used yet) Zone Single Record, zoneID=0, countyID=0., startAllocFactor = 1.0 idleAllocFactor = 1.0 Single record per statelD, zoneID=stateID* 10000, countyID= statelD* 1000 startAllocFactor = sum of old factors for state. Same for idleAllocFactor. Link Single record for each roadTypelD in RunSpec. HnkID=roadTypeID, county ID = 0. zonelD = 0. linkLength = NULL linkVolume = NULL grade = weighted national average Single record for each statelD - roadTypelD in RunSpec. linkID= statelD * 100000 + roadTypelD, countylD = statelD* 1000, zoneID = statelD* 10000 linkLength = NULL linkVolume = NULL grade = weighted state average CountyYear Single record for each yearlD, countylD = 0 Single record per statelD - yearlD combination. countylD = statelD* 1000. ZoneMonthHour Single record for each monthlD- hourlD combination in old table. (These have been filtered.) Calculate activity-weighted national average temperature and humidity. heatlndex is recalculated by Met generator. Single record for each combination of new zonelD, month and hour. (These have been filtered.) Calculate activity-weighted state averages from old county temperature and humidity data heatlndex is recalculated by Met generator. OpMode Distribution (contents would be from user input. Warns if data present for some links but not all, for any sourceTypelD- hourDaylD-polProcessID- RoadtypelD.) Aggregate to national level roadType linklDs, weighting by activity. (contents would be from user input. Warns if data present for some links but not all, for any sourceTypelD-hourDaylD- polProcessID- RoadtypelD.)) Aggregate to state level roadType linklDs, weighting by activity. ZoneRoadtype Single record for each roadTypelD. SHOAllocFactor = sum of old SHOAllocFactors Single record for each new zonelD, roadtypelD combination. SHOAllocFactor = sum of old SHOAllocFactors IMOBD Adjustment (Default values are considered.) Activity-weighted aggregation of all old counties to single new county. Activity-weighted aggregation of all old counties within state. 40 ------- Fuel Supply (Default values are considered.) Activity-weighted aggregation of all old counties to single new county. Activity-weighted aggregation of all old counties to single new county for each state. SHO (contents would be from user input. Warns if data present for some links but not all for any sourcetype- hourday-month-year-age-roadtype) Combine all links having same roadtype. SHO is a simple summation. (contents would be from user input. Warns if data present for some links but not all for any sourcetype-hourday-month-year-age- roadtype) Combine all links within state having same roadtype. SHO is a simple summation. Starts (contents would be from user input. Warn if data present for some zones but not all for any sourcetype- hourday- month-year-age.) Combine all zones, starts field is a simple summation. (contents would be from user input. Warn if data present for some zones but not all for any sourcetype-hourday- month-year-age.) Combine all zones within state, starts field is a simple summation. Extended IdleHours (contents would be from user input.) Combine all zones. extendedldleHours field is a simple summation. (contents would be from user input.) Combine all zones within state. extendedldleHours field is a simple summation. 10.4.4. Algorithms Used to Perform the Time Period Pre-Aggregations Table 10-2 describes the database aggregation algorithms used on a table-by-table basis for the DAY, MONTH, and YEAR time period pre-aggregations. These must operate correctly whether or not one of the STATE or NATION aggregations has been performed. Tables not listed contain no time period identifiers and are therefore not affected by these aggregations. While some of these table aggregations are simple summations, others are "activity-weighted". All activity-based weighting is in essence based on VMT, using allocations of VMT at the level necessary for the desired aggregation. For these activity- weighted summations to be performed entirely correctly, something approaching the full execution of the control strategies and generators would have to be performed which would defeat the purpose of the pre-aggregation. So instead these "activity-weighted" aggregations involve some compromise and simplification. Specifically, the activity weighting used for the DAY aggregation is based upon the values in the HourVMTFraction table; the weighting used for the MONTH aggregation is based upon the values in the Day VMTFraction table; and the activity weighting used for the YEAR 41 ------- aggregation is based upon the values in the MonthVMTFraction table. Because these activity fractions themselves depend upon other dimensions of the model, which do not always appear in the tables being aggregated, several variations of each aggregation are utilized, some of which are approximations: For aggregating hours into Days, three activity-weighting variations are used. (The third is an approximation.) HourWeightingl: is based directly on the HourVMTFraction table itself, which is used to aggregate tables sharing its sourceTypelD, roadTypelD, and daylD primary keys. HourWeightingl: uses RoadTypeDistribution to aggregate HourVMTFraction over Roadtype. This is used to aggregate tables having sourceTypelD and daylD, but not roadTypelD. HourWeightingS: is a simple weighting by hourlD only used to aggregate tables sharing no keys with HourVMTFraction except hourlD. It is produced from HourWeightingl by using the data for the passenger car sourceUseType, and giving equal weight to all seven days of the week. For aggregating days into Months, two activity-weighting variations are needed: DayWeightingl: is based on the DAYVMTFraction table, with MonthID removed by using weights from Month VMTFraction. DayWeighting2: is based on DayWeightingl, with RoadTypelD removed by using information from RoadTypeDistribution. For aggregating months into Years, only one activity-weighting is needed, but it is an approximation: MonthWeightingl: based on Month VMTFraction information for passenger cars only. 42 ------- Table 10-2. Description of Time Period Aggregations to Be Performed MOVES Database Table HourOfAnyDay DayOfAnyWeek HourDay MonthOfAny Year MonthGroup OfAnyYear HourVMT Fraction DayVMT Fraction MonthVMT Fraction AvgSpeed Distribution OpMode Distribution (contents would be from user input.) Aggregation of Hours to DAY Single Record, hourID=0, hourName = "Entire day". Record for each daylD, hourID=0 Record for each SourceType- RoadType- Day combination. HourVMTFraction = 1.0 Activity-weighted average avgSpeedFraction using HourWeighting 1 Activity-weighted average opModeFraction using HourWeighting 1 Aggregation of Days to MONTH (assumes DAY aggregation.) Single record. dayID=0. dayName = "Whole Week" Single record. dayID=0. hourID=0. Record for each SourceType- RoadType combination. HourVMTFraction = 1.0 Record for each SourceType-Month- RoadType combination. DayVMTFraction = 1.0 Activity-weighted average avgSpeedFraction using Day Weighting 1 Activity-weighted average opModeFraction using Day Weighting 1 Aggregation of Months to YEAR (assumes MONTH aggregation.) Single record. MonthID = 0 noOfDays = 365 monthGroupID=0 Single record. MonthGroupID=0 monthGroupName = "Entire Year". Record for each SourceType-RoadType combination. DayVMTFraction = 1.0 Two records for each sourceTypelD, month VMTFraction= 1.0 43 ------- Source Type Hour SHO (contents would be from user input.) Starts (contents would be from user input.) Extended IdleHours (contents would be from user input.) ZoneMonthHour MonthGroup Hour Fuel Supply (Note default values.) Activity-weighted average startsPerSHO and idleSHOFactor using HourWeighting2 Simple summation of SHO and distance Simple summation of starts Simple summation of extendedldleHours Activity-weighted average temperature and relHumidity using HourWeightingS . Activity -weighted ACActivity terms using HourWeightingS . Activity-weighted average startsPerSHO and idleSHOFactor using DayWeighting2 Simple summation of SHO and distance Simple summation of starts Simple summation of extendedldleHours Simple summation of SHO and distance Simple summation of starts Simple summation of extendedldleHours Activity-weighted average temperature and relHumidity using MonthWeighting 1 . Activity-weighted ACActivity terms using MonthWeighting 1 . Activity-weighted marketshare using MonthWeighting 1 . 10.4.5. Calculation Inaccuracies Introduced by the Database Pre-Aggregations: The simplified activity-weighted aggregations introduce the following approximations relative to having MOVES perform its calculations individually for each real county-location and for each hour of the day: - Start-based activity, while appropriate for the start process, represents an approximation for other processes whose activity basis (SHO, etc.) may not exactly correspond to start activity. - Direct user input to the CMIT tables may override the Zone.startAllocFactor values. Any effect on activity of direct user input to the CMIT tables is not taken into account. - Control strategies may eventually be added to MOVES which adjust activity levels. Any such effects are not included. - The potentially significant non-linear relationships of the emissions calculations to temperature and humidity are ignored. This may be especially serious at the national level. 44 ------- - Activity weighted hourly averages are used when combining hourly temperature, humidity, and AC activity information for the hours of the day, but differences in hourly activity levels between the passenger car source use type and other source use types are ignored in this calculation, as are differences in hourly activity levels by day of the week. - Differences in monthly activity patterns between passenger cars and other source use types are ignored when calculating weighted average annual temperature, humidity, AC Activity, and fuel Subtype marketshares. - When calculating annual data from monthly data, all years are considered to be non- leap years. An initial analysis of the sensitivity of MOVES2004 results to levels of pre-aggregation is presented in the report "MOVES2004 Validation Results". While MOVES2004 does produce different results depending on the level of aggregation selected by the user, the magnitude of difference does not appear to be very large. For example, the difference in total energy results between a run where state / month pre-aggregation was selected was about 2 percent higher than the same run where nation / year pre-aggregation was selected. 10.5. Total Activity Generator (TAG) This generator calculates the total operating activity pursuant to the run specification for each source use type in MOVES2004 using the MOVESExecution database. This operating activity includes Start activity (number of starts) and Extended Idle Hours in addition to source hours operating (SHO), by time span, geographic location, source type and age. The product of the TAG is three core model input tables produced in MOVESExecution containing these results: SHO, Starts, and ExtendedldleHours. It also includes distance traveled information which is stored in the SHO table. The algorithm used to calculate total operating activity for a given time and location by source type and age is divided into ten steps (numbered 0 thru 9) referred to as TAGs (total activity generator steps) in this document. Each TAG step references the MOVESExecution database and implements a simple mathematical formula. The primary function of the Total ActivityGenerator is to convert the commonly-available activity data such as vehicle miles traveled (VMT), age distribution, vehicle populations, sales and VMT growth rates, etc. to the MOVES activity parameters of source hours operating, 45 ------- starts, and extended idle hours. Externally-provided VMT is thus the primary driver of total activity. Steps 1-3 exist to calculate allocations of total VMT by vehicle age and source type. Step 4 grows VMT. Steps 5 and 6 allocate VMT by time, space, vehicle age and source type. Step 7 converts the allocated VMT to the MOVES activity parameters of source hours operating (SHO), number of starts, and extended idle hours. Step 8 allocates activity to zones (e.g. counties for the default case), and Step 9 re-calculates distance for output reporting purposes. A brief description of each of the TAGs is shown in table 10-3. The HPMS acronym used in the table refers to the Highway Performance Management System. Table 10-3. Overview of TAG Calculations Step TAG-0 TAG-1 TAG-2 2a 2b 2c TAG-3 3a 3b 3c TAG-4 TAG-5 TAG-6 TAG-7 7a 7b Determine the base year Calculate Base Year Vehicle Population Grow Vehicle Population to Analysis Year AgeO Age 1 through 29 Age 30 and higher Calculate Analysis Year Travel Fraction Calculate total population within HPMS vehicle class Calculate fraction within HPMS vehicle class Compute travel fraction Calculate Analysis Year VMT Allocate Analysis Year VMT By Roadway Type, Use Type, Age Temporally Allocate Annual VMT to Hour by Roadway Type, Use Type, Age Convert to Total Activity Basis By Process Calculate average speed Convert to SHO Description Determine the appropriate base year to use in growth calculations Establish base-year vehicle population in modeling domain by use type, age If analysis year is in future, establish analysis year population through growth and scrappage Calculation travel fraction across domain as function of age mix and annual miles traveled, by use type and age If analysis year is in future, establish analysis year aggregate VMT across domain from base year VMT and growth Allocate aggregate VMT to roadway type, use type and age Allocate annual VMT to hourly VMT Convert to total activity basis at domain level: SHO, Starts, Extended Idle Hours 46 ------- 7c 7d TAG-8 8a 8b 8c TAG-9 Convert SHO to Starts Convert SHO to Exetended Idle Hours Allocate Total Activity Basis By Zone Location Allocate SHO to Zones Allocate Starts to Zones Allocate Extended Idle Hours to Zones Calculate Distance Traveled Allocate total activity to zone locations using geographic allocation factors Calculate SHO. distance from SHO and average speeds Some overall considerations when performing these calculations are: 1. The TotalActivityGenerator signs up for the Master Loop at the Year level which means the calculations are performed individually for each year at each location (i.e. link) for each emission process requiring SHO, start, and extended idle hour activity information. 2. The MOVES design allows the user to provide some or all of the values in core model input tables such as SHO, Starts and ExtendedldleHours. The InputDataManager places any such user-supplied values in the MOVESExecution database before the TotalActivityGenerator is activated. The TotalActivityGenerator must not replace such user-supplied values. 3. When the Total Activity Generator encounters a missing value when performing a calculation, the result of the calculation is considered as missing. Records for which the results are missing are left out of the database and are not represented by a value of zero or some other numeric value or character. Detailed descriptions of the calculations in each TAG follow. Each of the variables used in the TAG calculations either exists in the MOVESExecution database or is calculated by a previous TAG step. All of the MOVES2004 variables are described in the database documentation included in the MOVES database. The table in which each variable can be found is indicated in parentheses. 47 ------- 10.5.1. TAG-0: Determine the Base Year Before any calculations can be done, the appropriate base year must be determined using the year of analysis and the isBaseYear information in the Year table. Input Variables: IsBaseYear (Year) YearlD (Key) Output Variable: BaseYear Calculation: If IsBaseYear(YearID) = "Y", thenBaseYear=YearID. Else Find the maximum value of Year which is less than the current YearlD for which IsBaseYearlD(Year)= "Y", then BaseYear=Year. 10.5.2. TAG-1: Calculate Base Year Vehicle Population By Age. Input Variables: SourceTypePopulation(SourceTypeYear) AgeFraction(SourceTypeAgeDistribution) Output Variable: SourceTypeAgePopulation Calculation: SourceTypeAgePopulation (YearlD, SourceTypelD, AgelD) = SourceTypePopulation (YearlD, SourceTypelD) * AgeFraction (YearlD, SourceTypelD, AgelD) 10.5.3. TAG-2: Grow Vehicle Population from Base Year to Analysis Year NOTE: This step is only required if the analysis year is in the future relative to the base year. For future projection, these TAG-2 steps are repeated in every year until the analysis year is reached. TAG-2a: Age Zero (New Vehicles) This calculation applies only to AgeID=0. Input Variables: SourceTypeAgePopulation (for AgeID=0 and YearID=YearID-l) SalesGrowthFactor(SourceTypeYear) MigrationRate (for YearlD and YearID-1) (SourceTypeYear) Output Variable: SourceTypeAgePopulation (for AgeID=0 in current YearlD) Calculation: SourceTypeAgePopulation (YearlD, SourceTypelD, AgeID=0) = 48 ------- [SourceTypeAgePopulation (YearID-1, SourceTypelD, AgeID=0) / MigrationRate (YearID-1, SourceTypelD)] * SalesGrowthFactor (YearlD, SourceTypelD) * MigrationRate (YearlD, SourceTypelD) Note: the full equation would divide through by age=0 survival rate to derive new sales in previous years prior to scrappage, and multiply by the same term to account for scrappage in the first year. Since scrappage is the same in all years, they cancel each other out, and these terms are excluded from the equation. TAG-2b:Ages 1 through 29 This calculation loops through AgeID=x, where x is 1 through 29. Input Variables: SourceTypeAgePopulation (for AgeID=x and YearID=YearID-l) SurvivaLRate (for AgeID=x) (SourceTypeAge) MigrationRate (SourceTypeYear) Output Variable: SourceTypeAgePopulation (for AgeID=l through 29 in current YearlD) Calculation: SourceTypeAgePopulation (YearlD, SourceTypelD, AgeID=x) = SourceTypeAgePopulation (YearID-1, SourceTypelD, AgeID=x-l) * SurvivalRate (SourceTypelD, AgeID=x-l) * MigrationRate (YearlD, SourceTypelD) TAG-2c: Age 30 This calculation is for Age 30, which includes years 30 and higher. Input Variables: SourceTypeAgePopulation (for AgeID=29 & 30 and YearID=YearID-l) SurvivalRate (for AgeID=29 & 30) (SourceTypeAge) MigrationRate (SourceTypeYear) Output Variable: SourceTypeAgePopulation (for AgeID=30 in current YearlD) Calculation: SourceTypeAgePopulation (YearlD, SourceTypelD, AgeID=30) = SourceTypeAgePopulation (YearID-1, SourceTypelD, AgeID=29) * SurvivalRate (SourceTypelD, AgeID=29) * MigrationRate (YearlD, SourceTypelD) + SourceTypeAgePopulation (YearID-1, SourceTypelD, AgeID=30) * SurvivalRate (SourceTypelD, AgeID=30) * MigrationRate (YearlD, SourceTypelD) 10.5.4. TAG-3: Calculate Analysis Year Travel Fraction TAG-3a: Calculate total population within Highway Performance Management System (HPMS) vehicle class. Input Variables: SourceTypePopulation (for each SourceTypelD within HPMS VtypelD) (Source TypeYear) 49 ------- HPMSVtypelD (HPMSVtype) Output Variable: HPMSVtypePopulation Calculation: HPMSVTypePopulation (YearlD, HPMSVtypelD) = Sum of [SourceTypeAgePopulation (YearlD, SourceTypelD, AgelD)] over all AgelD, for all SourceTypelD within each HPMSVtypelD. TAG-3b: Calculate fraction within HPMS vehicle class Input Variables: SourceTypeAgePopulation HPMSVtypePopulation Output Variable: FractionwithinHPMSVtype Calculation: FractionwithinHPMSVtype (YearlD, SourceTypelD, AgelD) = SourceTypeAgePopulation (YearlD, SourceTypelD, AgelD) / HPMSVTypePopulation (YearlD, HPMSVtypelD, SourceTypelD) TAG-3c: Compute travel fraction Input Variables: FractionwithinHPMSVtype RelativeMAR (SourceTypeAge) Output Variable: TravelFraction Calculation: TravelFraction (YearlD, SourceTypelD, AgelD) = (FractionwithinHPMSVtype (YearlD, SourceTypelD, AgeID=x) * RelativeMAR (SourceTypelD, AgeID=x)) / Sum of [FractionwithinHPMSVtype (YearlD, SourceTypelD, AgeID=x) * RelativeMAR (SourceTypelD, AgeID=x)] over all AgelD and for all SourceTypelD within each HPMSVtype. 10.5.5. TAG-4: Calculate Analysis Year VMT Determine the total VMT within each HPMS vehicle type, accounting for VMT growth. This calculation is repeated in every YearlD until the analysis year is reached. TAG-4 a: Base year. In the base year, the Analysis Year VMT is the same as the HPMSBaseYearVMT. Input Variables: HPMSBaseYearVMT (YearID=BaseYear) (HPMSVtypeYear) Output Variable: AnalysisYearVMT Calculation: 50 ------- AnalysisYearVMT (YearlD, HPMSVTypelD) = HPMSBaseYearVMT (YearlD, HPMSVTypelD) TAG-4b: All years following the base year. In the any years following the base year, the AnalysisYearVMT is calculated from the previous year's value for AnalysisYearVMT. Input Variables: AnalysisYearVMT (YearID-1) VMTGrowthFactor (HPMSVtypeYear) Output Variable: AnalysisYearVMT Calculation: AnalysisYearVMT (YearlD, HPMSVTypelD) = AnalysisYearVMT (YearlD-1, HPMSVTypelD) * VMTGrowthFactor (YearlD, HPMSVTypelD) 10.5.6. TAG-5: Allocate Analysis Year VMT by Roadway Type, Use Type, Age Input Variables: AnalysisYearVMT RoadTypeVMTFraction(RoadTypeDistribution) TravelFraction Output Variable: Annual VMTbyAgeRoadway Calculation: AnnualVMTbyAgeRoadway (YearlD, RoadTypelD, SourceTypelD, AgelD) = AnalysisYearVMT (YearlD, HPMSVTypelD) * RoadTypeVMTFraction (RoadTypelD, SourceTypelD) * TravelFraction (YearlD, SourceTypelD, AgelD) 10.5.7. TAG-6: Temporally Allocate Annual VMT to Hour Input Variables: AnnualVMTbyAgeRoadway MonthVMTFraction (MonthVMTFraction) Day VMTFraction (Day VMTFraction) HourVMTFraction (HourVMTFraction) Output Variable: VMTbyAgeRoadwayHour Calculation: VMTbyAgeRoadwayHour (YearlD, RoadTypelD, SourceTypelD, AgelD, MonthID, DaylD, HourlD) = AnnualVMTbyAgeRoadway (YearlD, RoadTypelD, SourceTypelD, AgelD) * Month VMTFraction (SourceTypelD, IsLeapYear, MonthID) * Day VMTFraction (RoadTypelD, SourceTypelD, MonthID, Day ID) * HourVMTFraction (RoadTypelD, SourceTypelD, Day ID, HourlD) * Number of Days in MonthIDII 51 ------- 10.5.8. TAG-7: Convert to Total Activity Basis Tag-7a: Compute average speed by roadway type Input Variables: AvgBinSpeed (AvgSpeedBin) AverageSpeedFraction(AverageSpeedDistribution) Output Variable: AverageSpeed Calculation: AverageSpeed (RoadTypelD, SourceTypelD, DaylD, HourlD) = Sum of [AvgBinSpeed(AvgSpeedBin) * AverageSpeedFraction(RoadTypeID, SourceTypelD, DaylD, HourlD, AvgSpeedBin)] over all AvgSpeedBin Tag-7b: Convert VMTto SHO Input Variables: VMTbyAgeRoadwayHour AverageSpeed Output Variable: SHObyAgeRoadwayHour Calculation: SHObyAgeRoadwayHour (YearlD, RoadtypelD, SourceTypelD, AgelD, MonthID, DaylD, HourlD) = VMTbyAgeRoadwayHour(YearID, RoadtypelD, SourceTypelD, AgelD, MonthID, DaylD, HourlD) * AverageSpeed (RoadtypelD, SourceTypelD, DaylD, HourlD) Tag-7c: Convert SHO to Starts Input Variables: SHObyAgeRoadwayHour startsPerSHO (SourceTypeHour) Output Variable: StartsByAgeHour Calculation: StartsByAgeHour (YearlD, SourceTypelD, AgelD, MonthID, DaylD, HourlD) (Sum over all Roadtypes (SHObyAgeRoadwayHour(YearID, RoadtypelD, SourceTypelD, AgelD, MonthID, DaylD, HourlD))) * StartsPerSHO(SourceType, HourlD, DaylD) Tag-7d: Convert SHO to Extended Idle Hours Input Variables: SHObyAgeRoadwayHour idleSHOFactor (SourceTypeHour) Output Variable: idleHoursbyAgeHour Calculation: 52 ------- idleHoursbyAgeHour (YearlD, SourceTypelD, AgelD, MonthID, Day ID, HourlD) = (Sum over 24 hours and over all Roadtypes (SHObyAgeRoadwayHour(YearID, RoadtypelD, SourceTypelD, AgelD, MonthID, Day ID, HourlD))) * idleSHOFactor(SourceType, DaylD, HourlD) 10.5.9. TAG-8: Allocate Total Activity to Zone Location Tag-8a: Allocate SHO to Zones Input Variables: SHObyZoneAgeRoadwayHour SHO AllocationFactor (Zone YearRoadway Type) Output Variable: SHO (SHO) This result populates the SHO field in SHO table. Calculation: SHO(YearID, ZonelD, RoadtypelD, SourceTypelD, AgelD, MonthID, DaylD, HourlD) = SHObyAgeRoadwayHour(YearID, RoadtypelD, SourceTypelD, AgelD, MonthID, DaylD, HourlD) * SHOAllocationFactor(YearID, ZonelD, RoadtypelD) Tag-8b: Allocate Starts to Zones Input Variables: StartsByAgeHour startAllocFactor (Zone Year) Output Variable: Starts Result of TAG-8b populates "starts" field of Starts Table Calculation: Starts(YearID, ZonelD, SourceTypelD, AgelD, MonthID, DaylD, HourlD) = StartsByAgeHour(YearID, SourceTypelD, AgelD, MonthID, DaylD, HourlD) * startAllocFactor(YearID, ZonelD) Tag-8c: Allocate Extended Idle Hours to Zones Input Variables: idleHoursbyAgeHour idleAllocFactor (Zone Year) Output Variable: extendedldleHours Result of TAG-8c populates "extendedldleHours" field of ExtendedldleHours Table Calculation: extended!dleHours(YearID, ZonelD, SourceTypelD, AgelD, MonthID, DaylD, HourlD) = idleHoursbyAgeHour(YearID, SourceTypelD, AgelD, MonthID, DaylD, HourlD) * idleAllocFactor(YearID, ZonelD) 53 ------- 10.5.10. TAG-9: Calculate Distance Traveled Corresponding to Source Hours Operating If the "Distance Traveled" output is requested by the RunSpec, (which also implies that some pollutant has been selected for the Running process), the distance field in the SHO table is calculated. Otherwise this distance field is output by this generator as NULL. The method used to produce this distance information involves multiplying the number of source hours operating (SHO) by the average vehicle speed associated with them. These average speeds have been calculated in Step 7a. Input Variables: SHO from step TAG-8a Average Speed from step TAG?-A Output Variable: Distance (in SHO table) Calculation: Distance (YearlD, MonthID, LinkID (ZonelD with RoadTypeID),HourID, DaylD, AgelD, SourceTypelD ) = SHO((YearID, MonthID, LinkID (ZonelD with RoadTypeID),HourID, DaylD, AgelD, SourceTypelD ) * AverageSpeed(RoadTypeID, SourceTypelD, DaylD, HourlD) 10.6. OperatingModeDistributionGenerator (OMDG) The OperatingModeDistributionGenerator is only relevant to the total energy - running pollutant-process. This is the only combination of pollutant and process which has multiple operating modes in MOVES2004. For this pollutant and process the OMDG calculates the distribution of operating modes for each source type on each roadway type modeled using data from the MOVESExecution database. The resulting distributions are added to the OperatingModeDistribution core model input table. The method used to generate these operating mode distributions in MOVES2004 is a refinement of the method described in section 7.1.3 of the Draft Design and Implementation Plan for MOVES. The task of the OMDG is to produce operating mode distributions, in terms of a set of VSP-and-speed-range-based operating modes, for each combination of source type, road type, hour of the day, and day of the week using as input average speed distribution information for each such combination. Driving schedules representing typical operation at different average speeds for each source type 54 ------- operating on each road type play an intermediate role in translating average speed information into VSP distributions. Each average speed bin used in the input average speed distributions is represented by a pair of "bracketing" driving schedules one of which has a slightly higher average speed and one of which has a slightly lower average speed. VSP is calculated on a second by second basis for the source use type operating over these two schedules and the results are weighted appropriately to represent the average speed distribution. A full discussion of the operating mode definitions and the use of vehicle specific power (VSP) and driving schedules in MOVES2004 is contained in a separate report, MOVES2004 Energy and Emissions Inputs, downloadable from the MOVES web site. This algorithm is divided into seven steps referred to as OMDGs (operating mode distribution generator steps) in this document. Most OMDGs reference the MOVESExecution database and all implement a simple mathematical formula. Steps 1-3 take snippets of actual on-road driving schedules stored in the MOVESExecution database, and determine the mix of these schedules to use based on the mix of average speeds and roadway types; Step 4 calculates VSP, Step 5 determines the operating mode bin (based on speed and VSP), and Steps 6 and 7 determine the overall mix of operating mode bins based on the mix of roadway types and average speed. A brief description of each of the eight OMDGs is shown in table 10-4: Table 10-4. Overview of Calculation Steps Step OMDG-1 OMDG-2 OMDG-3 OMDG-4 OMDG-5 OMDG-6 OMDG-7 Description Determine bracketing drive schedules Determine proportions for bracketing drive schedules Determine distribution of drive schedules, including a sub-step to reflect separation of ramp and non-ramp freeway driving Calculate second-by-second vehicle specific power (VSP) Determine operating mode bin for each second Calculate operating mode fractions for each drive schedule Calculate overall operating mode fractions 55 ------- The Operating Mode Distribution Generator signs up for the Master Loop at the Year level which means that it executes for each year in the run specification for each Link location for the running emission process. The MOVES design allows the user to directly provide some or all of the operating mode distribution values in core model input tables such as OpModeDistribution. The InputDataManager places these user-supplied values in the MOVESExecution database OpModeDistribution table before the Operating Mode Distribution Generator is activated. The Operating Mode Distribution Generator does not replace any such user supplied values. When the Operating Mode Distribution Generator encounters a missing value when making a calculation, the results of the calculation are considered as missing. Such missing results are left out of the database and are not represented by a value of zero or some other numeric value or character. The detailed descriptions of the calculations in each OMDG step are as follows: Each of the variables used in the OMDG calculations either exists in the MOVESExecution database or is calculated by a previous OMDG step. All of the MOVESExecution variables are described in the database documentation. 10.6.1. OMDG-1: Determine bracketing drive schedules Each average speed bin lies between (is bracketed) by the average speeds of two drive schedules. This step determines which two drive schedules bracket the average speed bin and stores the identity and average speeds of the two bins. This is done for each source type, and roadway type for each average speed bin. Input Variables: AvgBinSpeed (AvgSpeedBinID) from the AvgSpeedBin table. AverageSpeed(DriveSchedulelD) from the DriveSchedule table. Output Variables: BracketScheduleLo (SourceTypelD, RoadTypelD, AvgSpeedBinID) LoScheduleSpeed (SourceTypelD, RoadTypelD, AvgSpeedBinID) BracketScheduleHi (SourceTypelD, RoadTypelD, AvgSpeedBinID) HiScheduleSpeed (SourceTypelD, RoadTypelD, AvgSpeedBinID) Calculation: For each SourceTypelD, RoadTypelD, and AvgSpeedBinID: 56 ------- The output variables are determined using table DriveSchedule, where for each combination of SourceTypelD, RoadTypelD, AvgSpeedBinID, BracketScheduleLo and BracketScheduleHi are determined as the drive schedules associated with the source type and road type with the next lowest and next highest average speeds compared to the value of AvgBinSpeed. Lo Schedule Speed and HiScheduleSpeed are the values of AverageSpeed for the bracket schedules. The DriveScheduleAssoc table contains the information as to which DriveSchedulelD's are associated with which SourceTypelD's and which RoadTypelD's. 10.6.2. OMDG-2: Determine proportions for bracketing drive schedules This step determines the proportion of each of the bracketing drive schedules such that the combination of the average speeds of drive schedules equals the nominal average speed of each average speed bin. The results are then weighted by the fraction of all operating time that are represented by the time spent in that average speed bin. This is done for each source type, roadway type, day of week and hour of day. Input Variables: AvgBinSpeed (AvgSpeedBinID) from the AvgSpeedBin table. AvgSpeedFraction (SourceTypelD, RoadTypelD, HourDaylD, AvgSpeedBinID) from the AvgSpeedDistribution table. with BracketScheduleLo (SourceTypelD, RoadTypelD, AvgSpeedBinID) LoScheduleSpeed (SourceTypelD, RoadTypelD, AvgSpeedBinID) BracketScheduleHi (SourceTypelD, RoadTypelD, AvgSpeedBinID) HiScheduleSpeed (SourceTypelD, RoadTypelD, AvgSpeedBinID) Output Variable: LoScheduleFraction (SourceTypelD, RoadTypelD, HourDaylD, AvgSpeedBinID) HiScheduleFraction (SourceTypelD, RoadTypelD, HourDaylD, AvgSpeedBinID) Calculation: For each SourceTypelD, RoadTypelD, HourDaylD and AvgSpeedBinID: LoScheduleFraction = (HiScheduleSpeed - AvgBinSpeed) / (HiScheduleSpeed - LoScheduleSpeed) If BracketScheduleHi=BracketScheduleLo (meaning the average speeds of the "Lo and "Hi" schedule is the same): LoScheduleFraction = 1 HiScheduleFraction = (1 -LoScheduleFraction) Weight the results by the fraction of all speeds that are represented by that average speed bin. LoScheduleFraction = LoScheduleFraction * AvgSpeedFraction HiScheduleFraction = HiScheduleFraction * AvgSpeedFraction 57 ------- 10.6.3. OMDG-3: Determine distribution of drive schedules This step includes a preliminary sub-step which accounts for the effect of ramp driving. The rampFraction field in the RoadType table indicates the fraction of time on each roadway type which is spent on ramps. The "isRamp" field in the Drive Schedule As soc table determines whether a schedule is to be associated with ramp driving or with driving on roadways exclusive of ramps. The MOVESDefault database provided with MOVES2004 considers that Ramp driving occurs on freeways and interstates. Other roadway types have no ramp activity (zero ramp fraction). User attempting to modify the database in this area should keep in mind several data constraints: There must always be at least one driving schedule not indicated as a ramp which is associated with each combination of source type and roadway type in the Drive Schedule As soc table. Then additionally, for every ramp fraction which is greater than zero in the RoadType table, there must be exactly one driving cycle which is indicated as a ramp for each source type using that roadtype. (Conversely Ramp fractions can be zero even if there is an associated ramp driving schedule; in this case the ramp schedule is simply not used.) OMDG-3a: Determine distribution of ramp schedules This step is accounts for freeway and interstate ramps, based on the input field RampFraction, contained in table RoadType. For any driving schedule which is associated with the source type and roadway type which has an IsRamp value of" Y", the ramp fraction is added into DriveScheduleFraction for that driving schedule. This is done for each source type, roadway type, day of week and hour of day. Input Variables: RampFraction(RoadTypeID) DriveSchedulelD (SourceTypelD, RoadTypelD, IsRamp=Y) Output Variable: DriveScheduleFraction (SourceTypelD, RoadTypelD, HourDaylD, DriveSchedulelD) Calculation: DriveScheduleFraction = RampFraction(RoadTypelD) OMDG-3b: Determine distribution of non-ramp schedules This calculation adjusts for the RampFraction on the given roadway. This step determines the distribution of drive schedules which represents the sum of all of the 58 ------- average speed bins. This is done for each source type, roadway type, day of week and hour of day for all driving schedules which are associated with the source type and roadway type which have an IsRamp value of "N". Input Variables: LoScheduleFraction (SourceTypelD, RoadTypelD, HourDaylD, AvgSpeedBinID) HiScheduleFraction (SourceTypelD, RoadTypelD, HourDaylD, AvgSpeedBinID) RampFraction(RoadTypelD) DriveSchedulelD (SourceTypelD, RoadTypelD, IsRamp=N) Output Variable: DriveScheduleFraction (SourceTypelD, RoadTypelD, HourDaylD, DriveSchedulelD) Calculation: For each SourceTypelD, RoadTypelD, HourDaylD and DriveSchedulelD: Drive ScheduleFraction = [(Sum Of LoScheduleFraction over all cases where BracketScheduleLo = DriveSchedulelD) + (Sum Of HiScheduleFraction over all cases where BracketScheduleHi = DriveSchedulelD)] * (1-RampFraction) 10.6.4. OMDG-4: Calculate second-by-second vehicle specific power (VSP) This step calculates the vehicle specific power (VSP) for each drive schedule for each source type. This is done for each source type, drive schedule and second. Input Variables: Speed (DriveSchedulelD, Second) from the DriveScheduleSecond table. RollingTermA (SourceTypelD) from the SourceUseType table. RotatingTermB (SourceTypelD) from the SourceUseType table. DragTermC (SourceTypelD) from the SourceUseType table. SourceMass (SourceTypelD) from the SourceUseType table. Output Variable: VSP (SourceTypelD, DriveSchedulelD, Second) Accel (SourceTypelD, DriveSchedulelD, Second) Calculation: For each SourceTypelD, DriveSchedulelD and Second: Preliminary Calculations: Speed (meters/second) = Speed (mph) * 0.447 m/s per mph. Accel (meters/second2)= Speed (t) - Speed (t-1), with Speed in meters/second. VSP = [ RollingTermA* Speed + RotatingTermB * Speed2 + DragTermC * Speed3 + SourceMass * Speed * Accel ] / SourceMass (Speed in meters/second, Accel in meters/second2) 59 ------- 10.6.5. OMDG-5: Determine operating mode bin for each second This step accounts for VSP, speed and accel. The VSP value for each second is compared to the upper and lower bounds for the operating mode bins and a bin ID is assigned to each second. This is done for each source type, drive schedule and second. Input Variables: VSPLower(OpModeID) from the OperatingMode table. VSPUpper(OpModelD) from the OperatingMode table. SpeedLower(OpModelD) from the OperatingMode table. SpeedUpper(OpModelD) from the OperatingMode table. BrakeRatelSec(OpModelD) from the OperatingMode table. BrakeRate3Sec(OpModeID) from the OperatingMode table. Speed (SourceTypelD, DriveSchedulelD, Second) from Drive Schedule Second with VSP (SourceTypelD, DriveSchedulelD, Second) from OMDG-4 Accel (SourceTypelD, DriveSchedulelD, Second) from OMDG-4 Output Variable: OpModelDbySecond (SourceTypelD, DriveSchedulelD, Second) Calculation: For each SourceTypelD, DriveSchedulelD and Second: An OpModelD is assigned for each second in each drive schedule based on where the VSP, Speed and Accel values in that second falls. VSP and speed are compared against the VSP and speed bounds to determine to appropriate bins. Then the braking (ID=0) and idle bins (ID=1) should be assigned based on Accel and Speed, respectively. This sequence is important since there is overlap in the definitions between the non- braking/idle bins and the braking/idle bins. 10.6.6. OMDG-6: Calculate operating mode fractions for each drive schedule Once all the seconds in each operating mode bin is known, the distribution of the bins can be determined. The sum of the operating mode fractions sums to one for each source type and drive schedule combination. This is done for each source type and drive schedule. Input Variables: OpModelDbySecond (SourceTypelD, DriveSchedulelD, Second) Output Variable: OpModeFractionbySchedule (SourceTypelD, DriveSchedulelD, OpModelD) Calculation: For each SourceTypelD, DriveSchedulelD and OpModelD: OpModeFractionby Schedule = (Number of Seconds in OpModelD during Drive Schedule) / (Total Number of Seconds in DriveSchedule) 60 ------- 10.6.7. OMDG-7: Calculate overall operating mode fractions This step calculates the overall operating mode fractions by weighting the operating mode fractions of each drive schedule by the drive schedule fractions. This is done for each source type, road type, day of the week, hour of the day and operating mode. Input Variables: OpModeFractionbySchedule (SourceTypelD, DriveSchedulelD, OpModelD) DriveScheduleFraction (SourceTypelD, RoadTypelD, HourDaylD, DriveSchedulelD) Output Variable: OpModeFraction (SourceTypelD, RoadTypelD, HourDaylD, PolProcessID, OpModelD) Calculation: The operating mode distribution generator developed in this work assignment is for only the running process of the total energy pollutant. For each SourceTypelD, RoadTypelD, HourDaylD and OpModelD: OpModeFraction = Sum of OpModeFractionby Schedule *Drive ScheduleFraction over all DriveSchedules The Results of OMDG-7 populate the OpModeDistribution table of the Execution Location Database. The OpModeFraction in the OpModeDistribution table is: OpModeFraction (SourceTypelD, LinkID, HourDaylD, PolProcessID, OpModelD) The value of LinkID needed for this table is determined from RoadTypelD and ZonelD. 10.7. Source Bin Distribution Generator (SBDG) The Source Bin Distribution Generator produces the distribution of source bins by source type and model year. This information provides the mapping between the activity elements of MOVES (total activity and operating modes), which are based on source use type, and the emission rates, which are based on source bin. The SBDG takes as input fleet distributions of source bin categories (e.g. weight class, engine size, fuel type etc.) by model year. Data about the characteristics of the existing and projected vehicle fleet are stored in several of the tables within the MOVESExecution database as shown in table 10-5. The Source Bin Distribution Generator uses information in the first seven of these tables 61 ------- to populate the last two: SourceBin and SourceBinDistribution which are core model input tables. Table 10-5. Tables used by SourceBinGenerator Table Name SourceTypePolProcess FuelEngFraction SizeWeightFraction RegClassFraction PollutantProcessModel Year ModelYearGroup SourceTypeModelYear Key Fields sourceTypelD polProcessID sourceTypeModelYearlD fuelTypelD engTechID sourceTypeModelYearlD fuelTypelD engTechID weightClassID engSizelD sourceTypeModelYearlD fuelTypelD engTechID regClassID PolProcessID modelYearlD modelYearGroupID sourceTypeModelYearlD Additional Fields isSizeWeightReqd isRegClassReqd isMYGroupReqd fuelEngFraction SizeWeightFraction regClassFraction modelYearGroupID shortModYrGroupID modelYearGroupName modelYearGroupID modelYearlD sourceTypelD Notes Indicates which pollutant-processes the source bin distributions may be applied to and indicates which discriminators are relevant for each sourceType and polProcess Joint distribution of vehicles with a given fuel type and engine technology. Sums to one for each sourceType & modelYear Joint distribution of engine size and weight. Sums to one for each sourceType, modelYear and fuel/engtech combination. Fraction of vehicles in a regulatory class.. Sums to one for each sourceType, modelYear and fuel/engtech combination. Defines model year groups. Defines short model year group Ids. Decodes ID field into modelYearlD and sourceTypelD 62 ------- SourceBin SourceBinDistribution SourceBinID SourceTypeModelYearlD PolProcessID sourceBinID engSizelD fuelTypelD engTechID emisTechID modelYearGroupID weightClassID sourceBinActivityFract ion List of sourceBins Stores source bin distributions. The SourceBinGenerator uses information from the run specification to determine which sourcetypes, modelyears, fuel-types, pollutants and processes are relevant, and limits the Generator action to the relevant sources. "Source bin discriminators" refer to characteristics that are used to distinguish the source bins. The MOVES source bin discriminators are: fuelType* modelYearGroup engTech* regClass engSize* weight Class* (* fuelType and engTech are distinct but highly correlated, and, thus, handled together; similarly engSize and weightClass are handled together) a. Because it would be awkward to have all these separate fields in each database table related to source bins, this information is combined into a single unique BIGINT identifier IffttrryysssswwwwOO, where the digits represent the bin discriminators as follows: Leading 1 (1) Fuel (ff) EngineTech (tt) Regulatory Class (rr) Model Year Group (yy) Engine Size (ssss) Engine Weight (wwww) Extra zeros (00) With the exception of the ModelYear group, each bin discriminator is coded as for the discriminator ID (see the database attribute table), with leading zeros added as needed. ModelYear group is coded using the shortModYrGroupID as defined in the database table ModelYearGroup. 63 ------- The ordering of the subfields within this identifier is essentially arbitrary. The SourceBin table contains both the individual fields and the combined source bin identifier and can be used to "decode" the combined identier values. b. The SourceTypePolProcess table identifies which discriminators are relevant for each source type and pollutant/emission process (polProcess). If a discriminator is not relevant for a given source type & polProcess, the discriminator ID is set to 0 (which means that the discriminator value doesn't matter) and the fraction of vehicles to which this value of this discriminator applies is set to 1 for all model years. c. The SourceBinGenerator "signs up" with the MOVES MasterLoop at the PolProcess level which means it executes only once for each relevant process (running exhaust, start exhaust, and extended idle exhaust). d. For each RunSpec-required source type, polProcess, fuel type and model year (as implied by the selected year and the largest valid agelD), and for each relevant/existing combination of sourcebin discriminators (as determined by the input tables), the sourceBinActivityFraction is calculated as follows: sourceBinActivity Fraction = fuelEngFraction *regClassFraction * size WeightFraction e. The SourceBinDistribution table lists the sourceBinActivityFractions for each sourceBin, sourceType, modelYear and polProcess. The set of such records for a given sourceType, modelyear, and polProcess constitute a source bin distribution which sums to unity. f. The SourceBin table provides a list of unique source bins that have a SourceBinActivityFraction > 0 in at least one source bin distribution. The SBDG adds sourceBinID records to this table if necessary, but does not duplicate records already present. g. If data is not available for all the model years implied by the selected year, source bin distributions for the missing years prior to the first populated for the same sourceType and polProcess are generated which are equal to the distribution from that first populated year. Source bin distributions are also generated for missing years after the last populated for the same sourceType and polProcess which are equal to the 64 ------- distribution from that last populated model year. Years extrapolated are only those earlier than the earliest model year for which data is provided or later than the latest model year for which data is provided. h. If any data is already present in the CMIT SourceBinDistribution table for a combination of sourceType and polProcess, which would mean that the user had entered this information directly, this Generator does not produce SourceBinDistribution output for that combination. The approach to performing the calculation steps implied by these specifications is shown in table 10-6: Table 10-6. SourceBin Generator Calculation Steps Step/Query 1 populate sb fractions 2_1 sb_fractions update regulatory class. 2_2 sb_fractions update MY GroupID 2_3 sb_fractions update size and weight 2 5 calculate sb fractions 2_7 populate sb_fractions no dups 4 populate SourceBin 4_5 generate bin IDs 5 append source bin distributions Description Select data from the SourcBinGenerator tables to fill a temporary table with identifying and distribution records for each relevant combination of sourceType, pollutant-process and bin identifier. For each record, for pollutant-processes that do not require regulatory class information, set regClassID to 0 and regClass Fraction to 1 . For each record, for pollutant-processes that do not require model year group information, set MYGroupID to 0. For each record, for pollutant-processes that do not require size and weight information, set engSizelD and weightClassID to 0 and sizeWeightFraction to 1 . For each record, calculate sb fractions as the product of fuelEngFraction, emisTechFraction, and sizeWeightFraction. Remove duplicate records from sb_fractions; save as a second temporary table, "sb_fractions no dups". Select unique sourceBinlDs with fractions >0 to fill SourceBin table. Generate sourceBinlDs from bin discriminators. Use SourceBin table and "sb_fractions no dups" to fill SourceBinDistribution table. 10.8. Meterology Generator Basic meteorological parameters such as temperature, humidity and heat index are stored in the MOVESExecution database table ZoneMonthHour. This generator uses the temperature and relative humidity information in the ZoneMonthHour Table and performs the necessary calculations to populate the heatlndex field in this table. 65 ------- Since the heatlndex field is used only in the calculation of air conditioning factors used to adjust the total energy consumption of the running process, this generator is instantiated only if the total energy consumption - running pollutant process is included in the run. It subscribes to the MOVES master loop mechanism at the process level for only the running process. The Meteorological Generator uses the temperature and relative humidity data in the ZoneMonthHour table to populate the Heat Index column. For each RunSpec-required zone, month and hour, the Heat Index is calculated by following the algorithm: HI = -42.379 + 2.04901523*T + 10.14333127*RH + -0.22475541*T*RH + -6.83783 *0.001*T*T + -5.481717 * 0.01 * RH*RH + 1.22874*0.001*T*T*RH + 8.5282*0.0001*T*RH*RH + -1.99*.000001*T*T*RH*RH where HI is the heat index, T is temperature in degrees F, and RH is the relative humidity in percent. This formula is a recent heat index algorithm used by the National Weather Service. 10.9. Alternative Vehicle Fuels and Technologies (AVFT) Strategy The Alternative Vehicle Fuels & Technologies Strategy is the first implementation of an internal control strategy. This control strategy allows the user to input penetration rates (i.e. sales fractions) by model for a broad range of advanced technologies, through model year 2050. It is thus a key element in the ability of MOVES to perform "what-if' analysis. The AVFT has two components. One component is incorporated into the MOVES GUI and allows the user to create specifications for replacement inputs for the FuelEngFraction table and, indirectly, the SizeWeightFraction and RegClassFraction tables. A second portion, the actual Internal Control Strategy MasterLoopable object, uses these specifications to produce these replacement tables prior to the running of the SourceBinGenerator. This causes changes to the SourceBinDistributions and the eventual MOVES output. The user has the option to save the specifications (AVFTspecs) for the replacement input tables. The specifications are saved as an XML file. Most of the content of these specifications is the data to fill a large FuelEngFraction table in the MOVES database. The user is able to save the AVFTSpecs and to load and modify a 66 ------- saved AVFTSpec. A RunSpec may have an associated AVFTSpec; but AVFTspecs may also exist independently of RunSpecs. 10.9.1. Functional Characteristics of the AVFT GUI Component: a. "Strategies" appears on the RunSpec Navigation List immediately after "Manage Input Data Sets". "Alternative Vehicle Fuels & Technologies" is a sub-section. Control Strategies are not required, thus the initial status icon for Strategies (and of sub-sections) is the green check or the yellow squiggles depending on whether the Run Spec currently includes a control strategy that modifies the default data. b. An AVFT file management panel appears when the user selects "Alternative Vehicle Fuels & Technologies" from the navigation list. The panel includes: The name of the associated AVFTSpec (if one exists), or an indicator that no AVFTSpec exists and that default Fuel/Technology fractions are being used. The name displayed changes in response to the buttons below. No more than one AVFTSpec may be associated with a given RunSpec. A "New" button to create a new AVFTSpec. (This has the same effect as returning to default and editing.) An "Edit" button to view & modify the associated AVFTSpec. An "Import" button to load/associate an existing AVFTSpec. This allows the user to browse for exported AVFTSpecs and to select one. An "Export" button allows the user to save a AVFTSpec independent of the RunSpec. (Note: Saving the RunSpec itself includes saving the associated AVFTSpec. Executing the RunSpec after editing an AVFTSpec but without saving includes execution of the new AVFTSpec.) A "Delete" button to remove an associated AVFTSpec and revert to MOVES defaults. A "Cancel" button to close the panel without changes. 67 ------- c. An AVFT Edit panel appears next to the AVFT file management panel when the user selects "Edit" or "New" in that panel. The Edit panel contains a description button and a details subpanel. Description Button: The user may (optionally) enter a short text description of the spec. Details Panel: 1. The user may select a SourceType from a drop down list of all SourceTypes. The panel then displays a table of the Fuel/Engine Technology fractions from the associated AVFTSpec (or MOVES default DB FuelEngFraction table) for that SourceType for model years 2001-and-later. (The default FuelEngFraction table need not include all model years and the AVFTSpec may include similarly limited model years. The panel shows the model years provided and allows users to add additional years if desired (see below). In any case, the MOVES SourceBinGenerator extrapolates needed future years by repeating values for the last year provided.) 2. Fuel/EngineTechnologies are listed as columns. Model years are listed as rows. The first value in each row is the model year. Fractions are sorted into categories as listed in the in the FuelEngTechAssoc table for that SourceType. The categories are displayed in the order indicated by the CategoryDisplayOrder field of the FuelEngTechAssoc table. Within a category, fractions are listed in ascending order by FuelTypelD* 100 +EngTechID. The final value in each row is the sum of all FuelEngFractions for that source/type model year (so the user can see if the values sum to 1 as desired.) This panel normally fills the entire screen, with scroll bars to display any portions that don't fit. 3. The initial view displays fractions aggregated in the categories listed in the FuelEngTechAssoc table for that SourceType. The user can display or hide detailed views that display the fractions for individual Fuel/EngineTechnology combinations. Categories with only one member are not considered "aggregate" (ie, they may be modified in all views and there is no "detailed view" to display or hide). Columns of aggregate fractions should be labelled with the category 68 ------- name. Columns of non-aggregrate fractions should be labeled with the name of the FuelType and the Engine Technology. 4. The user may select an "Add Model Years" button that adds one or more model year rows at the bottom. The user has an option to specify how many rows to add with this feature but the sytem currently will not add model years beyond 2050. In each new row, the model year field is the next consecutive model year. The initial values for the FuelEngFractions in the new row equal those of the previous model year. 5. The user may replace any (non-aggregate) fraction in the table. Category aggregate fractions are grayed-out to indicate that they must be modified in a detail view. Fractions must be between 0 and 1, inclusive. The GUI does not allow the user to enter values <0 or >1. 6. The user may manually assure that the fractions sum to 1 for a sourcetype/model year or may choose a "Normalize" button that will keep the proportions of the input fractions but adjust so they sum to 1. The AVFTSpec does not "Export" and the RunSpec does not "Save" or "Execute" until all sourcetypes/model years sum to 1. Error messages are provided to the user as needed. 7. If the FuelEngTechAssoc table lists only one FuelType/EngineTechnology combination for the SourceType (currently true for motorcycles), there is no action for the user to take. The GUI displays the appropriate detail screen (which should have only one Fuel/EngineTechnology column), and displays a message: "Only one FuelType/EngineTechnology combination is supported for (SourceType Name). No alternate values allowed." 10.9.2. Functional Characteristics of the AVFT MasterLoopable a. The AVFT processor is MasterLoopable; executing after the InputDataManager and before the Generators. It is instantiated under the same conditions as the SourceBinGenerator and executes at the emission process master loop level. b. The AVFT FuelEngFractions are processed to replace the default fractions in FuelEngFractions in the Execution Location Database. In particular, if the 69 ------- specification provides inputs for a given SourceType/ModelYear, those inputs replace all values for that SourceType/ModelYear. Empty records in both the original and replacement tables (ie, records for which the implied fuelEngFraction =0) are taken into account. c. The default RegClassFractions and SizeWeightFractions are modified such that the aggregate (across FuelType/EngineTechnology) RegClassFractions for the SourceType/ModelYear remain the same after application of the AVFT. The new RegClassFractions and SizeWeightFractions conserve the original fractions for vehicles with unchanged FuelEng characteristics and proportionally distribute the remaining fractions among the "changed vehicles". This calculation is specified in detail below for RegClassFraction. The algorithm for SizeWeightFractions is analogous, except the individual Regulatory Classes are replaced by combinations of EngSizelD and WeightClassID. Compute New Reg Class Fractions For each source type and model year, and for each supported FuelEngTech combination (i), either there exists an original FuelEngFraction(i) and a NewFuelEngFraction(i), or it is implied that the FuelEngFraction(i) or NewFuelEngFraction(i) =0. Compute DeltaFuelEngFraction(i) as NewFuelEngFraction(i)- FuelEngFraction(i). Compute ProportionOfNew(i) as IF DeltaFuelEngFraction(i)>=0 Proportion =0 ELSE ProportionOfNew = DeltaFuelEngFraction(i) / (over all i where DeltaFuelEngFraction <0) (DeltaFuelEngFraction(i)). Compute PortionOld(i) as IF NewFuelEngFraction(i)=0, PortionOld(i) =0 ELSE PortionOld = Min (1, FuelEngFraction(i)/NewFuelEngFraction(i)) 70 ------- For each SourceType & Model Year there is a set of original RegClassFractions(ij), where "i" indicates the associated FuelEng combination and "j" indicates the RegClass. These are used with the results of the above calculations to create NewRegClassFractions(i,j,). For eachj For each i Compute NewRegClassFraction(i,j) as: IF NewFuelEngFraction(i)= 0, NewRegClassFraction(ij) =0 (Doesn 't need to be in database) ELSE NewRegClassFraction(ij) = PortionOld(i) * RegClassFraction (i,j) [l-PortionOld(i)) * (Sum(overain) (ProportionOfNew(i) *RegClassFraction(i,j))] 71 ------- 10.10. Emission Calculators - Energy Consumption Calculator (ECC) The energy consumption calculator calculates energy consumption (total, petroleum-based and fossil-based) for four processes: running, start, extended idle and well-to-pump, for each source type on each roadway type in MOVES2004. It uses input from CMITs produced by the total activity, operating mode distribution, source bin, and meteorology generators, and calculates the quantities of energy consumed in the form of the MOVES output database. Note: This functional calculator is actaully implemented as two MOVES EmissionCalculator classes: an "EnergyConsumptionCalculator" for the running, start, and extended idle processes, and a "WellToPumpProcessor" which "chains" onto the EnergyConsumptionCalculator if theWellToPump process is involved. 10.10.1. Overview of Calculation Steps Table 10-7. Overview of Emission Consumption Calculator Step ECCP-1 ECCP-la ECCP-1 b ECCP-2 ECCP-2a ECCP-2b ECCP-2c ECCP-3 ECCP-4 ECCP-5 ECCP-6 ECCP-6a ECCP-6b ECCP-6c ECCP-6d Preliminary calculations Calculate petroleum and fossil energy fractions Convert age to model year for analysis year Calculate adjustments Calculate air conditioning adjustment Calculate temperature adjustment Calculate fuel adjustment Calculate running energy consumption Calculate start energy consumption Calculate extended idle energy consumption Calculate well-to-pump energy consumption Calculate pump-to-wheel energy consumption Interpolate well-to-pump factor by FuelSubType in analysis year Calculate well-to-pump factor by FuelType in analysis year Calculate well-to-pump energy consumption 72 ------- The level of aggregation for each calculation is dictated by the key fields of the input and output variables. The result of energy quantities in steps 2, 3, 4 and 5 are at the level dictated by the MOVES2004 output database design: calendar year, month, day, hour, county, zone, link, pollutant, process, source type, fuel type, model year, and road type. If the EnergyConsumptionCalculator encounters a missing value when making a calculation, the result of the calculation is also considered to be missing. Such results are left out of the database and are not represented in the MOVES output by a value of zero or some other numeric value or character. The EnergyConsumptionCalculator signs up for the Master Loop at the year level which means that it executes for each location (linked) for each calendar year. It signs up for the running, start and extended idle processes to the extent they are called for by the run specification. 10.10.2. Detailed Steps ECCP-1: Preliminary Calculations Step la: Calculate petroleum and fossil energy fractions by fuel type Since petroleum and fossil energy fractions vary by fuel subtype, this step is required to aggregate these fractions up to the fuel type level. Input Variables: MarketShare (County, Year, MonthGroup, FuelSubType,) From FuelSupply table Note: If record not found in database, default value of 1.0 is used if fuelSubtypelD ends withO, otherwise default value of 0.0 is used. FuelSubtypePetroleumFraction (FuelSubType) From FuelSubtype table FuelSubtypeFossilFraction (FuelSubType) From FuelSubtype table Output Variable: PetroleumFraction (County, Year, Month, FuelType) FossilFraction (County, Year, Month, FuelType) Calculation: PetroleumFraction= no. o/FuelSubTypeswithinFuelType ^MarketShare * FuelSubtypePetroleumFraction n=l FossilFraction = 73 ------- no. ofFuelSubTypeswithinFuelType MarketShare * FuelSubtypeFossilFraction Step Ib: Convert Age to Model Year For Analysis Year Input Variables: YearlD AgelD Output Variable: ModelYearlD Calculation: ModelYearlD = YearlD - AgelD ECCP-2: Calculate adjustments Step 2a: Calculate air conditioning adjustment Preliminary calculation (1): ACOnFraction This step calculates the fraction of time the AC compressor is engaged, as a function of Heat Index Input Variables: Heatlndex (Zone, Month, Hour) From ZoneMonthHour table ACActivityTermA (MonthGroup, Hour) From MonthGroupHour table ACActivityTermB (MonthGroup, Hour) From MonthGroupHour table ACActivityTermC (MonthGroup, Hour) From MonthGroupHour table Calculation: ACOnFraction (Zone, Month, Hour) = (ACActivityTermA+ACActivityTermB *HeatIndex +ACActivityTermC*HeatIndex2) If ACOnFraction<0, set to 0 If ACOnFraction>l, set to 1 Preliminary calculation (2): ACActivityFraction This step calculates the overall A/C activity fraction, which accounts for the A/C on fraction, the penetration of A/C in the fleet and the fraction of those A/C systems that are functioning. Input Variable ACOnFraction (Zone, Month, Hour) from previous calculation 74 ------- ACPenetrationFraction (SourceType, ModelYear) From SourcetypeModelYear table FunctioningACFraction (SourceType, Age) From SourceTypeAge table Calculation ACActivityFraction (Zone, Month, Hour, SourceType, ModelYear) = ACOnFraction * ACPenetrationFraction *FunctioningACFraction Calculate AC Adjustment Input Variables: ACActivityFraction (Zone, Month, Hour, SourceType, ModelYear) From previous calculation FullACAdjustment (PolProcess, SourceType, OpMode) From FullACAdjustment table Calculation: ACAdjustment (Zone, Month, Hour, SourceType, ModelYear, PolProcess, OpMode) = 1 + ((FullACAdjustment -l)*ACActivity Adjustment) Step-2b: Calculate temperature adjustment Input Variables: Temperature (Zone, Month, Hour) From ZoneMonthHour table TempAdjustTermA (PolProcess, SourceType, FuelType) From TemperatureAdjustment table TempAdjustTermB (PolProcess, SourceType, FuelType) From TemperatureAdjustment table TempAdjustTermC (PolProcess, SourceType, FuelType) From TemperatureAdjustment table Note: If temp adjustment terms are not found in database, default values of 0.0 are used. Output Variables: TempAdjustment (PolProcess, Zone, Month, Hour, SourceType, FuelType) Calculation: TempAdjustment = 1 + TempAdjustTermA * (Temperature-75) + TempAdjustTermB * (Temperature-75)2 Step 2c: Calculate fuel adjustment Input Variables: FuelAdjustment (SourceType, PolProcess, FuelSubType) MarketShare (County, Year, MonthGroup, FuelSubType) Output Variable: FuelAdjustmentbyType (County, Year, MonthGroup,SourceType, PolProcess, FuelType) Calculation: 75 ------- FuelAdjustmentbyType = no. qfFuelSubTypeswithinFuelType ^ MarketShare * Fuel Adjustment n=l ECCP-3: Calculate running energy consumption Step 3a: Aggregate Base Emission Rates to SourceType/Fuel Type/Model Year/ Operating Mode level Input Variables: MeanBaseRate (SourceBin, PolProcess, OpMode) From EmissionRate table SourceBinActivityFraction (SourceType, ModelYear, SourceBin, PolProcess) From SourceBinDistribution Table Calculation: MeanBaseRatebyType (SourceType, FuelType, ModelYear, PolProcess, OpMode) = No.SourceBinswithinRuelTypeJvlodelYear ^ SourceBinActivityFraction * MeanBaseRate SourceBin=\ Step 3b: Aggregate emission rates to SourceType level, Apply A/C Adjustment Input Variables: MeanBaseRatebyType (SourceType, FuelType, ModelYear, PolProcess, OpMode) From previous calculation OpModeFraction (SourceType, Link, HourDay, PolProcess, OpMode) From OPModeDistribution table ACAdjustment (Zone, Month, Hour, SourceType, ModelYear PolProcess, OpMode) From ECCP- 2a Calculation: Total Energy: SourceTypeEnergy (Zone, Month, HourDay, SourceType, FuelType, ModelYear, Link, PolProcess) = No. OpModeBins ^^OpModeFraction * MeanBaseRatebyType * ACAdjustment OpModeBin=\ Step 3c: Calculate Total Energy Input Variables: SourceTypeEnergy (Zone, Month, HourDay, SourceType, FuelType, ModelYear, Link, PolProcess) from previous calculation SCCVrypeFraction(SourceType, ModelYear, FuelType, SCCVtype) 76 ------- From SCCVtypeDistribution table SHO (SourceType, Age, Link, Hour, Day, Month, Year) From SHO Table IMOBDAdjustment (SourceType, County, Year, Age, FuelType) From IMOBD Adjustment table. Note: If IMOBD adjustment value not found in database, a default value of 1.0 is used. TempAdjustment (ECCP-2b, existing code) FuelAdjustment (ECCP-2c, existing code) PetroleumFraction (ECCP-la, existing code) FossilFraction (ECCP-la, existing code) Calculation: Total Energy EmissionQuant = SCCVtypeFraction * No. SourceTypes ^ SHO * SourceTypeEnergy * FuelAdjustment * TempAdjustment * IMOBDAdjustment SourceBin=\ Petroleum Energy: EmissionQuant = EmissionQuant (Running, Total Energy) * PetroleumFraction Fossil Energy: EmissionQuant = EmissionQuant (Running, Total Energy) * FossilFraction ECCP-4 & 5: Calculate start and extended idle energy consumption The equations are exactly the same as is done for ECCP-3 above. The only difference is that, under Step c, "SHO" is replaced by "Starts" for Start and "ExtendedldleHours" for Extended Idle. ECCP-6: Calculate total, petroleum, and fossil energy consumption for well-to-pump (WTP) For all pollutants, well-to-pump energy and emissions are calculated as a function of pump-to-wheel total energy consumption (i.e. the sum of running, start and extended idle energy) Step-6a: Calculate total pump-to-wheel'(PTW) energy consumption Inputs: EmissionQuant(...FuelType, PolProcess = TotalEnergy; Running, Start, Extended Idle) Outputs: PTWEmissionQuant (FuelType, Total Energy) Calculation: PTWEmissionQuant = 77 ------- EmissionQuant (Running, Total Energy) + EmissionQuant (Start, Total Energy) + EmissionQuant (Extended Idle, Total Energy) Step-6b: Interpolate well-to-pump factorby FuelSubType in analysis year Inputs: WTPFactor (Pollutant, FuelSubType for next highest and next lowest in WTP factor database, relative to YearlD) (Note : WTPFactor represents the field EmissionRate located in the GreetWellToPump table of the MOVES database.) Outputs: WTPFactor (Pollutant, FuelSubType, YearlD) Calculation: Linear interpolation using "bracketing" years in WTP database: WTPFactor = WTPFactor (Lo YearlD) + (WTPFactor (HiYearlD) - WTPFactor (LoYearlD)) * ((YearlD - LoYearlD) / (HiYearlD - Lo YearlD)) Step-6c: Calculate well-to-pump factor by FuelType in analysis year Inputs Variables: WTPFactor (Step 6a) MarketShare (County, Year, MonthGroup, FuelSubType,) Output Variables: WTPFactorbyFuelType(Pollutant, FuelType, YearlD) Calculation: WTPFactorbyFuelType = no. qfFuelSubTypeswithinFuelType ^MarketShare * WTPFactor n=\ Step-6d: Calculate well-to-pump energy consumption Inputs: PTWEmissionQuant (Step 6a) WTPFactorbyFuelType (Step 6c) Outputs: EmissionQuant (PolProcess = Well-To-Pump; Total Energy, Petroleum Energy, Fossil Energy) Calculation: EmissionQuant = PTWEmissionQuant * WTPFactorbyFuelType 10.11. Distance Calculator The TotalActivityGenerator produces distance information in the SHO table. The DistanceCalculator reports vehicle travel distance information based on these SHO table 78 ------- values, if requested by the RunSpec, in the MOVESActivityOutput table of the MOVES output database. 10.11.1. Algorithm Overview The "total" distance in the SHO table must be disaggregated to the often more detailed level of the MOVES output. This is a "calculator-like" function and so is performed by an EmissionCalculator class despite the fact that "distance" is not a "pollutant". This calculator is instantiated whenever distance output is requested by the RunSpec, which implies that some pollutant-process involving the running process has been selected, and signs up for the "Running Exhaust" emission process at the "Year" level of the MasterLoop, the same level at which the TAG operates. 10.11.2. Distance calculation If the "Distance Traveled" output is requested by the RunSpec, (which also implies that some pollutant has been selected for the Running process), the distance field in the SHO table is calculated by the TotalActivityGenerator (TAG). Otherwise distance is output by that generator as NULL. Within the distance calculator itself, there is a single calculation step: DC-1 : Allocate Distance to Finest MOVES Output Level Input Variables: SCCVtypelD(SCC) from SCC table SCCVtypeFraction(sourceTypeModelYearID, fuelTypelD, SCCVtypelD) From SCCVtypeDistribution table sourceBinActivityFraction (sourceTypeModelYearlD, polProcessID, sourceBinID) from SourceBinDistribution table distance(sourceTypeID, linkID, agelD, yearlD, monthlD, hourDaylD) from SHO table Output Variable: MOVESActivityOutput.distance(runID, yearlD, monthlD, daylD, hourlD, statelD, county ID, zonelD, linkID, sourceTypelD, fuelTypelD, modelYearlD, roadTypelD, SCC) Conceptual Calculation: MOVESActivityOutput.distance = SCCVtypeFraction* distance * [sum over all sourceBins in fuelTypelD (sourceBinActivityFraction)] 79 ------- Several detailed considerations must be kept in mind as these calculations are performed. One consideration is just that model years are converted to agelD values by the relationship: modelYearlD = yearlD - agelD. Another consideration is that SHO table values are reduced by the SCCVtypeFraction, because the raw MOVESOutput data is for SCC-SourceUseType intersections. This factor is looked up in the SCCVtypeDistributionTable based on sourceTypelD, modelYearlD, and fuelTypelD. In general this yields multiple values of SCCVtype and SCCVtypeFraction. These values of SCCVtype are used in combination with RoadType to determine SCC values from the SCC table. The most significant complexity is that SHO table distance values are reduced by a fraction representing the portion of this "total" activity occurring for the specific fuelTypelD. This is accomplished by determining the portion of the SourceBinDistribution which involves the given fuelTypelD. The table 10-8 illustrates the structural differences between the input to this calculation and the output it must produce: 80 ------- Table 10-8. Structural Differences between DistanceCalculator Input/Output Key Field SHO.distance MOVESOutputRowID runID yearlD monthID daylD hourlD statelD county ID zonelD roadTypelD pollutantID Processed sourceTypelD fuelTypelD modelYearlD sec Yes Yes Yes Yes Yes Yes Yes No as agelD No Most detailed MOVESOutput Yes, autoincremented Yes, but constant for a run Yes Yes Yes Yes Yes, but redundant with county Yes, but redundant with zone Yes Yes Yes, but constant for this calculation Yes, but constant for this calculation Yes Yes Yes Yes A final consideration is that, since non-key attributes in addition to "distance" may be added to the MOVESActivityOutput table in the future (e.g. number of starts) which may be produced by other calculators, the Distance Calculator creates MOVESActivityOutput records to report its results if they don't already exist, but just updates the distance attribute in the appropriate records if they already exist. 10.12. Methane (CH4) and Nitrous Oxide (N2O) Calculator MOVES includes two EmissionCalculator classes, CH4N2OrunningStartCalculator and CH4N2OWTPCalculator, which calculate Methane (CH4) and Nitrous Oxide (N2O) emissions for three processes (running, start, and well-to- pump) for each source type on each roadway type modeled in MOVES2004. These calculators use input from CMITs produced by the total activity and source bin distribution generators, and calculate the quantities of these emissions in the form required by the MOVESOutput database. 81 ------- These calculators subscribe to the MasterLoop at the year level, which means they are executed once for each location (linked) for each year. When these EmissionCalculators encounter a missing input value in the MOVES database, the result of the calculation are considered as missing. Such results are left out of the database and are not represented in the MOVES output by a value of zero or some other numeric value or character. The calculation steps are described below. These steps are the same for CJLt and N2O. 10.12.1. Step 1: Calculate Running Emissions Input: SHO (SourceType, Age, Link, Hour, Day, Month, Year) SourceBinActivityFraction (SourceType, ModelYear, PolProcess , SourceBin) MeanBaseRate (PolProcess, SourceBin, OpMode) Output: EmissionQuant (SourceType, Pollutant, Process, FuelType....see MOVES_2004 output database design) Calculation: EmissionQuant = SHO * SourceBinActivityFraction * MeanBaseRate 10.12.2.Step 2: Calculate Start Emissions Input: Starts (SourceType, Age, Zone, Hour, Day, Month, Year) SourceBinActivityFraction (SourceType, ModelYear, PolProcess , SourceBin) MeanBaseRate (PolProcess, SourceBin, OpMode) Output: EmissionQuant (SourceType, Pollutant, Process, FuelType....see MOVES_2004 output database design) Calculation: EmissionQuant = Starts * SourceBinActivityFraction * MeanBaseRate 10.12.3. Step 3: Calculate Well-To-Pump Emissions Step 3a: Calculate well-to-pump factor by FuelType in analysis year Inputs Variables: EmissionRate from GREETWellToPump (Year, Pollutant, FuelSubType) MarketShare (County, Year, MonthGroup, FuelSubType,) Output Variables: WTPFactorbyFuelType(Year, Pollutant, FuelType) Calculation: 82 ------- WTPFactorbyFuelType = no.ofFuelSubTypeswithinFuelType ^MarketShare * WTPFactor n=l Step 3b: Calculate Well-To-Pump Emissions Input: PTWEmissionQuant for total energy (Step 6a of Total Energy Calculator) WTPFactorbyFuelType for CH4/N2O (Step 3a above) Output: EmissionQuant (SourceType, Pollutant, Process, FuelType....see MOVES_2004 output database design) Calculation: EmissionQuant = PTWEmissionQuant * WTPFactorbyFuelType 10.13. [This section number is reserved for future use.] 10.14. Result Data Aggregation and Engineering Units Conversion This function aggregates the results produced by MOVES EmissionCalculators to the level of detail called for in the run specification and converts these results to the engineering units it specifies. Aggregation is performed to the extent possible by the MOVES Worker program and completed by the MOVES Master program. Conversion to engineering units is the final operation performed and is done by the MOVES Master program. 10.14.1. How Aggregation Levels are Specified The level of aggregation is specified on the MOVES GUI Output EmissionsDetail Screen. These specifications are made in terms of what distinctions are desired in the output. Output rows are always distinguished by time periods. The level of this distinction may be hour, day, month or year. (Choices may be more limited, however, if time period "preaggregation" of the database was performed.) Output rows are always distinguished by location. The level of this distinction may be Nation, State, County, Roadtype or Link. (Choices may be more limited, however, if geographic 83 ------- "preaggregation" of the database was performed.) Output is always distinguished by pollutant. When reporting for entire months or years, MOVES2004 scales the results up by the number of weeks in each month, i.e. by the number of days in the month divided by seven. The reader may wish to refer to section 9.2 of this document where MOVES time periods are discussed. Output may be distinguished by SourceUseType (the recommended option), Source Code Category (SCC) or neither. (But not both since the two highway vehicle classification schemes are exclusive.) Output may optionally be distinguished by: Model Year Fuel Type Emission Process Roadtype In general, any combination of these distinctions may be specified. Output by SCC implies that roadtype and fueltype will be distinguished and the MOVES GUI enforces this. If "Roadtype" is selected as the Location level then "Roadtype" is automatically distinguished in the output (but the reverse is not necessarily true). 10.14.2.Aggregation Algorithm - Logical Level Specification The raw output of MOVES is distinguished by year, month, day, hour, state, county, zone, link, road type, pollutant, process, source use type, fuel type, model year, and SCC. Taken together these fields may be considered an alternate key for the MOVESOutput table, except that, once aggregations are performed, they may assume the null value. At macroscale, zones are redundant with counties, so whenever a county ID is present, its corresponding zonelD is also present, and when counties are aggregated out, then so are zones. Also at macroscale, links represent a combination of a county and a roadtype, so when county and roadtype are both known, so is link. Otherwise linkID is null whenever either county or roadtype is null. 84 ------- The following aggregations may be carried out as implied by the RunSpec. Unless stated otherwise, any combination of these aggregations may be called for. This description is at a logical level; physical implementation differs. For example aggregation to the state level is not actually performed by aggregating roadtypes to counties and then aggregating counties to states. a. Output is always aggregated by either SCC or source use type (or both), depending on which of these detail levels is not selected in the GUI Output Selection Panel. (The raw output is in terms of SCC-sourceusetype combinations.) The GUI enforces the constraint that at least one of these two levels of detail is not required. b. Hours are combined into to days (of any week) if the output time period is day, month or year. A warning message is generated if this aggregation is performed and all hours are not selected in the RunSpec. c. Days are converted to months if the output time period is month or year. The number of days in each month is obtained from the MonthOfAnyYear table, adding 1 day to February for leap years. 1/7 of these days are considered to be Mondays, 1/7 Tuesdays, etc. without regard to calendar year. It is the user's responsibility to insure that all desired days of the week are included in the RunSpec. A warning is generated if this aggregation is performed and all days are not selected in the RunSpec. d. Months are totaled to years if the output time period is year. It is the user's responsibility to insure that all desired months are included in the RunSpec. A warning is generated if this aggregation is performed and all months are not selected. e. Road types are combined into county totals whenever "roadtype" has not been selected in the Output Emissions detail screen. Note that selection of the SCC level of detail forces road type to be selected and this aggregation not to be performed, as does selection of the road type level of geographic output detail. A warning message is generated if this aggregation is performed and all road types are not included in the runspec. f. State totals are combined into a single national (or total user modeling domain) result if the national level of geographic detail is selected. This aggregation is performed 85 ------- even if the road type level of detail has been selected on the "Output Emission Detail" panel. It is the user's responsibility to insure that all desired states are included in domain totals. g. Fuel types are combined within source use types if this level of detail is not selected in the Output Emission Detail panel. It is the user's responsibility to insure that all desired fuel types are included. h. Emission processes are combined if this level of detail is not selected in the Output Emission Detail panel. It is the user's responsibility to insure that all desired processes are included. 10.14.3. Engineering Unit Conversion Engineering units are contained in the run specification for mass, energy, time and distance. In the MOVES GUI these are specified on the "Outputs" panel within the "General Output Screen". Supported are: time units (seconds, hours, days, weeks, months and years). mass units (kilograms, grams, pounds, and U.S. tons.) energy units (Joules, kiloJoules, and million BTU) distance units (miles and kilometers) The engineering units used are reported in the MOVESRun table. Distance units are only required if the run specification calls for travel distance to be reported. MOVES always reports mass pollutant emission results in terms of mass per time unit and always reports energy consumptions results in terms of energy per time unit. If the time unit equals the output time period specified on the "Output Emissions Detail" screen, then the quantities reported amount to an inventory for that time period. 10.15. Post-Processing Script Execution The "Post Processing" menu in the MOVES2004 GUI includes a selection to "Run MySQL Script on Output Database". When this item is selected MOVES searches the "OutputProcessingScripts"subdirectory in its "...database" directory, and presents a list of file names found there which have a file name extension of ".sql". 86 ------- When one of these files is selected, MOVES executes the file as a MySQL script on the MOVES output database specified by the currently active run specification (or gives an appropriate error message if no output database is specified). These scripts should operate only on the currently active MySQL database, should not include the MySQL USE command, should use as input only the four tables contained in the MOVES Output database schema, (along possibly with MOVESDefault) and should store any files and tables they produce in this same database. The MOVES program, however, does not enforce these conventions. 10.16. GREET Model Interface MOVES is designed to interface with GREET, as detailed in the following section. Further detail on the GREET interface itself is contained in a separate document entitled "User Manual and Technical Issues of GREET for MOVES Integration", prepared by Argonne National Laboratory. 10.16.1. MOVES2004 GREET Interface Functionality: 1. If requested in the RunSpec, MOVES2004 calculates well-to-pump inventories for total energy consumption, petroleum-based energy consumption, fossil fuel-based energy consumption, N2O, and CH4, using the emission factors in the GREETWellToPump table. 2. MOVES2004 offers a "preprocessing" menu option to "Update Well-To-Pump" factors. When this menu option is selected MOVES2004 produces, in XML format, a table of information needed by GREET. This contains a list of calendar years, and a list of MOVES fuel sub-types implied by the RunSpec. 3. MOVES2004 then executes the GREET GUI described below. 4. When control is returned, MOVES2004 receives a tab-separated variable, well-to- pump emission factor result table from the GREET GUI and incorporates these factors into the GREETWellToPump table in a database suitable for use as in input database by subsequent MOVES2004 model runs. 87 ------- 5. MOVES2004 interacts with the GREET GUI, which in turn invokes the GREET spreadsheet model. MOVES2004 does not interact directly with the GREET spreadsheet model, only with the GREET GUI. 10.16.2. GREET and GREET GUI Functionality The design of the interface between MOVES2004 and GREET is based upon the following functional characteristics of GREET. 1. GREET estimates Well-to-Pump and Vehicle Manufacture/Disposal emissions of Total Energy Consumption, Petroleum-based Energy Consumption, Fossil Fuel-based Energy Consumption, N2O, and CH4 appropriate to calendar years 1990 thru 2050. (Internally to GREET, estimates are actually produced by interpolating between estimates applicable to five year periods and estimates beyond 2020 are based on many of the same parameter values as those for 2020.) 2. When the two models are used together, the United States (or the user modeling domain) is modeled as a single geographic region. 3. Where GREET has multiple Pathway Options for a fuel, it is generally possible for the user to supply input parameters for each pathway (with associated percentages which sum to unity), and these Pathway Options and percentages may vary by calendar year. 4. Only GREET parameters accessible from a version of the GREET GUI may be altered. To alter more deeply embedded GREET parameters the user would have to manually modify the underlying GREET spreadsheet before running MOVES. 5. GREET estimates well-to-pump emissions relative to consumption of the following fuels (in MOVES2004 these are referred to as fuel subtypes): Conventional Gasoline Reformulated Gasoline Gasohol (E10) Conventional Highway Diesel Fuel (GREET has the logic built in to use its high sulfur version of this fuel prior to 2006, its low sulfur version after 2006 and a blend for 2006). Biodiesel ------- FT Diesel CNG LPG Ethanol Methanol Gaseous H2 Liquid H2 Electricity 6. The GREET GUI, while not itself written in Java, can be run from a Java program, i.e. MOVES2004. It accepts command line parameters which specify: - an XML input file name - an output file name (for well-to-pump factors and vehicle manufacture/disposal factors) - an error file name (used to return any GREET error messages to MOVES). 7. Execution of the GREET GUI normally results in execution of the version of the GREET spreadsheet, but may return to MOVES without executing it if the user desires. Upon return to MOVES2004, status information is available as to whether the GREET spreadsheet was run or not and whether execution was successful or an error occurred. Error messages are returned to MOVES in a separate file. 8. The GREET GUI accepts an XML-formatted list of MOVES2004 Calendar YearlDs, determines what five-year GREET periods are needed to estimate emissions for all years listed, and executes the GREET spreadsheet for each such period, and interpolates between these results as needed to produce results for the calendar years listed. GREET also accepts an XML-formatted list of fuel types (MOVES fuel Subtypes). GREET results are limited to these fuels. 9. The GREET GUI consolidates the results of these GREET spreadsheet runs into a single tab-delimited table of well-to-pump emission factors and (eventually) a single tab-delimited table of vehicle manufacture/disposal emission factors for use by MOVES2004. The table of well-to-pump emission factors is described in the next section. 89 ------- 10.16.3. GREET Well-to-Pump Emission Factor Result Table: This table is a tab-separated variable ASCII text file and contains the following fields: a. pollutantID (an Integer from the set of values used in MOVES2004) b. fuelSubtypelD (an Integer from the set of values used in MOVES2004) c. yearlD (an Integer identifying the calendar year to which the factor applies) d. emission rate (a floating point number, expressed in the appropriate units) Fields a, b, and c, together form the primary key of this table. Field d is its only non-key field. The fields pollutantID, fuelSubtypelD and yearlD are as defined in the MOVESDefault database schema. 90 ------- 10.17 Future Emission Rate Creator (FERC) The Future Emission Rate Creator (FERC) allows MOVES users to alter the energy and emission rates for advanced technology vehicles for model years 2001 and later, and for all energy and emission rates (conventional and advanced technology) for 2011 and later. The FERC works with user-supplied ratios which express the relative benefit of advanced technologies versus conventional technology, by operating mode, to generate advanced technology rates. The FERC is an "external control strategy", meaning it requires work outside of MOVES with MySQL databases and is executed from the "Pre-Processing" menu of the MOVES GUI, rather than being executed as part of the model run itself. Input data: The FERC requires two input tables, one to create "short term" future rates and another to create "long term" future rates. These are stored in ASCII text, comma separated variable (CSV) format. To generate an alternative set of future emission rates the user must alter these tables directly (outside of MOVES) before running the FERC. The user names these tables as desired and selects them from the MOVES GUI. At least one set of example input tables will be supplied with MOVES. The tables contain identical fields, except that the opModelD field is present only in the "short term" table. The first record in each file contains column names to facilitate human readability and is ignored by the calculations. The FERC input table fields are shown in Table 10-9. Table 10-9: FERC Input Table Fields Field polProcessID opModelD (present in short term table only) Description Pollutant / Process ID 50 1 = CH4 running 502 = CH4 start 60 1=N2O running 602 = N2O start 9101 = total energy running 9102 = total energy start 9190 = total energy start Operating Mode ID 0-36 = running VSP/speed modes 200 = start mode (total energy only) 91 ------- targetFuelTypelD targetEngTechID targetModelYearGroupID fuelTypelD engTecMD modelYearGroupID fuelEngAdjust dataSourcelD 300 = running mode (CH4 and N2O) Type of fuel: 1 = Gasoline 2 = Diesel 3 = CNG 4 = LPG 5 = E85 6 = M85 7 = Gaseous Hydrogen 8 = Liquid Hydrogen 9 = Electricity Engine Technology ID 1 = Conventional Internal Combustion (CIC) 2 = Advanced Internal Combustion (AIC) 11= Moderate Hybrid CIC 12 = Full Hybrid CIC 20 = Hybrid AIC (used only for Hydrogen 1C hybrid) 21 = Moderate Hybrid AIC 22 = Full Hybrid AIC 30 = Electric 40 = Fuel Cell 50 = Hybrid Fuel Cell Model Year Group ID 200 120 10 = 2001 thru 20 10 20 112020 = 20 11 thru 2020 202 12050 = 2021 thru 2050 Base fuel type ID (same as targetFuelTypelD) Base engine technology ID (same as targetEngTech ID) Base model year group ID (same as targetModelYearGroupID) Fuel / Engine Adjustment, i.e. the relative benefit of the target fuel / engine technology versus the base fuel/engine technology. A value of 1 = no benefit, a value of 0.5 = 50% improvement 5001 thru 5004 = FERC short term 6000 = FERC long term These fields fall into three functional groups: 1. fields describing the emission rates produced by the adjustment a. polProcessID b. opModelD c. targetFuelTypelD d. targetEngTechID e. targetModelYearGroupID f. dataSourcelD 92 ------- 2. fields describing the base technology emission rates to which the adjustment is applied a. polProcessID b. opModelD c. fuelTypelD d. engTechID e. modelYearGroupID 3. the adjustment itself a. fuelEngAdjust Of these fields, the user would generally only need to alter values of fuelEngAdjust, which are the ratios which define the benefit of the target technology relative to the base technology. Note that the values of polProcessID and opModelD contained in the base records are carried into the future emission rates produced, as are the values of regClassID, engSizelD and weightClassID implicit in the base record sourceBinlDs. The short term table contains the information necessary to produce alternative fuel and advanced vehicle technology rates for model years 2001 through 2010 (which are treated as one model year group). The long term table contains the information necessary to produce conventional and advanced vehicle technology rates for model year groups 2011 and later, split into two model year groups: 2011 - 2020 and 2021 - 2050. The main difference between the tables is that the short term table uses as base rates the gasoline and diesel rates for conventional technology in the 2001 through 2010 model year group, while the long term table uses the 2001 - 2010 rates as a base the 2001-2010 rates for each technology (i.e. those generated by the short term table). The long term table enables the user to model technology evolution over time, within each technology. 93 ------- Output produced: The FERC produces a MySQL database suitable for use as a MOVES2004 user input database. This database contains two tables, EmissionRate and SourceBin. The name of this database is specified by the user. Calculations performed: Short term future emission rates are created by applying fuelEngAdjust as a multiplicative adjustment factor to the meanBaseRate of all non-motorcycle EmissionRate table records in the MOVESDefault database with dataSourcelDs less than 5000. For each such record with matching values of polProcessID, opModelD, fuelTypelD, engTechID, and modelYearGroupID a short term future emission rate record is generated having the targetFuelTypelD, targetEngTechID, targetModelYearGroupID and new dataSourcelD (while retaining the prior values of polProcessID, opModelD, regClassID, engSizelD, and weightClassID). Long term future emission rates are created by applying fuelEngAdjust as a multiplicative adjustment factor to the meanBaseRate of all EmissionRate table records in the MOVESDefault database with dataSourcelDs less than 5000 (including those for Motorcycles), along with the short term future emission rates produced by the first step. For each such record with matching values of polProcessID, fuelTypelD, engTechID, and modelYearGroupID a long term future emission rate record is created having the targetFuelTypelD, targetEngTechID, targetModelYearGroupID, and new dataSourcelD (while retaining the prior values of polprocessID, opmodelD, regClassID, engSizelD, and weightClassID). For this calculation to operate correctly the MOVESDefault.SourceBin table must contain a record for each sourceBinID present in the EmissionRate table having a dataSourcelD less than 5000. The MOVESDefault database distributed with MOVES2004 satisfies this condition. 94 ------- 10.18 EPA's Plans to Estimate the Uncertainty of MOVES Results MOVES2004 does not include the ability to estimate uncertainty in model estimates. The estimation of uncertainty was strongly considered for inclusion, and significant effort was made to assess how either Analytic Propagation of Error or Monte Carlo methods could be used to estimate uncertainty; but we decided to defer the inclusion of uncertainty to allow more time to resolve issues with computation methods, model performance and to better estimate the uncertainty of model inputs. This section details our thinking on uncertainty up to this point, and design concepts for inclusion in future versions. Uncertainty is introduced by the model theory, the mathematical formulation of the model, and the data used to calibrate the model. The first two sources of uncertainty are not amenable to quantification, so the uncertainty estimates in MOVES will focus on the data used to calibrate the model. However, even with this narrower focus, the challenges are significant. MOVES uses data for hundreds of variables covering all aspects of mobile source emission generation: the vehicle fleet, vehicle activity patterns, emission rates, fuel properties, geographic location, fuel properties, and meteorology. The uncertainty of emission rates is readily quantified using standard data analysis techniques, but much of the fleet, activity, fuel and meteorology data sources have limited information on the full range of uncertainties. The primary challenge in including uncertainty in MOVES is therefore to quantify uncertainties for all of the input data used in the model. We plan to produce uncertainty estimates using Monte Carlo (MC) methods. As an alternative, we have examined analytical propagation of error (APOE), which has the advantage of providing an answer following a single model run. It has the disadvantages of being an approximate method, of being programming-intensive, and of providing no information regarding the form of the output distribution. MC has the advantages of accuracy (if iterated enough), simplicity, extendibility, and detailed information on output distribution, but has the disadvantage of requiring large numbers of model iterations. Our initial explorations with APOE have revealed problems related to modular software design and distributed processing. Monte Carlo methods avoid these problems but 95 ------- require that the generation of Monte Carlo inputs be done in a centralized fashion. Since Monte Carlo analyses of large simulations are likely to be computationally prohibitive, we are exploring the possibility of estimating the uncertainties of large simulations by running smaller simulations. To fully implement MC simulation, for each uncertain data point we would add to the database the distribution of the mean, including the type of distribution and its defining parameters. For a non-Monte Carlo model run (i.e. if the user just desired a point estimate without uncertainty estimation), the mean values would populate the Execution Database, just as they do now. For a Monte Carlo simulation, the model would be run a specified number of times. For each run, the Execution Database would be populated with random samples from the distributions of the means of the data points. All output values could be saved for subsequent analysis (storage-intensive option) or summary statistics could be accumulated as the runs progress (non-storage-intensive). Confidence intervals and other statistics would be generated from these model iterations. Dynamic sensitivity can be calculated from Monte Carlo simulations by regressing model inputs against model outputs. Inputs with the highest (in absolute value) regression coefficients will be those for which the greatest improvement will result from decreasing their uncertainty. As an intial step towards the MC approach described above, the MOVESDefault database currently includes a Coefficient of Variation (CV) field for most input fields. Most of the these fields have been left intentionally blank, to be used as placeholders for when uncertainty is added; although many records in the EmissionRate table have valid CV's, since they are computed by the emission rate "binner" program described in the MOVES2004 Energy and Emission Input report. Including only CV in the input databases would facilitate the approach for MC simulation using an assumed distribution form for all input variables - i.e. either normal or lognormal. To provide more flexibility in choosing distributions, the input databases would need to be expanded to include distributional form, and if distributions such as Weibull or Gamma were desired, to add an additional coefficient term. 96 ------- To produce random variates that are components of distributions that must sum to one, each term of the distribution will first be generated individually. Then the resulting set of variates will be multiplied by the same factor so that the total sums to one. This procedure will result in the terms of the distribution being negatively correlated, as they should be: if one term is especially large, others must be correspondingly small, and vice versa. The nature of emissions calculations lends itself to distributed processing (e.g., the emissions in one county do not affect the emissions in another). The MOVES design takes advantage of this fact by allowing the distribution of independent calculations over many machines. Both modular design and distributed processing make use of the results of independent modules in subsequent calculations without having to know the details of how they were calculated. For example, when the emissions of several counties for a given time period have been produced on a number of separate machines, we can simply add the emissions, without knowing how they were calculated. This scheme creates no problem for APOE as long as there are no common random variates in all the prior independent calculations. Then, just as we can work with the results of prior calculations without knowing their details, we can also work with the variance of those prior results without knowing their details. Such a scheme allows APOE to be easily applied to any set of calculations no matter how they are broken up. For example, the variance of the sum of a set of county emissions will simply be the sum of the variances of the county emissions. However, the requirement that there are no common random variates in all the prior independent calculations is generally not met in the MOVES model. Many of the same random variates (e.g., emission factors, deterioration factors, and temperature corrections) are likely to be used in multiple counties. Then the variance of the sum of a set of county emissions will no longer simply be the sum of the variances of the county emissions. The presence of a common random variate in the separate calculations creates a kind of computational correlation that increases the variance of the sum. In order to correctly use APOE to calculate the variance of the sum (or other function) of previously calculated emissions, the calculation itself must be performed in a centralized fashion so that the partial derivatives of the sum with respect to each common random variate can be 97 ------- determined for the whole calculation. (This result may be verified with a sample APOE calculation.) Every final result from the model must then be done in a single step, so that the partial derivatives of the final result with respect to each contributing parameter can be correctly determined. This problem is the basic reason that we are not using analytical propagation of error. A similar issue exists for Monte Carlo simulations, but can be handled without defeating the modularity of the calculation. For each iteration, the realization of each random variate must be the same everywhere it is used. We plan to accomplish this by producing a new Execution Database for each Monte Carlo iteration. All parameters used in calculations are distributed to various workers or modules from the execution database. Every parameter then has a single value for a given iteration that is identical everywhere it is used. 98 ------- 11. MOVES2004 Input and MOVESDefault Databases The principal input data for a MOVES model run is normally obtained from the MySQL database named MOVESDefault. A version of this database is included in each distribution of MOVES. The user may change this database if desired. This is not normally done directly, however, unless data deletions are required, or a fundamental change to the scope of the model is involved, because MOVES2004 has a more convenient mechanism for the user to supply additional or alternative input data. The MOVES GUI program and MOVES run specifications allow the user to specify one or more MySQL databases whose data is to add to or replace the data in MOVESDefault. The simplicity and generality of this scheme is that these MOVES input databases have exactly the same table structure as MOVESDefault (or any portion of it), and may be used to replace all input data items. A limitation of this scheme, however, is that construction of these input databases is not always easy and the user is responsible for the accuracy, completeness and consistency of the new database. This is not always a simple endeavor. EPA envisions that "data importer" programs will be written to help prepare MOVES input databases and support the principal specialized input use cases as they arise. It is also envisioned that organizations outside EPA will also produce data importers for MOVES. The initial release of MOVES2004, however, does not include any data importers. Since the MOVESDefault database and MOVES input databases have the same table structure, this structure will be referred to in the remainder of this section as simply the "MOVES Database." The MOVES Database, like all MySQL databases, is a relational database, which means (among other things) that it is made up entirely of tables, and that every record within each of these tables has the same set of data items or "fields." The MOVES database has a naming convention that table names begin with a capital letter and field names begin with a small letter (unless their name starts with an acronym). The MOVES database structure is highly "normalized" which means that data is contained in many separate tables, several of which usually need to be joined together to satisfy an information requirement. 99 ------- 11.1. Use of Data Types The overall approach to the use of MySQL column types in the MOVES database is to use integer type columns (2-byte integers where possible, 4-byte integers otherwise) for all key identifying fields (statelD, countylD, hourlD, sourceTypelD, etc), and to use normal-precision floating point columns for numeric information. Since MySQL has no boolean (logical true/false) column type, the MOVES database uses columns of character type with length 1 for data items that have a yes/no or true/false nature. Such columns are populated with "Y" to represent "yes" or "true," and "N" to represent "no" or "false." 11.2. Functional Types of Tables: While the MOVES Database, like all relational databases, consists entirely of tables, these fulfill several different functions. Some tables function merely to establish value lists for some of the fundamental entities in the database. Examples of such tables include State, Year, and DayOfAnyWeek. A few tables represent "Associations" between database entities. In the MOVES database these tables usually have "Assoc" as the last part of their name. An example of an association type table is PollutantProcessAssoc, which contains information as to which pollutants are emitted by which emission processes. Since this is a many to many relationship (i.e. several pollutants are generally produced by each emission process and a pollutant can be produced by several emission processes), an "Association type" table is used to store the valid combinations. The most common kind of table in the MOVES database stores the substantive subject matter information, and in this document are termed "information" tables. The EmissionRate table for example stores emission rates for all emission processes in MOVES2004 except well-to-pump. Some "information" tables store data "distributions," i.e. sets of fractions which add up to unity. The MOVES database has a naming convention that such tables have the word "Fraction" or "Distribution" as the last part of their name, and the field containing such fractions has the word "Fraction" as the latter part of its name. An 100 ------- example of this is the "HourVMTFraction" table whose "hourVMTFraction" field stores information as to what fraction of certain VMT occurs during each of the 24 hours of the day. Another example is the "RoadTypeDistribution" table whose "roadTypeVMTFraction" field stores information as to what fraction of certain VMT occurs on each RoadType. Another kind of "information" table which merits special consideration consists of those which are written by MOVES Generators and which MOVES EmissionCalculators, (which can be considered to implement the MOVES Core Model), use as their principal inputs. These are called "core model input tables" or CMITs. The reason CMITs are important to the MOVES user is that they are alternative points for data entry to the model. The user has a choice as to whether to supply input data to a Generator and have the Generator populate its CMIT tables during model execution, or to place input data directly into the CMIT, (in which case the Generators are programmed not to modify it). A combination of the two approaches may also be used. Most CMITs are information type tables, but there is one notable exception to this, namely SourceBin, which can be, considered a category or an association type table. These various kinds of tables are not always completely distinct. The SourceUseType table for example can be considered a "category" type table in that it defines the set of sourceTypelDs available for use in the database, but can also be considered in "information" table, since it contains several subject matter information fields, e.g. sourceMass. The remainder of this section diagrams and briefly describes the role of MOVES database tables in terms of functional table groups. These functional groups correspond to model components such as a Generator or the Core Model. Within each group the information type tables are generally discussed in the order in which their input data is used. Category and Association type tables are introduced as needed to provide the data framework for information type tables. The discussion of tables is relatively brief in this document and is only intended to give a general idea of how each table is used and its most significant characteristics. Users can refer to the MOVES database documentation, 101 ------- contained in the .. .readme/Moves.rtf file within the actual database directory, for more detailed table and field level information. The table diagrams in the following sections of this chapter are technically termed "entity-relationship" diagrams. The graphical conventions which apply to these tables include: That each rectangle represents a table. That the primary key fields of the table are shown above the line within these rectangles Fields designated "FK" are foreign key fields; i.e., they help identify related records in other tables. Lines connecting the rectangles represent relationships between them. A short perpendicular line at the end of relationship indicates that it is possible that one record from that table participates in the relationship A small "o" at the end of a relationship line indicates that it is possible that no records from that table participate in the relationship A small "v" (sometimes refered to as "crow's feet") at the end of a relationship line indicates that it is possible that many records from that table participate in the relationship 11.3. Tables Related to the Total Activity Generator (TAG): Figure 11-1 shows the tables most directly associated with the TotalActivityGenerator and the relationships between them. This is the largest table grouping, but its structure presents little difficulty. 102 ------- Figure 11-1. Tables related to the Total Activity Generator (TAG). Source! ypeAge Distribution DayOfAnyWeek survival Rate relativeM AR functioningAC Fraction functioningACFractionCV AvgSpeed Distribution ZoneRoadType RoadType zonelD(FK) \ roadT\/DelD (FK1 6 SHC I )AII J pp h cFactor | SHO hourDaylD (FK) monthID (FK) yearlD (FK) agelD (FK) linkID (FK) sourceTypelD (FK) SHO SHOCV distance t Link linkID roadTypelD rampFraction sourceTypelD (FK) roadTypelD (FK) - hourDaylD (FK) avgSpeedBinID (FK) avgSpeedFraction hourDaylD (FK) monthlD(FK) yearlD (FK) agelD(FK) zonelD(FK) sourceTypelD (FK) starts startsCV I ; l=h lp ft avgSpeedBinID avgSpeedBinDesc ExtendedldleHours sourceTypelD (FK) hourDaylD (FK) monthID (FK) yearlD (FK) agelD(FK) zonelD (FK) extendedldleHours extendedldleHoursCV zonelD —h countylD (FK) SourceUseType is a both category table that defines the values of sourceTypelD, and a data type table that provides certain information about vehicles of each type. The MOVESDefault database defines 13 sourceTypelDs for the "MOVES types" shown in Table 1 above. SourceUseTypes are often referred to more succinctly as 103 ------- SourceTypes or UseTypes. They are considered different categories because they are expected to have distinctive usage patterns. Each SourceUseType belongs to an HPMSVtype as indicated by the HPMSVtypelD field. Year is essentially a category table that defines the calendar years for which the model may be run. It also establishes which years are considered "base years" for the purpose of VMT and population data purposes. In MOVES2004, 1999 is the only base year in the default database. SourceTypeYear is an information table containing population, sales growth, and migration rate information used by the TAG. AgeCategory is a category type table that defines the valid age categories of SourceUseTypes. Each such category has an integer agelD and a character ageCategoryName. The default database defines 31 age categories where ageID=0 represents new vehicles thru age category 30 which represents vehicles which are 30 years old or older. It is unlikely the user would change this table. MOVES2004 makes assumptions about the agelD values, e.g. that modelYearlD = calendar year - agelD and that agelD = 0 (new vehicles) exists. SourceTypeAgeDistribution is a distribution information type table that stores a distribution of each SourceType into AgeCategories for each calendar Year. (This is similar to the "registration distribution" information in MOBILE6.) SourceTypeAge is an information type table that contains data items which pertain to an AgeCategory of a SourceUseType. HPMSVtype is a category type table that defines the Vehicle Types as classified by the Highway Performance Management System (HPMS). HPMSVtypeYear is an information type table that contains vehicle mileage traveled (VMT) data pertaining to an HPMS vehicle type in a given calendar year, including VMT growth rates. RoadType is essentially a category table that defines the roadTypelDs used by the model. In MOVES2004 the default database adopts the 12 highway road types used in HPMS, along with a thirteenth value of 1 to represent off network locations. The isRamp attribute is used by the OMDG. RoadTypeDistribution is a distribution information type table that contains the distribution of VMT across the RoadTypes. MonthOfAnyYear is a category type table that establishes the monthlDs for the 12 months of the year. In the default data month ID = 1 is January and monthID = 12 is December. MOVES2004 assumes that there are 12 months in the year and it is unlikely the user would change this table. 104 ------- MonthVMTFraction is a distribution information type table that contains a distribution of each sourceTypelD' s VMT across the MonthsOfAny Year. Separate distributions are stored for leap years and non-leap years. DayOfAnyWeek is a category table that establishes the daylDs for the seven days of the week. In the default data daylD = 1 represents Mondays and daylD = 7 represents Sundays. MOVES2004 assumes there are seven days in every week, and it is unlikely the user would change this table. DayVMTFraction is a distribution information type table that distributes the VMT for a sourceTypelD in a MonthID, on a RoadTypelD across the days of the week. HourOfAnyDay is a category table that establishes the hourlDs for the seven days of the week. In the default data hourlD = 1 begins at midnight. MOVES2004 assumes there are 24 hours in every day and it is unlikely the user would change this table. HourVMTFraction is a distribution information type table that distributes the VMT for a sourceTypelD on a RoadTypelD on a day ID across the hours of the day. AvgSpeedBin is essentially a category type table that defines the avgSpeedBinlDs used by the model. Its avgBinSpeed field does also function as a data item in the model. HourDay is a category table that exists only because of database design considerations. A number of tables in the MOVES Database use both the hourlD and daylD as key fields. This table defines combined hourlD and daylD values, to reduce the number of key fields in these other database tables. AvgSpeedDistribution is a distribution information type table that contains a distribution of time spent in average speed bins, by each sourceTypelD, on each roadTypelD, in each hour and day. Zone is a category type table that establishes the zonelDs used by the model and identifies the single county to which the Zone belongs. Although the name of this table does not include "Distribution" or "Fraction" this table is also in effect a distribution information type table that stores distributions of start and idle activity to Zones. Both StartAllocFactor and idleAllocFactor should sum to unity across all the Zones in the model domain. ZoneRoadType is a distribution information type table that stores a distribution of source hours operating (SHO) across the RoadTypes in a Zone. (It could as easily been called SHODistribution, or, because at macroscale a combination of a RoadType with a Zone is a Link, it could have been combined with the Link table.) SourceTypeHour is an information table that stores activity ratio information pertinent to an sourceTypelD during each HourDay. 105 ------- SHO is a CMIT information type table, containing distance traveled and source hours operating (SHO) information, that may be produced by the TAG or entered directly by the user. It is worth noting in the diagram that SHO is geographically "link-based." Starts is a CMIT information type table, containing information about the number of starts, that may be produced by the TAG or entered directly by the user. It is worth noting in the diagram that start activity is geographically "zone-based." ExtendedldleHours is a CMIT information type table, containing information about the number of extended idling hours, that may be produced by the TAG or entered directly by the user. It is worth noting in the diagram that extended idling activity is geographically "zone-based." 11.4. Tables Related to the Operating Mode Distribution Generator (OMDG): Figure 11-2 shows the group of tables most directly related to the OMDG and the relationships between them. The structure of this group of tables is designed to solve several rather specialized problems: how to store driving schedules in a relational database, how driving schedules are associated with source types, road types, and average speeds in MOVES2004, a special treatment of freeway ramp driving, and the fact that operating mode distributions are specific to both pollutant and emission process in MOVES2004. 106 ------- Figure 11-2. Tables related to Operating Mode Distribution Generator (OMDG) SourceUseType sourceTypelD sourceTypeName rotatingTermB dragTermC sourceMass HPMSVtypelD (FK) 7K DrveScheduleAssoc DriveSchedule sourceTypelC roadTypelD ( is Ramp driveSchedul ) (FK) | driveSchedulelD -Kl _ , =in fFKI driveScheduleName -- RoadTv 7K DriveScheduleSecond driveScheduelD(FK) "| second 1 speed 1 _c AvqSpeedDis pe sourceTvoe roadTypelD | roadTypeJD roadD rampF ^^^^H C Link ~*c.. 1 -"• avgSpeedB tribution D (FK) "| (FK) 1 FK) 1 nID (FK) | ^•••J avgSpeedFraction 1 -£ avgSpeedBinID 1 avgBinSpeed 1 avgSpeedBinDesc 1 linkID county ID (F zonelD (FK roadTypelD linkLength linkVolume grade K) (FK) OperatinqMode opModelD opModeName VSPLower VSPUpper speed Lower speed Upper brakeRatelSec brakeRateSSec i OpModePol DrocAssc polProcessID (FK) opModelD (FK) Oj s h PI-1 UK P o o o C 1 I C! C DModeDistributic n ourceTypelD (FK) ourDaylD (FK) nkID (FK) olProcessID (FK) pModelD (FK) oModeFraction oModeFractionCV AvgSpeedBin, AvgSpeedDistribution , SourceUseType, and RoadType have already been described. DriveSchedule is essentially a category table which defines the set of driving schedules, segments of typical vehicle operation, used by the model. There is a single record in this table for each driving schedule which contains information about the schedule as a whole. The average speed attribute is used as a data item. DriveScheduleSecond is an information table that contains the actual second by second speed data for each driving schedule, one record for each second. Schedules are considered to start at second = 0. There may be gaps in the second-by-second information. Such gaps divide the schedule into "snippets." 107 ------- DriveScheduleAssoc is an association table that associates a driving schedule with a combination of sourceTypelD, roadTypelD, and an indication as to whether or not the schedule represents operation on freeway ramps. Link is essentially a category table that establishes the linkID values used in the database and relates Links to Counties, Zones, and RoadTypes. Its linkLength and linkVolume fields are not used in MOVES2004. Its grade field is used by the OMDG's calculation of vehicle specific power (VSP), but the value of grade is 0.0 in the default database supplied with the model. OperatingMode is a category table that establishes the opModelDs used in the database. It is also an information table whose data fields are used by the OMDG. OpModePolProcAssoc is an association table that associates operating modes with pollutant-process combinations, (which are themselves an association of a pollutant and an emission process). The "starting" operating mode for example is associated only with pollutant-processes which include the "start" emissions process. OpModeDistribution is a CMIT information table used to store the operating mode distributions calculated by the OMDG. The fact that it is a CMIT table means that operating mode distributions can also be entered directly into this table. 11.5. Tables related to the SourceBinDistributionGenerator (SBDG) and the Alternative Vehicle and Fuel Technology (AVFT) Strategy: Figure 11-3 illustrates the group of tables most directly related to the SBDG and the relationships between them. The additional table used by the AVFT Strategy is also included in this group because of its close relationship to the SBDG. The complexity of the diagram reflects the demanding role that this portion of the database plays. This is where the source use type activity information (generally collected in terms of categories which differ from those which classify emission rates) is put into a form which can be related to the emission rate information. Additional complexity is caused by the necessity of having the SourceBin table to reduce the multiplicity of key table fields and to reduce database size. It should be noted that the MOVES2004 database schema allows some source bin discriminating factors such as RegulatoryClass, EngineSize, etc., to assume a null value. Figure 11-3. Tables related to SBDG and AVFT Strategy. 108 ------- Pollutant ProcessAssoc SourceUseType polProcessID | processID (F pollutantID (F K\ I K, | Emission Process_ | processID SourceTypePol Process F Fuel Eng Fraction s ourceTypeMod el Yearl D (FK) fijelTypelD (FK) engTechID (FK) fij el Eng Fraction Reg Class Fraction s ourceTypeMod el Yearl D (FK) fijelTypelD (FK) engTechID (FK) regClassID (FK) regCI ass Fraction I fijelTypelD fijelTypeDesc mgTechlD engTechName FuelEngTechAssoc sourceTypelD (FK) fijelTypelD (FK) engTechID (FK) regClassID regClassName regClassDesc PollutantProcessModelYear polProcessID (FK) modelYearlD (FK) modelYearGroupID (FK) SizeWeiqht Fraction s ourceTypeMod el Yearl D (FK) fijelTypelD (FK) engTechID (FK) engSizelD (FK) weightClassID (FK) sizeWeightFraction ModelYearGroup modelYearGroupID shortModYrGroupID modelYearGroupNam engSizelD engSizeName weightClassID weightClassName t _ . Sou rceBin Distribution category category DisplayOrder s ourceTypeMod el Yearl D (FK) . polProcessID (FK) F^ sourceBinID (FK) sourceBinActiyty Fraction sourceBinActiytyFractionCV SourceUseType has been discussed in previous sections. Pollutant is essentially a category table that establishes the pollutantID values used in the database. It also identifies whether the pollutant is a "mass" or an "energy" type emission. The globalWarmingPotential field is not currently used. EmissionProcess is a category table that establishes the processID values used in the database. PollutantProcessAssoc is an association table that establishes which pollutants will be modeled for each emission process. SourceTypePolProcess plays a fundamental role in the SBDG. First it establishes which PollutantProcesses require source bin distributions. (In this sense it functions as an association type table.) The total energy - running pollutant-process, for example, requires source bin distributions, but the total energy - well-to-pump pollutant-process does not because well-to-pump emissions are derived from the emissions of other processes. 109 ------- Then for each combination of sourceBinID and PollutantProcess requiring source bin distributions, the fields of this table establish whether or not engine size and vehicle weight, regulatory class, and model year group are used to discriminate source bins. (In this role it functions as an information type table.) Engine size and vehicle weight are either both used or both not used since they are highly correlated. Fuel type and engine technology are used in all source bin distributions. Source Bin Discriminators. Several tables serve to establish the categories used to form source bins. These are referred to in this document as "source bin discriminators." Their categories need not be mutually exclusive, though of course the set of categories used in each particular source bin distribution must be. Some discriminators are allowed to assume a value meaning "doesn't matter." These characteristics make the information in these tables useless for most purposes other than generating source bin distributions. FuelType establishes the set of fuelTypelDs used in the database. Fuel Types are used in several areas of the model besides the SBDG. fuelTypelD is used in all source bin distributions. EngineTech establishes the set of engTechID values used in the database. engineTechID is used in all source bin distributions. RegulatoryClass establishes the set of regClassID values used in the database. Whether RegulatoryClass is used in a source bin distribution is governed by the "isRegClassReqd" field of the SourceTypePolProcess table. EngineSize establishes the set of engSizelD values used in the database. Whether engSizelD is used in a sourceBinDistribution is governed by the "isSizeWeightReqd" field of the SourceTypePolProcess table. WeightClass establishes the set of weightClassID values used in the database. Whether weightClassID is used in a sourceBinDistribution is also governed by the "isSizeWeightReqd" field of the SourceTypePolProcess table. ModelYearGroup establishes the set of model YearGroupID values used in the database. Whether it is used in a sourceBinDistribution is governed by the "isMYGroupReqd" field of the SourceTypePolProcess table. ModelYear is a category table that established the set of model YearlDs used in the database. SourceTypeModelYear serves in the SBDG merely to establish a single key field, sourceTypeModelYearlD, that can be used in other tables in place of both sourceTypelD and model YearlD, thereby reducing the number of key fields needed in several of the other tables. Its fields related to air conditioning are used as information items by the core model. 110 ------- FuelEngFraction is a distribution information table used by the SBDG to construct source bin distributions. It contains distributions of each relevant sourceTypeModelYearlD by fuelType and EngineTech. RegClassFraction is also a distribution information table used by the SBDG. It further distributes elements of FuelEngFraction distributions by Regulatory Class. SizeWeightFraction is also a distribution information table used by the SBDG. It further distributes elements of FuelEngFraction distributions by engineSize and weightClass. PollutantProcessModelYear plays an associative role between three entities: PollutantProcesses (which themselves are an association), ModelYears, and ModelYearGroups. Intuitively one would expect ModelYears to simply be grouped into ModelYearGroups. The situation is more complex however as reflected by this table. ModelYearGroup membership is allowed to vary by PollutantProcess. The "shortModYearGroupID" field of this table plays an internal role in the creation of sourceBinID values and would not normally be an end user concern. SourceBin is a CMIT table which can be produced in whole or in part by the SBDG. As mentioned previously, it is the only CMIT in the MOVES database that is not an information type table. The fact that sourceBin categories can be created dynamically during model execution is probably the most complicated aspect of the MOVES data structure. SourceBin contains a list of sourceBinlDs used in sourceBinDistributions. It can also be considered to establish an association between the six Source Bin Discriminators, establishing in effect which combinations are used in the model run. Like other CMITs it can be populated directly or by a generator, in this case by the SBDG. In the MOVESDefault database distributed with the model, it contains the set of sourceBinlDs that result from running the SBDG on the default input data. SourceBinDistribution is a CMIT information table used to store the sourceBin distributions calculated by the SBDG. The fact that it is a CMIT table means that sourcebin distributions can also be entered directly into this table. The distributed version of the MOVESDefault database relies on the SBDG to generate all sourceBin distributions. FuelEngTechAssoc is essentially an association type table used by the AVFT Strategy. It establishes the combinations of fuelTypelD and engTechID that are valid for each sourceTypelD. Its information fields are used by the AVFT to help display these combinations in the MOVES GUI. Ill ------- 11.6. Tables Related to the MOVES Core Model The MOVES Core Model consists of several MOVES "Calculators" which produce emission results for portions of the model run using the MOVESExecution database once "Strategies" and "Generators" have executed for these portions of the model run. Figure 11-4 shows the MOVES Database tables used by the MOVES Core Model. While the core model input tables produced by the Generators provide their principal input, the EmissionCalculators also utilize a variety of additional information from throughout the database. So the group of tables related to the Core Model does not all fit into a structure. Several of the tables in this group pertain to vehicle fuels and the supply of fuel available in a geographic location (County). The original MOVES design envisioned that a Fuel Supply Generator program would be part of MOVES, but this has proven unnecessary in MOVES2004. Several other tables in this group are used to produce output in terms of 144 Source Classification Codes (SCCs) which pertain to highway vehicles. Figure 11-4. Tables used by MOVES Core Model 112 ------- SourceBinDistribution sourceTypeModelYearlD ( polProcessID (FK) sourceBinID (FK) -|Xi \ SourceTypeMc delYear 1 sourceTypeModelYearlD 1 modelYearlD ( sourceBmActivityhraction PM source lypeiu sourceBinActivityFractionCV 1 ACPenetratior E 3 HO hourDaylD (FK) monthID (FK) yearlD (FK) agelD (FK) linkID (FK) SHO SHOCV d stance SCCVTypeDistrit SCCVType snurreTypeMnr SCCVtypelD fuelTypelD (FK) - snnvtypo|D(F MOBILE6SCCVtypeDesc SCCVTypeFrac t 1 Starts scc ' hourDaylD (FK) monthID (FK) yearlD (FK) agelD (FK) zonelD (FK) sourceTypelD (FK) starts startsCV SCC roadTypelD (FK) SCCVtypelD (FK) SCCProcID (FK) xtendedldleHours sourceTypelD (FK) hourDaylD (FK) monthID (FK) yearlD (FK) agelD (FK) zonelD (FK) extendedldleHours extendedldleHoursCV DpModeDistribution sourceTypelD (FK) hourDaylD (FK) linkID (FK) polProcessID (FK) opModelD (FK) opModeFraction opModeFractionCV ZoneMonthHour monthID (FK) zonelD (FK) hourlD (FK) temperature temperatureCV relHumidity heatlndex heatlndexCV SourceTypeAge FK) (FK) Fraction FractionCV ution elYearlD (FK) "| <) 1 ion 1 ionCV 1 agelD (FK) FuelAdiustment survivalRate sourceTy relatiwMAR fuelSubty ssID (FK) | pelD(FK) 1 pelD(FK) Ip ftmctioningACFractionCV luelAdjustment 1 1 ^^^^^^^^^^^^^ SielArtjnstmentnV 1 County FullACAdiustment countylD sourceType statelD (FK) opModelD ( D (FK) ^ D (FK) 1 FK) 1 monthGroupID CL A\ FuelSupply countylD (FK) yearlD (FK) monthGroupID (FK) fuelSubtypelD (FK) markets hare markets hareCV Fuel Subtype fuelSubtypelD 1 fuelTypelD (FK) fuelSubtypeDesc |_ fuelSubtypePetroleumFraction fuelSubtypePetroleumFractionCV fuelSubtypeFossilFraction fuelSubtypeFoss IFractionCV carbonContent ox dationFraction carbonContentCV oxidationFractionCV altitude fijIIACAdjustment 1 IMOBDAdiustment sourceTypelD (FK) countylD (FK) TemperatureAdiustment yearlD (FK) sourceTypelD (FK) agelD(FK) polProcessID (FK) fuelTypelD(FK) fuelTypelD (FK) IMOBDAdjustment tempAdiust IMOBDAdjustmentCV _ tempAdjust tempAdjust tempAdjust DataSource (tempAdjust dataSourceld Author Date Jft- Sponsor Documentld QualityLevel sourceBinID (FK) polProcessID (FK) - — -OH opModelD (FK) meanBaseRate meanBaseRateCV dataSourceld (FK) fermA FermACV "ermB FermBCV fermC FermCCV A GREETWellToPump yearlD (FK) i pollutantID (FK) 1 fuelSubtypelD (FK) 1 emissionRate 1 emissionRateUncertainty 1 The SHO, Starts, ExtendedldleHours, OperatingModeDistribution, and SourceBinDistribution CMIT tables have already been discussed. They are produced by various Generators and are read by the Core Model. 113 ------- FuelSubtype is a category table, which establishes the fuelSubtypelDs used in the MOVES Database. Every Fuel Subtype belongs to a FuelType. It is also an information table that contains data items pertaining to these fuelSubtypes. MonthGroupOfAnyYear is a category table that establishes the monthGroupIDs used in the MOVESDatabase. EPA originally envisioned that groups of months (or seasons) would be used along with calendar years to characterize the time periods pertaining to the fuel supply. However, in the default database distributed with MOVES2004, month groups are the same as the individual months, because the fuel seasons are not sufficiently uniform across the nation. County is a category table that establishes the county IDs used in the MOVES Database. Each County belongs to a State, but countylDs are unique across the nation. This table is described in this section because fuel supply information is stored at the county level in MOVES2004. Its "altitude" field is not used in MOVES2004. FuelSupply is an information table containing data about the market share of FuelSubtypes within FuelType for each county in each historical year and month. These marketshare values should sum to unity, so they are in effect a distribution. If a distribution is not present in this table, then MOVES2004 assumes that the gasoline fuel supply consists entirely of "conventional" gasoline and that the diesel fuel supply consists entirely of "conventional" diesel fuel. FuelAdjustment is an information table containing multiplicative "fuelAdjustmentFactors" which are applied by the core model to the emission results for a pollutant process, source type, and fuelSubtype. A value of 1.0 represents no adjustment. IMOBDAdjustment is an information table containing multiplicative adjustment factors which are applied to the energy consumption emission results to simulate the effects OBD type IM inspection programs. If no value is found in this table a value of 1.0 (no effect) is assumed. SourceTypeModelYear was described previously in the context of the SBDG. It also functions as an information type table in the core model. It contains information as to what fraction of vehicles are equipped with air conditioning. SCCVtypeDistribution is an information type table which contains distribution information for each combination of sourceTypelD, modelYearlD, and fuelTypelD into the 12 vehicle types involved in the SCC category scheme. It is used by the core model to produce output broken down by SCC. SCCVtype is a category table which defines the 12 "SCCVtypelDs" involved in the SCC vehicle classification scheme. 114 ------- SCC is a category table which defines the 144 SCC codes used to classify highway vehicles. Each of these is a combination of one of the 12 HPMS road types with one of the 12 SCCVtypes. ZoneMonthHour is an information table which contains temperature and humidity information. A Meteorology Generator within MOVES2004 calculates the heatlndex values in this table. FullACAdjustment is an information table which contains ACAdjustment values. SourceTypeAge is an information table also discussed in the TAG section above. Its AC Fraction field is used by the Core Model. EmissionRate is the principal information table used by the core model. It contains emission rates for pollutant processes other than Well-to-Pump. DataSource is a supporting table, not actually used by the model that identifies the method used to derive each EmissionRate record. GREETWellToPump is an information table that contains the emission rates for the Well-to-pump process. A default set of values is supplied with the model. The GREET model may be used to update these rates, by running a GREET simulation as a "preprocessing" step, and generating an alternate input table with the same schema as GREETWellToPump. TemperatureAdjustment is an information table that contains multiplicative temperature adjustment values. ll.V.Miscellaneous Additional Tables Finally there are several tables in the MOVES database which play minor roles or which are intended for use in future versions of MOVES: State is a category table that defines the set of statelD values used in the database. SCCProcess helps the model construct SCC code values and need not concern users of the model. CountyYear associates all countylDs with all yearlDs. Grid, GridZoneAssoc, LinkAverageSpeed, LinkHourVMTFraction, and GREETManfAndDisposal are placeholders for future versions of MOVES, and are not used in MOVES2004. 115 ------- 12. MOVES2004 Output Databases The MOVES GUI/Master program reports the results of each simulation run in the MySQL database named in its run specification. The MOVES GUI may be used to create a new "empty" MOVES Output Database. There are several software options for working with these databases once they have been created. The most natural and powerful method is to use MySQL itself, either via its command line client, which is installed as part of the MySQL installation, or via the MySQL Control Center which is a graphical client program for MySQL. The command line client is invoked from a DOS window by entering the "mysql" command. The MySQL Control Center requires a separate installation, which is included on the MOVES2004 installation disk. MySQL databases can also be used from Microsoft FoxPro or MicroSoft ACCESS via an ODBC connection. Even Microsoft Excel can be used in this fashion if the database is small enough. Detailed instructions as to how to establish these ODBC connections can be found in Appendix B oftheMOVES2004 User Guide. The results of multiple runs may be stored in the same database and are identified by MOVESRunlD. This database consists of four tables as shown in Figure 12-1. 116 ------- Figure 12-1. Tables in Output Database MOVESRun MOVESError MOVESRunID: SMALLINT outputTimePeriod: CHAR(5) timeUnits: CHAR(5) distanceUnits: CHAR(5) massUnits: CHAR(5) energyUnits: CHAR(5) runSpecFileName: CHAR(255) runDateTime: DATETIME HCExpressAs: CHAR(6) scale: CHAR(5) II l\ MOVESActivityOutput MOVESActivityOutputRowlD: INTEGER MOVESRunID: SMALLINT yearlD: SMALLINT monthID: SMALLINT daylD: SMALLINT hourlD: SMALLINT statelD: SMALLINT countylD: INTEGER zonelD: INTEGER linkID: INTEGER sourceTypelD: SMALLINT fuelTypelD: SMALLINT modelYearlD: INTEGER roadTypelD: SMALLINT SCC:CHAR(10) distance: FLOAT MOVESErrorlD: INTEGER MOVESRunID: SMALLINT yearlD: SMALLINT monthID: SMALLINT daylD: SMALLINT hourlD: SMALLINT statelD: SMALLINT countylD: INTEGER zonelD: INTEGER linkID: INTEGER pollutantID: SMALLINT processID: SMALLINT errorMessage: CHAR(255) MOVESOutput 7t\ MOVESOutputRowlD: INTEGER MOVESRunID: SMALLINT iterationID: SMALLINT yearlD: SMALLINT monthID: SMALLINT daylD: SMALLINT hourlD: SMALLINT statelD: SMALLINT countylD: INTEGER zonelD: INTEGER linkID: INTEGER pollutantID: SMALLINT processID: SMALLINT sourceTypelD: SMALLINT fuelTypelD: SMALLINT modelYearlD: INTEGER roadTypelD: SMALLINT SCC:CHAR(10) emissionQuant: FLOAT emissionQuantVar: FLOAT 12.1. MOVESRun Table The MOVESRun Table contains information that pertains to the model run as a whole. 117 ------- The MOVESRunID field contains a number identifying the model run. A single record is written into this table for each run. The first run whose results are stored in this database is assigned run number 1, and the number is incremented for any subsequent runs. The outputTimePeriod field indicates the time period (Hour, Day, Month, or Year) for this run. This is a MOVES GUI selection. The four Units fields, indicate the engineering units used to express time, distance, mass, and energy results for this run. These are MOVESGUI selections. The runSpecFileName field contains the file name (not including path) of the RunSpecification upon which this run was based. Warning: the contents of this file may have changed since the run was performed. The runDateTime field contains the date and time the run began. The HCExpressAs field is not used in MOVES2004 and always contains NULL. (Its eventual purpose will be to indicate the hydrocarbon emission expression basis (e.g. total hydrocarbons (THC), volatile organic compounds (VOC), etc.) once estimation of gaseous hydrocarbon emissions is added to the model. The scale field indicates the modeling scale applicable to the run. In MOVES2004 this field always contains the value "MACRO." 12.2. MOVESError Table This table contains a record for each error message generated during runs for which this is the output database. Internally MOVES2004 has several levels of error messages. Currently "warning-level" and "error level" messages are written to this file, and "informational level" messages are not. The MOVESErrorlD field identifies the error message record. It serves as a key field for this table, but its value is not meaningful to the user. As in the other MOVES Output Database tables, the MOVESRunID field identifies the model run during which the error occurred. The errorMessage field contains the text of the error or warning level message. The other fields in this table were intended to identify the portion of the model run that experienced the error, but are seldom if ever used. 12.3. The MOVESActivityOutput and MOVESOutput Tables These two tables contain the substantive results of each model run. Both tables are described in this section since they have many fields in common. The MOVESActivityOutput table is used to report activity-related information which is not specific to an emission process or pollutant. Distance traveled is the only such result produced by MOVES2004. (Future versions of the model may add fields to the 118 ------- MOVESActivityOutput table to report items such as number of starts, number of extended idle hours, etc.) The MOVESOutputTable is used to report the pollutant emission results, including energy consumption. The fields of these tables function as follows: The MOVESActivitvOutputRowID and MOVESOutputRowId fields serve to uniquely identify rows in each table, but their values are not meaningful to users. The MOVESRunID identifies the model run that produced each output record. The iterationID field (present only in MOVES Output) is not used in the initial version of MOVES2004 and always contains the value of 1. It is intended to support estimation of the uncertainty of model results via Monte Carlo statistical methods in future versions. EPA's plans to add uncertainty to this model are discussed in section 9.18. The yearlD field identifies the calendar year to which the output record pertains. The Year table in the MOVESDefault database defines its legal values. The distributed version of MOVESDefault is intended to support calendar years 1999 thru 2050. The monthID field identifies the month of the year (if any) to which the output record pertains. Its legal values are defined by the MonthOfAnyYear table in the MOVESDefault database and are 1 thru 12 in the distributed version. A null or zero value indicates that the record pertains to all months of the year that were included in the run specification. The daylD field identifies the day of the week (if any) to which the output record pertains. Its legal values are defined by the DayOfAnyWeek table in the MOVESDefault database and are 1 (Monday) thru 7 (Sunday) in the distributed version. A null or zero value indicates that the record pertains to all days of the week that were included in the run specification. The hourlD field identifies the hour of the day (if any) to which the output record pertains. Its legal values are defined by the HourOfAnyDay table in the MOVESDefault database and are 1 thru 24 in the distributed version (where hour number 1 begins at midnight). A null or zero value indicates that the record pertains to all hours of the day that were included in the run specification. The statelD field identifies the state (if any) to which the output record pertains. Its legal values are defined by the State table in the MOVESDefault database and are based on the FIPS state codes in the distributed version. A null or zero value indicates that the record pertains to all states in the modeling domain (normally the nation) that were included in the run specification. The county ID field identifies the county to which the output record pertains. Its legal values are defined by the County table in the MOVESDefault database and are based on the FIPS state and FIPS county codes in the distributed version. Note that the county identifications do not rely upon the State table to be unique across the modeling domain. A null or zero value indicates that the record pertains to all counties in the state, (or if state is also zero or null the entire modeling domain) that 119 ------- were included in the run specification. When certain computational shortcuts are taken, as described in the GUI help screens, values of County ID based only on the FIPS states codes are also used to represent entire states. The zonelD field is based on the county ID in MOVES2004 and provides no additional information. The linkID field identifies the link (if any) to which the output record pertains. Its legal values are defined by the Link table in the MOVESDefault database and are based on the FIPS state and FIPS county codes and road type classifications in the distributed version. A null or zero value indicates that the record pertains to all links in the county, that were included in the run specification. (In MOVES2004 this corresponds to all road types in the county that were included in the run specification.) The sourceTypelD field numerically identifies the source use type (if any) to which the output record pertains. Its legal values are defined by the SourceUseType table in the MOVESDefault database. In the distributed default version these are: 11 Motorcycle 21 Passenger Car 31 Passenger Truck 32 Light Commercial Truck 41 Intercity Bus 42 Transit Bus 43 School Bus 51 Refuse Truck 52 Single Unit Short-haul Truck 53 Single Unit Long-haul Truck 54 Motor Home 61 Combination Short-haul Truck 62 Combination Long-haul Truck A null value indicates that the output record does not pertain to a particular SourceUseType. (Either the user has selected to report by Source Classification Code (SCC) instead, or not to distinguish the results by any vehicle classification.) The SCC field identifies the Source Classification Code (if any) to which the output record pertains. Its legal values are defined by the SCC table in the MOVESDefault database. A null value indicates that the output record does not pertain to a particular SCC. (Either the user has selected to report by Source Use type instead, which is recommended, or not to distinguish the results by any vehicle classification.) The fuelTypelD field numerically identifies the top-level fuel type (if any) to which the output record pertains. A null value indicates that the record pertains to all fuel types. Whether results are to be distinguished by fuel type is a GUI selection and is included in the run specification. The legal values of fuelTypelD are defined by the FuelType table in the MOVESDefault database. In the distributed default version these are: 120 ------- 1 Gasoline 2 Diesel Fuel 3 Compressed Natural Gas (CNG) 4 Liquid Propane Gas (LPG) 5 Ethanol (E85 or E95) 6 Methanol (M85 or M95) 7 Gaseous Hydrogen 8 Liquid Hydrogen 9 Electricity The modelYearlD field identifies the model year (if any) to which the output record pertains. A null value indicates that the record pertains to all model years. Whether results are to be distinguished by model year is a GUI selection and is included in the run specification. The roadTypelD field identifies the road type (if any) to which the output record pertains. The legal values of this field are defined by the RoadType table in the MOVESDefault database. In the distributed version there are 12 roadtypes corresponding to the 12 HPMS roadway classifications, plus a thirteenth RoadType representing off network locations. 1 Off-Network 11 Rural Interstate 13 Rural Principal Arterial 15 Rural Minor Arterial 17 Rural Major Collector 19 Rural Minor Collector 21 Rural Local 23 Urban Interstate 25 Urban Freeway/Expressway 27 Urban Principal Arterial 29 Urban Minor Arterial 31 Urban Collector 33 Urban Local MOVES2004 associates start, extended idle, and well-to-pump emissions with RoadType 1 and running emissions with the 12 HPMS roadway classifications. A null value of roadTypelD indicates that the results pertain to all roadway types. Whether to distinguish results by roadTypelD is a GUI selection that is included in the run specification. Outputting results by SCC implies that RoadTypes must be distinguished. The pollutantID field numerically identifies the pollutant to which the output record pertains. It is present only in the MOVESOutput table. Results are always distinguished by pollutant. The Pollutant table in the MOVESDefault database 121 ------- defines the legal values of pollutantlD. In the distributed default version they are as follows: 5 Methane (CH4) 6 Nitrous Oxide (N20) 90 Reserved for Atmospheric Carbon Dioxide (CO2) (not operative in initial version 91 Total Energy Consumption 92 Petroleum Energy Consumption 93 Fossil Energy Consumption 98 Reserved for CO2 Equivalent (Not operative in initial version). The processID field numerically identifies the emission process (if any) to which the output record pertains. It is present only in the MOVESOutputTable. The EmissionProcess table in the MOVESDefault database defines the legal values for processID. In the distributed version these are: 1 Running Exhaust 2 Start Exhaust 90 Extended Idle Exhaust 99 Well-to-Pump A null value in this field indicates that the result record pertains to all emission processes. Whether to distinguish results by emission process is a GUI selection that is contained in the run specification. The emissionOuant field is present only in the MOVESOutput table and contains the quantity of emissions of the given pollutant as qualified by all the other identifying fields. Engineering units for mass type pollutants may be in terms of kilograms, grams, pounds, or U.S. tons as selected in the GUI, contained in the run specification and output in the MOVESRun table. Engineering units for energy consumption results may be in terms of Joules or millions of BTU's as selected in the GUI, contained in the run specification, and output in the MOVERun table. The emissionOuantVar field is present only in the MOVESOutput table and is not used in the initial release of MOVES2004 and always contains a zero value. It is intended for use in future versions of the model to contain an uncertainty estimate of the emissionQuant field value expressed as a variance. The distance field is present only in the MOVESActivityOutput table and contains the distance traveled as qualified by all the other identifying fields. Its engineering units may be miles or kilometers as selected in the GUI, contained in the run specification,and output in the MOVESRun table. 122 ------- Appendix I. EPA Response to Stakeholder and Peer Review Comments on Draft Design and Implementation Plan for MOVES pertaining to the MOVES Functional Design In the fall of 2002 EPA published the pre-cursor to this document, "Draft Design and Implementation Plan for EPA's Multi-Scale Motor Vehicle & Equipment Emission System (MOVES)"". This report subsequently underwent two paths of review: public review, in which comments were solicited from model stakeholders, and independent formal peer review, in which comments were solicited from peer reviewers paid by the Agency according to Agency peer review guidelines. This appendix provides a summary of those written comments received as a result of both review paths that pertain to the functional design of MOVES . The commenter of a specific comment is identified in parentheses, identified according to the bolded designation in the list below. Each comment number captures a unique sentiment, although variation on the general idea may have been submitted by several commenters as reflected in commenter identifications. Comments were received from the following parties: Public Review: • Alliance of Automobile Manufacturers (AAM) o Review prepared by Tom Darlington, AIR • Engine Manufacturer's Association (EMA) o Review prepared by Tom Darlington, AIR • David Roden, AECOM Consult o Review prepared for U. S. DOT with respect to MOVES design applicability to TRANSIMS • U.S. DOT - FHWA • Peter McClintock, Applied Analysis o written comments in response to 11/2002 workshop • Wayne El son, EPA Region 10 • Donald Stedman, Professor, University of Denver • Natural Propane Gas Association / Propane Vehicle Council • Phyllis Jones, North Carolina DAQ Formal Peer Review: • Administered by Southwest Research Institute • Reviewers: o Marc Ross, Professor Emeritus, University of Michigan o Ted Russell, Professor, Georgia Tech 123 ------- o Michael Replogle, Transportation Director, Environmental Defense Comments related to the software design are discussed below. Scope of the Design 1. Comment: MOVES design is "remarkably flexible" and would be relatively easy to implement in many of the wide range of use cases (Ross). The multi-scale emission estimation architecture appears sound (Replogle). The model design is well thought out, provides a sufficiently broad range of use cases, and satisfies these use cases (Russell, McClintock). MOVES is highly compatible with the level of detail and focus of TRANSIMS (Roden). EPA Response: None required. 2. Comment: additional capabilities with regard to design are desired, as follows: a. Environmental justice evaluation (Replogle) b. Greater accommodation of use cases related to health effects and toxicity studies, e.g. modeling on 100 meter road segments or lane-specific information (Russell) c. Data visualization capability (Russell) d. Sketch modeling applications for transportation planning and traffic impacts, in collaboration with US DOT. Without this MOVES will be overly focused on policies related to vehicle technology and fuels (Replogle) e. "On-Road Microscale Inventory" scale to more explicitly accommodate TRANSIMS (Roden) f. Should explicitly include initial idle warmup emissions ad the effects of engine block heaters for cold climates (EPA Region 10, U.S. DOT) EPA Response: EPA feels that the MOVES design accommodates adding these capabilities, and certainly does not preclude any of them. MOVES output is broken down by geographic area, vehicle type, model year, vehicle age, etc. which could facilitate environmental justice evaluation. Its geographic links could be short road segments assuming that the user can supply information on that level. MOVES is designed functionally to accept the kinds of information produced by travel demand models, e.g. average speeds and link-specific vmt. Warmup emissions could be an emission process analogous to starting or extended idling implemented in MOVES2004. Actual implementation of these capabilities, however, which could be done by EPA or by other organizations, will depend upon demonstrated demand for them and some are bound to have higher priority than others. 3. Comment: model evaluation should be considered separately from model validation under the "model analysis" use case (Russell) 124 ------- EPA Response: Our primary focus has been on model validation, e.g. comparison to top-down fuel sales estimates, but expect that evaluation will become more of a focus as the model begins to be applied to specific use cases. 4. Comment: Not enough information is provided to know whether MOVES will interact with SMOKE adequately (Russell). EPA Response: While this capability is not implemented in MOVES2004 the design does anticipate interaction with SMOKE by providing the ability to produce emissions as the level of user-defined geographic grid cells. The model also supports post-processing scripts, which we would envision would be necessary to make the link with SMOKE. We expect to expand on this "placeholder" as we move ahead with the criteria pollutant version of the model. 5. Comment: it would be useful to have MOVES link to transportation modeling programs such as TransCAD, EMME2, TP+ (Replogle) and PAVE (Russell). EPA Response: EPA agrees, and has designed the model to enable this. EPA and DOT are considering a collaborative effort to ensure the MOVES design adequately considers the range of travel models available. We feel travel model linkage can be accomplished by the addition of data importers to MOVES. EPA is hopeful that other organizations will help produce importers for specific products. 6. Comment: Specific attention should be paid to the variety of use cases associated with modifying vehicle operation, such as traffic calming, mode choice, and congestion pricing (Replogle) EPA Response: EPA feels the design facilitates these types of analyis, e.g. by the addition of internal or external "control strategies". The specific use cases mentioned in this comment likely wouldn't be internal to MOVES, but would rely on outside tools to estimate the effect of such strategies on VMT, which would then be fed to MOVES. 7. Comment: More detail is necessary on how the design accounts for two important sources of emissions, cold starts and high emitters (Ross) EPA Response: Start emissions are included in MOVES2004 as a separate emission process, and will continue to be refined with future versions. High emitters are more pertinent to criteria pollutant emissions, and will be addressed as these are added to the model. 8. Comment: "low-end" users are adequately served; concern is with high-end users. Will MOVES allow for sub-link analysis, e.g. spatial scale below a link (50-100 meters) in a convenient way? (Russell) 125 ------- EPA Response: Yes; links can be defined in any way the user chooses, and could correspond to short road segments as long as the user can supply the information at that level. 9. Comment: What provisions are being designed in to identify errors and do quality assurance? (Russell) EPA Response: Most of these provisions are outside of the model itself and admittedly are not discussed in this design document. (The production of MOVES is being undertaken pursuant to a written Quality Assurance Plan, which is an internal EPA document.) In the development of MOVES, quality assurance procedures have taken place on many levels. With the software itself, the delivered product includes a set of Java class level unit tests based on JUnit, as well as a database consistency checking MySQL program that can be run on the MOVES default database and user input databases. EPA has also produced an automated suite of end-to-end tests that verify that over 100 specific variations in the input data have the expected effects on the results. The calculations have also been checked against separate "benchmark" calculations. Code updates are managed with the Concurrent Versions System (CVS) tool. Java source code is produced subject to a coding standard which includes Javadoc code commenting standards. The energy and emission data inputs have undergone additional quality checking, which are documented in "MOVES2004 Energy and Emission Inputs" Total Activity and Operating Mode Formulations 10. Comment: With regard to the mathematical formulation presented in the design plan, modeling capability would be improved by using explicit models to produce what are proposed as static inputs, such as VMT, vehicle population, vehicle speed, temporal allocation of VMT and source hours parked. In general a significant investment in transportation and activity models, including TRANSIMS - by EPA, DOT and other organizations - is needed to make full use of MOVES (Replogle). EPA Response: We agree with this in concept, and perhaps in future versions the scope of MOVES can increase to include these suggestions via the control strategy design feature. For now, however, we envision that MOVES could work in conjunction with external tools design to address these issues, as discussed in Comment 6. The potential that MOVES provides in terms of more refined transportation and activity estimates is very large. 11. Comment: Whether mileage accumulation rates vary with vehicle age warrants some research (Replogle) 126 ------- EPA Response: MOVES does allow for differences in mileage accumulation by age to be accounted for, and this is reflect in the default inputs (more details are available in "MOVES2004 Highway Vehicle Population and Activity Data" ) 12. Comment: Concern that the method proposed for determining VSP bins over 12 HPMS roadway types using average speed will fail to capture growth in recent years of higher traffic speeds, the shift from lower speed arterials to higher speed freeways, and the potential for further shifts in speed distribution within roadway types (Replogle). EPA Response: The VSP bin approach does not preclude accounting for these issue. If inputs of average speed and roadway VMT distribution are available to account for these shifts, MOVES will be able to account for them. 13. Comment: The user's ability to gather data on total activity should be relatively straightforward, but not so for operating modes. Operating modes may vary by region, calendar year and vehicle age, which would comprise the use of generic data derived from driving survey data (Ross). The distribution of activity by VSP bin should be validated using instrumented vehicle data (AAM, EMA) EPA Response: MOVES2004 will rely on default operating mode distributions derived from an estimate of national average survey data; as we continue to collect in-use driving survey data, these estimates will be refined. 14. Comment: The issue of aggregation across scales requires close attention to network specifications in mesoscale models and understanding the limitations of HPMS. This requires more attention from EPA and should be addressed as part of a larger strategy to integrate MOVES with TRANSIMS and other tools (Replogle). Should detail limitations of HPMS (U.S. DOT). Using the same modeling approach on all three scales could result in significant problems with the macroscale inventory (AAM, EMA). EPA Response: We acknowledge that MOVES20o4 would produce different results for the same area modeled at different scales. One reason for this is that, as mentioned in the comments, the activity data sources used at differing scales (i.e. HPMS and travel models) are not perfectly consistent. Another reason is that the difference between the scales comes down to aggregration levels, and different levels of input aggregation inherently lead to different results (this issue is not unique to MOVES). We expect that policy guidance will be needed to determine the appropriate scales to employ depending on the application and available data. 15. Comment: Since SHO is the key activity variable, the approach calculating SHO from speed and VMT should be verified (AAM, EMA). Concern with vehicle mileage/hours and speed and the degree to which these data will be produced satisfactorily especially for mesoscale operation (Replogle). 127 ------- EPA Response: SHO, speed and VMT are linked by the relationship SHO = VMT/speed. Many modeling frameworks, including MOBILE, use VMT and speed in conjunction with one another; the MOVES approach is another variation on this. In terms of mesoscale, we expect inputs to be generated by travel models which work with all three variables in producing link-based average speed. 16. Comment: In order to not "seriously shortchange" an important group of users, ensure that good and easy-to-use default information, or data generation capability, be available to relatively modest users at the mesoscale (Ross). Some users may be disheartened by the potential data requirements, but the establishment of national default data to fill some gaps addresses this concern (Replogle) EPA Response: While our hope is to minimize the burden on finer-scale users, some data input will be required at these levels. Many of the default level inputs developed in MOVES2004 for macroscale can be applied to the mesoscale and microscale as well, with the exception of link-level speed and VMT. These inputs are location-specific, and we are not planning on developing default link-level inputs for the entire nation. 17. Comment: More information is needed on how users would supply local travel activity data and road grade, and how it would be translated into a useable form in the model (U.S. DOT). Assuming a default grade of zero would be problematic (Replogle) EPA Response: Grade comes into the model as a term in the vehicle specific power (VSP) equation, and can be entered into the model at the link level (with users defining what a link is). As a default case for MOVES2004 it is assumed to be zero - we have yet to work out a satisfactory method to account for grade at the macroscale. Even for mesoscale or microscale applications reliable grade data might be hard to find, or may require extensive processing of GIS and/or elevation data to develop link level grade inputs for MOVES. MOBILE has long been criticized for not accounting for road grade; MOVES had therefore been designed to include it if available, but this doesn't make the data any easier to find. Zero grade can always be assumed. 18. Comment: Does EPA intend to develop new driving cycles representing intersection activity? (U.S. DOT) EPA Response: MOVES2004 includes new driving cycles for medium and heavy-duty vehicles, and some new cycles for high-speed light-duty operation. Intersection activity is inherently accounted for in the non-freeway cycles for all vehicles, but new cycles specifically representing intersection activity have not been developed. This could be considered if this was an important priority for MOVES users. 128 ------- 19. Comment: Does EPA intend to develop a companion intersection dispersion model to replace CAL3QHC, or re-validate CAL3 using MOVES? (U.S. DOT) EPA Response: The development of dispersion models is outside the scope of MOVES and is not part of the MOVES development plan, but when microscale applications are addressed we will investigate the latest developments in dispersion models and consider how MOVES can work with them. County Database 20. Comment: Concept of a "County Default Database" is supported, including emissions. Additional breakdowns may be required in Alaska; Tribal Default Database should also be considered (EPA Region 10) EPA Response: This is possible in the MOVES design framework, but would require additional consultation with stakeholders to move ahead with. Input/Output/Model Operation 21. Comment: MOVES should allow more sophisticated users to bypass the GUI (Russell) EPA Response: MOVES2004 does include a Command Line Interface which allows the user to completely bypass the GUI. Run specification information is stored in an XML format which can be modified (or even produced) without using the GUI. 22. Comment: It would be useful to archive calculations for efficiency, e.g. location- specific I/M results (Russell) EPA Response: We would have to understand better what calculations users would be interested in seeing, and in what format. 23. Comment: MOVES should be designed to run on operating systems other than Windows, e.g. LINUX (Russell) EPA Response: MOVES is designed to be platform independent. Its generic functional design is implemented with the Java programming language and MySQL and requires only shared file services to operate over a computer network. These tools were selected in part because of their high degree of platform independence. The Java programming language is designed to execute on any platform for which a 'Java Virtual Machine' is available which includes UNIX, LINUX, Macintosh, etc. The MySQL database management software is written in C++ and is also available on many platforms including UNIX and 129 ------- LINUX. EPA has only implemented and tested MOVES2004 on the WINDOWS platform, but it should be feasible for others to port MOVES to other platforms if desired. 24. Comment: Include a fast-run feature that requires few if any inputs and bypasses the standard screens (EPA Region 10) EPA Response: The MOVES Graphical User Interface does not require the user to visit any particular screens. An existing run specification can be loaded, run as is, or run with as few changes as desired. The MOVES Command Line interface can also be used to run MOVES directly from the command line, or via another computer program, without using the Graphical User Interface at all. 25. Comment: Results should be available in various forms to help understand results, such as ratios of emissions to fuel or by model year group (Ross) EPA Response: Because so many different result forms are likely to be needed, MOVES produces its "raw" results a single, very general database form. These raw results can be very detailed, or, for considerations of data size and model performance, they can already have been aggregated by the model to various levels. (Over 100 variations are possible.) An easily extensible set of post - processing MySQL scripts, several of which are included in MOVES2004, can then be used to summarize the results in whatever particular way is desired. If the set of result information is small enough one of these provides for the results to be exported to a spreadsheet format. 130 ------- Appendix II. Pre-Publication Peer Review Comments and EPA Response An earlier draft version of this MOVES2004 Software Design and Reference Manual, dated September 8, 2004, was reviewed by Armistead Russell, the Georgia Power Professor of Environmental Engineering of the Georgia Institute of Technology's School of Civil and Environmental Engineering. This review was conducted pursuant to EPA peer review process. Changes made to produce this version, which is still a draft, have been made primarily in response to this review. Professor Russell's comments, interspersed with EPA's responses, form the remainder of this Appendix. Review of MOVES2004 Software Design Document (and initial implementation of the MOVES2004 Software) Armistead G. Russell MOVES2004 is the first substantiation of EPA's next generation mobile source emissions inventory system, limited currently to applications involving fuel use and greenhouse gas generation. Capabilities for providing emissions of pollutants important to other air quality issues are forthcoming. This review of the present system is from the perspective of a principle investigator (PI) leading a group who will likely use the software for studying greenhouse gas, particulate matter (PM), ozone and carbon monoxide (CO) issues. A major thrust of our work is to assess how future control strategies will impact air quality and uncertainties associated with the air quality modeling process. Ultimate applications of the research are typically in the science, health and policy areas (roughly in that order). We currently use MOBILE in our applications. In conducting this review, I first read through the Software Design and Reference Manual (SDRM) document for content, then loaded and "tested" the software, and then went through the SDRM to make editorial suggestions/corrections and further understanding. The final step of the review was drafting this document. As initial comment, the "testing" of the software was limited to (attempted and successful) installation and running of two cases. This review does not constitute a test of the software, itself. As an immediate impression of the SDRM, at times it was, a relatively easy read providing a solid feel for the software and its design. At other times, the SDRM was awkward and much more difficult to parse, greatly slowing down the review process. 131 ------- There were inconsistencies in the use of names (capitalization, spaces, etc.). Fonts changed (which may sound like a trite problem, but is not the case with such a document, as it can lead to issues when a 1 or 1 (a "one" or "el"), or o or 0 is used. (In one font that was used, a zero looked like an "oh.") In some of the mathematical equations, the change of style was bothersome as it conveyed that there might be a different meaning or importance. These are issues that need to be dealt with in the next round. EPA Response: Most of these inconsistencies in the capitalization and spacing of names, and font changes have been corrected. A section explaining the naming scheme the document tries to use has been added at the beginning of the document. The SDRM describes a system that appears to have significant flexibility for future use for mobile source inventory development. The system breaks down the process into relatively small pieces of the calculation, such that as the practice of mobile source modeling evolves, the software is capable of evolving as well, and will be able to capture those changes with relatively small amounts of effort. The software is based upon MySQL, which enjoys a wide availability and use. This avoids some of the current problems with MOBILE, which is based on a more primitive language. Though this brings up a performance issue. My view is that performance is not a key problem at this point for two primary reasons. First, as designed, MOVES can be applied on multiple processors (though I did not test this feature, instead only applying it in the single processor mode). Second, processor speed will continue to improve, reducing those issues. On the contrary, it does impact the ability to do detailed uncertainty analysis, particularly given when the approach to uncertainty analysis is being planned (more on that issue later). We do not find running MOBILE to be a major issue from a computational speed viewpoint, but it is an issue in terms of ease of use, particularly when doing something non-standard. EPA response: model performance had been improved in the version loaned to this reviewer relative to earlier versions used internally by EPA and for "beta testing". EPA still feels that further improvements would be highly desirable, but further improvement is not apt to be possible for the initial release of MOVES2004. A few structural improvements in the SDRM are in order. First, the title page should have the report authors, along with any other necessary EPA contact information. The software designers should be directly acknowledged either on the title page or inside near the front. Next, the SDRM needs an abstract to give the reader an approximate view of what is to come. I would envision two to three pages. This should provide a top-level description of the system and what is (and is not) contained in the SDRM. Third, the SDRM could benefit greatly from a table of acronyms. This will, make reading the document more straightforward, and will make it so you are not left up in the air when you see an acronym in a table, when that acronym has yet to be defined in the text (also noted in my edited version are times to add acronyms to the tables, themselves). A final structural addition would be a text cut-out in the Introduction that describes the naming convention used, when capitalization, blanks, or concatenated words are used, when bold 132 ------- or italicizing are used, etc. This will help not only the reader, but the authors working through the manuscript as well. EPA Response: The title page has been expanded to list the report authors and other software designers Contact information will be given on the web page from which the document is downloaded. While not producing a separate abstract, the document introduction has been rewritten and expanded to provide the information suggested. Another document, the "Road Map to MOVES2004" will be produced explaining the role of each MOVES2004 document including this one. A table of acronyms has been added as Appendix III. A section has been added immediately following the title page explaining the naming conventions used. In the SDRM, it would be beneficial to include a cut-out box to discuss the use of MySQL vs. Access or other database system, what ODBC is and does, etc. This would be written for the user with some familiarity with Access (or another system to help them decide what would be involved, and how to proceed further. It might also help newer users understand why one might want to go to the next step. For example, we use Access in our emission inventory processing, and if what would be involved in linking MOVES2004 with access, was better understood, linking MOVES2004 with Access might be my choice. EPA Response: A section explaining how to use Microsoft ACCESS via Open Database Connectivity (ODBC) has been added to the MOVES2004 User Guide and a reference to the relevant section of that document added. The SDRM does not provide enough information about how it will link with SMOKE and PAVE. Given the widespread and growing use of SMOKE, this is a shortcoming. Even if this is a feature that is planned, but not yet there, a section discussing this future capability is needed. I realize that this is not so important for the first substantiation of MOVES for greenhouse gases, but it would still have uses in that regard. For one, if one were to use fuel-based emissions inventorying procedures to estimate VOCs, CO and NOx, this might be of interest. (Though, that brings up a whole new set of issues.) Also, if it works well with SMOKE, then that can ease its use with PAVE. Likewise, PAVE is widely used in the air quality community, and the ability to directly use PAVE with MOVES2004, or at least have the SDRM discuss how this might be done. In the future, this should be a supported capability. EPA Response: This is indeed a feature that is "planned, but not yet included". Consideration has been given in the design to how grid cells are related to the geographic entities in MOVES We do not think that interfacing MOVES to gridded air quality processing models such as SMOKE, will present major design difficulties. Overarching Concerns/Possible Limitations (that may be no problem, already captured, etc., but not fully described/covered by the SDRM) 133 ------- There were two major areas that, as noted in other areas of the review, may be limitations. First, it is not apparent how well the system captures the impact of hybrids. This, to me, is because the system currently uses a binning approach and VSP. The VSP- emissions/fuel use relationships were developed for conventional vehicles. It does not show up in the menu of fuels. It may never be a major player, but it is making a splash for now. EPA Response: From a database perspective hybrids show up in the list of engine technologies, rather than in the list of fuels, since hybrid vehicles will use the same fuels as conventional vehicles. It was indeed unclear in the draft document reviewed how emission rates for hybrid technology vehicles are developed. A component has been added to the model, the Future Emission Rate Creator (FERC) which EPA had used (as a separate component outside MOVES2004) to produce a default set of rates for hybrid technology vehicles, and which model users can use to model alternatives. This component has been added to the data flow diagram and discussion in Chapter 8, and a functional specification for it added to Chapter 10. This component, along with the Alternative Vehicle Fuels and Technologies (AVFT) Strategy component, which generates source bin distributions for future technology vehicles, can be used to estimate the impact of hybrids. A second concern is the ability to readily conduct sensitivity and uncertainty analysis. This is not part of the system, though it does have an iteration number that can be used when doing Monte Carlo (MC) analysis at a higher level. Apparently, one would develop a MC analysis routine, and exercise MOVES in individual calls as the parameters are varied. It is recommended to have the capability within MOVES since requiring users to build their own MC driver, develop the links, etc., might be beyond many individuals. One can then take more advantage of not having only information on the nominal data values, but uncertainties and sensitivities in the data structures as well. Further, it will likely reduce mistakes by others. Requiring the uncertainty information in the data structures will also lead to more attention being given, up front, to that need. Then, having that data will also facilitate the analyses. It is a win-win situation. There should also be an indication of the confidence one has in the uncertainty estimate. Being able to conduct the uncertainty analyses, as part of MOVES will require additional mathematical and computational capabilities, essentially paralleling the current MOVES steps. This would involve a traditional propagation of uncertainty calculation, assuming normality (which is probably fine for most analyses), and directly utilizing the sensitivities (which should also be propagated). Building in such a capability up front can make such a process more efficient than leaving this capability to be added at a later time. It can identify limitations in the current approach as well (though I have not noticed any). EPA Response: Section 18 has been added to Chapter 10 of this document describing the attempts EPA has made to date to incorporate estimation of uncertainty into MOVES2004, including fundamental problems encountered using the propogation of error method, and EPA's plans to estimate uncertainty via a simple monte carlo approach in a subsequent version. This would involve adding a 134 ------- looping level within the model as suggested. Uncertainties, but not sensitivities, would be stored in the database, the design of which already includes some of the fields necessary. Repeated use of the feature (which itself involves multiple model run iterations) would still be needed for the user to derive an "indication of the confidence one has in the uncertainty estimate." EPA expects that performance limitations will severely limit the scope of runs for which uncertainty estimation will be practical. As part of the review, we were asked to address specific aspects of MOVES2004 and the SDRM. These are covered below. Software Design In general, I am pleased with the apparent software design. It uses advanced, yet widely available, used and evolving, approaches, e.g., using MySQL and a good GUI. The system is modular, and breaks the operations down to a fine level of detail. This should allow the system to evolve relatively easily, as long as there are no radical changes in the approach. As I have more tangential knowledge of how others have approached the design of mobile source emissions systems, I would recommend that individuals from groups who have designed and/or developed emissions inventory systems also review this aspect of the design (e.g., Barth from UC-Riverside, Guensler/Bachman from GIT, Pechan, Alpine Geophysics, Environ, etc.). While it may be more complicated than it is worth, in my opinion it would be useful if there was a relatively easy way to integrate in other emissions modeling approaches, e.g., replacing the current approach. For example, how easy would it be to switch over to using California approaches? How about fuel-based approaches? This would be nice if for no other reason to facilitate comparison between the approaches. This may be viewed as a functionality issue, not a design issue. EPA Response: Chapter 4 of another document, the MOVES User Guide, deals with "Customizing MOVES2004" and is intended to meet this need. Intended Functionality Recognizing that MOVES2004 is a first substantiation of a more general MOVES, and that it is to be applied for greenhouse gas emissions, and related quantities, it appears to provide a solid foundation in terms of functionality. It currently has, what I would view, are most of the major needs in terms of capturing the range of equipment, driving conditions, and impacts of alternative fuels. One shortcoming, which is from a lack of knowledge, is that it currently assumes roads are level, which, in turn, impacts VSP and therefore gas mileage and emissions. If nothing else, one should build in a factor to be used to account for roads with positive and negative grades. This will become an interesting component in regards to using hybrids and being able to capture their emissions (greenhouse and otherwise). (That gets back to the overarching concern 135 ------- discussed above: how do you currently treat hybrid technologies, e.g., with regenerative breaking, etc.?) EPA Response: The "grade" field in the Link table, along with the fact that operating mode distributions and the MOVESOutput records, are distinguished by linkID, is designed to accommodate this. An earlier version of MOVES2004 even included the grade value in the VSP calculation, so we have actually tried this successfully. Grade was removed from the VSP calculation in this version of the model because it is not necessary at macroscale, and there was some penalty in terms of execution time performance. EPA plans to include the grade field value in mesoscale and microscale calculations when they are implemented, which is one reason why MOVES run specifications include an indication as to their scale. Report Clarity As noted in the beginning, the report is a bit schizophrenic. Parts are quite clear, while others are not. It suffers from lack of consistency in style, use of nomenclature, capitalization, concatenation, etc. There are areas that require more explanation. A particular need is for the installation and "Getting Started with MOVES2004" discussion to be fortified dramatically. The online "Users' Manual" may be the place to provide the most detailed discussion, but it is currently insufficient, and more in the SDRM would be useful, if for no other reason to let its readers know what is involved somewhat better than is currently the case. EPA Response: We have improved the clarity and consistency of the document. "Getting Started with MOVES2004" is better dealt with in the MOVES2004 User Guide and the MOVES2004 Installation Guide. The introduction to this document has been rewritten to try to make this more clear. Another top level document, the Road Map to MOVES2004, will steer readers who are getting started in that direction. A particular problem is that many sections start out with little transition from the prior section, and change abruptly. Each section should start out by putting the next paragraphs in perspective. There should be a common format in terms of lists (do you use bullets, numbering, lettering, etc.). There are some paragraphs made up of single sentences (not necessarily wrong, but often indicative of a problem) that come out of the blue, and end there, too. All of these problems are exacerbated by the changing fonts, bolds, capitalization, etc., used in the SDRM. I have indicated in my comments directly upon the SDRM manuscript what portions are most clear. These should serve as templates for the rest of the document. EPA Response: Most of these items, including everywhere they were specifically identified in the marked up paper copy provided by the reviewer, have been improved. We have not gone to thelevel of effort that would be required to "put all lists in a common format." Application to Use Cases 136 ------- While the actual use cases suggested by EPA were not included in this document or transmittal letter, I suspect this refers to the "Use Cases" from the last review. As such, I saw no further limitations from the last review, so it would appear that it can capture those uses. EPA Response: The reviewer is correct that the use cases referred to were those from the last review, namely those discussed in the Draft Design and Implementation Plan for MOVES published in October, 2002. Does the design allow for a range of input data options? From what I can tell, and this is rather out of my range of expertise, the system provides the ability to accommodate the needs of most users (with limitations discussed elsewhere, e.g., for conducting uncertainty analysis), and to do so without an undue burden. In this case, one has to caveat undue burden, in that it can, and likely will be, a significant burden, but not undue. Further, this burden will likely be shared amongst the community. On the other hand, I am not sure that the accuracy sacrifices noted as one goes to a higher level of aggregation are needed, and if such a sacrifice is necessary. In the design, would it be possible for the data to also capture how different levels of aggregation will impact emissions estimates. Would it not be possible that the fine scale information also contain information as to how to adjust their part of the emissions as one uses a higher level of aggregation, and that information is easily to the more aggregate calculation in a computationally efficient manner? This may involve using defaults, i.e., if that information does not exist; the multiplier is one for all pollutants. If it does exist, that information is passed up the ladder. For example EPA might provide the master data set with such information attached in the data files, which would be accurate if the default files are used. If one modifies the input data, they would need to re-run the system, using the least aggregated level, produce the needed information, and then populate the current data files with that information for future use. EPA Response: EPA believes the accuracy sacrifices noted as one goes to higher levels of pre-aggregation are in general necessary, though some particular sources of inaccuracy could be removed by pre-aggregating the data in a more complex fashion. To the extent this is done, however, the calculations would take longer, and it is the purpose of data preaggregation to speed execution time. The inaccuracies introduced by the pre-aggregations as currently being performed are being characterized by EPA. Post aggregation which can also be specified in the MOVES GUI and run specifications does not involve these accuracy sacrifices Another concern in terms of the design and input data options relates to the ability to readily conduct sensitivity and uncertainty analysis. It would be useful if not only nominal values are available in the input data, but also an estimate of uncertainty and the sensitivity of the parameter to various input parameters. As noted in this review where uncertainty is directly discussed, the current design revolves around using a Monte Carlo approach, which is time consuming, not always necessary, and sometimes less informative than a more direct approach. Further, if the question is how sensitive the 137 ------- result is to a specific set of N inputs, it can be faster to not have to run N simulations. (Also, if non-linearities are involved, that would require a couple of extra simulations to get a centered-difference approximation of the sensitivity, though I doubt this is an issue). EPA Response: Section 10.18 has been added to this document explaining how EPA plans to add a simple, straightforward monte carlo method of uncertainty estimation to the model. EPA expects, however, that execution time performance will limit the scope of its application. EPA is also analyzing the sensitivity of the model to variations in the input data and will publish these results, which EPA agrees are more useful for many purposes. Are the algorithms a reasonable approach across multiple scales? My review of the way the calculations are broken down suggests that the system can be very fine grained such that it can capture very fine spatial and temporal scales, IFF the data can support the calculation. Further, the calculations are broken down to very basic steps, such that if a more complex (or simpler) approach becomes warranted, the system is readily modified. While there is a performance penalty to do the operations at such a fine scale, as noted earlier, I do not believe that is a significant issue. Will the proposed design of MOVES permit an accurate assessment of fuel economy and greenhouse gas emissions? Here, my review suggests that the system will permit an accurate assessment of the desired quantities, keeping in mind that the real limit here is the underlying science. (One exception is the use of hybrids, as noted above. It is not apparent, to me, how well this technology is captured, since it is so different and it is not currently included in the list of technologies treated.) EPA's response to this topic is given above. Software Installation and Use I initially attempted to load the MOVES software on one of my home computers, an Athlon-based machine running Windows XP Home Edition, with Service Pack 1. While all the files appeared to have unzipped correctly, the MySQL set-up would not run. Re-attempting the unzipping and loading was still unsuccessful. I have not yet determined the reason why. Next, I copied and unzipped the files on a second machine, also running XP (though the professional version). This time, loading MySQL and MOVES2004 went smoothly. The SDRM, and the online Users' Manual were adequate for the purposes of loading the software, at least for a single processor application. EPA Response: It sounds like this problem might relate to the home edition of Windows XP, but we are unable to replicate it and are not aware of anyone else experiencing it. We have installed MySQL successfully on at least one XP home edition system. A quick review of MySQL AB's documentation of known problems 138 ------- did not find anything specifically pertinent to the home edition of Windows XP. We'll keep an eye out to see if others experience similar problems as the model is more broadly distributed. Next, I conducted a first application, using the instructions in the Users' Manual. While not part of this review, this took a bit long, primarily because the current Users' Manual is inadequate. I would recommend adding to both the Users' Manual and the SDRM a step-by-step set of instructions to run the default case (including what to expect when you single click individual functions, how to make changes, etc.), and the output to check the results. The current instructions point you in the correct direction, but don't quite give you adequate instruction to proceed efficiently and confidently. EPA Response: Chapter 3 has been added to the MOVES2004 User Guide to give step-by-step instructions as to how to execute the example run specification. Summary The MOVES2004 SDRM is a reasonable initial document describing the software, and the software, as described is a solid first substantiation of the MOVES system. The SDRM is not clearly written throughout the document, though portions are in good shape. Weaknesses in the design appear to be in its ability to do direct sensitivity and uncertainty analysis, readily capture alternative approaches to estimating mobile source emissions (e.g., fuel-based, California, etc.), and it does not appear to have the ability to treat hybrid vehicles. EPA Response: EPA appreciates the thorough review of this document performed by Professor Russell. The items mentioned in his summary have been responded to earlier in the document where they first appeared. 139 ------- Appendix III. Table of Acronyms AB AC API AWT ASCII BTU CH4 CD CMIT CNG CSV DOT ECC EPA F FERC FK FIPS GB GPL GHz GUI GNU GREET H2 HC HOT HPMS 1C ID IM kW LOT LDV LPG MAR MB MOVES N2O NMIM OBD ODBC aktiebolog (Swedish) air conditioning application program interface alternative vehicle fuels and technologies American Standard Code for Information Interchange British thermal unit methane compact disc core model input table compressed natural gas comma-separated variable Department of Transportation energy consumption calculator Environmental Protection Agency Fahrenheit future emission rate calculator foreign key federal information processing standard gigabyte general public license gigahertz graphical user interface GNU's not UNIX (recursive) Greenhouse gases, Regulated Emissions, and Energy uses in Transportation hydrogen hydocarbons heavy duty truck Highway Performance Management System internal combustion identification inspection/maintenance kiloWatt light duty truck light duty vehicle liquified propane gas mileage accumulation rate megabyte MOtor Vehicle Emissions Simulator nitrous oxide National Mobile Inventory Model on board diagnostics open database connectivity 140 ------- OMDG OTAQ PTW RAM RTC SBDG SCC SDK SDRM SHO SQL SUV TAG US VMT VOC VSP WTP XML operating mode distribution generator Office of Transportation and Air Quality pump-to-wheel random access memory runs to completion source bin distribution generator source classification code software development kit Software Design and Reference Manual source hours operating structured query language sport utility vehicle total activity generator United States vehicle miles traveled volatile organic hydrocarbon vehicle specific power well-to-pump extended markup language 141 ------- |