After Premobl has been run, the Emisfac program runs MOBILE6 and creates the emission factor files needed for on-road mobile-source processing by the Temporal program. Emisfac performs a number of input file and other checks, then creates a concatenated MOBILE6 input file; it concludes by running MOBILE6 and writing an emission factors file. These steps are described in more detail in the following paragraphs. Emisfac must be run once for each averaging group (daily, weekly, monthly, and episodic), and it outputs emission factors at the same temporal resolution as the meteorology data that are input.
First, Emisfac performs setup and internal checks. It opens and reads the inventory file, speed summary file (SPDSUM
), list of MOBILE6 scenarios (M6LIST
), emission processes file (MEPROC
), inventory table (INVTABLE
), speed profiles file (SPDPRO
), and first hourly meteorology file. It also opens a *GROUP
file, depending on what setting is given to the GROUP_TYPE
environment variable, which sets the averaging group. Using the emission processes file (MEPROC
), Emisfac sets up a list of the process-pollutant combinations that will be generated by the program’s run and ensures that this list
is valid in MOBILE6. It also checks to see which hydrocarbon type it should create, using the MB_HC_TYPE
setting.
Emisfac also uses the inventory table (INVTABLE
) to create a list of pollutants to be subtracted from VOC or TOG to calculate NONHAPVOC or NONHAPTOG. If the output hydrocarbon
type is not TOG or VOC, this step is skipped. Otherwise, any pollutants listed as part of VOC or TOG in the inventory table
and also listed in the MEPROC
file (i.e., actually calculated by MOBILE6) are subtracted from TOG to create NONHAPTOG. Pollutants listed only as part of
VOC in the inventory table and listed in the MEPROC
file will be subtracted from VOC to create NONHAPVOC - hence, these two files must be consistent. Emisfac also prints these listed pollutants to the log file.
Emisfac next creates a concatenated MOBILE6 input file by taking the following steps:
First, Emisfac creates the header for the MOBILE6 input file; this header indicates what type of output to create and which pollutants should
be calculated, based on the MEPROC
file. Pollutants that are in the MEPROC
file but are not intrinsic to MOBILE6 are assumed to be user-defined toxics and a warning is written to that effect in the
log file. This section of the MOBILE6 input is concluded by writing the RUN DATA command.
Next, Emisfac loops through the reference counties and opens the appropriate MOBILE6 input scenario (as set by the M6LIST
file) for a given county. The user must provide separate MOBILE6 input scenarios for each reference county. SMOKE chooses
the correct scenario by comparing the state and county FIPS code for the reference county with the scenario file names. After
reading the data from the scenario file, SMOKE checks the scenario for various commands, and comments out the commands that
it overrides - for example, SCENARIO RECORD, PARTICLE SIZE, and AVERAGE SPEED. Emisfac also overrides the CALENDAR YEAR command to use the EF_YEAR
environment variable setting. If the temperatures in the MOBILE6 scenario are to be replaced with values calculated by Premobl, Emisfac will find the MIN/MAX TEMPERATURE or HOURLY TEMPERATURES command in the scenario and replace it with the appropriate hourly
temperatures from the average-temperature input file for the temperature group being processed. Likewise, if the humidity
data are to be replaced, Emisfac replaces the BAROMETRIC PRESSURE and RELATIVE HUMIDITY commands with the appropriate data calculated by Premobl.
Any run-level commands, such as I/M or anti-tampering program commands in the MOBILE6 inputs, are then passed through to the concatenated input file. Run-level commands are any commands that appear before the SCENARIO RECORD command in the user-provided scenario files. Emisfac also inserts the appropriate EXPRESS HC AS * command, depending on the desired hydrocarbon output type.
Emisfac next uses data from the speed summary file to determine which speeds are needed for the current county. A new external data
file to be used with the SPEED VMT command is created for each combination of freeway and arterial speeds. The location of
the speed VMT files is determined by the SMK_SPDPATH
environment variable. If speed profiles are being used, the speed profile number has been stored in the speed summary file,
and Emisfac will look for the corresponding speed profile in the speed profiles file. Otherwise, Emisfac will use the single speed from the speed summary file as the speed for each hour. The hourly speeds are then converted to
the format required by the SPEED VMT command, the ramp component of the speeds is optionally removed, and the values are written
to the external data file. Whether or not the ramp component is removed is controlled by the ADJUST_INV_SPEED
and ADJUST_HR_SPEED
environment variables for inventory speeds and speed profiles respectively.
Each speed combination corresponds to a new scenario in the concatenated MOBILE6 file. Emisfac writes the SCENARIO RECORD command with a new scenario number, and then writes the remaining lines of the original scenario file to the concatenated input file. Finally, the SPEED VMT command is written; it includes the name of the external data file created in the previous step.
After all speed combinations have been accounted for, Emisfac writes the END OF RUN command to the concatenated input file. It then goes on to the next reference county and repeats the process.
The last major processing step for Emisfac is to compute the emission factors. Before running MOBILE6, Emisfac opens the output file, so that if there is any problem opening the file (e.g., the directory assigned to contain the file
does not exist), this problem is discovered before time is invested in running the MOBILE6 program. The emission factor files
are stored using an internally defined name in the user-defined directory (set with the SMK_EMISPATH
setting).
Emisfac runs MOBILE6 as a function call. MOBILE6 reads the concatenated input file created by Emisfac and calculates the appropriate emission factors. The version of MOBILE6 used by SMOKE has been modified to aggregate the emission factors to the eight vehicle types needed by SMOKE, because these are the vehicle types for which VMT data are currently available. Any warnings or errors generated by MOBILE6 are written to the Emisfac log file and the standard output (e.g., the screen). When particulate emission factors need to be computed, Emisfac runs MOBILE6 twice to calculate emission factors for both particle sizes (2.5 and 10 microns), since MOBILE6 can generate emission factors for only one particle size at a time. Emisfac calculates a coarse PM value (PMC) from PM2.5 and PM10 using the formula PMC = PM10 - PM2.5. For each hour and source, Emisfac locates the correct emission factors based on vehicle type, road type, and speed. For freeway sources, Emisfac computes a composite emission factor that includes the effects of ramps. Emisfac will also compute NONHAPVOC or NONHAPTOG if needed, by subtracting the appropriate toxics emission factors from the VOC or TOG emission factors. Last, Emisfac writes the hourly emission factors.
If additional days of meteorology files are available, Emisfac regenerates the concatenated MOBILE6 input file and performs the processing steps again. All 24-hour emission factor sets for each averaging group are written to separate files. When there are no more averaged meteorology files available (no more days, weeks, or months to process), the program completes.