5.2.4. MOVES post-processing scripts

5.2.4.1. Overview
5.2.4.2. Moves2smkEF.pl
5.2.4.3. SmkEFsum.pl

5.2.4.1. Overview

The MOVES post-processing scripts are consisted with two major python scripts. One is called Moves2smkEF.pl that extracts the emissions factor tables from the MOVES databases and converts them into a format that can be used as SMOKE inputs. The second script is an optional python script, called SmkEFsum.pl that aggregates up to 13 different modes emissions rate lookup tables produced by Moves2smkEF.pl into 4 different modes (i.e., EXH, EVP, BRK and TIR) to reduce the size of emissions rates lookup tables and computational time. The SmkEFsum.pl is called by Moves2smkEF.pl or it can be called independently to sum already processed lookup tables from Moves2smkEF.pl

5.2.4.2. Moves2smkEF.pl

5.2.4.2.1. Description

The MOVES post-processor script Moves2smkEF.pl extracts the emission factor tables from the MOVES databases (RPD, RPV, and RPP MOVES formatted Lookup tables) and converts them into a format that can be processed using Movesmrg. Moves2smkEF.pl maps MOVES source, fuel, and road types to Source Classification Codes (SCCs); and formats the emission factor tables so that they can be used as SMOKE inputs.

  1. Create a new field for 'countyID'

    None of the MOVES lookup tables contain a countyID field solely dedicated to a state-county FIPS code, but SMOKE needs this information. For this reason, Moves2smkEF.pl creates a county field by extracting it from other fields that include county codes as part of their value. The RPD table has a linkID field that contains countyID in the leading five digits followed by more numbers to allow for future implementation of link modeling. The RPV table has a zoneID field that is countyID with a trailing zero. The RPP table has a TemperatureProfileID field, which also leads with countyID and is trailed by other numbers to indicate month and other identification. The postprocessing script parses countyID from linkID, zoneID and TemperatureProfileID and stores it as a separate field.

  2. Cross-tab pollutantID to reduce output table size

    Each of the three MOVES lookup tables contains a pollutantID field, and associated emission rates for each are listed in the ratePerDistance field or ratePerVehicle filed (depending on lookup table). This table structure repeats the leftmost fields (e.g., MOVESRunID, yearID, monthID) for each pollutantID, which greatly increases the total number of rows. The cross-tabbing postprocessing step replaces the column for 'ratePerDistance' (or 'ratePerVehicle', 'ratePerProfile') with additional pollutant-specific columns containing values of emission rates. For example, new field headings would include 'CO_ratePerDistance', 'NOX_ratePerDistance', 'BENZENE_ratePerDistance', etc. Performing this cross-tab on the pollutant emission rates significantly reduces the size of the tables for use by SMOKE.

  3. Estimate HONO based on NO and NO2 from MOVES using equations developed by U.S. EPA

    • HONO = 0.008*NO2 + 0.008*NO

    • NO2 = 0.992*NO2 - 0.008*NO

  4. Augment the MOVES speciated PM emission factors to reflect the PM species needed for SMOKE modeling

    The following information developed by U.S. EPA to speciate the partially speciated PM2.5 exhaust emissions from MOVES2010. The advantage of using this approach over the approach used for speciating total PM2.5 is that it allows the speciated emissions from MOVES; i.e., elemental carbon and particulate sulfate to be retained and only the remainder of the PM2.5 to rely on speciation profiles.

    MOVES PM2.5 species are related as follows:

    • PM25_TOTAL = PM25EC + PM25OM + PSO4

    CMAQ PM2.5 species are related as follows:

    The five CMAQ species Primary or Particulate Organic Carbon (POC), Primary Elemental Carbon (PEC), Primary Nitrate (PNO3), Primary Sulfate (PSO4), and other primary 2.5 particulate matter (PMFINE) also sum to total PM2.5:

    • PM2.5 = POC+PEC+PNO3+PSO4+PMFINE

    The purpose of the equations given above is to fully speciate the MOVES2010 partially speciated exhause PM2.5 to create the model species needed for CMAQ. These equations are only used when there are exhause-related emissions (e.g. Running Exhaust, Start Exhaust, Creankcase Start/Running Exhaust, and Idle Exhaust). The equations utilize the following MOVES2010 outputs:

    File Name Description
    PM25EC identical to the element carbon portion of PM2.5, or PEC
    PM25SO4 identical to the sulfate portion of PM2.5, or PSO4
    PM25OM contains all components of PM2.5 other than PEC and PSO4

    insert PEC_72 discussion from SMOKE-MOVES Integration tool 3.2.4 here

    Table 5.2. The MOVES temperature adjustment factors (PEC_Tadj) to PEC

    Vehicle Type Temperature ( ° F ) TemperatureAdjustment Factor (PEC_Tadj)
    Start Exhaust Running Exhaust
    Gasoline Vehicles T < 72 ° F 28.039*exp(-00463*T) 9.871*exp(-0.0318*T)
    Gasoline Vehicles T ≥ 72 ° F 1.0 1.0
    Diesel Vehicles All temperatures 1.0 1.0

    The Equations are as follows:

    1. PEC = PM25EC

    2. PSO4=PM25SO4

    3. PNO3 = (PEC/PEC_Tadj)*(FNO3/FEC)

    4. METAL = (PEC/PEC_Tadj)*(FMETAL/FEC)

    5. POC = 5/6 * (PM25OM - METAL - PNO3)

    6. PMFINE = METAL + (0.2 x POC)

    7. PMC = (RPM10-to-PM25-1)*(PMFINE + PEC + POC + PSO4 + PNO3)

    8. PMC = PM10BRAKE - PM25BRAKE

    9. PMC = PM10TIRE - PM25TIRE

    Table 5.3. Definitions used in equations to obtain the PM2.5 unaffected by temperature

    Equation Entry Definition
    Gasoline SCCS SCCs begin with "2201"
    Diesel SCCS ALL SCCs begin with "2230"
    PEC Mass of primary elemental carbon, a species needed for CMAQ
    PM25EC Mass of primary elemental carbon PM2.5 provided by the MOVES model
    PM10EC Mass of primary elemental carbon PM10 provided by the MOVES model
    PM25SO4 Mass of primary sulfate provided by the MOVES model
    PSO4 Mass of primary sulfate, a species needed for CMAQ
    PNO3 Mass of primary nitrate, a species needed for CMAQ
    PEC_72 Mass of primary elemental carbon when MOVES runs at 72°F or higher temperature ; calculated by “backing out“ the temperature adjustment factor, PEC_Tadj
    PEC_Tadj The MOVES cold-temperature adjustment factor to PM25EC from gasoline vehicles
    FNO3, FEC, FMETAL Percentages of nitrate, elemental carbon, and metal derived from the vehicle-type-specific speciation profile; values are provided in Table 5.3, “Definitions used in equations to obtain the PM2.5 unaffected by temperature”
    METAL Mass of metal component of PM2.5, which is a component of PMFINE
    62.0049 Molecular weight of nitrate
    96.0576 Molecular weight of sulfate
    18.0383 Molecular weight of ammonium
    POC Mass of primary organic carbon, a species needed for CMAQ
    PM25OM Mass of organic material PM2.5 provided by the MOVES model this actually includes more than organic matter. It includes the mass of all components of PM2.5 other than PEC and PSO4
    PM10OM Mass of organic material PM10 provided by the MOVES model.
    PMFINE Mass of other primary PM2.5 not accounted for in PEC, POC, PSO4, and PNO3; this is a species needed for CMAQ. This mass includes the ammonium, metals, water, and the mass of the noncarbon material, i.e., hydrogen, oxygen, and other atoms attached to the organic carbon
    PMC Mass of the coarse fraction of PM10; defined as PM10 - PM2.5; this is a species needed for CMAQ
    RPM10-to-PM25 Ratio of PM10-to-PM2.5, which is a constant that is dependent upon fuel type; values are provided in next table

    Table 5.4, “Values and basis for fractions used to compute PNO3, METAL, and PMC” gives the values for FNO3, FEC and FMETAL and RPM10-to-PM25. They are based on the vehicle type (first seven digits of the SCC), except that RPM10-to- PM25 is based soley on fuel type.

    Table 5.4. Values and basis for fractions used to compute PNO3, METAL, and PMC

    Vehicle Type SCC list FEC(%) FNO3(%) FMETAL(%) RPM10-to-PM25
    LDDV ALL SCCs that begin with:223000[1-6] 57.4805 0.2300 0.6513 1.0309
    HDDV ALL SCCs that begin with:223007 77.1241 0.1141 0.2757 1.0309
    LDGV/HDGV ALL SCCs that begin with:2201 20.8011 0.1015 2.2256 1.0860
    >
  5. Create final emission rate lookup tables in SMOKE format

    In addition to the changes specified above sections(put in reference), a few minor cosmetic changes (described in this section) are made to each table. The three postprocessed tables named rateperdistance_smoke, ratepervehicle_smoke, and rateperprofile_smoke are exported from MySQL into ASCII files for their use in SMOKE. The fields are listed by lookup table type (refer to final lookup table - section2).

    Table 5.5. MOVES processID, corresonding processName and associated emission rate lookup table for SMOKE

    processID Description smokeProcID agg. smokeProcID Lookup Table(s)
    1 Running Exhaust EXR EXH RPD
    2 Start Exhaust EXR EXH RPV
    15 Crank Run Exhaust CXR EXH RPD
    16 Crank Start Exhaust CXS EXH RPV
    17 Crank Ext Idle Exhaust CEI EXH RPV
    90 Ext Idle Exhaust EXT EXH RPV
    11 Evap Permeation EPM EVP RPD, RPV
    12 Evaporative Fuel Vent EFV EVP RPD, RPP
    13 Evaporative Fuel Leak EFL EVP RPD, RPV
    18 Refuel Disp Vap RFV N/A N/A
    19 Refuel Spillage RFS N/A N/A
    9 Brakewear BRK BRK RPD
    10 Tirewear TIR TIR RPD
5.2.4.2.2. Processing Order

Moves2smkEF.pl is run after runspec.csh, and before any SMOKE processing. The Moves2smkEF.pl is written in Perl, generates SMOKE-ready MOVES lookup tables (i.e., RPD, RPV and RPP) by each reference county and fuel month for inputs to Movesmrg.

5.2.4.2.3. Files, Environment Variables and Run Syntax
5.2.4.2.3.1. Input Files
File Name Format Description
rateperdistance
ratepervehicle
rateperprofile
MOVES format Columns in the MOVES Emission Rate Lookup Table are described in Table 2.9, “MOVES Emission Rate Lookup Table (MOVES Format)”.
5.2.4.2.3.2. Input Environment Variables

None

5.2.4.2.3.3. Output Files
File Name Format Description
rateperdistance
ratepervehicle
rateperprofile
SMOKE format Columns in the MOVES Emission Rate Lookup Table are described in Table 2.10, “MOVES Emission Rate Lookup Table (SMOKE Format)”.

5.2.4.3. SmkEFsum.pl

5.2.4.3.1. Description

The SmkEFsum.pl aggregates up to 13 different modes emission rate lookup tables produced by SmkEFsum.pl into four different modes (i.e., EXH, EVP, BRK and TIR) to reduce the size of emissions rate lookup tables and computational time.

5.2.4.3.2. Processing Order

The perl script performs the following steps:

  1. In the directory specified by InputDBlist, SmkEFsum.pl will read the three MRCLIST files created by Moves2smkEF.pl

  2. It then opens each emission factor files listed in the MRCLIST files that were created by Moves2smkEF.pl and sums the emissions.

  3. It will write new emission factor files to the OutputPath directory and create a new MRCLIST file.

  4. The new files are all named with ".summed.lst" or ".summed.csv" to avoid any confusion with the original emission factor files. SmkEFsum.pl will work with files created by earlier versions of Moves2smkEF.pl (where the evaporative permeation emissions were named EVP - prior to renaming to EPM) and with the latest version.

5.2.4.3.3. Files, Environment Variables and Run Syntax
5.2.4.3.3.1. Input Files
File Name Format Description
InputDBlist: ASCII List of MySQL database names to process (generated by runspec_generator_v0.1.pl)
mcrlist.rateperdistance.lst: ASCII
mcrlist.ratepervehicle.lst: ASCII
mcrlist.rateperprofile.lst: ASCII
5.2.4.3.3.2. Run Command syntax
perl SmkEFsum.pl InputDBlist OutputPath
5.2.4.3.3.3. Output Files
File Name Format Description
rateperdistance_smoke_*.csv ASCII RPD SMOKE formatted lookup table (fuel month specific)
ratepervehicle_smoke_*.csv ASCII RPV SMOKE formatted lookup table (fuel month specific)
rateperprofile_smoke_*.csv ASCII RPP SMOKE formatted lookup table (fuel month specific)
MRCLIST ASCII contain a list of these lookup table names by fuel month for Movesmrg to use as an input file