Releases: CEMPD/SMOKE
SMOKE v5.1 Public Release (July 2024)
This release focuses on bug fixes and minor enhancements to the core SMOKE programs and utility tools. Work was done to test SMOKE with additional compilers and more stringent compiler checking. Updates were also prompted by EPA's work on the 2022v1 Emissions Modeling Platform.
Updated SMOKE Core Programs
Laypoint
- Update plume rise calculation to be consistent with CMAQ
Movesmrg
- Allow SPEED inventory to be optional when SPDIST or SPDPRO is provided
- Fixed an issue where Movesmrg wouldn't exit with an error when the number of errors was less than the MAXWARN setting
- Fixed a log message formatting issue when reading the MRCLIST file
- Fixed an initialization error when working with interpolated emission factors
Mrgpt
- Renamed input environment variables from FILELIST_S to FILELIST_STACK and from FILELIST_E to FILELIST_INLN
Smkinven
- Fixed array out-of-bounds issues
- Corrected the intermediate files output by Smkinven to be consistent when processing HAPs
- Removed incorrect error message when processing daily inventories with HAPs for the hours starting and ending Daylight Saving Time
- Fixed incorrect pollutant conversion when processing hourly inventories with HAPs
Smkreport
- Fixed array out-of-bounds issues
- Fixed incorrectly labeled units in AERMOD report
Tmpbeis4
- Revised code looping structure for efficiency
Updated SMOKE Utility Tools
Gentpro
- Fixed an error related to counties that do not observe Daylight Saving Time
Geofac
- Revisions to make this program functional again
Compilation Details
The executables in the smoke_v51.Linux2_x86_64ifx.20240731.tar.gz package were compiled using the Intel Fortran Compiler (ifx) Version 2024.1, on Red Hat Enterprise Linux release 8.9.
Library dependencies used for the I/O API Version 3.2:
- zlib-1.3.1
- szip-2.1.1
- hdf5-1.14.3
- netcdf-c-4.9.2
- netcdf-fortran-4.6.1
SMOKE v5.0 Public Release (June 2023)
Movesmrg Enhancements
- New feature to generate the temperature-bin-specific pregridded hourly emissions for Mrggrid to efficiently generate CMAQ-ready gridded hourly emissions
- OUTPUT_EMIS_TABLE_YN [default: N]
: Define whether output temperature-bin precomputed gridded hourly emissions tables or not (Not applicable for RPP mode). Find the details on how the temperature-bin-specific pregridded hourly emissions approach can work for your modeling runs [CMAQ-MetEmis Dynanic Coupler Development Document].
: MCIP meteorology inputs are not required. CMAQ-ready gridded hourly emissions can be computed by Mrggrid using the MCIP gridded temperature at 2 meters. - MIN_TEMP_EMIS_TABLE [default: 0.0]
: Define the lowest temperature for precomputed emissions table output file when OUTPUT_EMIS_TABLE_YN is set to Y. - MAX_TEMP_EMIS_TABLE [default: 120.0]
: Define the highest temperature for precomputed emissions table output file when OUTPUT_EMIS_TABLE_YN is set to Y. - TEMP_INCREMENT_EMIS_TABLE [default: 5.0]
: Define the temperature bin increment for precomputed emissions table output file when OUTPUT_EMIS_TABLE_YN is set to Y.
- OUTPUT_EMIS_TABLE_YN [default: N]
- USE_MOVES4_NOX_ADJ_EQS [default: N]
: Use the MOVES4 NOx humidity correction equation or not
Mrggrid Enhancements
- Generate the CMAQ-ready gridded hourly emissions for MOVES onroad mobile sources except for RPP mode. This feature can be enabled when the column B in the Mrggrid FILELIST input file is defined as "METEMIS". Optionally, the column C can be enabled to apply NOx humidity correction of MOVES mobile emissions by fuel type ("GASOLINE" or "DIESEL").
Gentpro Enhancements
- Generate county-level [average|sum] meteorology inputs for the Farm Emissions Model (FEM)
- AVG_RAW_OUTPUT_YN [default: N]
: Define whether Gentrpo outputs average raw meteorology variables (temperature; wind speed; etc) or not - SUM_RAW_OUTPUT_YN [default: N]
: Define whether Gentrpo outputs total raw meteorology variables (e.g., precipitation) or not
- AVG_RAW_OUTPUT_YN [default: N]
- New feature to generate daily and monthly temporal profiles for recreational RWC SCCs based on the weekly temporal profile
- RECREATIONAL_RWC_TPRO_YN [default: N]
: Define whether Gentrpo generates recreational RWC temporal profiles or not - LOW_RWC_TEMP_THRESHOLD [default: 50.0]
: Define the lower-end ambient temperature threshold value that can occur recreational RWC emissions from the inventory sources (recreational wood burning; firepits, chimineas, etc.) - HIGH_RWC_TEMP_THRESHOLD [default: 80.0]
: Define the higher-end ambient temperature threshold value that can occur recreational RWC emissions from the inventory sources (recreational wood burning; firepits, chimineas, etc.) - Updated county-level temperature threshold (low and high) input file [RWC_COUNTY_TEMP]
: Added an additional column (3rd column) for county-level higher-end temperature thresholds for RWC-related inventory sources.
- RECREATIONAL_RWC_TPRO_YN [default: N]
- New prefix flag for temporal profile IDs using setting PREFIX_TPRO (up to 3 characters)
Various Updates
Normbeis4
- Add optional check of landuse sums controlled by setting CHECK_LUSE
- Add checks for units in landuse and biomass files
Smkinven
- Updated to support new processing flow for CEMS data
- New hourly activity (HOURACT) variable added to the CEMS data for hourly temporal allocation of CEMS inventory sources
Smkmerge
- Use BTU/hr as output units for HFLUX
Smkreport
- Add new BY UNIT report option
Temporal
- Updated the temporal assignment hierarchy to allow for partial FIPS matches when SCC is blank or null without setting the FULLSCC_ONLY flag to TRUE
SMOKE v4.9 Public Release (June 2022)
Elevpoint
- Fixed error that caused uniform stack flow (STKFLW) values to be output to the STACK_GROUPS file
Gentpro
- Fixed output of county codes in NetCDF files
Movesmrg
- Humidity adjustments are now applied to additional pollutants HONO_INV, NO_INV, and NO2_INV
- Fixed error that caused incorrect outputs when using subsector grouping (SMK_SUB_SECTOR_OUTPUT_YN) with empty subsectors
Normbeis3
- Corrected land use names when using BEIS3.7
- Updated definition of MODIS_14 (Cropland/Natural Vegetation Mosaic)
Normbeis4 / Tmpbeis4
- New programs to support using BEIS4 emissions factors and BELD6 land use data
Smkmerge
- Fixed error that caused incorrect outputs when using subsector grouping (SMK_SUB_SECTOR_OUTPUT_YN) with empty subsectors
Smkreport
- Column headers in point source reports now match Flat File 2010 terminology (Facility ID, Unit ID, Rel Point ID, Process ID)
- New "BY FACILITY" option in the REPCONFIG file replicates the existing "BY PLANT" instruction
- New "BY BOILER" REPCONFIG option summarizes emissions by ORIS Boiler ID
- Fixed issue when using the AERMOD instruction so that coordinate system transformations use the IOAPI_ISPH environment variable
Temporal
- Corrected profile ID in error message about a missing Sunday hour-of-day profile
SMOKE v4.8.1 Public Release (January 29, 2021)
SMOKE Digital Object Identifier (DOI):
SMOKE-MOVES Integration Tool Development
1. New MOVES RatePerStart (RPS) Mode
- New feature in Movesmrg for users to model Off-Network Start Exhaust and Crankcase Start Exhaust processes that are currently modeled under RatePerVehicle (RPV) mode.
- Unit of RPS emission rate is mass per vehicle-engine start (grams/vehicle-start).
- New "STARTS" activity inventory is required to compute RPS emissions with RPS emission rates.
- RPS_MODE[default: N] : Estimates off-network RPS emissions from engine starts.
2. New Off-Network Idling (ONI) Mode
- New feature in Movesmrg for users to model idling emissions from parking lot, distribution centers and other off-network spaces.
- Previously modeled under RatePerDistance (RPD) mode with roadtypes=1 (off-network) and speedbin=0 (speed=zero).\
- Unit of ONI emission rate is mass per vehicle-idling hour (grams/hour).
- New "IDLING" activity inventory is required to compute ONI emissions with ONI emission rates.
- ONI_MODE [default: N] : Estimates off-network idling emissions from parking, and distribution centers.
New Source Apportionment Regroup Tool
- New Source Apportionment Regroup Tool will allow users to assign existing Source Apportionment (SA)-ready gridded hourly emissions and stack groups files from SMOKE to new SA group IDs.
- Requires the sector-specific SA-ready gridded hourly emissions and stack group files and new regroup mapping input file called REGROUP_GROUPS.
- Check out the Coordinating Research Council (CRC) A-119 Full Technical Report for the details.
- Download the complete use case package data file for the SA regroup tool from the CRC Data Share Site.
BEIS v3.7 Enhancements
- New BEIS Emission Factors (BEISFAC) and BELD5 landuse input files are required.
- Latest BEISFAC and North America region BELD5 (1km x 1km) input files for BEIS v3.7 can be found from the CMAS Data Warehouse.
- Custom BELD5 input file over your modeling domain can be developed using new updated Aggwndw utility program in SMOKE that can optionally aggregate non-mass values with the setting of AGGREGATE_EMIS_YN = N.
Laypoint Updates
- Update to treat new WRF hybrid-vertical coordinate type (-999) as existing sigma (7) coordinate.
- Update to enforce fire bottom plume height starting from surface layer.
- New FIRE_BOTTOM_LAYER_1_YN [Default: Y]: Define the bottom of fire plume as model layer 1.
Smkinven Updates
- Prevent from dropping CEMS hourly NOX and SO2 emissions when all CEMS parameters (e.g., heat input, steam load and gross load) are missing.
- Update to proper handle multiple ORIS and Boiler IDs CEMS sources under the same point source Unit ID.
- PROCESS_MULT_ORIS_UNITS_YN [default: N]: Allows Smkinven to append "__##" to Unit ID to treat them as separate point sources.
Smkmerge and Movesmrg Updates
- SMK_SUB_SECTOR_OUTPUT_YN [default:N]: Generate sub-sector source group emissions output files based on the list of source group ID defined in (SOURCE_GROUPS).
Spcmat and Smkreport Updates
- USE_REF_COUNTY_MAP_YN [default:N]: New feature to assign speciation profiles by reference county based on the inventory-reference county cross-reference input file (MCXREF).
- Generate correct Smkreport reports for the inventory sources with multiple speciation profiles assigned by GSPRO_COMBO and/or multiple GSREF cross-referencing approaches.
- New speciation profile description (GSPRODESC) input file support in Smkreport. Users can optionally output the speciation profile descriptions to Smkreport "BY SPCCODE" report.
SMOKE4AERMOD Updates
- Added new command "AERMOD ANNUAL" in Smkreport to generate emission helper files for AERMOD model for sectors other than onroad.
- Overall updates across all sectors (e.g., point, area, commercial marine vessel port & underway, and gridded sectors).
Bug fixes
- Various bug fixes since the public SMOKE version 476 release in September 2019
SMOKE v4.8 Public Release (October 2020)
SMOKE Digital Object Identifier (DOI):
SMOKE-MOVES Integration Tool Development
1. New MOVES RatePerStart (RPS) Mode
- New feature in Movesmrg for users to model Off-Network Start Exhaust and Crankcase Start Exhaust processes that are currently modeled under RatePerVehicle (RPV) mode.
- Unit of RPS emission rate is mass per vehicle-engine start (grams/vehicle-start).
- New "STARTS" activity inventory is required to compute RPS emissions with RPS emission rates.
- RPS_MODE[default: N] : Estimates off-network RPS emissions from engine starts.
2. New Off-Network Idling (ONI) Mode
- New feature in Movesmrg for users to model idling emissions from parking lot, distribution centers and other off-network spaces.
- Previously modeled under RatePerDistance (RPD) mode with roadtypes=1 (off-network) and speedbin=0 (speed=zero).\
- Unit of ONI emission rate is mass per vehicle-idling hour (grams/hour).
- New "IDLING" activity inventory is required to compute ONI emissions with ONI emission rates.
- ONI_MODE [default: N] : Estimates off-network idling emissions from parking, and distribution centers.
New Source Apportionment Regroup Tool
- New Source Apportionment Regroup Tool will allow users to assign existing Source Apportionment (SA)-ready gridded hourly emissions and stack groups files from SMOKE to new SA group IDs.
- Requires the sector-specific SA-ready gridded hourly emissions and stack group files and new regroup mapping input file called REGROUP_GROUPS.
- Check out the Coordinating Research Council (CRC) A-119 Full Technical Report for the details.
- Download the complete use case package data file for the SA regroup tool from the CRC Data Share Site.
BEIS v3.7 Enhancements
- New BEIS Emission Factors (BEISFAC) and BELD5 landuse input files are required.
- Latest BEISFAC and North America region BELD5 (1km x 1km) input files for BEIS v3.7 can be found from the CMAS Data Warehouse.
- Custom BELD5 input file over your modeling domain can be developed using new updated Aggwndw utility program in SMOKE that can optionally aggregate non-mass values with the setting of AGGREGATE_EMIS_YN = N.
Laypoint Updates
- Update to treat new WRF hybrid-vertical coordinate type (-999) as existing sigma (7) coordinate.
- Update to enforce fire bottom plume height starting from surface layer.
- New FIRE_BOTTOM_LAYER_1_YN [Default: Y]: Define the bottom of fire plume as model layer 1.
Smkinven Updates
- Prevent from dropping CEMS hourly NOX and SO2 emissions when all CEMS parameters (e.g., heat input, steam load and gross load) are missing.
- Update to proper handle multiple ORIS and Boiler IDs CEMS sources under the same point source Unit ID.
- PROCESS_MULT_ORIS_UNITS_YN [default: N]: Allows Smkinven to append "__##" to Unit ID to treat them as separate point sources.
Spcmat and Smkreport Updates
- Generate correct Smkreport reports for the inventory sources with multiple speciation profiles assigned by GSPRO_COMBO and/or multiple GSREF cross-referencing approaches.
- New speciation profile description (GSPRODESC) input file support in Smkreport. Users can optionally output the speciation profile descriptions to Smkreport "BY SPCCODE" report.
SMOKE4AERMOD Updates
- Added new command "AERMOD ANNUAL" in Smkreport to generate emission helper files for AERMOD model for sectors other than onroad.
- Overall updates across all sectors (e.g., point, area, commercial marine vessel port & underway, and gridded sectors).
Bug fixes
- Various bug fixes since the public SMOKE version 476 release in September 2019
SMOKE v4.7 Public Release (October 2019)
SMOKE Digital Object Identifier (DOI):
SMOKE-MOVES Integration Tool Development
1. Average Speed Distribution (ASD) Enhancement
- New feature in Movesmrg for users to optional to apply hour-specific average speed distribution profiles based on 16-speed bins by FIPS, vehicle, road, fuel, process, and day of the week.
- USE_AVG_SPD_DIST [default: N]: Define whether to apply hourly average speed distribution profiles by hour or not.
- AVGSPD_SCCXREF: Average speed distribution SCC mapping input file.
- SPDIST: 16-speed bin average speed distribution profiles sorted by FIPS, SCC, day of the week and hour.
- The impacts of these ASD and NOx humidity correction applications have been analyzed in the research presentation from the 2019 International Emissions Inventory Conference.
2. NOx Humidity Correction Enhancement
-
New feature in Movesmrg for users to correct NOx emissions from exhaust processes using the gridded hourly MCIP meteorology input data.
-
APPLY_NOX_HUMIDITY_ADJ [default: N]: Define whether to apply NOx humidity correction to all NOx emissions from RatePerDistance (RPD) and RatePerHour (RPH) modes.
-
To avoid double NOx humidity correction to existing MOVES lookup tables that already adjusted NOx humidity correction, new header line "HUMIDITY_ADJUSTED_NOX [Y|N]" has been added. If HUMIDITY_ADJUSTED_NOX is set to Y, then APPLY_NOX_HUMIDITY_ADJ=Y setting will be ignored. If there is no header line exited, APPLY_NOX_HUMIDITY_ADJ=Y setting will be also ignored based on an assumption that those MOVES lookup tables already adjusted NOx humidity correction during the MOVES runs.
-
Use the official MOVES 2014 NOx humidity correction equation (K):
K = 1.0 - (Bounded specific_humidity-75.0) * Humidity correction coefficient
-
The bounded Specific humidity unit is in units of grains of water per pound of dry air. The specific humidity is not allowed to be lower than 21 grains and is not allowed to be larger than 124 grains. If the specific humidity input exceeds these limits, the value of the limit is used to calculate the humidity adjustment. Humidity correction coefficients: 0.0038 for Gasoline fuel type and 0.0026 for Diesel fuel type.
-
The impacts of these ASD and NOx humidity correction applications have been analyzed in the research presentation from the 2019 International Emissions Inventory Conference.
Grdmat Updates
- Fixed a bug of initialization of sphere specification (IOAPI_ISPH)
- Updated to treat all modeling domain parameters as double precision
Temporal Updates
- Added new hierarchy for Plant Identification and Unit Identification level temporal cross-reference entry
Bug fixes
- Various bug fixes since the public SMOKE version 4.6 release in September 2018
SMOKE v4.6 Public Release (September 2018)
SMOKE Digital Object Identifier (DOI)
SMOKE4AERMOD Development
- Generates customized Smkreport summary reports based on the latest U.S. EPA NEI inventories for SMOKE4AERMOD post-processing scripts that generate AERMOD helper input files for various inventory sectors. Following sectors are covered to support upcoming U.S. EPA NATA 2014 studies:
- Supported Inventory Sectors: Nonpoint, Nonpoint oil and gas (np_oilgas), Point EGU (ptegu), Point Non-IPM (ptnonipm), Point Airports (ptairport), Nonroad, Onroad (RPD, RPV, RPH, RPP), Residential Wood Combustions (RWC), Commercial Marine Vessel (CMV) and Rail
- SMOKE4AERMOD Design Documents describing how to develop sector-specific AERMOD helper input files for AERMOD chi/Q mode
Bug fixes since the SMOKE version 4.5 release in April 2017
Elevpoint Updates
- Bug fix to avoid stacksize memory limit issue by reducing the local array size
- Added NAICS code into an elevated source grouping supplimentary report (REPPELV)
Grdmat Updates
- Bug fix for a proper reprojection to the same latitude-longitude projection pregridded emissions like EDGAR, RCP and HTAP global emissions input files
Movesmrge Updates
- Reset any negative emission factors from MOVES lookup tables and give a warning message
Mrgpt Updates
- Allows users to merge the CMAQ inline-ready 2-D point sources emissions (INLN) and elevated source stack group (STACK_GROUPS) files to generate 3-D hourly emissions for their quality assurances checks
Smkinven Updates
- Bug fix to support a full or partial annual/daily/hourly TOG and HAPs integration
SMOKE Enhancements and Bug fixes
- Expansion of the length of all stationary point source characteristics (i.e., Facility ID, Unit ID, Release point ID, and Process ID) from 15 characters to 20 characters
- Treat stationary point source location coordinates as double precision to improve the accuracy of source locations within the modeling domain
- Increased the length of Source Type (SRCTYPE) from 2 characters to 3 characters
SMOKE v4.5 Public Release (April 2017)
SMOKE4AERMOD Development
Generates customized Smkreport summary reports based on the latest U.S. EPA NEI inventories for SMOKE4AERMOD post-processing scripts
(https://github.com/CEMPD/SMOKE/tree/master/scripts/aermod) that generate AERMOD helper input files for AERMOD chi/Q moe. Following sectors are covered to support upcoming U.S. EPA NATA 2014 studies:
- nonpoint, nonpoint oil and gas (np_oilgas), ptegu, ptnonipm, point airports (ptairport), nonroad, onroad, -residential wood combustions (rwc), commercial marine vessel (CMV) and rail
- Detail information about how to develop sector-specific AERMOD helper input files from SMOKE4AERMOD post-processing scripts
Smkreport Updates
- New "BY" Command for AERMOD support runs
For ptegu sector: AERMOD POINT PTEGU
For ptnonipm sector: AERMOD POINT PTNONIPM
For rest of sectors: AERMOD NONPOINT - New "CROSSWALK" Command for stationary point source sectors
: Generates a supplementary cross-walk mapping output file that shows how individual inventory sources are grouped.
Smkinven Updates
- Support a full daily/hourly TOG and HAPs integration. Along with annual inventory TOG and HAPs integration, daily and hourly inventories can be fully or partially integrated.
- OUTPUT_LOCAL_TIME [default:N]
Y: Process daily/hourly inventories in local time to support AERMOD ptegu sector. No time zone shift. - NO_STACK_REPLACE_FUGITIVE [default:N]
Y: Skip correcting any missing and/or out-of-range stack parameters to support AERMOD point sectors (i.e., ptegu, ptairport, ptnonipm).
Temporal Updates
- OUTPUT_LOCAL_TIME [default:N]
Y: Process daily/hourly inventories in local time to support AERMOD ptegu sector. No time zone shift.
Spcmat Updates
- New Fraction-enabled GSRE Input file that allows users to apply multiple chemical speciation profiles to a single inventory source. Check out the new split factor column M in GSREF input file.
- CMB_CHKFRACS [default:Y]
Y: Check whether the sum of multiple speciation profile split factors is equal to 1.0 or not.
Elevpoint Updates
- ELEV_WRITE_FAKE_SRC [default:Y]
Y: Output a fake source group when there is no an elevated source group to report.
Other bug fixes
Several minor bugs have been fixed since SMOKE v4.0 release in September 2016.
SMOKE v4.0 Release (September 2016)
[SMOKE version 4.0 Release]
-
Supports EDGAR Gridded Inventories
: Proceses the global gridded inventory like the Emissions Database for Global Atmospheric Research (EDGAR) inventories. -
New Geographical Code (GEOCODE_LEVEL) approach
: Support an alternative 12-characters Geographical Code approach compared to traditional 6-digit FIPS. -
Support California Air Resource Board (CARB) expanded 20-characters SCC and SIC.
-
Process CARB's gridded daily/hourly MEDS (Modeling Emissions Data System) inventories
: Download the smoke2meds package that allows users to convert Smkreport summary report into CARB's MEDS format inventories. Download the package listed below "smoke2meds_CARB_20150605.tar.gz". -
Smkreport update to generate CARB's Quality Assurance Data Extraction Format (QADEF) summary reports.
-
Various updates to MOVES-SMOKE postprocessing scripts. Check out the detail from the github repository (https://github.com/CEMPD/SMOKE-MOVES).
-
New postprocessing script for NONROAD model that generates FF10-format nonroad inventory files based on NONROAD output file (https://github.com/CEMPD/SMOKE-MOVES/tree/master/scripts/nonroad).
-
Latest IOAPI version 3.2 or later is required to compile the SMOKE version 4.0
-
Restructured the entire SMOKE source code directory: Merged EDSS_TOOl and FileSetAPI libraries into SMOKE main libraries.
-
Introducing SMOKE Wiki page for the air quality community. Please check out the latest information of NEI emissions modeling platform packages:
(http://www.airqualitymodeling.org/cmaqwiki/index.php?title=Main_Page) -
Other minor updates and bug fixes:
- Temporal: Time zones bug fix for Eastern Hemispheric
- Gentpro: Updated to support new csv-formatted temporal profiles (TPRO) and cross-reference input file (TREF).
-
Retired most of fixed formatted input files in SMOKE system (i.e., IDA, EMS-95, and so on)