EPA's MOtor Vehicle Emission Simulator (MOVES) is a state-of-the-science emission modeling system that estimates emissions for mobile sources at the national, county, and project level for criteria air pollutants, greenhouse gases, and air toxics, available under EPA's Open Source Software policy.
MOVES4 (available at https://github.com/USEPA/EPA_MOVES_Model and https://www.epa.gov/moves/latest-version-motor-vehicle-emission-simulator-moves) is the latest version of MOVES available for regulatory purposes. For more information, see MOVES4 Policy Guidance: Use of MOVES for State Implementation Plan Development, Transportation Conformity, General Conformity and Other Purposes (EPA-420-B-23-009).
For additional information on MOVES, visit EPA's MOVES website. A standard installer for MOVES is available here. Or, to compile and MOVES from source, follow the instructions below.
This repository contains all of the source code and data required to compile and run MOVES.
MOVES uses MariaDB, Java, and Go. To run MOVES from the source code (i.e., without running the installer), you will need the following:
To get set up:
Clone or download this repository.
Make sure MariaDB, Java, and Go are all installed and available on your system path (i.e., make sure the \bin
folders for each of these are in your PATH environment variable). You can test this by running each of the following lines in a command prompt:
mysql.exe --version
java.exe -version
go.exe version
MOVES has some specific MariaDB configuration requirements. Locate the MariaDB configuration file (on Windows, this is my.ini located in your data directory; see #4 of Quick Start Guide to Accessing MariaDB Data for help on finding your data directory), and ensure the following lines are saved in the file:
[mysqld]
default-storage-engine=MyISAM
secure-file-priv=''
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
lower_case_table_names=1
character-set-server=utf8
collation-server=utf8_unicode_ci
init-connect='SET NAMES utf8'
Restart the MariaDB service after modifying this file.
If MariaDB is running on a non-default port (i.e., any port other than 3306), create a file called MySQL.txt
in the root MOVES directory, and save the port number to this text file. This file should contain no whitespace, just the port number.
Uncomment line 2 of setenv.bat
and comment out line 3 to set the JDK and JRE paths to match your environment (i.e., remove REM
from the beginning of line 2 and add it to the beginning of line 3). Then, set JAVA_HOME
to your JDK path on line 6.
Unzip the default database dumpfile from the .zip file in the \database\Setup
directory to the same directory.
Edit \database\Setup\SetupDatabase.bat
to use the MariaDB root user's password, and then run it. This batch file creates the MOVES database user by running \database\Setup\CreateMOVESUser.sql
, and then installs the default database by running the dumpfile you extracted in the previous step.
Note: if MariaDB is running on a different port, you will need to edit SetupDatabase.bat
to add the command-line flag --port=XXXX
, where XXXX
is the port number.
Open a command prompt, navigate to your MOVES source code directory, and run the following commands to compile MOVES and launch the GUI:
setenv
ant crungui
For additional information about compiling MOVES, see CommandLineMOVES.md.
Hereafter to run MOVES, simply navigate to the MOVES directory and run:
MOVESMain.bat
Documentation on the software components of MOVES, database structure, running MOVES from the command line, tips for improving MOVES performance, and other information are available in the \docs directory of this project. To check the status of reported issues and planned improvements, see the MOVES GitHub Issue Tracker.
Additional resources listed below are available at the MOVES website:
If you have questions or feedback about MOVES, email the MOVES inbox.
Previous versions of MOVES going back to the MOVES2014b December 2018 Technical Update can be accessed on GitHub at MOVES Releases. Older versions of MOVES are available at the MOVES website.
MOVES is licensed for use pursuant to the GNU General Public License (GPL).
The United States Environmental Protection Agency (EPA) GitHub project code is provided on an "as is" basis and the user assumes responsibility for its use. EPA has relinquished control of the information and no longer has responsibility to protect the integrity, confidentiality, or availability of the information. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by EPA. The EPA seal and logo shall not be used in any manner to imply endorsement of any commercial product or activity by EPA or the United States Government.