Transitioning from SMOKE 4.5 to 5.2

I recently downloaded SMOKEv5.2.1 and the 2022 v2 EMP. Compared to SMOKE v4.5, it seemed that many of the script names have changed but the process looks the same. However, I was unable to identify which scripts I should start with (e.g. master run script) and what version of scripts (e.g. the ASSIGNS file) I should start with. I’m using annual inventories for a custom domain.

Can I copy over my SMOKEv4.5 scripting environment and just update the executables and data directories (update my old ASSIGNS, etc.)? Or are there fundamental changes in SMOKE (from v4 to v5) that would make this inoperable?

Hi there,

The EPA’s Emission Modeling Platform (EMP) is comprehensive set of emission inputs, auxiliary data and shell scripts that run on top of a core SMOKE package (e.g., SMOKE version 5.2.1, 5.1, etc.). While the most recent SMOKE version (i.e., 5.2.1) is backward compatible with older versions of the EMP, the latest version of EMP requires latest version of SMOKE. This is because overtime SMOKE has been updated to support new features in the EMP and also applied with bug fixes found while implementing new features (e.g., moving from annual emissions to daily emissions for certain source sector).

If you just want to update your existing SMOKE setup from using SMOKE 4.5 to 5.2.1, you can do so by simply editing the pointer to point to directory containing SMOKE 5.2.1 executables. The pointer in your case could be in the ASSIGN file; for others who using EMP format, it is SMOKE_LOCATION variable in the directory_definitions.csh script.

Is there a new ASSIGNS file example that points to the 2022 EMP ancillary files? Everything I’ve downloaded doesn’t seem to include one. So, I am attempting to update my old ASSIGNS file with the 2022 EMP ancillary filenames. There are many different versions of ref and pro files in the 2022 EMP package that I have mostly sifted through, using “general” versions. However, concerning the gsref and gspro options I don’t see a “general” option (I’m attempting to use CB6 / AE7). Should I combine the PM2.5 and VOC gsref files into one file so they can be pointed to in the ASSIGNS file? (e.g. gsref_voc_2022platform_16jun2025_v3.txt and gsref_pm25_2022platform_04jun2025_v4.txt). Though, I don’t see a 2022 gspro file for PM, and the PM names don’t appear to match what’s in the 2022 emissions inventory files. So, I’m not sure what I am missing.

The platforms have moved away from defining ancillary files and their paths directly in ASSIGNS files. Instead this is handled at the run script level by defining environment variables. It is encouraged to use the scripts and SMOKE package provided on the 2022v2 EMP FTP site ( Index of /Air/emismod/2022/v2 ). Documentation for the package is shared on the site (https://gaftp.epa.gov/Air/emismod/2022/v2/info_2022_v2_platform_package_13oct2025.txt). ASSIGNS files are now mainly changed only for SMOKE version increments.

For some ancillary types, and speciation in particular, the cross-references and profiles are split across multiple sector or pollutant-specific files. The scripts within the platform package framework automatically combine the profile and cross-reference files as needed to produce a complete set for the source sector. If you don’t have sector-specific needs, the most general speciation cross-reference and profile datasets are referenced in the nonpt sector script with the GSREFTMP and GSPROTMP environment variables. If you can’t run within the platform script framework you can concatenate the GSREF and GSPRO files manually and remove any duplicates.

Is the inconsistency between the PM profiles and inventories regarding the use of PM2_5 versus PM25-PRI? Mapping for inventory pollutant names to SMOKE pollutant names occurs in the inventory table, prior to speciation.

Thanks for your very thorough explanation.