Skip to main content
U.S. flag

An official website of the United States government

Here’s how you know

Dot gov

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

HTTPS

Secure .gov websites use HTTPS
A lock (LockA locked padlock) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

    • Environmental Topics
    • Air
    • Bed Bugs
    • Cancer
    • Chemicals, Toxics, and Pesticide
    • Emergency Response
    • Environmental Information by Location
    • Health
    • Land, Waste, and Cleanup
    • Lead
    • Mold
    • Radon
    • Research
    • Science Topics
    • Water Topics
    • A-Z Topic Index
    • Laws & Regulations
    • By Business Sector
    • By Topic
    • Compliance
    • Enforcement
    • Laws and Executive Orders
    • Regulations
    • Report a Violation
    • Environmental Violations
    • Fraud, Waste or Abuse
    • About EPA
    • Our Mission and What We Do
    • Headquarters Offices
    • Regional Offices
    • Labs and Research Centers
    • Planning, Budget, and Results
    • Organization Chart
    • EPA History

Breadcrumb

  1. Home
  2. MOVES and Related Models

MOVES Algorithms

MOVES Algorithms Reference, October 5, 2015

This HTML document was generated by MOVES2014a code. It provides a hyperlinked reference to detailed technical information on MOVES code modules and database tables. For more information on MOVES, see Latest Version of MOtor Vehicle Emission Simulator (MOVES)

Table of Contents

Modules

  • Activity Calculator
  • Air toxics Calculator
  • Average Speed Operating Mode Distribution Generator
  • Base Rate Generator
  • BaseRateCalculator
  • CO2AERunningStartExtendedIdleCalculator
  • Crankcase Emission Calculator
  • Distance Calculator
  • Evaporative Emissions Operating Mode Distribution Generator
  • Evaporative Permeation Calculator
  • Fuel Effects Generator
  • HC Speciation Calculator
  • Link Operating Mode Distribution Generator
  • Liquid Leaking Calculator
  • Meteorology Generator
  • NO Calculator
  • NO2 Calculator
  • Nonroad Air toxics Calculator
  • Nonroad Calculator
  • Nonroad HC Speciation Calculator
  • PM10 Brake Tire Calculator
  • PM10 Emission Calculator
  • Rates Operating Mode Distribution Generator
  • Refueling Loss Calculator
  • SO2 Calculator
  • SourceBin Distribution Generator
  • Start Operating Mode Distribution Generator
  • Sulfate PM Calculator
  • TOG Speciation Calculator
  • Tank Fuel Generator
  • Tank Temperature Generator
  • Tank Vapor Venting Calculator
  • Total Activity Generator

Database Tables

  • AgeCategory
  • AgeGroup
  • ATBaseEmissions
  • ATRatio
  • ATRatioGas2
  • ATRatioNonGas
  • AverageTankGasoline
  • AverageTankTemperature
  • avft
  • AvgSpeedBin
  • AvgSpeedDistribution
  • BaseFuel
  • ColdSoakInitialHourFraction
  • ColdSoakTankTemperature
  • ComplexModelParameterName
  • ComplexModelParameters
  • County
  • CountyYear
  • CrankcaseEmissionRatio
  • criteriaRatio
  • CumTVVCoeffs
  • DataSource
  • DayOfAnyWeek
  • DayVMTFraction
  • dioxinemissionrate
  • DriveSchedule
  • DriveScheduleAssoc
  • DriveScheduleSecond
  • driveScheduleSecondLink
  • e10FuelProperties
  • EmissionProcess
  • EmissionRate
  • EmissionRateAdjustment
  • EmissionRateByAge
  • EngineSize
  • enginetech
  • ETOHBin
  • evapRVPTemperatureAdjustment
  • evapTemperatureAdjustment
  • ExtendedIdleHours
  • FuelEngTechAssoc
  • FuelFormulation
  • FuelModelName
  • FuelModelWtFactor
  • FuelModelYearGroup
  • FuelParameterName
  • FuelSubtype
  • FuelSupply
  • FuelSupplyYear
  • FuelType
  • fuelUsageFraction
  • fuelWizardFactors
  • FullACAdjustment
  • generalFuelRatio
  • generalFuelRatioExpression
  • GREETManfAndDisposal
  • GREETWellToPump
  • Grid
  • GridZoneAssoc
  • HCPermeationCoeff
  • HCSpeciation
  • hotellingActivityDistribution
  • hotellingCalendarYear
  • hotellingHours
  • HourDay
  • HourOfAnyDay
  • HourVMTFraction
  • HPMSVtype
  • HPMSVtypeDay
  • HPMSVtypeYear
  • IMCoverage
  • IMFactor
  • imInspectFreq
  • IMModelYearGroup
  • importStartsOpModeDistribution
  • IMTestStandards
  • integratedSpeciesSet
  • integratedSpeciesSetName
  • Link
  • LinkAverageSpeed
  • LinkHourVMTFraction
  • linkSourceTypeHour
  • lumpedSpeciesName
  • M6SulfurCoeff
  • MeanFuelParameters
  • mechanismName
  • metalemissionrate
  • methaneTHCRatio
  • minorhapratio
  • ModelYear
  • modelYearCutPoints
  • ModelYearGroup
  • modelYearMapping
  • MonthGroupHour
  • MonthGroupOfAnyYear
  • MonthofAnyYear
  • MonthVMTFraction
  • NONO2Ratio
  • nrAgeCategory
  • nratratio
  • nrBaseYearEquipPopulation
  • nrCrankcaseEmissionRate
  • nrDayAllocation
  • nrDeterioration
  • nrdioxinemissionrate
  • nrEmissionRate
  • nrEngtechFraction
  • nrEquipmentType
  • nrEvapEmissionRate
  • nrFuelSubtype
  • nrFuelSupply
  • nrFuelType
  • nrGrowthIndex
  • nrGrowthPattern
  • nrGrowthPatternFinder
  • nrhcspeciation
  • nrHourAllocation
  • nrHourAllocPattern
  • nrHourPatternFinder
  • nrhpcategory
  • nrHPRangeBin
  • nrintegratedspecies
  • nrmetalemissionrate
  • nrmethanethcratio
  • nrMonthAllocation
  • nrpahgasratio
  • nrpahparticleratio
  • nrRetrofitFactors
  • nrSCC
  • nrScrappageCurve
  • nrSourceUseType
  • nrStateSurrogate
  • nrSulfurAdjustment
  • nrSurrogate
  • nrUSMonthAllocation
  • offNetworkLink
  • OMDGPolProcessRepresented
  • onRoadRetrofit
  • OperatingMode
  • OpModeDistribution
  • OpModePolProcAssoc
  • OxyThreshName
  • pahGasRatio
  • pahParticleRatio
  • PM10EmissionRatio
  • PMSpeciation
  • Pollutant
  • PollutantProcessAssoc
  • PollutantProcessModelYear
  • processDisplayGroup
  • processGroupID
  • RefuelingFactors
  • region
  • regionCode
  • regionCounty
  • RegulatoryClass
  • RetrofitInputAssociations
  • RoadOpmodeDistribution
  • RoadType
  • RoadTypeDistribution
  • SampleVehicleDay
  • sampleVehiclePopulation
  • sampleVehicleSoaking
  • sampleVehicleSoakingDay
  • sampleVehicleSoakingDayBasis
  • sampleVehicleSoakingDayBasisUsed
  • sampleVehicleSoakingDayUsed
  • SampleVehicleTrip
  • scc
  • Sector
  • SHO
  • SizeWeightFraction
  • SoakActivityFraction
  • SourceBin
  • SourceBinDistribution
  • SourceHours
  • SourceTypeAge
  • SourceTypeAgeDistribution
  • SourceTypeDayVMT
  • SourceTypeHour
  • SourceTypeModelYear
  • SourceTypeModelYearGroup
  • SourceTypePolProcess
  • SourceTypeTechAdjustment
  • SourceTypeYear
  • SourceTypeYearVMT
  • SourceUseType
  • sourceUseTypePhysics
  • Starts
  • startsHourFraction
  • startsMonthAdjust
  • startsPerDay
  • StartsPerVehicle
  • startsSourceTypeFraction
  • StartTempAdjustment
  • State
  • SulfateEmissionRate
  • SulfateFractions
  • SulfurBase
  • sulfurCapAmount
  • SulfurModelCoeff
  • SulfurModelName
  • TankTemperatureGroup
  • TankTemperatureRise
  • TankVaporGenCoeffs
  • TemperatureAdjustment
  • temperatureFactorExpression
  • TemperatureProfileID
  • togSpeciation
  • TOGSpeciationProfile
  • TOGSpeciationProfileName
  • WeightClass
  • Year
  • Zone
  • ZoneMonthHour
  • ZoneRoadType

Activity Calculator

Activity Calculator is a CALCULATOR that executes at the YEAR level.

Activity Calculator uses the following tables:

  • ExtendedIdleHours
  • fuelUsageFraction
  • hotellingActivityDistribution
  • hotellingHours
  • HourDay
  • Link
  • linkSourceTypeHour
  • offNetworkLink
  • RoadTypeDistribution
  • sampleVehiclePopulation
  • SHO
  • SourceHours
  • SourceTypeAgeDistribution
  • SourceTypeModelYear
  • SourceUseType
  • Starts
  • ZoneRoadType


Activity Calculator is expressed in these source code files:

  • /database/ActivityCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/ActivityCalculator.java

Steps

The Activity Calculator algorithm is as follows.

Step: sourceHours = sourceHours[sourceTypeID,hourDayID,monthID,yearID,ageID,linkID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Inputs: hourday, link, regclasssourcetypefraction, sourcehours, sourcetypefuelfraction
Outputs: ##activitytable##

Step: extendedIdleHours = extendedIdleHours[sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Inputs: extendedidlehours, hourday, regclasssourcetypefraction, sourcetypefuelfraction
Outputs: ##activitytable##

Step: sho = sho[sourceTypeID,hourDayID,monthID,yearID,ageID,linkID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Inputs: hourday, link, regclasssourcetypefraction, sho, sourcetypefuelfraction
Outputs: ##activitytable##

Step: shp = shp[sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Inputs: hourday, regclasssourcetypefraction, shp, sourcetypefuelfraction
Outputs: ##activitytable##

Step: sutFraction[sourceTypeID] = sum(roadTypeVMTFraction * shoAllocFactor)/sum(roadTypeVMTFraction)
Conditions: Non-Project domain
Inputs: roadtypedistribution, sourceusetype, zoneroadtype
Outputs: fractionbysourcetypetemp

Step: tempPopulation = sourceTypeAgePopulation[yearID,sourceTypeID,ageID] * sutFraction[sourceTypeID]
Conditions: Non-Project domain
Inputs: fractionbysourcetypetemp, link, runspecsourcetype, sourcetypeagepopulation
Outputs: sourcetypetemppopulation

Step: population = tempPopulation*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Conditions: Non-Project domain
Inputs: regclasssourcetypefraction, sourcetypefuelfraction, sourcetypetemppopulation
Outputs: ##activitytable##

Step: population on off-network link = vehiclePopulation*ageFraction[yearID,sourceTypeID,ageID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Conditions: Project domain, Offnetwork link
Inputs: link, offnetworklink, regclasssourcetypefraction, sourcetypeagedistribution, sourcetypefuelfraction
Outputs: ##activitytable##

Step: population on roadways = linkVolume[linkID]*sourceTypeHourFraction[linkID,sourceTypeID]*ageFraction[yearID,sourceTypeID,ageID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Conditions: Project domain, On roadways
Inputs: link, linksourcetypehour, regclasssourcetypefraction, sourcetypeagedistribution, sourcetypefuelfraction
Outputs: ##activitytable##

Step: starts = starts[sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Inputs: hourday, regclasssourcetypefraction, sourcetypefuelfraction, starts
Outputs: ##activitytable##

Step: hotellingAux hours = hotellingHours[sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID]*opModeFraction[opModeID=201,modelYearID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]. hotellingElectric hours = hotellingHours[sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID]*opModeFraction[opModeID=203,modelYearID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]. hotellingOff hours = hotellingHours[sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID]*opModeFraction[opModeID=204,modelYearID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID].
Inputs: hotellingactivitydistribution, hotellinghours, hourday, regclasssourcetypefraction, sourcetypefuelfraction
Outputs: ##activitytable##


Air toxics Calculator

Air toxics Calculator is a CHAINED CALCULATOR.

The Air toxics Calculator is responsible for:

  • Running Exhaust (1) Benzene (20)
  • Start Exhaust (2) Benzene (20)
  • Evap Permeation (11) Benzene (20)
  • Evap Fuel Vapor Venting (12) Benzene (20)
  • Evap Fuel Leaks (13) Benzene (20)
  • Refueling Displacement Vapor Loss (18) Benzene (20)
  • Refueling Spillage Loss (19) Benzene (20)
  • Extended Idle Exhaust (90) Benzene (20)
  • Auxiliary Power Exhaust (91) Benzene (20)
  • Running Exhaust (1) Ethanol (21)
  • Start Exhaust (2) Ethanol (21)
  • Evap Permeation (11) Ethanol (21)
  • Evap Fuel Vapor Venting (12) Ethanol (21)
  • Evap Fuel Leaks (13) Ethanol (21)
  • Refueling Displacement Vapor Loss (18) Ethanol (21)
  • Refueling Spillage Loss (19) Ethanol (21)
  • Running Exhaust (1) MTBE (22)
  • Start Exhaust (2) MTBE (22)
  • Evap Permeation (11) MTBE (22)
  • Evap Fuel Vapor Venting (12) MTBE (22)
  • Evap Fuel Leaks (13) MTBE (22)
  • Refueling Displacement Vapor Loss (18) MTBE (22)
  • Refueling Spillage Loss (19) MTBE (22)
  • Running Exhaust (1) Naphthalene particle (23)
  • Start Exhaust (2) Naphthalene particle (23)
  • Extended Idle Exhaust (90) Naphthalene particle (23)
  • Auxiliary Power Exhaust (91) Naphthalene particle (23)
  • Running Exhaust (1) 1,3-Butadiene (24)
  • Start Exhaust (2) 1,3-Butadiene (24)
  • Extended Idle Exhaust (90) 1,3-Butadiene (24)
  • Auxiliary Power Exhaust (91) 1,3-Butadiene (24)
  • Running Exhaust (1) Formaldehyde (25)
  • Start Exhaust (2) Formaldehyde (25)
  • Extended Idle Exhaust (90) Formaldehyde (25)
  • Auxiliary Power Exhaust (91) Formaldehyde (25)
  • Running Exhaust (1) Acetaldehyde (26)
  • Start Exhaust (2) Acetaldehyde (26)
  • Extended Idle Exhaust (90) Acetaldehyde (26)
  • Auxiliary Power Exhaust (91) Acetaldehyde (26)
  • Running Exhaust (1) Acrolein (27)
  • Start Exhaust (2) Acrolein (27)
  • Extended Idle Exhaust (90) Acrolein (27)
  • Auxiliary Power Exhaust (91) Acrolein (27)
  • Running Exhaust (1) 2,2,4-Trimethylpentane (40)
  • Start Exhaust (2) 2,2,4-Trimethylpentane (40)
  • Evap Permeation (11) 2,2,4-Trimethylpentane (40)
  • Evap Fuel Vapor Venting (12) 2,2,4-Trimethylpentane (40)
  • Evap Fuel Leaks (13) 2,2,4-Trimethylpentane (40)
  • Refueling Displacement Vapor Loss (18) 2,2,4-Trimethylpentane (40)
  • Refueling Spillage Loss (19) 2,2,4-Trimethylpentane (40)
  • Extended Idle Exhaust (90) 2,2,4-Trimethylpentane (40)
  • Auxiliary Power Exhaust (91) 2,2,4-Trimethylpentane (40)
  • Running Exhaust (1) Ethyl Benzene (41)
  • Start Exhaust (2) Ethyl Benzene (41)
  • Evap Permeation (11) Ethyl Benzene (41)
  • Evap Fuel Vapor Venting (12) Ethyl Benzene (41)
  • Evap Fuel Leaks (13) Ethyl Benzene (41)
  • Refueling Displacement Vapor Loss (18) Ethyl Benzene (41)
  • Refueling Spillage Loss (19) Ethyl Benzene (41)
  • Extended Idle Exhaust (90) Ethyl Benzene (41)
  • Auxiliary Power Exhaust (91) Ethyl Benzene (41)
  • Running Exhaust (1) Hexane (42)
  • Start Exhaust (2) Hexane (42)
  • Evap Permeation (11) Hexane (42)
  • Evap Fuel Vapor Venting (12) Hexane (42)
  • Evap Fuel Leaks (13) Hexane (42)
  • Refueling Displacement Vapor Loss (18) Hexane (42)
  • Refueling Spillage Loss (19) Hexane (42)
  • Extended Idle Exhaust (90) Hexane (42)
  • Auxiliary Power Exhaust (91) Hexane (42)
  • Running Exhaust (1) Propionaldehyde (43)
  • Start Exhaust (2) Propionaldehyde (43)
  • Extended Idle Exhaust (90) Propionaldehyde (43)
  • Auxiliary Power Exhaust (91) Propionaldehyde (43)
  • Running Exhaust (1) Styrene (44)
  • Start Exhaust (2) Styrene (44)
  • Extended Idle Exhaust (90) Styrene (44)
  • Auxiliary Power Exhaust (91) Styrene (44)
  • Running Exhaust (1) Toluene (45)
  • Start Exhaust (2) Toluene (45)
  • Evap Permeation (11) Toluene (45)
  • Evap Fuel Vapor Venting (12) Toluene (45)
  • Evap Fuel Leaks (13) Toluene (45)
  • Refueling Displacement Vapor Loss (18) Toluene (45)
  • Refueling Spillage Loss (19) Toluene (45)
  • Extended Idle Exhaust (90) Toluene (45)
  • Auxiliary Power Exhaust (91) Toluene (45)
  • Running Exhaust (1) Xylene (46)
  • Start Exhaust (2) Xylene (46)
  • Evap Permeation (11) Xylene (46)
  • Evap Fuel Vapor Venting (12) Xylene (46)
  • Evap Fuel Leaks (13) Xylene (46)
  • Refueling Displacement Vapor Loss (18) Xylene (46)
  • Refueling Spillage Loss (19) Xylene (46)
  • Extended Idle Exhaust (90) Xylene (46)
  • Auxiliary Power Exhaust (91) Xylene (46)
  • Running Exhaust (1) Dibenzo(a,h)anthracene particle (68)
  • Start Exhaust (2) Dibenzo(a,h)anthracene particle (68)
  • Running Exhaust (1) Fluoranthene particle (69)
  • Start Exhaust (2) Fluoranthene particle (69)
  • Running Exhaust (1) Acenaphthene particle (70)
  • Start Exhaust (2) Acenaphthene particle (70)
  • Running Exhaust (1) Acenaphthylene particle (71)
  • Start Exhaust (2) Acenaphthylene particle (71)
  • Running Exhaust (1) Anthracene particle (72)
  • Start Exhaust (2) Anthracene particle (72)
  • Running Exhaust (1) Benz(a)anthracene particle (73)
  • Start Exhaust (2) Benz(a)anthracene particle (73)
  • Running Exhaust (1) Benzo(a)pyrene particle (74)
  • Start Exhaust (2) Benzo(a)pyrene particle (74)
  • Running Exhaust (1) Benzo(b)fluoranthene particle (75)
  • Start Exhaust (2) Benzo(b)fluoranthene particle (75)
  • Running Exhaust (1) Benzo(g,h,i)perylene particle (76)
  • Start Exhaust (2) Benzo(g,h,i)perylene particle (76)
  • Running Exhaust (1) Benzo(k)fluoranthene particle (77)
  • Start Exhaust (2) Benzo(k)fluoranthene particle (77)
  • Running Exhaust (1) Chrysene particle (78)
  • Start Exhaust (2) Chrysene particle (78)
  • Running Exhaust (1) Fluorene particle (81)
  • Start Exhaust (2) Fluorene particle (81)
  • Running Exhaust (1) Indeno(1,2,3,c,d)pyrene particle (82)
  • Start Exhaust (2) Indeno(1,2,3,c,d)pyrene particle (82)
  • Running Exhaust (1) Phenanthrene particle (83)
  • Start Exhaust (2) Phenanthrene particle (83)
  • Running Exhaust (1) Pyrene particle (84)
  • Start Exhaust (2) Pyrene particle (84)
  • Running Exhaust (1) Dibenzo(a,h)anthracene gas (168)
  • Start Exhaust (2) Dibenzo(a,h)anthracene gas (168)
  • Extended Idle Exhaust (90) Dibenzo(a,h)anthracene gas (168)
  • Auxiliary Power Exhaust (91) Dibenzo(a,h)anthracene gas (168)
  • Running Exhaust (1) Fluoranthene gas (169)
  • Start Exhaust (2) Fluoranthene gas (169)
  • Extended Idle Exhaust (90) Fluoranthene gas (169)
  • Auxiliary Power Exhaust (91) Fluoranthene gas (169)
  • Running Exhaust (1) Acenaphthene gas (170)
  • Start Exhaust (2) Acenaphthene gas (170)
  • Extended Idle Exhaust (90) Acenaphthene gas (170)
  • Auxiliary Power Exhaust (91) Acenaphthene gas (170)
  • Running Exhaust (1) Acenaphthylene gas (171)
  • Start Exhaust (2) Acenaphthylene gas (171)
  • Extended Idle Exhaust (90) Acenaphthylene gas (171)
  • Auxiliary Power Exhaust (91) Acenaphthylene gas (171)
  • Running Exhaust (1) Anthracene gas (172)
  • Start Exhaust (2) Anthracene gas (172)
  • Extended Idle Exhaust (90) Anthracene gas (172)
  • Auxiliary Power Exhaust (91) Anthracene gas (172)
  • Running Exhaust (1) Benz(a)anthracene gas (173)
  • Start Exhaust (2) Benz(a)anthracene gas (173)
  • Extended Idle Exhaust (90) Benz(a)anthracene gas (173)
  • Auxiliary Power Exhaust (91) Benz(a)anthracene gas (173)
  • Running Exhaust (1) Benzo(a)pyrene gas (174)
  • Start Exhaust (2) Benzo(a)pyrene gas (174)
  • Extended Idle Exhaust (90) Benzo(a)pyrene gas (174)
  • Auxiliary Power Exhaust (91) Benzo(a)pyrene gas (174)
  • Running Exhaust (1) Benzo(b)fluoranthene gas (175)
  • Start Exhaust (2) Benzo(b)fluoranthene gas (175)
  • Extended Idle Exhaust (90) Benzo(b)fluoranthene gas (175)
  • Auxiliary Power Exhaust (91) Benzo(b)fluoranthene gas (175)
  • Running Exhaust (1) Benzo(g,h,i)perylene gas (176)
  • Start Exhaust (2) Benzo(g,h,i)perylene gas (176)
  • Extended Idle Exhaust (90) Benzo(g,h,i)perylene gas (176)
  • Auxiliary Power Exhaust (91) Benzo(g,h,i)perylene gas (176)
  • Running Exhaust (1) Benzo(k)fluoranthene gas (177)
  • Start Exhaust (2) Benzo(k)fluoranthene gas (177)
  • Extended Idle Exhaust (90) Benzo(k)fluoranthene gas (177)
  • Auxiliary Power Exhaust (91) Benzo(k)fluoranthene gas (177)
  • Running Exhaust (1) Chrysene gas (178)
  • Start Exhaust (2) Chrysene gas (178)
  • Extended Idle Exhaust (90) Chrysene gas (178)
  • Auxiliary Power Exhaust (91) Chrysene gas (178)
  • Running Exhaust (1) Fluorene gas (181)
  • Start Exhaust (2) Fluorene gas (181)
  • Extended Idle Exhaust (90) Fluorene gas (181)
  • Auxiliary Power Exhaust (91) Fluorene gas (181)
  • Running Exhaust (1) Indeno(1,2,3,c,d)pyrene gas (182)
  • Start Exhaust (2) Indeno(1,2,3,c,d)pyrene gas (182)
  • Extended Idle Exhaust (90) Indeno(1,2,3,c,d)pyrene gas (182)
  • Auxiliary Power Exhaust (91) Indeno(1,2,3,c,d)pyrene gas (182)
  • Running Exhaust (1) Phenanthrene gas (183)
  • Start Exhaust (2) Phenanthrene gas (183)
  • Extended Idle Exhaust (90) Phenanthrene gas (183)
  • Auxiliary Power Exhaust (91) Phenanthrene gas (183)
  • Running Exhaust (1) Pyrene gas (184)
  • Start Exhaust (2) Pyrene gas (184)
  • Extended Idle Exhaust (90) Pyrene gas (184)
  • Auxiliary Power Exhaust (91) Pyrene gas (184)
  • Running Exhaust (1) Naphthalene gas (185)
  • Start Exhaust (2) Naphthalene gas (185)
  • Evap Permeation (11) Naphthalene gas (185)
  • Evap Fuel Vapor Venting (12) Naphthalene gas (185)
  • Evap Fuel Leaks (13) Naphthalene gas (185)
  • Refueling Displacement Vapor Loss (18) Naphthalene gas (185)
  • Refueling Spillage Loss (19) Naphthalene gas (185)
  • Extended Idle Exhaust (90) Naphthalene gas (185)
  • Auxiliary Power Exhaust (91) Naphthalene gas (185)


The Air toxics Calculator input comes from:

  • HC Speciation Calculator
  • Sulfate PM Calculator


The Air toxics Calculator output is used by:

  • Crankcase Emission Calculator
  • TOG Speciation Calculator


Air toxics Calculator uses the following tables:

  • ATRatio
  • ATRatioGas2
  • ATRatioNonGas
  • FuelFormulation
  • FuelSubtype
  • FuelSupply
  • minorhapratio
  • ModelYear
  • MonthofAnyYear
  • pahGasRatio
  • pahParticleRatio
  • PollutantProcessAssoc
  • PollutantProcessModelYear
  • Year


Air toxics Calculator is expressed in these source code files:

  • /database/AirToxicsCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/AirToxicsCalculator.java

Steps

The Air toxics Calculator algorithm is as follows.

Step: create AirToxicsMOVESWorkerOutputTemp table
Outputs: airtoxicsmovesworkeroutputtemp

Step: minor HAP emissions[outputPollutantID] = VOC (87) * ATRatio
Inputs: minorhapratio, movesworkeroutput
Outputs: airtoxicsmovesworkeroutputtemp

Step: PAH gas emissions[outputPollutantID] = VOC (87) * ATRatio
Inputs: movesworkeroutput, pahgasratio
Outputs: airtoxicsmovesworkeroutputtemp

Step: PAH particle emissions[outputPollutantID] = VOC (87) * ATRatio
Inputs: movesworkeroutput, pahparticleratio
Outputs: airtoxicsmovesworkeroutputtemp

Step: emissions[outputPollutantID] = emissions[inputPollutantID] * marketShare * ATRatio
Inputs: at1fuelsupply, atratio, atratiogas1chainedto, FuelSupply, movesworkeroutput, PollutantProcessAssoc
Outputs: airtoxicsmovesworkeroutputtemp

Step: marketShareATRatio[outputPollutantID] = marketShare * ATRatio
Inputs: at2fuelsupply, atratiogas2, atratiogas2chainedto, FuelSupply, PollutantProcessAssoc
Outputs: at2fuelsupplyratiogas2

Step: emissions[outputPollutantID] = emissions[inputPollutantID] * marketShareATRatio[outputPollutantID]
Inputs: at2fuelsupplyratiogas2, movesworkeroutput
Outputs: airtoxicsmovesworkeroutputtemp

Step: emissions[outputPollutantID] = emissions[inputPollutantID] * marketShare * ATRatio
Inputs: atnongasfuelsupply, atrationongas, atrationongaschainedto, FuelSupply, movesworkeroutput, PollutantProcessAssoc
Outputs: airtoxicsmovesworkeroutputtemp

Step: Add emissions in AirToxicsMOVESWorkerOutputTemp to MOVESWorkerOutput
Inputs: airtoxicsmovesworkeroutputtemp
Outputs: movesworkeroutput


Average Speed Operating Mode Distribution Generator

Average Speed Operating Mode Distribution Generator is a GENERATOR that executes at the LINK level.

Average Speed Operating Mode Distribution Generator uses the following tables:

  • AvgSpeedBin
  • Link
  • OperatingMode


Average Speed Operating Mode Distribution Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/AverageSpeedOperatingModeDistributionGenerator.java

Steps

The Average Speed Operating Mode Distribution Generator algorithm is as follows.

Step: Remove all tirewear pollutant/processes on any link from the operating mode distribution.
Conditions: Project domain, Tirewear process
Outputs: RatesOpModeDistribution

Step: Assign operating mode based upon a single link's linkAvgSpeed, one operating mode entry per link with opModeFraction=1.0.
Conditions: Project domain, Tirewear process
Inputs: link, operatingMode
Outputs: RatesOpModeDistribution

Step: Create a single operating mode entry, with opModeFraction=1.0, for every combination of speed bin, source type, road type, hour day, and tirewear pollutant in the runspec. Each speed bin has an associated tirewear operating mode in its opModeIDTirewear column.
Conditions: Non-Project domain, Tirewear process
Inputs: avgSpeedBin
Outputs: RatesOpModeDistribution


Base Rate Generator

Base Rate Generator is a GENERATOR that executes at the YEAR level.

Base Rate Generator uses the following tables:

  • dioxinemissionrate
  • EmissionRate
  • EmissionRateByAge
  • FullACAdjustment
  • hotellingActivityDistribution
  • metalemissionrate
  • ModelYearGroup
  • PollutantProcessAssoc
  • PollutantProcessModelYear
  • SourceBin
  • SourceBinDistribution
  • SourceTypeModelYear


Base Rate Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/BaseRateGenerator.java

Steps

The Base Rate Generator algorithm is as follows.

Step: normalizationFactor = sum(sourceBinActivityFraction).
Conditions: Rates creation

Step: normalizationFactor = 1.
Conditions: Inventory creation

Step: Weight age-based rates by sourcebin distribution. MeanBaseRate=sum(SourceBinActivityFraction * MeanBaseRate)/normalizationFactor. MeanBaseRateIM=sum(SourceBinActivityFraction * MeanBaseRateIM)/normalizationFactor. MeanBaseRateACAdj=sum(SourceBinActivityFraction * MeanBaseRate * (coalesce(fullACAdjustment,1.0)-1.0))/normalizationFactor. MeanBaseRateIMACAdj=sum(SourceBinActivityFraction * MeanBaseRateIM * (coalesce(fullACAdjustment,1.0)-1.0))/normalizationFactor. sumSBD=sum(SourceBinActivityFraction)/normalizationFactor. sumSBDRaw=sum(SourceBinActivityFraction).
Inputs: EmissionRateByAge, fullACAdjustment, PollutantProcessAssoc, PollutantProcessModelYear, RunspecModelYearAgeGroup, SourceBin, SourceBinDistribution, SourceTypeModelYear
Outputs: SBWeightedEmissionRateByAge

Step: Weight non-age-based rates by sourcebin distribution. MeanBaseRate=sum(SourceBinActivityFraction * MeanBaseRate)/normalizationFactor. MeanBaseRateIM=sum(SourceBinActivityFraction * MeanBaseRateIM)/normalizationFactor. MeanBaseRateACAdj=sum(SourceBinActivityFraction * MeanBaseRate * (coalesce(fullACAdjustment,1.0)-1.0))/normalizationFactor. MeanBaseRateIMACAdj=sum(SourceBinActivityFraction * MeanBaseRateIM * (coalesce(fullACAdjustment,1.0)-1.0))/normalizationFactor. sumSBD=sum(SourceBinActivityFraction)/normalizationFactor. sumSBDRaw=sum(SourceBinActivityFraction).
Inputs: EmissionRate, fullACAdjustment, PollutantProcessAssoc, PollutantProcessModelYear, RunspecModelYear, SourceBin, SourceBinDistribution, SourceTypeModelYear
Outputs: SBWeightedEmissionRate

Step: Make distance emission rates for metals. ratePerMile=meanBaseRate * (1.0 when units of g/mile, 1.609344 when g/km, 1.0 when TEQ/mile, 1.609344 when TEQ/km). ratePerSHO=meanBaseRate * avgBinSpeed * (1.0 when units of g/mile, 1.609344 when g/km, 1.0 when TEQ/mile, 1.609344 when TEQ/km).
Inputs: averageSpeedBin, metalEmissionRate
Outputs: distanceEmissionRate

Step: Make distance emission rates for dioxins. ratePerMile=meanBaseRate * (1.0 when units of g/mile, 1.609344 when g/km, 1.0 when TEQ/mile, 1.609344 when TEQ/km). ratePerSHO=meanBaseRate * avgBinSpeed * (1.0 when units of g/mile, 1.609344 when g/km, 1.0 when TEQ/mile, 1.609344 when TEQ/km).
Inputs: averageSpeedBin, dioxinEmissionRate
Outputs: distanceEmissionRate

Step: Weight distance-based rates by sourcebin distribution. Use fullACAdjustment for opModeID=300 (All Running). Use the SourceBinDistribution for Running Exhaust Total Gaseous Hydrocarbons (pol/proc 101). MeanBaseRate=sum(SourceBinActivityFraction * ratePerSHO)/normalizationFactor. MeanBaseRateIM=sum(SourceBinActivityFraction * ratePerSHO)/normalizationFactor. MeanBaseRateACAdj=sum(SourceBinActivityFraction * ratePerSHO * (coalesce(fullACAdjustment,1.0)-1.0))/normalizationFactor. MeanBaseRateIMACAdj=sum(SourceBinActivityFraction * ratePerSHO * (coalesce(fullACAdjustment,1.0)-1.0))/normalizationFactor. sumSBD=sum(SourceBinActivityFraction)/normalizationFactor. sumSBDRaw=sum(SourceBinActivityFraction).
Conditions: Running Exhaust
Inputs: distanceEmissionRate, fullACAdjustment, modelYearGroup, PollutantProcessAssoc, PollutantProcessModelYear, SourceBin, SourceBinDistribution, SourceTypeModelYear
Outputs: SBWeightedDistanceRate

Step: Apply hotelling activity distribution to age-weighted rates. MeanBaseRate = MeanBaseRate * opModeFraction, for MeanBaseRate, MeanBaseRateIM, MeanBaseRateACAdj, and MeanBaseRateIMACAdj.
Conditions: Auxiliary Power Exhaust
Inputs: hotellingActivityDistribution
Outputs: SBWeightedEmissionRateByAge

Step: Apply hotelling activity distribution to non-age-weighted rates. MeanBaseRate = MeanBaseRate * opModeFraction, for MeanBaseRate, MeanBaseRateIM, MeanBaseRateACAdj, and MeanBaseRateIMACAdj.
Conditions: Auxiliary Power Exhaust
Inputs: hotellingActivityDistribution
Outputs: SBWeightedEmissionRate

Step: avgSpeedFractionClause=coalesce(avgSpeedFraction,0) when conditions are met, 1 otherwise.
Conditions: Non-Project domain; Inventory; Running exhaust, Brakewear, or Tirewear.

Step: sumSBDClause=sumSBD when conditions are met, 1 otherwise.
Conditions: Inventory or Starts or Extended Idling or Auxiliary Power.

Step: quantAdjustClause=sumSBDRaw when conditions are met, 1 otherwise.
Conditions: Rates for Starts, Extended Idle, or Auxiliary Power.

Step: Calculate BaseRateByAge without operating mode, retaining average speed bin. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=case when avgBinSpeed>0 then sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIM=case when avgBinSpeed>0 then sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIMACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end.
Conditions: Not Start Exhaust, Retaining average speed bin (Non-Project domain; Rates; Running Exhaust, Brakewear, or Tirewear)
Inputs: RatesOpModeDistribution, SBWeightedEmissionRateByAge
Outputs: BaseRateByAge

Step: Calculate BaseRateByAge without operating mode, aggregating average speed bins. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause). emissionRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause). emissionRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause). emissionRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause).
Conditions: Not Start Exhaust, Aggregate average speed bins (Project domain or Inventory or Rates for Non-(Running, Brakewear, or Tirewear))
Inputs: RatesOpModeDistribution, SBWeightedEmissionRateByAge
Outputs: BaseRateByAge

Step: Calculate BaseRate without operating mode, retaining average speed bin. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=case when avgBinSpeed>0 then sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIM=case when avgBinSpeed>0 then sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIMACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end.
Conditions: Not Start Exhaust, Retaining average speed bin (Non-Project domain; Rates; Running Exhaust, Brakewear, or Tirewear)
Inputs: RatesOpModeDistribution, SBWeightedEmissionRate
Outputs: BaseRate

Step: Calculate BaseRate without operating mode, aggregating average speed bins. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause). emissionRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause). emissionRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause). emissionRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause).
Conditions: Not Start Exhaust, Aggregate average speed bins (Project domain or Inventory or Rates for Non-(Running, Brakewear, or Tirewear))
Inputs: RatesOpModeDistribution, SBWeightedEmissionRate
Outputs: BaseRateByAge

Step: Calculate BaseRate without operating mode, retaining average speed bin. opModeFraction=sum(avgSpeedFractionClause * sumSBDClause). opModeFractionRate=sum(avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * avgSpeedFractionClause * quantAdjustClause). emissionRate=case when avgBinSpeed>0 then sum(MeanBaseRate * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIM=case when avgBinSpeed>0 then sum(MeanBaseRateIM * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateACAdj * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIMACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateIMACAdj * avgSpeedFractionClause) / avgBinSpeed else null end.
Conditions: Not Start Exhaust, Retaining average speed bin (Non-Project domain; Rates; Running Exhaust, Brakewear, or Tirewear)
Inputs: RatesOpModeDistribution, SBWeightedDistanceRate
Outputs: BaseRate

Step: Calculate BaseRate without operating mode, aggregating average speed bins. opModeFraction=sum(avgSpeedFractionClause * sumSBDClause). opModeFractionRate=sum(avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * avgSpeedFractionClause * quantAdjustClause). emissionRate=sum(MeanBaseRate * avgSpeedFractionClause). emissionRateIM=sum(MeanBaseRateIM * avgSpeedFractionClause). emissionRateACAdj=sum(MeanBaseRateACAdj * avgSpeedFractionClause). emissionRateIMACAdj=sum(MeanBaseRateIMACAdj * avgSpeedFractionClause).
Conditions: Not Start Exhaust, Aggregate average speed bins (Project domain or Inventory or Rates for Non-(Running, Brakewear, or Tirewear))
Inputs: RatesOpModeDistribution, SBWeightedDistanceRate
Outputs: BaseRateByAge

Step: Calculate BaseRateByAge with operating mode, retaining average speed bin. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause * quantAdjustClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=case when avgBinSpeed>0 then sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIM=case when avgBinSpeed>0 then sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIMACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end.
Conditions: Start Exhaust, Retaining average speed bin (Non-Project domain; Rates; Running Exhaust, Brakewear, or Tirewear)
Inputs: RatesOpModeDistribution, SBWeightedEmissionRateByAge
Outputs: BaseRateByAge

Step: Calculate BaseRateByAge with operating mode, aggregating average speed bins. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause * quantAdjustClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause). emissionRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause). emissionRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause). emissionRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause).
Conditions: Start Exhaust, Aggregate average speed bins (Project domain or Inventory or Rates for Non-(Running, Brakewear, or Tirewear))
Inputs: RatesOpModeDistribution, SBWeightedEmissionRateByAge
Outputs: BaseRateByAge

Step: Calculate BaseRate with operating mode, retaining average speed bin. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause * quantAdjustClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=case when avgBinSpeed>0 then sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIM=case when avgBinSpeed>0 then sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIMACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end.
Conditions: Start Exhaust, Retaining average speed bin (Non-Project domain; Rates; Running Exhaust, Brakewear, or Tirewear)
Inputs: RatesOpModeDistribution, SBWeightedEmissionRate
Outputs: BaseRateByAge

Step: Calculate BaseRate with operating mode, aggregating average speed bins. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause * quantAdjustClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause). emissionRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause). emissionRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause). emissionRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause).
Conditions: Start Exhaust, Aggregate average speed bins (Project domain or Inventory or Rates for Non-(Running, Brakewear, or Tirewear))
Inputs: RatesOpModeDistribution, SBWeightedEmissionRate
Outputs: BaseRateByAge

Step: Calculate BaseRate with operating mode 300, retaining average speed bin. opModeFraction=sum(avgSpeedFractionClause * sumSBDClause * quantAdjustClause). opModeFractionRate=sum(avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * avgSpeedFractionClause * quantAdjustClause). emissionRate=case when avgBinSpeed>0 then sum(MeanBaseRate * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIM=case when avgBinSpeed>0 then sum(MeanBaseRateIM * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateACAdj * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIMACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateIMACAdj * avgSpeedFractionClause) / avgBinSpeed else null end.
Conditions: Start Exhaust, Retaining average speed bin (Non-Project domain; Rates; Running Exhaust, Brakewear, or Tirewear)
Inputs: RatesOpModeDistribution, SBWeightedDistanceRate
Outputs: BaseRateByAge

Step: Calculate BaseRate with operating mode 300, aggregating average speed bins. opModeFraction=sum(avgSpeedFractionClause * sumSBDClause * quantAdjustClause). opModeFractionRate=sum(avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * avgSpeedFractionClause * quantAdjustClause). emissionRate=sum(MeanBaseRate * avgSpeedFractionClause). emissionRateIM=sum(MeanBaseRateIM * avgSpeedFractionClause). emissionRateACAdj=sum(MeanBaseRateACAdj * avgSpeedFractionClause). emissionRateIMACAdj=sum(MeanBaseRateIMACAdj * avgSpeedFractionClause).
Conditions: Start Exhaust, Aggregate average speed bins (Project domain or Inventory or Rates for Non-(Running, Brakewear, or Tirewear))
Inputs: RatesOpModeDistribution, SBWeightedDistanceRate
Outputs: BaseRateByAge


BaseRateCalculator

BaseRateCalculator is a CALCULATOR that executes at the MONTH level.

The BaseRateCalculator is responsible for:

  • Running Exhaust (1) Total Gaseous Hydrocarbons (1)
  • Start Exhaust (2) Total Gaseous Hydrocarbons (1)
  • Brakewear (9) Total Gaseous Hydrocarbons (1)
  • Tirewear (10) Total Gaseous Hydrocarbons (1)
  • Extended Idle Exhaust (90) Total Gaseous Hydrocarbons (1)
  • Auxiliary Power Exhaust (91) Total Gaseous Hydrocarbons (1)
  • Running Exhaust (1) Carbon Monoxide (CO) (2)
  • Start Exhaust (2) Carbon Monoxide (CO) (2)
  • Brakewear (9) Carbon Monoxide (CO) (2)
  • Tirewear (10) Carbon Monoxide (CO) (2)
  • Extended Idle Exhaust (90) Carbon Monoxide (CO) (2)
  • Auxiliary Power Exhaust (91) Carbon Monoxide (CO) (2)
  • Running Exhaust (1) Oxides of Nitrogen (NOx) (3)
  • Start Exhaust (2) Oxides of Nitrogen (NOx) (3)
  • Brakewear (9) Oxides of Nitrogen (NOx) (3)
  • Tirewear (10) Oxides of Nitrogen (NOx) (3)
  • Extended Idle Exhaust (90) Oxides of Nitrogen (NOx) (3)
  • Auxiliary Power Exhaust (91) Oxides of Nitrogen (NOx) (3)
  • Running Exhaust (1) Nitrous Oxide (N2O) (6)
  • Start Exhaust (2) Nitrous Oxide (N2O) (6)
  • Brakewear (9) Nitrous Oxide (N2O) (6)
  • Tirewear (10) Nitrous Oxide (N2O) (6)
  • Extended Idle Exhaust (90) Nitrous Oxide (N2O) (6)
  • Auxiliary Power Exhaust (91) Nitrous Oxide (N2O) (6)
  • Running Exhaust (1) Ammonia (NH3) (30)
  • Start Exhaust (2) Ammonia (NH3) (30)
  • Brakewear (9) Ammonia (NH3) (30)
  • Tirewear (10) Ammonia (NH3) (30)
  • Extended Idle Exhaust (90) Ammonia (NH3) (30)
  • Auxiliary Power Exhaust (91) Ammonia (NH3) (30)
  • Running Exhaust (1) Total Energy Consumption (91)
  • Start Exhaust (2) Total Energy Consumption (91)
  • Brakewear (9) Total Energy Consumption (91)
  • Tirewear (10) Total Energy Consumption (91)
  • Extended Idle Exhaust (90) Total Energy Consumption (91)
  • Auxiliary Power Exhaust (91) Total Energy Consumption (91)
  • Running Exhaust (1) Composite - NonECPM (118)
  • Start Exhaust (2) Composite - NonECPM (118)
  • Brakewear (9) Composite - NonECPM (118)
  • Tirewear (10) Composite - NonECPM (118)
  • Extended Idle Exhaust (90) Composite - NonECPM (118)
  • Auxiliary Power Exhaust (91) Composite - NonECPM (118)
  • Running Exhaust (1) Elemental Carbon (112)
  • Start Exhaust (2) Elemental Carbon (112)
  • Brakewear (9) Elemental Carbon (112)
  • Tirewear (10) Elemental Carbon (112)
  • Extended Idle Exhaust (90) Elemental Carbon (112)
  • Auxiliary Power Exhaust (91) Elemental Carbon (112)
  • Running Exhaust (1) Primary PM2.5 - Brakewear Particulate (116)
  • Start Exhaust (2) Primary PM2.5 - Brakewear Particulate (116)
  • Brakewear (9) Primary PM2.5 - Brakewear Particulate (116)
  • Tirewear (10) Primary PM2.5 - Brakewear Particulate (116)
  • Extended Idle Exhaust (90) Primary PM2.5 - Brakewear Particulate (116)
  • Auxiliary Power Exhaust (91) Primary PM2.5 - Brakewear Particulate (116)
  • Running Exhaust (1) Primary PM2.5 - Tirewear Particulate (117)
  • Start Exhaust (2) Primary PM2.5 - Tirewear Particulate (117)
  • Brakewear (9) Primary PM2.5 - Tirewear Particulate (117)
  • Tirewear (10) Primary PM2.5 - Tirewear Particulate (117)
  • Extended Idle Exhaust (90) Primary PM2.5 - Tirewear Particulate (117)
  • Auxiliary Power Exhaust (91) Primary PM2.5 - Tirewear Particulate (117)
  • Running Exhaust (1) Mercury Elemental Gaseous (60)
  • Running Exhaust (1) Mercury Divalent Gaseous (61)
  • Running Exhaust (1) Mercury Particulate (62)
  • Running Exhaust (1) Arsenic Compounds (63)
  • Running Exhaust (1) Chromium 6+ (65)
  • Running Exhaust (1) Manganese Compounds (66)
  • Running Exhaust (1) Nickel Compounds (67)
  • Running Exhaust (1) 1,2,3,7,8,9-Hexachlorodibenzo-p-Dioxin (130)
  • Running Exhaust (1) Octachlorodibenzo-p-dioxin (131)
  • Running Exhaust (1) 1,2,3,4,6,7,8-Heptachlorodibenzo-p-Dioxin (132)
  • Running Exhaust (1) Octachlorodibenzofuran (133)
  • Running Exhaust (1) 1,2,3,4,7,8-Hexachlorodibenzo-p-Dioxin (134)
  • Running Exhaust (1) 1,2,3,7,8-Pentachlorodibenzo-p-Dioxin (135)
  • Running Exhaust (1) 2,3,7,8-Tetrachlorodibenzofuran (136)
  • Running Exhaust (1) 1,2,3,4,7,8,9-Heptachlorodibenzofuran (137)
  • Running Exhaust (1) 2,3,4,7,8-Pentachlorodibenzofuran (138)
  • Running Exhaust (1) 1,2,3,7,8-Pentachlorodibenzofuran (139)
  • Running Exhaust (1) 1,2,3,6,7,8-Hexachlorodibenzofuran (140)
  • Running Exhaust (1) 1,2,3,6,7,8-Hexachlorodibenzo-p-Dioxin (141)
  • Running Exhaust (1) 2,3,7,8-Tetrachlorodibenzo-p-Dioxin (142)
  • Running Exhaust (1) 2,3,4,6,7,8-Hexachlorodibenzofuran (143)
  • Running Exhaust (1) 1,2,3,4,6,7,8-Heptachlorodibenzofuran (144)
  • Running Exhaust (1) 1,2,3,4,7,8-Hexachlorodibenzofuran (145)
  • Running Exhaust (1) 1,2,3,7,8,9-Hexachlorodibenzofuran (146)
  • Running Exhaust (1) Petroleum Energy Consumption (92)
  • Start Exhaust (2) Petroleum Energy Consumption (92)
  • Brakewear (9) Petroleum Energy Consumption (92)
  • Tirewear (10) Petroleum Energy Consumption (92)
  • Extended Idle Exhaust (90) Petroleum Energy Consumption (92)
  • Auxiliary Power Exhaust (91) Petroleum Energy Consumption (92)
  • Running Exhaust (1) Fossil Fuel Energy Consumption (93)
  • Start Exhaust (2) Fossil Fuel Energy Consumption (93)
  • Brakewear (9) Fossil Fuel Energy Consumption (93)
  • Tirewear (10) Fossil Fuel Energy Consumption (93)
  • Extended Idle Exhaust (90) Fossil Fuel Energy Consumption (93)
  • Auxiliary Power Exhaust (91) Fossil Fuel Energy Consumption (93)


The BaseRateCalculator output is used by:

  • CO2AERunningStartExtendedIdleCalculator
  • Crankcase Emission Calculator
  • HC Speciation Calculator
  • NO2 Calculator
  • NO Calculator
  • PM10 Brake Tire Calculator
  • Refueling Loss Calculator
  • SO2 Calculator
  • Sulfate PM Calculator


BaseRateCalculator uses the following tables:

  • AgeCategory
  • County
  • criteriaRatio
  • EmissionRateAdjustment
  • ExtendedIdleHours
  • FuelFormulation
  • FuelSubtype
  • FuelSupply
  • FuelType
  • generalFuelRatio
  • hotellingActivityDistribution
  • hotellingHours
  • IMCoverage
  • IMFactor
  • ModelYear
  • MonthGroupHour
  • MonthofAnyYear
  • PollutantProcessAssoc
  • SHO
  • SourceBin
  • SourceTypeAge
  • SourceTypeModelYear
  • Starts
  • StartTempAdjustment
  • TemperatureAdjustment
  • Year
  • ZoneMonthHour


BaseRateCalculator is expressed in these source code files:

  • /database/BaseRateCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/BaseRateCalculator.java

Steps

The BaseRateCalculator algorithm is as follows.

Step: Create EmissionRateAdjustment by modelyear.
Inputs: emissionrateadjustment, modelyear, pollutantprocessassoc
Outputs: EmissionRateAdjustmentWorker

Step: ACFactor[hourID,sourceTypeID,modelYearID]=LEAST(GREATEST(ACActivityTermA+heatIndex*(ACActivityTermB+ACActivityTermC*heatIndex),0),1.0)*ACPenetrationFraction*functioningACFraction.
Inputs: monthgrouphour, monthofanyyear, SourceTypeAge, sourcetypemodelyear, ZoneMonthHour
Outputs: zoneACFactor

Step: activity=SHO
Conditions: Running Exhaust, Brakewear, Tirewear
Inputs: runspechourday, sho
Outputs: universalactivity

Step: activity=starts
Conditions: Starts
Inputs: runspechourday, starts
Outputs: universalactivity

Step: activity=extendedIdleHours
Conditions: Extended Idle Exhaust
Inputs: extendedidlehours, runspechourday
Outputs: universalactivity

Step: activity=hotellingHours
Conditions: Auxiliary Power Exhaust
Inputs: hotellinghours, runspechourday
Outputs: universalactivity

Step: hourFractionAdjust=1.0/opModeFraction[opModeID=201].
Conditions: Auxiliary Power Exhaust
Inputs: hotellingActivityDistribution, runspecmodelyearage
Outputs: apuEmissionRateFraction

Step: Disaggregate IMCoverage records, expanding model year ranges into individual model years. IMAdjustFract[processID,pollutantID,modelYearID,fuelTypeID,sourceTypeID]=IMFactor*complianceFactor*0.01.
Inputs: agecategory, imcoverage, imfactor, pollutantprocessassoc, pollutantprocessmappedmodelyear
Outputs: imcoveragemergedungrouped

Step: Add age-based rates
Inputs: agecategory, baseratebyage, runspecmodelyearage
Outputs: tempbaserateoutput

Step: Add rates that don't depend upon age
Inputs: baserate
Outputs: tempbaserateoutput

Step: APU hourly rates have already been scaled by the APU operating mode (201) fraction. This works well for inventory, but not so for rate by APU operating hour. To compensate, emission rates must be divided by the opModeFraction for opMode 201. hourFractionAdjust is 1/opModeFraction with a safeguard for a fraction of 0.
Conditions: APU process hourly rates
Outputs: apuemissionratefraction, tempbaserateoutput

Step: Obtain fuel market share.
Inputs: localfuelsupply, tempbaserateoutput
Outputs: baserateoutputwithfuel

Step: Calculate humidity adjustment factor K. K = 1.0 - ((greatest(21.0, least(specificHumidity, 124.0))) - 75.0) * humidityCorrectionCoeff
Conditions: Start Exhaust (2).
Outputs: baserateoutputwithfuel, fueltype, zonemonthhour

Step: Do Start Temperature adjustments by opModeID. PM uses multiplicative factors. Everything else uses additive factors. The additive part needs to be weighted by opModeFraction (stored in generalFraction). Being a rate, sourceBinActivityFraction is not required for the weighting since activity would have been weighted similarly. For polProcessIDs (11202,11802): rate = rate*tempAdjustTermB*exp(tempAdjustTermA*(72.0-least(temperature,72)))+tempAdjustTermC. For all other polProcessIDs with startTempEquationType of 'LOG': rate = rate + generalFraction * (tempAdjustTermB*exp(tempAdjustTermA*(LEAST(temperature,75)-75))+ tempAdjustTermC). For all other polProcessIDs with startTempEquationType of 'POLY': rate = rate + generalFraction * ((LEAST(temperature,75)-75) * (tempAdjustTermA+(LEAST(temperature,75)-75) * (tempAdjustTermB+(LEAST(temperature,75)-75) * tempAdjustTermC))).
Conditions: Start Exhaust (2) process.
Outputs: baserateoutputwithfuel, pollutantprocessmappedmodelyear, starttempadjustment

Step: Apply the County's GPAFract to the general fuel adjustment. fuelEffectRatio=ifnull(fuelEffectRatio,1)+GPAFract*(ifnull(fuelEffectRatioGPA,1)-ifnull(fuelEffectRatio,1))
Outputs: county, generalfuelratio

Step: Apply GeneralFuelRatio to BaseRateOutputWithFuel. rate = rate * fuelEffectRatio. fuelEffectRatio is the GPA-weighted GeneralFuelRatio.
Outputs: baserateoutputwithfuel, generalfuelratio

Step: Apply the County's GPAFract to the criteriaRatio fuel adjustment. criteria ratio = ifnull(ratio,1)+GPAFract*(ifnull(ratioGPA,1)-ifnull(ratio,1))
Conditions: Running Exhaust (1) and Start Exhaust (2).
Outputs: county, criteriaratio

Step: Apply CriteriaRatio to BaseRateOutputWithFuel. rate = rate * criteria ratio[fuelTypeID,fuelFormulationID,polProcessID,sourceTypeID,modelYearID,ageID]
Conditions: Running Exhaust (1) and Start Exhaust (2).
Outputs: baserateoutputwithfuel, criteriaratio

Step: Calculate humidity adjustment factor K. K = 1.0 - ((greatest(21.0, least(specificHumidity, 124.0))) - 75.0) * humidityCorrectionCoeff
Conditions: Not Start Exhaust (2).
Outputs: baserateoutputwithfuel, fueltype, zonemonthhour

Step: Apply temperature adjustment. For processes (1,2) and pollutants (118,112): rate=rate*exp((case when temperature <= 72.0 then tempAdjustTermA*(72.0-temperature) else 0 end)). For all others: rate=rate*((1.0 + (temperature-75)*(tempAdjustTermA + (temperature-75)*tempAdjustTermB))*if(BaseRateOutputWithFuel.processID in (1,90,91),if(BaseRateOutputWithFuel.pollutantID=3,K,1.0),1.0)).
Conditions: Testing
Inputs: TemperatureAdjustment
Outputs: BaseRateOutputWithFuel, temperatureadjustment

Step: generalFraction = ACFactor[hourID,sourceTypeID,modelYearID].
Conditions: Not Start Exhaust (2).
Inputs: zoneACFactor
Outputs: BaseRateOutputWithFuel, zoneacfactor

Step: meanBaseRate = meanBaseRate + (meanBaseRateACAdj * generalFraction[hourID,sourceTypeID,modelYearID]). meanBaseRateIM = meanBaseRateIM + (meanBaseRateIMACAdj * generalFraction[hourID,sourceTypeID,modelYearID]). emissionRate = emissionRate + (emissionRateACAdj * generalFraction[hourID,sourceTypeID,modelYearID]). emissionRateIM = emissionRateIM + (emissionRateIMACAdj * generalFraction[hourID,sourceTypeID,modelYearID]).
Conditions: Not Start Exhaust (2).
Outputs: baserateoutputwithfuel

Step: Apply I/M programs to BaseRateOutputWithFuel. meanBaseRate=meanBaseRateIM*IMAdjustFract + meanBaseRate*(1-IMAdjustFract). emissionRate=emissionRateIM*IMAdjustFract + emissionRate*(1-IMAdjustFract).
Inputs: IMCoverageMergedUngrouped
Outputs: BaseRateOutputWithFuel, imcoveragemergedungrouped

Step: Handle E85 THC that is created from E10's RVP instead of E85's RVP. Weight the fuel effect ratio by the county's GPA fraction alt criteria ratio=ifnull(ratio,1)+GPAFract*(ifnull(ratioGPA,1)-ifnull(ratio,1))
Conditions: Running Exhaust (1) and Start Exhaust (2).
Inputs: County
Outputs: altCriteriaRatio, county

Step: Determine the scaling effect of E10-RVP-based fuel effects to E85-RVP-based fuel effects. alt criteria ratio = alt criteria ratio / criteria ratio.
Conditions: Running Exhaust (1) and Start Exhaust (2).
Inputs: criteriaRatio
Outputs: altCriteriaRatio, criteriaratio

Step: Make THC records from the E10 RVP by using the E85-based THC. The output pollutant is 10001. rate for pollutant 10001 = rate * alt criteria ratio.
Conditions: Running Exhaust (1) and Start Exhaust (2).
Inputs: altcriteriaratio
Outputs: baserateoutputwithfuel

Step: emissionRate=emissionRate*EmissionRateAdjustment, meanbaserate=meanbaserate*EmissionRateAdjustment
Outputs: baserateoutputwithfuel, emissionrateadjustmentworker

Step: Petroleum Energy (92) = Total Energy Consumption (91) * fuelSubtypePetroleumFraction.
Inputs: localfuelsupply
Outputs: baserateoutputwithfuel

Step: Fossil Energy (93) = Total Energy Consumption (91) * fuelSubtypeFossilFraction.
Inputs: localfuelsupply
Outputs: baserateoutputwithfuel

Step: Remove fuel formulation and opModeID from BaseRateOutputWithFuel, filling BaseRateOutput. Note: This top-level calculator executes at the Month level. That means there will be exactly one distinct value in each of these columns: processID, stateID, countyID, zoneID, linkID, roadtypeID, yearID, monthID. As such, these columns do not need to be indexed or included in a GROUP BY.
Inputs: baserateoutputwithfuel
Outputs: baserateoutput

Step: Ensure all activity slots have data. Use a default value of 0 when not provided by the input table.
Inputs: runspechourday, runspecmodelyearage, runspecsourcetype
Outputs: universalactivity

Step: When aggregating APU emission rates to remove source type, model year, fuel type, or regclass, the activity used to weight the rates must be adjusted. The input activity includes extended idling and instead must be restricted to just hours spent using a diesel APU. This is a model year-based effect.
Outputs: activitydetail, apuemissionratefraction

Step: When aggregating rates to remove source type, model year, fuel type, or regclass, calculate an activity distribution. smfrFraction[sourceTypeID,modelYearID,hourDayID,fuelTypeID,regClassID] = activity[sourceTypeID,modelYearID,hourDayID,fuelTypeID,regClassID] / activityTotal[aggregated]
Inputs: activitydetail, activitytotal
Outputs: activityweight

Step: When aggregating rates to remove source type, model year, fuel type, or regclass, weight emissions by the activity distribution. BaseRateOutput = BaseRateOutput * smfrFraction[sourceTypeID,modelYearID,hourDayID,fuelTypeID,regClassID]
Outputs: activityweight, baserateoutput

Step: When aggregating rates to remove source type, model year, fuel type, or regclass, weight emissions by the activity distribution. BaseRateOutput = BaseRateOutput * smfrFraction[sourceTypeID,modelYearID,hourDayID,fuelTypeID,regClassID]
Outputs: activityweight, baserateoutput

Step: When creating an inventory or certain rates, convert BaseRateOutput to an inventory. BaseRateOutput.meanBaseRate = BaseRateOutput.meanBaseRate * activity[processID,hourDayID,modelYearID,sourceTypeID(,month,year,location)]
Outputs: baserateoutput, universalactivity

Step: Populate MOVESWorkerOutput from BaseRateOutput.
Inputs: baserateoutput
Outputs: movesworkeroutput

Step: When chained calculators are used, data must be moved back from MOVESWorkerOutput. avgSpeedBinID must be recovered in this process.
Conditions: Chained calculators are present.

Step: Remove entries from BaseRateOutput. These will be reinserted later along with the results from chained calculators.
Conditions: Chained calculators are present.
Outputs: baserateoutput

Step: Populate BaseRateOutput from MOVESWorkerOutput.
Conditions: Non-Project domain rates chained calculators are present.
Inputs: movesworkeroutput
Outputs: baserateoutput

Step: Populate BaseRateOutput from MOVESWorkerOutput. avgSpeedBinID is always 0 in project mode.
Conditions: Project domain rates chained calculators are present.
Inputs: movesworkeroutput
Outputs: baserateoutput

Step: Populate BaseRateOutput from MOVESWorkerOutput. avgSpeedBinID is always 0 in inventory mode.
Conditions: Inventory chained calculators are present.
Inputs: movesworkeroutput
Outputs: baserateoutput


CO2AERunningStartExtendedIdleCalculator

CO2AERunningStartExtendedIdleCalculator is a that executes at the level.

The CO2AERunningStartExtendedIdleCalculator is responsible for:

  • Running Exhaust (1) Atmospheric CO2 (90)
  • Running Exhaust (1) CO2 Equivalent (98)
  • Start Exhaust (2) Atmospheric CO2 (90)
  • Start Exhaust (2) CO2 Equivalent (98)
  • Extended Idle Exhaust (90) Atmospheric CO2 (90)
  • Extended Idle Exhaust (90) CO2 Equivalent (98)
  • Auxiliary Power Exhaust (91) Atmospheric CO2 (90)
  • Auxiliary Power Exhaust (91) CO2 Equivalent (98)


The CO2AERunningStartExtendedIdleCalculator input comes from:

  • BaseRateCalculator
  • Crankcase Emission Calculator
  • HC Speciation Calculator


CO2AERunningStartExtendedIdleCalculator uses the following tables:

  • FuelFormulation
  • FuelSubtype
  • FuelSupply
  • MonthofAnyYear
  • Pollutant
  • Year


CO2AERunningStartExtendedIdleCalculator is expressed in these source code files:

  • /database/CO2AERunningStartExtendedIdleCalculator.sql

Steps

The CO2AERunningStartExtendedIdleCalculator algorithm is as follows.

Step: sumCarbonContent[countyID,yearID,monthGroupID,pollutantID,fuelTypeID]=sum(marketShare * carbonContent). sumOxidationFraction[countyID,yearID,monthGroupID,pollutantID,fuelTypeID]=sum(marketShare * oxidationFraction).
Inputs: fuelformulation, fuelsubtype, fuelsupply, year
Outputs: carbonoxidationbyfueltype

Step: Atmospheric CO2 = sum(Total Energy Consumption * sumCarbonContent * sumOxidationFraction * (44/12)).
Inputs: carbonoxidationbyfueltype, co2monthofanyyear, movesworkeroutput
Outputs: movesoutputco2temp1a

Step: Equivalent CO2 = sum(emissions[polutant=CO2 or Methane or N2O] * globalWarmingPotential).
Inputs: co2eqpollutant, movesworkeroutput
Outputs: movesoutputco2temp2


Crankcase Emission Calculator

Crankcase Emission Calculator is a CHAINED CALCULATOR.

The Crankcase Emission Calculator is responsible for:

  • Crankcase Running Exhaust (15) Total Gaseous Hydrocarbons (1)
  • Crankcase Running Exhaust (15) Carbon Monoxide (CO) (2)
  • Crankcase Running Exhaust (15) Oxides of Nitrogen (NOx) (3)
  • Crankcase Running Exhaust (15) Methane (CH4) (5)
  • Crankcase Running Exhaust (15) Nitrous Oxide (N2O) (6)
  • Crankcase Running Exhaust (15) Benzene (20)
  • Crankcase Running Exhaust (15) Ethanol (21)
  • Crankcase Running Exhaust (15) MTBE (22)
  • Crankcase Running Exhaust (15) Naphthalene particle (23)
  • Crankcase Running Exhaust (15) 1,3-Butadiene (24)
  • Crankcase Running Exhaust (15) Formaldehyde (25)
  • Crankcase Running Exhaust (15) Acetaldehyde (26)
  • Crankcase Running Exhaust (15) Acrolein (27)
  • Crankcase Running Exhaust (15) Ammonia (NH3) (30)
  • Crankcase Running Exhaust (15) Sulfur Dioxide (SO2) (31)
  • Crankcase Running Exhaust (15) Nitrogen Oxide (NO) (32)
  • Crankcase Running Exhaust (15) Nitrogen Dioxide (NO2) (33)
  • Crankcase Running Exhaust (15) Nitrous Acid (HONO) (34)
  • Crankcase Running Exhaust (15) Non-Methane Hydrocarbons (79)
  • Crankcase Running Exhaust (15) Non-Methane Organic Gases (80)
  • Crankcase Running Exhaust (15) Total Organic Gases (86)
  • Crankcase Running Exhaust (15) Volatile Organic Compounds (87)
  • Crankcase Running Exhaust (15) 2,2,4-Trimethylpentane (40)
  • Crankcase Running Exhaust (15) Ethyl Benzene (41)
  • Crankcase Running Exhaust (15) Hexane (42)
  • Crankcase Running Exhaust (15) Propionaldehyde (43)
  • Crankcase Running Exhaust (15) Styrene (44)
  • Crankcase Running Exhaust (15) Toluene (45)
  • Crankcase Running Exhaust (15) Xylene (46)
  • Crankcase Running Exhaust (15) Dibenzo(a,h)anthracene particle (68)
  • Crankcase Running Exhaust (15) Fluoranthene particle (69)
  • Crankcase Running Exhaust (15) Acenaphthene particle (70)
  • Crankcase Running Exhaust (15) Acenaphthylene particle (71)
  • Crankcase Running Exhaust (15) Anthracene particle (72)
  • Crankcase Running Exhaust (15) Benz(a)anthracene particle (73)
  • Crankcase Running Exhaust (15) Benzo(a)pyrene particle (74)
  • Crankcase Running Exhaust (15) Benzo(b)fluoranthene particle (75)
  • Crankcase Running Exhaust (15) Benzo(g,h,i)perylene particle (76)
  • Crankcase Running Exhaust (15) Benzo(k)fluoranthene particle (77)
  • Crankcase Running Exhaust (15) Chrysene particle (78)
  • Crankcase Running Exhaust (15) Fluorene particle (81)
  • Crankcase Running Exhaust (15) Indeno(1,2,3,c,d)pyrene particle (82)
  • Crankcase Running Exhaust (15) Phenanthrene particle (83)
  • Crankcase Running Exhaust (15) Pyrene particle (84)
  • Crankcase Running Exhaust (15) Dibenzo(a,h)anthracene gas (168)
  • Crankcase Running Exhaust (15) Fluoranthene gas (169)
  • Crankcase Running Exhaust (15) Acenaphthene gas (170)
  • Crankcase Running Exhaust (15) Acenaphthylene gas (171)
  • Crankcase Running Exhaust (15) Anthracene gas (172)
  • Crankcase Running Exhaust (15) Benz(a)anthracene gas (173)
  • Crankcase Running Exhaust (15) Benzo(a)pyrene gas (174)
  • Crankcase Running Exhaust (15) Benzo(b)fluoranthene gas (175)
  • Crankcase Running Exhaust (15) Benzo(g,h,i)perylene gas (176)
  • Crankcase Running Exhaust (15) Benzo(k)fluoranthene gas (177)
  • Crankcase Running Exhaust (15) Chrysene gas (178)
  • Crankcase Running Exhaust (15) Fluorene gas (181)
  • Crankcase Running Exhaust (15) Indeno(1,2,3,c,d)pyrene gas (182)
  • Crankcase Running Exhaust (15) Phenanthrene gas (183)
  • Crankcase Running Exhaust (15) Pyrene gas (184)
  • Crankcase Running Exhaust (15) Naphthalene gas (185)
  • Crankcase Start Exhaust (16) Total Gaseous Hydrocarbons (1)
  • Crankcase Start Exhaust (16) Carbon Monoxide (CO) (2)
  • Crankcase Start Exhaust (16) Oxides of Nitrogen (NOx) (3)
  • Crankcase Start Exhaust (16) Methane (CH4) (5)
  • Crankcase Start Exhaust (16) Nitrous Oxide (N2O) (6)
  • Crankcase Start Exhaust (16) Benzene (20)
  • Crankcase Start Exhaust (16) Ethanol (21)
  • Crankcase Start Exhaust (16) MTBE (22)
  • Crankcase Start Exhaust (16) Naphthalene particle (23)
  • Crankcase Start Exhaust (16) 1,3-Butadiene (24)
  • Crankcase Start Exhaust (16) Formaldehyde (25)
  • Crankcase Start Exhaust (16) Acetaldehyde (26)
  • Crankcase Start Exhaust (16) Acrolein (27)
  • Crankcase Start Exhaust (16) Ammonia (NH3) (30)
  • Crankcase Start Exhaust (16) Sulfur Dioxide (SO2) (31)
  • Crankcase Start Exhaust (16) Nitrogen Oxide (NO) (32)
  • Crankcase Start Exhaust (16) Nitrogen Dioxide (NO2) (33)
  • Crankcase Start Exhaust (16) Nitrous Acid (HONO) (34)
  • Crankcase Start Exhaust (16) Non-Methane Hydrocarbons (79)
  • Crankcase Start Exhaust (16) Non-Methane Organic Gases (80)
  • Crankcase Start Exhaust (16) Total Organic Gases (86)
  • Crankcase Start Exhaust (16) Volatile Organic Compounds (87)
  • Crankcase Start Exhaust (16) 2,2,4-Trimethylpentane (40)
  • Crankcase Start Exhaust (16) Ethyl Benzene (41)
  • Crankcase Start Exhaust (16) Hexane (42)
  • Crankcase Start Exhaust (16) Propionaldehyde (43)
  • Crankcase Start Exhaust (16) Styrene (44)
  • Crankcase Start Exhaust (16) Toluene (45)
  • Crankcase Start Exhaust (16) Xylene (46)
  • Crankcase Start Exhaust (16) Dibenzo(a,h)anthracene particle (68)
  • Crankcase Start Exhaust (16) Fluoranthene particle (69)
  • Crankcase Start Exhaust (16) Acenaphthene particle (70)
  • Crankcase Start Exhaust (16) Acenaphthylene particle (71)
  • Crankcase Start Exhaust (16) Anthracene particle (72)
  • Crankcase Start Exhaust (16) Benz(a)anthracene particle (73)
  • Crankcase Start Exhaust (16) Benzo(a)pyrene particle (74)
  • Crankcase Start Exhaust (16) Benzo(b)fluoranthene particle (75)
  • Crankcase Start Exhaust (16) Benzo(g,h,i)perylene particle (76)
  • Crankcase Start Exhaust (16) Benzo(k)fluoranthene particle (77)
  • Crankcase Start Exhaust (16) Chrysene particle (78)
  • Crankcase Start Exhaust (16) Fluorene particle (81)
  • Crankcase Start Exhaust (16) Indeno(1,2,3,c,d)pyrene particle (82)
  • Crankcase Start Exhaust (16) Phenanthrene particle (83)
  • Crankcase Start Exhaust (16) Pyrene particle (84)
  • Crankcase Start Exhaust (16) Dibenzo(a,h)anthracene gas (168)
  • Crankcase Start Exhaust (16) Fluoranthene gas (169)
  • Crankcase Start Exhaust (16) Acenaphthene gas (170)
  • Crankcase Start Exhaust (16) Acenaphthylene gas (171)
  • Crankcase Start Exhaust (16) Anthracene gas (172)
  • Crankcase Start Exhaust (16) Benz(a)anthracene gas (173)
  • Crankcase Start Exhaust (16) Benzo(a)pyrene gas (174)
  • Crankcase Start Exhaust (16) Benzo(b)fluoranthene gas (175)
  • Crankcase Start Exhaust (16) Benzo(g,h,i)perylene gas (176)
  • Crankcase Start Exhaust (16) Benzo(k)fluoranthene gas (177)
  • Crankcase Start Exhaust (16) Chrysene gas (178)
  • Crankcase Start Exhaust (16) Fluorene gas (181)
  • Crankcase Start Exhaust (16) Indeno(1,2,3,c,d)pyrene gas (182)
  • Crankcase Start Exhaust (16) Phenanthrene gas (183)
  • Crankcase Start Exhaust (16) Pyrene gas (184)
  • Crankcase Start Exhaust (16) Naphthalene gas (185)
  • Crankcase Extended Idle Exhaust (17) Total Gaseous Hydrocarbons (1)
  • Crankcase Extended Idle Exhaust (17) Carbon Monoxide (CO) (2)
  • Crankcase Extended Idle Exhaust (17) Oxides of Nitrogen (NOx) (3)
  • Crankcase Extended Idle Exhaust (17) Methane (CH4) (5)
  • Crankcase Extended Idle Exhaust (17) Nitrous Oxide (N2O) (6)
  • Crankcase Extended Idle Exhaust (17) Benzene (20)
  • Crankcase Extended Idle Exhaust (17) Ethanol (21)
  • Crankcase Extended Idle Exhaust (17) MTBE (22)
  • Crankcase Extended Idle Exhaust (17) Naphthalene particle (23)
  • Crankcase Extended Idle Exhaust (17) 1,3-Butadiene (24)
  • Crankcase Extended Idle Exhaust (17) Formaldehyde (25)
  • Crankcase Extended Idle Exhaust (17) Acetaldehyde (26)
  • Crankcase Extended Idle Exhaust (17) Acrolein (27)
  • Crankcase Extended Idle Exhaust (17) Ammonia (NH3) (30)
  • Crankcase Extended Idle Exhaust (17) Sulfur Dioxide (SO2) (31)
  • Crankcase Extended Idle Exhaust (17) Nitrogen Oxide (NO) (32)
  • Crankcase Extended Idle Exhaust (17) Nitrogen Dioxide (NO2) (33)
  • Crankcase Extended Idle Exhaust (17) Nitrous Acid (HONO) (34)
  • Crankcase Extended Idle Exhaust (17) Non-Methane Hydrocarbons (79)
  • Crankcase Extended Idle Exhaust (17) Non-Methane Organic Gases (80)
  • Crankcase Extended Idle Exhaust (17) Total Organic Gases (86)
  • Crankcase Extended Idle Exhaust (17) Volatile Organic Compounds (87)
  • Crankcase Extended Idle Exhaust (17) 2,2,4-Trimethylpentane (40)
  • Crankcase Extended Idle Exhaust (17) Ethyl Benzene (41)
  • Crankcase Extended Idle Exhaust (17) Hexane (42)
  • Crankcase Extended Idle Exhaust (17) Propionaldehyde (43)
  • Crankcase Extended Idle Exhaust (17) Styrene (44)
  • Crankcase Extended Idle Exhaust (17) Toluene (45)
  • Crankcase Extended Idle Exhaust (17) Xylene (46)
  • Crankcase Extended Idle Exhaust (17) Dibenzo(a,h)anthracene particle (68)
  • Crankcase Extended Idle Exhaust (17) Fluoranthene particle (69)
  • Crankcase Extended Idle Exhaust (17) Acenaphthene particle (70)
  • Crankcase Extended Idle Exhaust (17) Acenaphthylene particle (71)
  • Crankcase Extended Idle Exhaust (17) Anthracene particle (72)
  • Crankcase Extended Idle Exhaust (17) Benz(a)anthracene particle (73)
  • Crankcase Extended Idle Exhaust (17) Benzo(a)pyrene particle (74)
  • Crankcase Extended Idle Exhaust (17) Benzo(b)fluoranthene particle (75)
  • Crankcase Extended Idle Exhaust (17) Benzo(g,h,i)perylene particle (76)
  • Crankcase Extended Idle Exhaust (17) Benzo(k)fluoranthene particle (77)
  • Crankcase Extended Idle Exhaust (17) Chrysene particle (78)
  • Crankcase Extended Idle Exhaust (17) Fluorene particle (81)
  • Crankcase Extended Idle Exhaust (17) Indeno(1,2,3,c,d)pyrene particle (82)
  • Crankcase Extended Idle Exhaust (17) Phenanthrene particle (83)
  • Crankcase Extended Idle Exhaust (17) Pyrene particle (84)
  • Crankcase Extended Idle Exhaust (17) Dibenzo(a,h)anthracene gas (168)
  • Crankcase Extended Idle Exhaust (17) Fluoranthene gas (169)
  • Crankcase Extended Idle Exhaust (17) Acenaphthene gas (170)
  • Crankcase Extended Idle Exhaust (17) Acenaphthylene gas (171)
  • Crankcase Extended Idle Exhaust (17) Anthracene gas (172)
  • Crankcase Extended Idle Exhaust (17) Benz(a)anthracene gas (173)
  • Crankcase Extended Idle Exhaust (17) Benzo(a)pyrene gas (174)
  • Crankcase Extended Idle Exhaust (17) Benzo(b)fluoranthene gas (175)
  • Crankcase Extended Idle Exhaust (17) Benzo(g,h,i)perylene gas (176)
  • Crankcase Extended Idle Exhaust (17) Benzo(k)fluoranthene gas (177)
  • Crankcase Extended Idle Exhaust (17) Chrysene gas (178)
  • Crankcase Extended Idle Exhaust (17) Fluorene gas (181)
  • Crankcase Extended Idle Exhaust (17) Indeno(1,2,3,c,d)pyrene gas (182)
  • Crankcase Extended Idle Exhaust (17) Phenanthrene gas (183)
  • Crankcase Extended Idle Exhaust (17) Pyrene gas (184)
  • Crankcase Extended Idle Exhaust (17) Naphthalene gas (185)


The Crankcase Emission Calculator input comes from:

  • BaseRateCalculator
  • HC Speciation Calculator
  • Air toxics Calculator
  • SO2 Calculator
  • NO Calculator
  • NO2 Calculator


The Crankcase Emission Calculator output is used by:

  • CO2AERunningStartExtendedIdleCalculator
  • TOG Speciation Calculator


Crankcase Emission Calculator uses the following tables:

  • CrankcaseEmissionRatio
  • PollutantProcessAssoc


Crankcase Emission Calculator is expressed in these source code files:

  • /database/CrankcaseEmissionCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/CrankcaseEmissionCalculatorNonPM.java

Steps

The Crankcase Emission Calculator algorithm is as follows.

Step: crankcase emissions[output pollutantID,processID,modelYearID,sourceTypeID,fuelTypeID] = emissions[input pollutantID,processID,modelYearID,sourceTypeID,fuelTypeID] * crankcaseRatio[output pollutantID,input polluantID,processID,modelYearID,sourceTypeID,fuelTypeID]
Inputs: ##prefix##crankcaseemissionratio, ##prefix##crankcasepollutantprocessassoc, movesworkeroutput
Outputs: ##prefix##crankcasemovesworkeroutputtemp


Distance Calculator

Distance Calculator is a that executes at the YEAR level.

Distance Calculator uses the following tables:

  • County
  • EmissionProcess
  • HourDay
  • Link
  • SHO
  • SourceBin
  • SourceBinDistribution
  • SourceTypeModelYear


Distance Calculator is expressed in these source code files:

  • /database/DistanceCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/DistanceCalculator.java

Steps

The Distance Calculator algorithm is as follows.

Step: fuelTypeActivityFraction[sourceTypeID,modelYearID,regClassID,fuelTypeID] = sum(sourceBinActivityFraction[processID=1,pollutantID=any,sourceBinID[fuelTypeID,engTechID,regClassID,modelYearGroupID,engSizeID]]).
Inputs: sourcebin, sourcebindistribution
Outputs: sbd2

Step: Add sourceTypeModelYearID to fuelTypeActivityFraction's dimensions.
Inputs: sbd2, sourcetypemodelyear
Outputs: distfracts

Step: Add modelYearID to SHO's dimensions.
Inputs: hourday, sho
Outputs: sho2

Step: distance = distance[sourceTypeID,yearID,monthID,hourDayID,ageID,linkID]*fuelTypeActivityFraction.
Inputs: distfracts, sho3
Outputs: movesworkeractivityoutput


Evaporative Emissions Operating Mode Distribution Generator

Evaporative Emissions Operating Mode Distribution Generator is a GENERATOR that executes at the MONTH level.

Evaporative Emissions Operating Mode Distribution Generator uses the following tables:

  • OpModePolProcAssoc
  • PollutantProcessAssoc
  • SHO
  • SoakActivityFraction
  • SourceHours


Evaporative Emissions Operating Mode Distribution Generator populates the following tables:

  • OpModeDistribution


Evaporative Emissions Operating Mode Distribution Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/EvaporativeEmissionsOperatingModeDistributionGenerator.java

Steps

The Evaporative Emissions Operating Mode Distribution Generator algorithm is as follows.

Step: Delete data for a link that was calculated for a previous year or month than the current context.
Outputs: OpModeDistribution

Step: fractionOfOperating=least(1,COALESCE(SUM(SHO),0)/SUM(sourceHours)).
Inputs: SHO, sourceHours
Outputs: FractionOfOperating

Step: opModeFraction=soakActivityFraction*(1-fractionOfOperating).
Inputs: FractionOfOperating, OpModePolProcAssoc, PollutantProcessAssoc, SoakActivityFraction
Outputs: OpModeDistributionTemp

Step: At this point, all non-operating modes (modes != 300) are in the database along with the relevant pollutant/processes. Add 100%-sum(non-operating) as operating (mode 300). opModeFraction[opModeID=300]=greatest(0,1-sum(opModeFraction)).
Outputs: OpModeDistributionTemp

Step: Copy OpModeDistributionTemp into OpModeDistribution.
Inputs: OpModeDistributionTemp
Outputs: OpModeDistribution


Evaporative Permeation Calculator

Evaporative Permeation Calculator is a CALCULATOR that executes at the MONTH level.

The Evaporative Permeation Calculator is responsible for:

  • Evap Permeation (11) Total Gaseous Hydrocarbons (1)


The Evaporative Permeation Calculator output is used by:

  • HC Speciation Calculator


Evaporative Permeation Calculator uses the following tables:

  • AgeCategory
  • AverageTankTemperature
  • County
  • EmissionRateByAge
  • ETOHBin
  • FuelFormulation
  • FuelSubtype
  • FuelSupply
  • HCPermeationCoeff
  • HourDay
  • Link
  • ModelYear
  • MonthofAnyYear
  • OpModeDistribution
  • PollutantProcessAssoc
  • PollutantProcessModelYear
  • SourceBin
  • SourceBinDistribution
  • SourceHours
  • SourceTypeModelYear
  • SourceTypeModelYearGroup
  • TemperatureAdjustment
  • Year


Evaporative Permeation Calculator is expressed in these source code files:

  • /database/EvaporativePermeationCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/EvaporativePermeationCalculator.java

Steps

The Evaporative Permeation Calculator algorithm is as follows.

Step: Add ageGroupID to SourceBinDistribution.sourceBinActivityFraction using model year and the calendar year.
Inputs: agecategory, sourcebindistribution, sourcetypemodelyear
Outputs: sourcebindistributionbyage

Step: SBWeightedPermeationRate.meanBaseRate = sourceBinActivityFraction * EmissionRateByAge.meanBaseRate * regClassFraction
Inputs: emissionratebyage, regclasssourcetypefraction, sourcebin, sourcebindistributionbyage
Outputs: sbweightedpermeationrate

Step: temperatureAdjustByOpMode = tempAdjustTermA*EXP(tempAdjustTermB*averageTankTemperature)
Inputs: averagetanktemperature, modelyear, temperatureadjustment
Outputs: temperatureadjustbyopmode

Step: weightedTemperatureAdjust = sum(temperatureAdjustByOpMode * opModeFraction) across all operating modes.
Inputs: link, opmodedistribution, temperatureadjustbyopmode
Outputs: weightedtemperatureadjust

Step: weightedFuelAdjustment = sum(marketShare*(fuelAdjustment+GPAFract*(fuelAdjustmentGPA-fuelAdjustment))) across fuel formulations in the fuel supply.
Inputs: county, etohbin, fuelformulation, fuelsubtype, fuelsupply, hcpermeationcoeff, pollutantprocessmappedmodelyear, year
Outputs: weightedfueladjustment

Step: fuelAdjustedEmissionRate = SBWeightedPermeationRate.meanBaseRate * weightedFuelAdjustment
Inputs: sbweightedpermeationrate, weightedfueladjustment, year
Outputs: fueladjustedemissionrate

Step: fuelAdjustedEmissionQuant = fuelAdjustedEmissionRate * sourceHours
Inputs: fueladjustedemissionrate, link, sourcehours
Outputs: fueladjustedemissionquant

Step: emissionQuant = weightedTemperatureAdjust * fuelAdjustedEmissionQuant
Inputs: county, fueladjustedemissionquant, hourday, link, pollutantprocessassoc, pollutantprocessmodelyear, sourcetypemodelyeargroup, weightedtemperatureadjust
Outputs: movesworkeroutput


Fuel Effects Generator

Fuel Effects Generator is a GENERATOR that executes at the PROCESS level.

Fuel Effects Generator uses the following tables:

  • ATBaseEmissions
  • ATRatio
  • BaseFuel
  • ComplexModelParameterName
  • ComplexModelParameters
  • dioxinemissionrate
  • FuelFormulation
  • FuelModelName
  • FuelModelWtFactor
  • FuelParameterName
  • FuelSupply
  • generalFuelRatio
  • generalFuelRatioExpression
  • MeanFuelParameters
  • metalemissionrate
  • minorhapratio
  • modelYearCutPoints
  • modelYearMapping
  • pahGasRatio
  • pahParticleRatio


Fuel Effects Generator populates the following tables:

  • ATRatio
  • ATRatioNonGas
  • criteriaRatio
  • dioxinemissionrate
  • FuelFormulation
  • FuelSupply
  • generalFuelRatio
  • metalemissionrate
  • minorhapratio
  • pahGasRatio
  • pahParticleRatio


Fuel Effects Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/FuelEffectsGenerator.java

Steps

The Fuel Effects Generator algorithm is as follows.

Step: Find fuel formulation and supply information that should be duplicated for use with high ethanol fuel effects.
Conditions: fuelSubtypeID 51 and 52, the high ethanol fuel subtypes.
Inputs: fuelFormulation, fuelSupply

Step: Every occurrence of a high ethanol fuel within the fuel supply needs to reference a different fuel formulation. This allows region-based and month-based ethanol adjustments to be applied to a fuel formulation with assurance that it is only used in one region and month. For each fuel supply reference of a high ethanol fuel formulation, create a new fuel formulation with a new fuelFormulationID and containing all the properties of the original fuel formulation.
Inputs: fuelSupply
Outputs: fuelFormulation

Step: Provide a defualt altRVP value. altRVP=RVP.
Outputs: fuelFormulation

Step: Update fuel formulation properties of each high ethanol fuel: sulfurLevel, ETOHVolume, MTBEVolume, ETBEVolume, TAMEVolume, aromaticContent, olefinContent, benzeneContent, e200, e300, BioDieselEsterVolume, CetaneIndex, PAHContent, T50, and T90. altRVP = RVP. When there is a matching e10FuelProperties entry for the fuel region (e1) and it's property column is not null, use its value. Otherwise, where there is a matching e10FuelProperties entry for the nation (e0) and it's property column is not null, use its value. Otherwise, continue to use the value of the fuel formulation. In general, fuelFormulation.[property]=coalesce(e1.[property],e0.[property],fuelFormulation.[property]).
Inputs: e10FuelProperties as e0 where e0.fuelRegionID=0., e10FuelProperties as e1 where e1.fuelRegionID= fuelSupply.fuelRegionID., fuelSupply
Outputs: fuelFormulation

Step: volToWtPercentOxy = (ETOHVolume*0.3653 + MTBEVolume*0.1792 + ETBEVolume*0.1537 + TAMEVolume*0.1651) / (ETOHVolume+MTBEVolume+ETBEVolume+TAMEVolume) , when conditions are met, 0 otherwise.
Conditions: (ETOHVolume+MTBEVolume+ETBEVolume+TAMEVolume) > 0.
Outputs: fuelFormulation

Step: Read all expressions into memory.
Inputs: GeneralFuelRatioExpression
Outputs: list of expressions

Step: Copy and alter expressions that affect some E85 fuels (see conditions). The new expression affects pollutant 10001 known as "Pseudo-THC", only fuel subtypes 51 and 52, and only model years >= 2001. The new expression references fuelFormulation.altRVP anywhere the old expression referenced RVP. Fuel formulation's have altRVP derived from the e10FuelProperties table in a previous step.
Conditions: Ethanol fuel type (5), THC (1) pollutant, model years >= 2001, and Running or Starts.
Outputs: list of expressions

Step: Evaluate each expression against the list of fuel formulations that match its conditions for fuel type and fuel subtype. Each expression can use any column name in the fuelFormulation table. fuelEffectRatio = [expression]. fuelEffectRatioGPA = [expression].
Inputs: fuelFormulation, list of expressions
Outputs: GeneralFuelRatio

Step: Get the set of dioxin pollutant/processes known to MOVES.
Inputs: dioxinEmissionRate
Outputs: list of dioxin polProcessIDs

Step: Create a temporary table for dioxin emissions.
Inputs: dioxinEmissionRate
Outputs: tempDioxinEmissionRate

Step: Get dioxin emission rates that are given by expressions. dioxin meanBaseRate = fuelEffectRatio.
Inputs: generalFuelRatio, list of dioxin polProcessIDs
Outputs: tempDioxinEmissionRate

Step: Delete dioxin emission rates that are given by expressions, deleting all entries from dioxinEmissionRate that have a corresponding tempDioxinEmissionRate entry.
Inputs: tempDioxinEmissionRate
Outputs: dioxinEmissionRate

Step: Store dioxin emission rates given by expressions. dioxinEmissionRate.meanBaseRate = tempDioxinEmissionRate.meanBaseRate.
Inputs: tempDioxinEmissionRate
Outputs: dioxinEmissionRate

Step: Remove all dioxin polProcessIDs from generalFuelRatio.
Inputs: list of dioxin polProcessIDs
Outputs: generalFuelRatio

Step: Get the set of metal pollutant/processes known to MOVES.
Inputs: metalEmissionRate
Outputs: list of metal polProcessIDs

Step: Create a temporary table for metal emissions.
Inputs: metalEmissionRate
Outputs: tempMetalEmissionRate

Step: Get metal emission rates that are given by expressions. dioxin meanBaseRate = fuelEffectRatio.
Inputs: generalFuelRatio, list of metal polProcessIDs
Outputs: tempMetalEmissionRate

Step: Delete metal emission rates that are given by expressions, deleting all entries from metalEmissionRate that have a corresponding tempMetalEmissionRate entry.
Inputs: tempMetalEmissionRate
Outputs: metalEmissionRate

Step: Store metal emission rates given by expressions. metalEmissionRate.meanBaseRate = tempMetalEmissionRate.meanBaseRate.
Inputs: tempMetalEmissionRate
Outputs: metalEmissionRate

Step: Remove all metal polProcessIDs from generalFuelRatio.
Inputs: list of metal polProcessIDs
Outputs: generalFuelRatio

Step: Get the set of minor HAP pollutant/processes known to MOVES.
Inputs: minorHapRatio
Outputs: list of minor HAP polProcessIDs

Step: Create a temporary table for minor HAP rates.
Inputs: minorHapRatio
Outputs: tempMinorHapRatio

Step: Get minor HAP emission rates that are given by expressions. dioxin atRatio = fuelEffectRatio.
Inputs: generalFuelRatio, list of minor HAP polProcessIDs
Outputs: tempMinorHapRatio

Step: Delete minor HAP emission rates that are given by expressions, deleting all entries from minorHapRatio that have a corresponding tempMinorHapRatio entry.
Inputs: tempMinorHapRatio
Outputs: minorHapRatio

Step: Store minor HAP emission rates given by expressions. minorHapRatio.atRatio = tempMinorHapRatio.atRatio.
Inputs: tempMinorHapRatio
Outputs: minorHapRatio

Step: Remove all min HAP polProcessIDs from generalFuelRatio.
Inputs: list of minor HAP polProcessIDs
Outputs: generalFuelRatio

Step: Get the set of gaseous PAH pollutant/processes known to MOVES.
Inputs: pahGasRatio
Outputs: list of gaseous PAH polProcessIDs

Step: Create a temporary table for gaseous PAH rates.
Inputs: pahGasRatio
Outputs: tempPahGasRatio

Step: Get gaseous PAH emission rates that are given by expressions. dioxin atRatio = fuelEffectRatio.
Inputs: generalFuelRatio, list of gaseous PAH polProcessIDs
Outputs: tempPahGasRatio

Step: Delete gaseous PAH emission rates that are given by expressions, deleting all entries from pahGasRatio that have a corresponding tempPahGasRatio entry.
Inputs: tempPahGasRatio
Outputs: pahGasRatio

Step: Store gaseous PAH emission rates given by expressions. pahGasRatio.atRatio = tempPahGasRatio.atRatio.
Inputs: tempPahGasRatio
Outputs: pahGasRatio

Step: Remove all gaseous PAH polProcessIDs from generalFuelRatio.
Inputs: list of gaseous PAH polProcessIDs
Outputs: generalFuelRatio

Step: Get the set of particulate PAH pollutant/processes known to MOVES.
Inputs: pahParticleRatio
Outputs: list of particulate PAH polProcessIDs

Step: Create a temporary table for particulate PAH rates.
Inputs: pahParticleRatio
Outputs: tempPahParticleRatio

Step: Get particulate PAH emission rates that are given by expressions. dioxin atRatio = fuelEffectRatio.
Inputs: generalFuelRatio, list of particulate PAH polProcessIDs
Outputs: tempPahParticleRatio

Step: Delete particulate PAH emission rates that are given by expressions, deleting all entries from pahParticleRatio that have a corresponding tempPahParticleRatio entry.
Inputs: tempPahParticleRatio
Outputs: pahParticleRatio

Step: Store particulate PAH emission rates given by expressions. pahParticleRatio.atRatio = tempPahParticleRatio.atRatio.
Inputs: tempPahParticleRatio
Outputs: pahParticleRatio

Step: Remove all particulate PAH polProcessIDs from generalFuelRatio.
Inputs: list of particulate PAH polProcessIDs
Outputs: generalFuelRatio

Step: Copy atRatio entries given by expressions, deleting the entries from generalFuelRatio after the copy to atRatio. The atRatio table has fewer dimension than generalFuelRatio, so average the fuelEffectRatio. atRatio[fuelTypeID,fuelFormulationID,polProcessID,minModelYearID,maxModelYearID,ageID,monthGroupID]=average(fuelEffectRatio).
Conditions: Any of these polProcessIDs: 2001,2002,2011,2012,2013,2018,2019,2090,2101,2102,2111, 2112,2113,2118,2119,2201,2202,2211,2212,2213,2218,2219,2301,2302,2311,2312,2313,2318,2319,2390,2401,2402,2490, 2501,2502,2590,2601,2602,2690,2701,2702,2790
Inputs: generalFuelRatio
Outputs: atRatio, generalFuelRatio

Step: Lookup all Complex Model expression fragments from the database and combine them into large symbolic statements in memory. Variables within will be populated with actual values and the algebra simplified in later steps. The Complex Model uses a collection of fuel models, each referencing any fuel formulation properties and summing the subexpressions into a single number. Each fuel model is applied to a fuel formulation and to a base fuel formulation, creating intermediate variables called target_sum and base_sum respectively. Each fuel model calculates a ratio as: ratio = (if(target_sum=0,0,exp(target_sum))/if(base_sum=0,0,exp(base_sum))) - 1. The Complex Model atDifferenceFraction = sum(fuel model ratio * fuel model weight) summed for each fuel model. Base emission rates, atBaseEmissions, are used to calculate the final atRatio which is the ratio of a pollutant's emissions to VOC emissions for a fuel formulation. atRatio = (atBaseEmissions of nonVOC *(1.0+atDifferenceFraction of nonVOC)) / (atBaseEmissions of VOC *(1.0+atDifferenceFraction of VOC)).
Conditions: Air Toxics pollutants
Inputs: complexModelParameterName, fuelModelName, fuelParameterName
Outputs: Complex Model expressions

Step: Restrict the Complex Model in the next steps to these polProcessIDs: 2001,2002,2090,2401,2402,2490,2501,2502,2590,2601,2602,2690,8701,8702,8790

Step: Lookup and apply Complex Model parameter values.
Inputs: complexModelParameters
Outputs: Complex Model expressions

Step: Lookup fuel properties of the base fuel and apply them to the Complex Model expressions.
Inputs: baseFuel, fuelFormulation
Outputs: Complex Model expressions

Step: Lookup mean fuel parameters and apply them to the Complex Model expressions.
Inputs: meanFuelParameters
Outputs: Complex Model expressions

Step: Lookup fuel model weight factors and apply them to the Complex Model expressions.
Inputs: fuelModelWtFactor
Outputs: Complex Model expressions

Step: Mathematically simplify the Complex Model expressions in memory. Perform all possible arithmatic in memory, reducing the size and complexity of the resulting expression text.
Outputs: Complex Model expressions

Step: atDifferenceFraction = Complex Model expressions
Inputs: Complex Model expressions, fuelFormulation
Outputs: tempAirToxicsA

Step: Provide default atDifference entries. atDifference = 0 when null.
Outputs: tempAirToxicsA

Step: relATEmissionsVOC = atBaseEmissions*(1.0+atDifferenceFraction)).
Conditions: VOC
Inputs: atBaseEmissions, tempAirToxicsA
Outputs: tempAirToxicsANonVOC

Step: relATEmissions = atBaseEmissions*(1.0+atDifferenceFraction)).
Conditions: Non-VOC pollutants
Inputs: atBaseEmissions, tempAirToxicsA
Outputs: tempAirToxicsANonVOC

Step: Ratio non-VOC to VOC relative air toxics complex model emissions. atRatio = relATEmissions / relATEmissionsVOC, where relATEmissionsVOC <> 0, 0 otherwise.
Inputs: tempAirToxicsANonVOC, tempAirToxicsAVOC
Outputs: ATRatio

Step: Lookup all Complex Model expression fragments from the database and combine them into large symbolic statements in memory. Variables within will be populated with actual values and the algebra simplified in later steps. The Complex Model uses a collection of fuel models, each referencing any fuel formulation properties and summing the subexpressions into a single number. Each fuel model is applied to a fuel formulation and to a base fuel formulation, creating intermediate variables called target_sum and base_sum respectively. Each fuel model calculates a ratio as: ratio = (if(target_sum=0,0,exp(target_sum))/if(base_sum=0,0,exp(base_sum))) - 1. The Complex Model atDifferenceFraction = sum(fuel model ratio * fuel model weight) summed for each fuel model. CO ratioNoSulfur = 1 + atDifferenceFraction. CO criteriaRatio.ratio = Sulfur Model of CO ratioNoSulfer.
Conditions: CO pollutant
Inputs: complexModelParameterName, fuelModelName, fuelParameterName
Outputs: Complex Model expressions

Step: Restrict the Complex Model in the next steps to these polProcessIDs: 201,202

Step: Copy criteriaRatio entries given by expressions, deleting the entries from generalFuelRatio after the copy to criteriaRatio. ratio=fuelEffectRatio. ratioNoSulfer=1.
Conditions: Any of these polProcessIDs: 201,202
Inputs: generalFuelRatio
Outputs: criteriaRatio, generalFuelRatio

Step: Lookup and apply Complex Model parameter values.
Inputs: complexModelParameters
Outputs: Complex Model expressions

Step: Lookup fuel properties of the base fuel and apply them to the Complex Model expressions.
Inputs: baseFuel, fuelFormulation
Outputs: Complex Model expressions

Step: Lookup mean fuel parameters and apply them to the Complex Model expressions.
Inputs: meanFuelParameters
Outputs: Complex Model expressions

Step: Lookup fuel model weight factors and apply them to the Complex Model expressions.
Inputs: fuelModelWtFactor
Outputs: Complex Model expressions

Step: Mathematically simplify the Complex Model expressions in memory. Perform all possible arithmatic in memory, reducing the size and complexity of the resulting expression text.
Outputs: Complex Model expressions

Step: ratioNoSulfur = 1 + (Complex Model expressions).
Inputs: Complex Model expressions, fuelFormulation
Outputs: tempCOA

Step: Provide default ratioNoSulfur entries. ratioNoSulfur = 1 when null.
Outputs: tempCOA

Step: Run the sulfur model with tempCOA as the input and the criteriaRatio table as the output.
Inputs: tempCOA
Outputs: criteriaRatio

Step: Do Predictive Calculation steps for Total Gaseous Hydrocarbons. Use the "predictHC" calculation engine parameters, polProcessIDs 101 and 102, and ethanol alternate polProcessIDs 1000101 and 1000102.

Step: Do Predictive Calculation steps for NOx. Use the "predictNOx" calculation engine parameters, polProcessIDs 301 and 302, and no ethanol alternate polProcessIDs.

Step: Beginning of Predictive Calculations steps.
Conditions: Predictive Calculations

Step: Copy criteriaRatio entries given by expressions, deleting the entries from generalFuelRatio after the copy to criteriaRatio. ratio=fuelEffectRatio. ratioNoSulfer=1.
Conditions: Predictive Calculations, Any of the predictive calculation polProcessIDs
Inputs: generalFuelRatio
Outputs: criteriaRatio, generalFuelRatio

Step: Copy criteriaRatio entries given by expressions, deleting the entries from generalFuelRatio after the copy to criteriaRatio. ratio=fuelEffectRatio. ratioNoSulfer=1.
Conditions: Predictive Calculations, Any of the predictive calculation ethanol alternate polProcessIDs, model years >= 2001
Inputs: generalFuelRatio
Outputs: altCriteriaRatio, generalFuelRatio

Step: Lookup all Complex Model expression fragments from the database and combine them into large symbolic statements in memory. Variables within will be populated with actual values and the algebra simplified in later steps. The Complex Model uses a collection of fuel models, each referencing any fuel formulation properties and summing the subexpressions into a single number. Each fuel model is applied to a fuel formulation and to a base fuel formulation, creating intermediate variables called target_sum and base_sum respectively. Each fuel model calculates a ratio as: ratio = (if(target_sum=0,0,exp(target_sum))/if(base_sum=0,0,exp(base_sum))) - 1. The Complex Model atDifferenceFraction = sum(fuel model ratio * fuel model weight) summed for each fuel model. atDifferenceFraction is not used by the Predictive Calculations. weightedTargetExp = sum(fuel model weight * exp(target_sum)) across all fuel models. weightedBaseExp = sum(fuel model weight * exp(base_sum)) across all fuel models. ratioNoSulfur = weightedTargetExp / weightedBaseExp. CriteriaRatio.ratio = Sulfur model of ratioNoSulfur.
Conditions: Predictive Calculations
Inputs: complexModelParameterName, fuelModelName, fuelParameterName
Outputs: Complex Model expressions

Step: Lookup and apply Complex Model parameter values.
Conditions: Predictive Calculations
Inputs: complexModelParameters
Outputs: Complex Model expressions

Step: Lookup fuel properties of the base fuel and apply them to the Complex Model expressions.
Conditions: Predictive Calculations
Inputs: baseFuel, fuelFormulation
Outputs: Complex Model expressions

Step: Lookup mean fuel parameters and apply them to the Complex Model expressions.
Conditions: Predictive Calculations
Inputs: meanFuelParameters
Outputs: Complex Model expressions

Step: Lookup fuel model weight factors and apply them to the Complex Model expressions.
Conditions: Predictive Calculations
Inputs: fuelModelWtFactor
Outputs: Complex Model expressions

Step: Mathematically simplify the Complex Model expressions in memory. Perform all possible arithmatic in memory, reducing the size and complexity of the resulting expression text.
Conditions: Predictive Calculations
Outputs: Complex Model expressions

Step: ratioNoSulfur = Complex Model expressions
Conditions: Predictive Calculations
Inputs: Complex Model expressions, fuelFormulation
Outputs: temporary table

Step: Provide default ratioNoSulfur entries. ratioNoSulfur = 1 when null.
Conditions: Predictive Calculations
Outputs: temporary table

Step: Run the sulfur model with the temporary table as the input and the criteriaRatio table as the output.
Conditions: Predictive Calculations
Inputs: temporary table
Outputs: criteriaRatio

Step: End of Predictive Calculations steps.
Conditions: Predictive Calculations

Step: Copy MTBE atRatio entries given by expressions, deleting the entries from generalFuelRatio after the copy to atRatio. The atRatio table has fewer dimension than generalFuelRatio, so average the fuelEffectRatio. atRatio[fuelTypeID,fuelFormulationID,polProcessID,minModelYearID,maxModelYearID,ageID,monthGroupID]=average(fuelEffectRatio).
Conditions: Any of these polProcessIDs: 2211,2212,2213,2218,2219
Inputs: generalFuelRatio
Outputs: atRatio, generalFuelRatio

Step: Copy Benzene atRatio entries given by expressions, deleting the entries from generalFuelRatio after the copy to atRatio. The atRatio table has fewer dimension than generalFuelRatio, so average the fuelEffectRatio. atRatio[fuelTypeID,fuelFormulationID,polProcessID,minModelYearID,maxModelYearID,ageID,monthGroupID]=average(fuelEffectRatio).
Conditions: Any of these polProcessIDs: 2011,2012,2013,2018,2019
Inputs: generalFuelRatio
Outputs: atRatio, generalFuelRatio

Step: To keep the table size small and knowing that LEFT JOINs will be used, remove any remaining generalFuelRatio entries that have the default ratio of 1.0.
Outputs: generalFuelRatio

Step: For international use, adjust model years for generalFuelRatio (but not generalFuelRatioExpression).
Inputs: modelYearMapping
Outputs: generalFuelRatio

Step: Remove overlaps in ATRatio and ATRatioNonGas, deleting any ATRatioNonGas entries that match ATRatio entries.
Inputs: ATRatio
Outputs: ATRatioNonGas


HC Speciation Calculator

HC Speciation Calculator is a CHAINED CALCULATOR.

The HC Speciation Calculator is responsible for:

  • Running Exhaust (1) Methane (CH4) (5)
  • Running Exhaust (1) Non-Methane Hydrocarbons (79)
  • Running Exhaust (1) Non-Methane Organic Gases (80)
  • Running Exhaust (1) Total Organic Gases (86)
  • Running Exhaust (1) Volatile Organic Compounds (87)
  • Start Exhaust (2) Methane (CH4) (5)
  • Start Exhaust (2) Non-Methane Hydrocarbons (79)
  • Start Exhaust (2) Non-Methane Organic Gases (80)
  • Start Exhaust (2) Total Organic Gases (86)
  • Start Exhaust (2) Volatile Organic Compounds (87)
  • Evap Permeation (11) Non-Methane Hydrocarbons (79)
  • Evap Permeation (11) Non-Methane Organic Gases (80)
  • Evap Permeation (11) Total Organic Gases (86)
  • Evap Permeation (11) Volatile Organic Compounds (87)
  • Evap Fuel Vapor Venting (12) Non-Methane Hydrocarbons (79)
  • Evap Fuel Vapor Venting (12) Non-Methane Organic Gases (80)
  • Evap Fuel Vapor Venting (12) Total Organic Gases (86)
  • Evap Fuel Vapor Venting (12) Volatile Organic Compounds (87)
  • Evap Fuel Leaks (13) Non-Methane Hydrocarbons (79)
  • Evap Fuel Leaks (13) Non-Methane Organic Gases (80)
  • Evap Fuel Leaks (13) Total Organic Gases (86)
  • Evap Fuel Leaks (13) Volatile Organic Compounds (87)
  • Refueling Displacement Vapor Loss (18) Non-Methane Hydrocarbons (79)
  • Refueling Displacement Vapor Loss (18) Non-Methane Organic Gases (80)
  • Refueling Displacement Vapor Loss (18) Total Organic Gases (86)
  • Refueling Displacement Vapor Loss (18) Volatile Organic Compounds (87)
  • Refueling Spillage Loss (19) Non-Methane Hydrocarbons (79)
  • Refueling Spillage Loss (19) Non-Methane Organic Gases (80)
  • Refueling Spillage Loss (19) Total Organic Gases (86)
  • Refueling Spillage Loss (19) Volatile Organic Compounds (87)
  • Extended Idle Exhaust (90) Methane (CH4) (5)
  • Extended Idle Exhaust (90) Non-Methane Hydrocarbons (79)
  • Extended Idle Exhaust (90) Non-Methane Organic Gases (80)
  • Extended Idle Exhaust (90) Total Organic Gases (86)
  • Extended Idle Exhaust (90) Volatile Organic Compounds (87)
  • Auxiliary Power Exhaust (91) Methane (CH4) (5)
  • Auxiliary Power Exhaust (91) Non-Methane Hydrocarbons (79)
  • Auxiliary Power Exhaust (91) Non-Methane Organic Gases (80)
  • Auxiliary Power Exhaust (91) Total Organic Gases (86)
  • Auxiliary Power Exhaust (91) Volatile Organic Compounds (87)


The HC Speciation Calculator input comes from:

  • BaseRateCalculator
  • Evaporative Permeation Calculator
  • Tank Vapor Venting Calculator
  • Liquid Leaking Calculator
  • Refueling Loss Calculator


The HC Speciation Calculator output is used by:

  • Air toxics Calculator
  • CO2AERunningStartExtendedIdleCalculator
  • Crankcase Emission Calculator
  • TOG Speciation Calculator


HC Speciation Calculator uses the following tables:

  • FuelFormulation
  • HCSpeciation
  • methaneTHCRatio
  • PollutantProcessModelYear


HC Speciation Calculator is expressed in these source code files:

  • /calc/go/src/hcspeciation/hcspeciation.go
  • /gov/epa/otaq/moves/master/implementation/ghg/HCSpeciationCalculator.java

Steps

The HC Speciation Calculator algorithm is as follows.

Step: Assign etohThreshID to each fuel formulation.

Step: methane (5) = THC * CH4THCRatio
Inputs: methaneTHCRatio, PollutantProcessModelYear

Step: NMHC (79) = THC * (1-CH4THCRatio)
Inputs: methaneTHCRatio, PollutantProcessModelYear

Step: NMOG (80) = NMHC*(speciationConstant + oxySpeciation* volToWtPercentOxy*(MTBEVolume+ETBEVolume+TAMEVolume+ETOHVolume)).
Conditions: When (MTBEVolume+ETBEVolume+TAMEVolume+ETOHVolume) >= 0. Otherwise, NMOG = 0., NOT (Running Exhaust, Start Exhaust, Ethanol fuel type, E70 and E85 fuel subtypes, Model years >= 2001).
Inputs: FuelFormulation, HCSpeciation, PollutantProcessModelYear

Step: VOC (87) = NMHC*(speciationConstant + oxySpeciation* volToWtPercentOxy*(MTBEVolume+ETBEVolume+TAMEVolume+ETOHVolume)).
Conditions: When (MTBEVolume+ETBEVolume+TAMEVolume+ETOHVolume) >= 0. Otherwise, VOC = 0., NOT (Running Exhaust, Start Exhaust, Ethanol fuel type, E70 and E85 fuel subtypes, Model years >= 2001).
Inputs: FuelFormulation, HCSpeciation, PollutantProcessModelYear

Step: Calculate altNMHC (10079) from altTHC (10001) using E10's ratios.
Conditions: Running Exhaust, Start Exhaust, Ethanol fuel type, E70 and E85 fuel subtypes, Model years >= 2001.
Inputs: methaneTHCRatio, PollutantProcessModelYear

Step: Calculate NMOG from altNMHC (10079) that originates from altTHC (10001). Use E10's factors even though the fuel is Ethanol.
Conditions: Running Exhaust, Start Exhaust, Ethanol fuel type, E70 and E85 fuel subtypes, Model years >= 2001.
Inputs: FuelFormulation, HCSpeciation, PollutantProcessModelYear

Step: Calculate VOC from altNMHC (10079) that originates from altTHC (10001). Use E10's factors even though the fuel is Ethanol.
Conditions: Running Exhaust, Start Exhaust, Ethanol fuel type, E70 and E85 fuel subtypes, Model years >= 2001.
Inputs: FuelFormulation, HCSpeciation, PollutantProcessModelYear

Step: TOG (86) = NMOG (80) + Methane (5)


Link Operating Mode Distribution Generator

Link Operating Mode Distribution Generator is a GENERATOR that executes at the LINK level.

Link Operating Mode Distribution Generator uses the following tables:

  • DriveSchedule
  • DriveScheduleAssoc
  • DriveScheduleSecond
  • driveScheduleSecondLink
  • Link
  • OpModeDistribution
  • OpModePolProcAssoc


Link Operating Mode Distribution Generator populates the following tables:

  • driveScheduleSecondLink
  • Link
  • OpModeDistribution


Link Operating Mode Distribution Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/LinkOperatingModeDistributionGenerator.java

Steps

The Link Operating Mode Distribution Generator algorithm is as follows.

Step: Setup for Model Year Physics effects.

Step: Set rampFraction=0 for all road types as there is no automatic ramp contribution in Project mode.
Conditions: Project domain

Step: Lookup linkAvgSpeed for the current link.
Inputs: link

Step: For links with zero average speed, provide a default drive schedule of 30 seconds of idling. Use 0 grade because with 0 speed, brakes are likely applied rather than using the engine to counteract any grade. This removes the grade's effect on VSP.
Conditions: linkAvgSpeed <= 0
Outputs: driveScheduleSecondLink

Step: Lookup the road type and average grade for the current link.
Conditions: The current link has no drive schedule
Inputs: link

Step: Find the drive schedule with the greatest average speed that is still <= the link's average speed. Use this as the lower bracketing schedule. Such a drive schedule may not exist.
Conditions: The current link has no drive schedule
Inputs: driveSchedule, driveScheduleAssoc
Outputs: tempLinkBracket

Step: Find the drive schedule with the lowest average speed that is still > the link's average speed. Use this as the lower bracketing schedule if one was not previously found. Flag the bracket as out of bounds on the low side. Such a drive schedule may not exist.
Conditions: The current link has no drive schedule
Inputs: driveSchedule, driveScheduleAssoc
Outputs: tempLinkBracket

Step: Find the drive schedule with the lowest average speed that is still >= the link's average speed. Use this as the upper bracketing schedule. Such a drive schedule may not exist.
Conditions: The current link has no drive schedule
Inputs: driveSchedule, driveScheduleAssoc
Outputs: tempLinkBracketHigh

Step: Find the drive schedule with the highest average speed that is still < the link's average speed. Use this as the upper bracketing schedule if one was not previously found. Flag the bracket as out of bounds on the high side. Such a drive schedule may not exist.
Conditions: The current link has no drive schedule
Inputs: driveSchedule, driveScheduleAssoc
Outputs: tempLinkBracketHigh

Step: Note the upper bracket link and its out of bounds flag, if any.
Conditions: The current link has no drive schedule
Inputs: tempLinkBracketHigh
Outputs: tempLinkBracket

Step: Get the set of distinct driveScheduleID and sourceTypeID combinations that require operating mode calculations.
Conditions: The current link has no drive schedule
Inputs: tempLinkBracket
Outputs: list of bracketing drive schedules that need operating mode distributions

Step: Copy each second of each bracketing drive schedule into driveScheduleSecondLink. Use the link's average grade as each entry's grade. Use -driveScheduleID as the linkID field in driveScheduleSecondLink, denoting it as a bracketing link.
Conditions: The current link has no drive schedule
Inputs: driveScheduleSecond
Outputs: driveScheduleSecondLink

Step: Perform the steps to calculate a link's operating mode distribution from its drive schedule. Use -driveScheduleID as the linkID to calculate.
Conditions: The current link has a drive schedule not just an average speed.

Step: Create expanded operating mode tables for Model Year physics effects.
Conditions: The current link has a drive schedule not just an average speed.

Step: interpolationFactor = (link average speed - low bracket schedule average speed) / (high bracket schedule average speed - low bracket schedule average speed).
Conditions: The current link has a drive schedule not just an average speed.

Step: Interpolate the operating mode distribution from the low and high bracket's operating mode distribution. opModeFraction = opModeFraction[low]+(opModeFraction[high]-opModeFraction[low])*interpolationFactor.
Conditions: The current link has a drive schedule not just an average speed.
Outputs: opModeDistribution

Step: Remove bracketing schedules from driveScheduleSecondLink.
Conditions: The current link has a drive schedule not just an average speed.
Inputs: tempLinkBracket
Outputs: driveScheduleSecondLink

Step: Perform the steps to calculate a link's operating mode distribution from its drive schedule.
Conditions: The current link has a drive schedule not just an average speed.

Step: linkAvgSpeed=average(speed). linkAvgGrade=average(grade).
Conditions: Calculate a link's operating mode distribution from its drive schedule., A real linkID is provided (linkID > 0)
Inputs: driveScheduleSecondLink
Outputs: link

Step: Calculate accelerations in units of miles/(hour*second). Speeds are given in miles/hour. VSP is kW/tonne. There are 0.44704 (meter*hours)/(miles*second). at0 = coalesce( (speed[t]-speed[t-1])+(9.81/0.44704*sin(atan(grade[t]/100.0))), (speed[t+1]-speed[t])+(9.81/0.44704*sin(atan(grade[t]/100.0))), 0.0). at1 = coalesce((speed[t-1]-speed[t-2])+(9.81/0.44704*sin(atan(grade[t-1]/100.0))),0.0). at2 = coalesce((speed[t-2]-speed[t-3])+(9.81/0.44704*sin(atan(grade[t-2]/100.0))),0.0). VSP = (((speed[t]*0.44704)*(rollingTermA+(speed[t]*0.44704)*(rotatingTermB+dragTermC*(speed[t]*0.44704))) +sourceMass*(speed[t]*0.44704)*coalesce(speed[t]-speed[t-1],speed[t+1]-speed[t],0.0)*0.44704 +sourceMass*9.81*sin(atan(grade[t]/100.0))*(speed[t]*0.44704)))/fixedMassFactor.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Inputs: driveScheduleSecondLink at time t, driveScheduleSecondLink at time t+1 seconds, driveScheduleSecondLink at time t-1 seconds, driveScheduleSecondLink at time t-2 seconds, driveScheduleSecondLink at time t-3 seconds
Outputs: tempDriveScheduleSecondLink

Step: Assign operating modes. Assign a stopped mode 501 when speed = 0, assign mode 501. This mode will be converted to 1 based on polProcessID later. Otherwise, assign the idle mode 1 when speed < 1. Otherwise, assign the braking mode 0 when At0 <= -2 or (At0 < -1 and At1 < -1 and At2 < -1). Otherwise, assign operating modes by their data-drive speed and VSP ranges.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Outputs: tempDriveScheduleSecondLink

Step: secondTotal = Count of the number of entries in the drive schedule. This is the number of seconds of driving, even if there are gaps within the data.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Inputs: tempDriveScheduleSecondLink
Outputs: tempDriveScheduleSecondLinkTotal

Step: secondCount = Count of the number of entries in the drive schedule for each operating mode.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Inputs: tempDriveScheduleSecondLink
Outputs: tempDriveScheduleSecondLinkCount

Step: opModeFraction = secondCount/secondTotal.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Inputs: tempDriveScheduleSecondLinkCount, tempDriveScheduleSecondLinkTotal
Outputs: tempDriveScheduleSecondLinkFraction

Step: Copy the operating mode distribution to all polProcessIDs that share it. For polProcessID 11609, retain opMode 501 and convert opMode 501 to opMode 1 for all other polProcessIDs.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Inputs: opModePolProcAssoc, tempDriveScheduleSecondLinkFraction
Outputs: opModeDistributionTemp

Step: opModeFraction=sum(temporary opModeFraction). other polProcessIDs.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Outputs: opModeDistribution, opModeDistributionTemp

Step: Remove data for bracketing links first, just in case they were left from a prior link's settings.
Conditions: Calculate a link's operating mode distribution from its drive schedule., A bracketing link is provided (linkID < 0)
Outputs: opModeDistribution

Step: Delete the previous road type's data from ratesOpModeDistribution.
Conditions: A previous road type has been used in the run.
Outputs: ratesOpModeDistribution

Step: Delete the current road type's data from ratesOpModeDistribution.
Outputs: ratesOpModeDistribution

Step: Lookup the current link's linkAvgSpeed.
Inputs: linkAvgSpeed

Step: Copy the current link's opModeDistribution entries to ratesOpModeDistribution, providing the current link's road type and average speed. Do not copy any generic polProcessID entries (polProcessID <= 0) as these are just to speedup internal opModeDistribution calculations.
Inputs: opModeDistribution
Outputs: ratesOpModeDistribution

Step: Update emission rate tables for Model Year Physics effects.


Liquid Leaking Calculator

Liquid Leaking Calculator is a CALCULATOR that executes at the MONTH level.

The Liquid Leaking Calculator is responsible for:

  • Evap Fuel Leaks (13) Total Gaseous Hydrocarbons (1)


The Liquid Leaking Calculator output is used by:

  • HC Speciation Calculator


Liquid Leaking Calculator uses the following tables:

  • AgeCategory
  • County
  • EmissionRateByAge
  • FuelType
  • HourDay
  • IMCoverage
  • IMFactor
  • Link
  • MonthofAnyYear
  • OpModeDistribution
  • PollutantProcessAssoc
  • PollutantProcessModelYear
  • SourceBin
  • SourceBinDistribution
  • SourceHours
  • SourceTypeModelYear
  • Year
  • Zone


Liquid Leaking Calculator is expressed in these source code files:

  • /database/LiquidLeakingCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/LiquidLeakingCalculator.java

Steps

The Liquid Leaking Calculator algorithm is as follows.

Step: Filter emissionRateByAge to only operating modes 150, 151, and 300.
Inputs: runspecsourcefueltype, sourcebin, sourcebindistribution, sourcetypemodelyear
Outputs: emissionratebyage

Step: Filter OpModeDistribution to only operating modes 150, 151, and 300.
Inputs: runspecsourcetype
Outputs: opmodedistribution

Step: Disaggregate IMCoverage records, expanding model year ranges into individual model years. IMAdjustFract[processID,pollutantID,modelYearID,fuelTypeID,sourceTypeID]=IMFactor*complianceFactor*0.01.
Inputs: agecategory, imcoverage, imfactor, pollutantprocessassoc, pollutantprocessmappedmodelyear
Outputs: imcoveragemergedungrouped

Step: weightedMeanBaseRate = sourceBinActivityFraction * meanBaseRate. weightedMeanBaseRateIM = sourceBinActivityFraction * meanBaseRateIM.
Inputs: agecategory, emissionratebyage, fueltype, pollutantprocessmodelyear, runspechourday, runspecmonth, runspecsourcetype, sourcebin, sourcebindistribution, sourcetypemodelyear
Outputs: weightedmeanbaserate

Step: emissionQuant = weightedMeanBaseRate * sourceHours * opModeFraction. emissionQuantIM = weightedMeanBaseRateIM * sourceHours * opModeFraction.
Inputs: hourday, link, opmodedistribution, pollutantprocessassoc, sourcehours, weightedmeanbaserate
Outputs: movesworkeroutput

Step: Apply I/M programs. emissionQuant=emissionQuantIM*IMAdjustFract + emissionQuant*(1-IMAdjustFract).
Outputs: imcoveragemergedungrouped, movesworkeroutput


Meteorology Generator

Meteorology Generator is a GENERATOR that executes at the PROCESS level.

Meteorology Generator uses the following tables:

  • County
  • Zone
  • ZoneMonthHour


Meteorology Generator populates the following tables:

  • County
  • ZoneMonthHour


Meteorology Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/general/MeteorologyGenerator.java

Steps

The Meteorology Generator algorithm is as follows.

Step: Provide default barometric pressures for counties that don't list them. Counties with 'H' (High) altitude are assigned 24.69 inHg. Others are assigned 28.94.
Conditions: Counties with barometricPressure of null or <= 0.
Outputs: County

Step: Provide default altitude setting for counties that do not provide an altitude. Counties with barometricPressure >= 25.8403 inHg are 'L' (Low) altitude, all others are 'H' (High).
Conditions: Counties where altitude is null or altitude is neither H nor L.
Outputs: County

Step: heatIndex = temperature.
Conditions: temperature < 78F.
Outputs: ZoneMonthHour

Step: heatIndex = least( -42.379 + 2.04901523*temperature + 10.14333127*relHumidity + - 0.22475541*temperature*relHumidity + -0.00683783*temperature*temperature + -0.05481717 * relHumidity * relHumidity + 0.00122874*temperature*temperature*relHumidity + 0.00085282*temperature*relHumidity*relHumidity + -0.00000199*temperature*temperature*relHumidity*relHumidity, 120).
Conditions: temperature >= 78F.
Outputs: ZoneMonthHour

Step: TK = 0.56*(temperature-32)+273 AS TK. T0 = 374.27-0.56*(temperature-32).
Inputs: ZoneMonthHour
Outputs: TKT0

Step: PB = barometricPressure. PV = (relHumidity/100)*6527.557*POW(10,(-T0/TK)*((3.2437+0.00588*T0+0.000000011702*POW(T0,3))/(1+0.00219*T0))).
Inputs: County, TKT0, Zone
Outputs: PV

Step: specificHumidity=4347.8*PV/(PB-PV).
Inputs: PV
Outputs: ZoneMonthHour


NO Calculator

NO Calculator is a CHAINED CALCULATOR.

The NO Calculator is responsible for:

  • Running Exhaust (1) Nitrogen Oxide (NO) (32)
  • Start Exhaust (2) Nitrogen Oxide (NO) (32)
  • Extended Idle Exhaust (90) Nitrogen Oxide (NO) (32)
  • Auxiliary Power Exhaust (91) Nitrogen Oxide (NO) (32)
  • Running Exhaust (1) Nitrous Acid (HONO) (34)
  • Start Exhaust (2) Nitrous Acid (HONO) (34)
  • Extended Idle Exhaust (90) Nitrous Acid (HONO) (34)
  • Auxiliary Power Exhaust (91) Nitrous Acid (HONO) (34)


The NO Calculator input comes from:

  • BaseRateCalculator


The NO Calculator output is used by:

  • Crankcase Emission Calculator


NO Calculator uses the following tables:

  • FuelType
  • NONO2Ratio
  • PollutantProcessAssoc
  • SourceUseType


NO Calculator is expressed in these source code files:

  • /database/NOCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/NOCalculator.java

Steps

The NO Calculator algorithm is as follows.

Step: To simplify future table joins, add dimensions to NOxRatio.
Inputs: nocopyofnono2ratio, nocopyofppa, nocopyofppmy, nocopyofsourceusetype
Outputs: nocalculation1

Step: emissionQuant = NOxRatio * Oxides of Nitrogen (3).
Inputs: movesworkeroutput, nocalculation1
Outputs: nomovesoutputtemp1


NO2 Calculator

NO2 Calculator is a CHAINED CALCULATOR.

The NO2 Calculator is responsible for:

  • Running Exhaust (1) Nitrogen Dioxide (NO2) (33)
  • Start Exhaust (2) Nitrogen Dioxide (NO2) (33)
  • Extended Idle Exhaust (90) Nitrogen Dioxide (NO2) (33)
  • Auxiliary Power Exhaust (91) Nitrogen Dioxide (NO2) (33)


The NO2 Calculator input comes from:

  • BaseRateCalculator


The NO2 Calculator output is used by:

  • Crankcase Emission Calculator


NO2 Calculator uses the following tables:

  • FuelType
  • NONO2Ratio
  • PollutantProcessAssoc
  • SourceUseType


NO2 Calculator is expressed in these source code files:

  • /database/NO2Calculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/NO2Calculator.java

Steps

The NO2 Calculator algorithm is as follows.

Step: To simplify future table joins, add dimensions to NOxRatio.
Inputs: no2copyofnono2ratio, no2copyofppa, no2copyofppmy, no2copyofsourceusetype
Outputs: no2calculation1

Step: emissionQuant = NOxRatio * Oxides of Nitrogen (3).
Inputs: movesworkeroutput, no2calculation1
Outputs: no2movesoutputtemp1


Nonroad Air toxics Calculator

Nonroad Air toxics Calculator is a CHAINED CALCULATOR.

The Nonroad Air toxics Calculator is responsible for:

  • Running Exhaust (1) Benzene (20)
  • Crankcase Running Exhaust (15) Benzene (20)
  • Refueling Displacement Vapor Loss (18) Benzene (20)
  • Refueling Spillage Loss (19) Benzene (20)
  • Evap Tank Permeation (20) Benzene (20)
  • Evap Hose Permeation (21) Benzene (20)
  • Evap RecMar Neck Hose Permeation (22) Benzene (20)
  • Evap RecMar Supply/Ret Hose Permeation (23) Benzene (20)
  • Evap RecMar Vent Hose Permeation (24) Benzene (20)
  • Diurnal Fuel Vapor Venting (30) Benzene (20)
  • HotSoak Fuel Vapor Venting (31) Benzene (20)
  • RunningLoss Fuel Vapor Venting (32) Benzene (20)
  • Running Exhaust (1) Ethanol (21)
  • Crankcase Running Exhaust (15) Ethanol (21)
  • Refueling Displacement Vapor Loss (18) Ethanol (21)
  • Refueling Spillage Loss (19) Ethanol (21)
  • Evap Tank Permeation (20) Ethanol (21)
  • Evap Hose Permeation (21) Ethanol (21)
  • Evap RecMar Neck Hose Permeation (22) Ethanol (21)
  • Evap RecMar Supply/Ret Hose Permeation (23) Ethanol (21)
  • Evap RecMar Vent Hose Permeation (24) Ethanol (21)
  • Diurnal Fuel Vapor Venting (30) Ethanol (21)
  • HotSoak Fuel Vapor Venting (31) Ethanol (21)
  • RunningLoss Fuel Vapor Venting (32) Ethanol (21)
  • Running Exhaust (1) MTBE (22)
  • Crankcase Running Exhaust (15) MTBE (22)
  • Refueling Displacement Vapor Loss (18) MTBE (22)
  • Refueling Spillage Loss (19) MTBE (22)
  • Evap Tank Permeation (20) MTBE (22)
  • Evap Hose Permeation (21) MTBE (22)
  • Evap RecMar Neck Hose Permeation (22) MTBE (22)
  • Evap RecMar Supply/Ret Hose Permeation (23) MTBE (22)
  • Evap RecMar Vent Hose Permeation (24) MTBE (22)
  • Diurnal Fuel Vapor Venting (30) MTBE (22)
  • HotSoak Fuel Vapor Venting (31) MTBE (22)
  • RunningLoss Fuel Vapor Venting (32) MTBE (22)
  • Running Exhaust (1) Naphthalene particle (23)
  • Crankcase Running Exhaust (15) Naphthalene particle (23)
  • Running Exhaust (1) 1,3-Butadiene (24)
  • Crankcase Running Exhaust (15) 1,3-Butadiene (24)
  • Running Exhaust (1) Formaldehyde (25)
  • Crankcase Running Exhaust (15) Formaldehyde (25)
  • Running Exhaust (1) Acetaldehyde (26)
  • Crankcase Running Exhaust (15) Acetaldehyde (26)
  • Running Exhaust (1) Acrolein (27)
  • Crankcase Running Exhaust (15) Acrolein (27)
  • Running Exhaust (1) 2,2,4-Trimethylpentane (40)
  • Crankcase Running Exhaust (15) 2,2,4-Trimethylpentane (40)
  • Refueling Displacement Vapor Loss (18) 2,2,4-Trimethylpentane (40)
  • Refueling Spillage Loss (19) 2,2,4-Trimethylpentane (40)
  • Evap Tank Permeation (20) 2,2,4-Trimethylpentane (40)
  • Evap Hose Permeation (21) 2,2,4-Trimethylpentane (40)
  • Evap RecMar Neck Hose Permeation (22) 2,2,4-Trimethylpentane (40)
  • Evap RecMar Supply/Ret Hose Permeation (23) 2,2,4-Trimethylpentane (40)
  • Evap RecMar Vent Hose Permeation (24) 2,2,4-Trimethylpentane (40)
  • Diurnal Fuel Vapor Venting (30) 2,2,4-Trimethylpentane (40)
  • HotSoak Fuel Vapor Venting (31) 2,2,4-Trimethylpentane (40)
  • RunningLoss Fuel Vapor Venting (32) 2,2,4-Trimethylpentane (40)
  • Running Exhaust (1) Ethyl Benzene (41)
  • Crankcase Running Exhaust (15) Ethyl Benzene (41)
  • Refueling Displacement Vapor Loss (18) Ethyl Benzene (41)
  • Refueling Spillage Loss (19) Ethyl Benzene (41)
  • Evap Tank Permeation (20) Ethyl Benzene (41)
  • Evap Hose Permeation (21) Ethyl Benzene (41)
  • Evap RecMar Neck Hose Permeation (22) Ethyl Benzene (41)
  • Evap RecMar Supply/Ret Hose Permeation (23) Ethyl Benzene (41)
  • Evap RecMar Vent Hose Permeation (24) Ethyl Benzene (41)
  • Diurnal Fuel Vapor Venting (30) Ethyl Benzene (41)
  • HotSoak Fuel Vapor Venting (31) Ethyl Benzene (41)
  • RunningLoss Fuel Vapor Venting (32) Ethyl Benzene (41)
  • Running Exhaust (1) Hexane (42)
  • Crankcase Running Exhaust (15) Hexane (42)
  • Refueling Displacement Vapor Loss (18) Hexane (42)
  • Refueling Spillage Loss (19) Hexane (42)
  • Evap Tank Permeation (20) Hexane (42)
  • Evap Hose Permeation (21) Hexane (42)
  • Evap RecMar Neck Hose Permeation (22) Hexane (42)
  • Evap RecMar Supply/Ret Hose Permeation (23) Hexane (42)
  • Evap RecMar Vent Hose Permeation (24) Hexane (42)
  • Diurnal Fuel Vapor Venting (30) Hexane (42)
  • HotSoak Fuel Vapor Venting (31) Hexane (42)
  • RunningLoss Fuel Vapor Venting (32) Hexane (42)
  • Running Exhaust (1) Propionaldehyde (43)
  • Crankcase Running Exhaust (15) Propionaldehyde (43)
  • Running Exhaust (1) Styrene (44)
  • Crankcase Running Exhaust (15) Styrene (44)
  • Running Exhaust (1) Toluene (45)
  • Crankcase Running Exhaust (15) Toluene (45)
  • Refueling Displacement Vapor Loss (18) Toluene (45)
  • Refueling Spillage Loss (19) Toluene (45)
  • Evap Tank Permeation (20) Toluene (45)
  • Evap Hose Permeation (21) Toluene (45)
  • Evap RecMar Neck Hose Permeation (22) Toluene (45)
  • Evap RecMar Supply/Ret Hose Permeation (23) Toluene (45)
  • Evap RecMar Vent Hose Permeation (24) Toluene (45)
  • Diurnal Fuel Vapor Venting (30) Toluene (45)
  • HotSoak Fuel Vapor Venting (31) Toluene (45)
  • RunningLoss Fuel Vapor Venting (32) Toluene (45)
  • Running Exhaust (1) Xylene (46)
  • Crankcase Running Exhaust (15) Xylene (46)
  • Refueling Displacement Vapor Loss (18) Xylene (46)
  • Refueling Spillage Loss (19) Xylene (46)
  • Evap Tank Permeation (20) Xylene (46)
  • Evap Hose Permeation (21) Xylene (46)
  • Evap RecMar Neck Hose Permeation (22) Xylene (46)
  • Evap RecMar Supply/Ret Hose Permeation (23) Xylene (46)
  • Evap RecMar Vent Hose Permeation (24) Xylene (46)
  • Diurnal Fuel Vapor Venting (30) Xylene (46)
  • HotSoak Fuel Vapor Venting (31) Xylene (46)
  • RunningLoss Fuel Vapor Venting (32) Xylene (46)
  • Running Exhaust (1) Mercury Elemental Gaseous (60)
  • Running Exhaust (1) Mercury Divalent Gaseous (61)
  • Running Exhaust (1) Mercury Particulate (62)
  • Running Exhaust (1) Arsenic Compounds (63)
  • Running Exhaust (1) Chromium 6+ (65)
  • Running Exhaust (1) Manganese Compounds (66)
  • Running Exhaust (1) Nickel Compounds (67)
  • Running Exhaust (1) Dibenzo(a,h)anthracene particle (68)
  • Crankcase Running Exhaust (15) Dibenzo(a,h)anthracene particle (68)
  • Running Exhaust (1) Fluoranthene particle (69)
  • Crankcase Running Exhaust (15) Fluoranthene particle (69)
  • Running Exhaust (1) Acenaphthene particle (70)
  • Crankcase Running Exhaust (15) Acenaphthene particle (70)
  • Running Exhaust (1) Acenaphthylene particle (71)
  • Crankcase Running Exhaust (15) Acenaphthylene particle (71)
  • Running Exhaust (1) Anthracene particle (72)
  • Crankcase Running Exhaust (15) Anthracene particle (72)
  • Running Exhaust (1) Benz(a)anthracene particle (73)
  • Crankcase Running Exhaust (15) Benz(a)anthracene particle (73)
  • Running Exhaust (1) Benzo(a)pyrene particle (74)
  • Crankcase Running Exhaust (15) Benzo(a)pyrene particle (74)
  • Running Exhaust (1) Benzo(b)fluoranthene particle (75)
  • Crankcase Running Exhaust (15) Benzo(b)fluoranthene particle (75)
  • Running Exhaust (1) Benzo(g,h,i)perylene particle (76)
  • Crankcase Running Exhaust (15) Benzo(g,h,i)perylene particle (76)
  • Running Exhaust (1) Benzo(k)fluoranthene particle (77)
  • Crankcase Running Exhaust (15) Benzo(k)fluoranthene particle (77)
  • Running Exhaust (1) Chrysene particle (78)
  • Crankcase Running Exhaust (15) Chrysene particle (78)
  • Running Exhaust (1) Fluorene particle (81)
  • Crankcase Running Exhaust (15) Fluorene particle (81)
  • Running Exhaust (1) Indeno(1,2,3,c,d)pyrene particle (82)
  • Crankcase Running Exhaust (15) Indeno(1,2,3,c,d)pyrene particle (82)
  • Running Exhaust (1) Phenanthrene particle (83)
  • Crankcase Running Exhaust (15) Phenanthrene particle (83)
  • Running Exhaust (1) Pyrene particle (84)
  • Crankcase Running Exhaust (15) Pyrene particle (84)
  • Running Exhaust (1) NonHAPTOG (88)
  • Crankcase Running Exhaust (15) NonHAPTOG (88)
  • Refueling Displacement Vapor Loss (18) NonHAPTOG (88)
  • Refueling Spillage Loss (19) NonHAPTOG (88)
  • Evap Tank Permeation (20) NonHAPTOG (88)
  • Evap Hose Permeation (21) NonHAPTOG (88)
  • Diurnal Fuel Vapor Venting (30) NonHAPTOG (88)
  • HotSoak Fuel Vapor Venting (31) NonHAPTOG (88)
  • RunningLoss Fuel Vapor Venting (32) NonHAPTOG (88)
  • Running Exhaust (1) 1,2,3,7,8,9-Hexachlorodibenzo-p-Dioxin (130)
  • Running Exhaust (1) Octachlorodibenzo-p-dioxin (131)
  • Running Exhaust (1) 1,2,3,4,6,7,8-Heptachlorodibenzo-p-Dioxin (132)
  • Running Exhaust (1) Octachlorodibenzofuran (133)
  • Running Exhaust (1) 1,2,3,4,7,8-Hexachlorodibenzo-p-Dioxin (134)
  • Running Exhaust (1) 1,2,3,7,8-Pentachlorodibenzo-p-Dioxin (135)
  • Running Exhaust (1) 2,3,7,8-Tetrachlorodibenzofuran (136)
  • Running Exhaust (1) 1,2,3,4,7,8,9-Heptachlorodibenzofuran (137)
  • Running Exhaust (1) 2,3,4,7,8-Pentachlorodibenzofuran (138)
  • Running Exhaust (1) 1,2,3,7,8-Pentachlorodibenzofuran (139)
  • Running Exhaust (1) 1,2,3,6,7,8-Hexachlorodibenzofuran (140)
  • Running Exhaust (1) 1,2,3,6,7,8-Hexachlorodibenzo-p-Dioxin (141)
  • Running Exhaust (1) 2,3,7,8-Tetrachlorodibenzo-p-Dioxin (142)
  • Running Exhaust (1) 2,3,4,6,7,8-Hexachlorodibenzofuran (143)
  • Running Exhaust (1) 1,2,3,4,6,7,8-Heptachlorodibenzofuran (144)
  • Running Exhaust (1) 1,2,3,4,7,8-Hexachlorodibenzofuran (145)
  • Running Exhaust (1) 1,2,3,7,8,9-Hexachlorodibenzofuran (146)
  • Running Exhaust (1) Dibenzo(a,h)anthracene gas (168)
  • Crankcase Running Exhaust (15) Dibenzo(a,h)anthracene gas (168)
  • Running Exhaust (1) Fluoranthene gas (169)
  • Crankcase Running Exhaust (15) Fluoranthene gas (169)
  • Running Exhaust (1) Acenaphthene gas (170)
  • Crankcase Running Exhaust (15) Acenaphthene gas (170)
  • Running Exhaust (1) Acenaphthylene gas (171)
  • Crankcase Running Exhaust (15) Acenaphthylene gas (171)
  • Running Exhaust (1) Anthracene gas (172)
  • Crankcase Running Exhaust (15) Anthracene gas (172)
  • Running Exhaust (1) Benz(a)anthracene gas (173)
  • Crankcase Running Exhaust (15) Benz(a)anthracene gas (173)
  • Running Exhaust (1) Benzo(a)pyrene gas (174)
  • Crankcase Running Exhaust (15) Benzo(a)pyrene gas (174)
  • Running Exhaust (1) Benzo(b)fluoranthene gas (175)
  • Crankcase Running Exhaust (15) Benzo(b)fluoranthene gas (175)
  • Running Exhaust (1) Benzo(g,h,i)perylene gas (176)
  • Crankcase Running Exhaust (15) Benzo(g,h,i)perylene gas (176)
  • Running Exhaust (1) Benzo(k)fluoranthene gas (177)
  • Crankcase Running Exhaust (15) Benzo(k)fluoranthene gas (177)
  • Running Exhaust (1) Chrysene gas (178)
  • Crankcase Running Exhaust (15) Chrysene gas (178)
  • Running Exhaust (1) Fluorene gas (181)
  • Crankcase Running Exhaust (15) Fluorene gas (181)
  • Running Exhaust (1) Indeno(1,2,3,c,d)pyrene gas (182)
  • Crankcase Running Exhaust (15) Indeno(1,2,3,c,d)pyrene gas (182)
  • Running Exhaust (1) Phenanthrene gas (183)
  • Crankcase Running Exhaust (15) Phenanthrene gas (183)
  • Running Exhaust (1) Pyrene gas (184)
  • Crankcase Running Exhaust (15) Pyrene gas (184)
  • Running Exhaust (1) Naphthalene gas (185)
  • Crankcase Running Exhaust (15) Naphthalene gas (185)


The Nonroad Air toxics Calculator input comes from:

  • Nonroad HC Speciation Calculator
  • Nonroad Calculator


Nonroad Air toxics Calculator uses the following tables:

  • nratratio
  • nrdioxinemissionrate
  • nrhpcategory
  • nrintegratedspecies
  • nrmetalemissionrate
  • nrpahgasratio
  • nrpahparticleratio


Nonroad Air toxics Calculator is expressed in these source code files:

  • /calc/go/src/nrairtoxics/nrairtoxics.go
  • /database/NRAirToxicsCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/NRAirToxicsCalculator.java

Steps

The Nonroad Air toxics Calculator algorithm is as follows.

Step: output[pollutantID] = VOC (87) * ATRatio
Inputs: nrATRatio, nrHPCategory

Step: output[pollutantID] = VOC (87) * ATRatio
Inputs: nrHPCategory, nrPAHGasRatio

Step: output[pollutantID] = PM2.5 (110) * ATRatio
Inputs: nrHPCategory, nrPAHParticleRatio

Step: gallons[gasoline] = grams gasoline fuel / (453.592*6.17)

Step: gallons[diesel(all)] = grams diesel fuel / (453.592*7.1)

Step: gallons[CNG] = grams gasoline / (453.592*0.0061)

Step: gallons[LPG] = grams gasoline / (453.592*4.507)

Step: dioxin output[pollutantID] = gallons[fuel type] * meanBaseRate
Inputs: nrDioxinEmissionRate, nrHPCategory

Step: metal output[pollutantID] = gallons[fuel type] * meanBaseRate
Inputs: nrHPCategory, nrMetalEmissionRate

Step: NonHAPTOG(88)(partial) = NMOG (80)

Step: NonHAPTOG(88)(partial) = -emissions[integratedSpeciesPollutantID]
Inputs: nrIntegratedSpecies


Nonroad Calculator

Nonroad Calculator is a CALCULATOR that executes at the DAY level.

The Nonroad Calculator is responsible for:

  • HotSoak Fuel Vapor Venting (31) Total Gaseous Hydrocarbons (1)
  • Diurnal Fuel Vapor Venting (30) Total Gaseous Hydrocarbons (1)
  • Refueling Displacement Vapor Loss (18) Total Gaseous Hydrocarbons (1)
  • Refueling Spillage Loss (19) Total Gaseous Hydrocarbons (1)
  • RunningLoss Fuel Vapor Venting (32) Total Gaseous Hydrocarbons (1)
  • Evap Tank Permeation (20) Total Gaseous Hydrocarbons (1)
  • Evap Hose Permeation (21) Total Gaseous Hydrocarbons (1)
  • Running Exhaust (1) Atmospheric CO2 (90)
  • Running Exhaust (1) Total Energy Consumption (91)
  • Running Exhaust (1) Brake Specific Fuel Consumption (BSFC) (99)
  • Running Exhaust (1) Total Gaseous Hydrocarbons (1)
  • Running Exhaust (1) Carbon Monoxide (CO) (2)
  • Running Exhaust (1) Oxides of Nitrogen (NOx) (3)
  • Running Exhaust (1) Ammonia (NH3) (30)
  • Running Exhaust (1) Sulfur Dioxide (SO2) (31)
  • Running Exhaust (1) Primary Exhaust PM10 - Total (100)
  • Running Exhaust (1) Primary Exhaust PM2.5 - Total (110)
  • Crankcase Running Exhaust (15) Total Gaseous Hydrocarbons (1)


The Nonroad Calculator output is used by:

  • Nonroad Air toxics Calculator
  • Nonroad HC Speciation Calculator


Nonroad Calculator is expressed in these source code files:

  • /database/NonroadCalculator.sql
  • /gov/epa/otaq/moves/master/nonroad/NonroadEmissionCalculator.java

Nonroad HC Speciation Calculator

Nonroad HC Speciation Calculator is a CHAINED CALCULATOR.

The Nonroad HC Speciation Calculator is responsible for:

  • Running Exhaust (1) Methane (CH4) (5)
  • Crankcase Running Exhaust (15) Methane (CH4) (5)
  • Refueling Displacement Vapor Loss (18) Methane (CH4) (5)
  • Refueling Spillage Loss (19) Methane (CH4) (5)
  • Evap Tank Permeation (20) Methane (CH4) (5)
  • Evap Hose Permeation (21) Methane (CH4) (5)
  • Diurnal Fuel Vapor Venting (30) Methane (CH4) (5)
  • HotSoak Fuel Vapor Venting (31) Methane (CH4) (5)
  • RunningLoss Fuel Vapor Venting (32) Methane (CH4) (5)
  • Running Exhaust (1) Non-Methane Hydrocarbons (79)
  • Crankcase Running Exhaust (15) Non-Methane Hydrocarbons (79)
  • Refueling Displacement Vapor Loss (18) Non-Methane Hydrocarbons (79)
  • Refueling Spillage Loss (19) Non-Methane Hydrocarbons (79)
  • Evap Tank Permeation (20) Non-Methane Hydrocarbons (79)
  • Evap Hose Permeation (21) Non-Methane Hydrocarbons (79)
  • Diurnal Fuel Vapor Venting (30) Non-Methane Hydrocarbons (79)
  • HotSoak Fuel Vapor Venting (31) Non-Methane Hydrocarbons (79)
  • RunningLoss Fuel Vapor Venting (32) Non-Methane Hydrocarbons (79)
  • Running Exhaust (1) Non-Methane Organic Gases (80)
  • Crankcase Running Exhaust (15) Non-Methane Organic Gases (80)
  • Refueling Displacement Vapor Loss (18) Non-Methane Organic Gases (80)
  • Refueling Spillage Loss (19) Non-Methane Organic Gases (80)
  • Evap Tank Permeation (20) Non-Methane Organic Gases (80)
  • Evap Hose Permeation (21) Non-Methane Organic Gases (80)
  • Diurnal Fuel Vapor Venting (30) Non-Methane Organic Gases (80)
  • HotSoak Fuel Vapor Venting (31) Non-Methane Organic Gases (80)
  • RunningLoss Fuel Vapor Venting (32) Non-Methane Organic Gases (80)
  • Running Exhaust (1) Total Organic Gases (86)
  • Crankcase Running Exhaust (15) Total Organic Gases (86)
  • Refueling Displacement Vapor Loss (18) Total Organic Gases (86)
  • Refueling Spillage Loss (19) Total Organic Gases (86)
  • Evap Tank Permeation (20) Total Organic Gases (86)
  • Evap Hose Permeation (21) Total Organic Gases (86)
  • Diurnal Fuel Vapor Venting (30) Total Organic Gases (86)
  • HotSoak Fuel Vapor Venting (31) Total Organic Gases (86)
  • RunningLoss Fuel Vapor Venting (32) Total Organic Gases (86)
  • Running Exhaust (1) Volatile Organic Compounds (87)
  • Crankcase Running Exhaust (15) Volatile Organic Compounds (87)
  • Refueling Displacement Vapor Loss (18) Volatile Organic Compounds (87)
  • Refueling Spillage Loss (19) Volatile Organic Compounds (87)
  • Evap Tank Permeation (20) Volatile Organic Compounds (87)
  • Evap Hose Permeation (21) Volatile Organic Compounds (87)
  • Diurnal Fuel Vapor Venting (30) Volatile Organic Compounds (87)
  • HotSoak Fuel Vapor Venting (31) Volatile Organic Compounds (87)
  • RunningLoss Fuel Vapor Venting (32) Volatile Organic Compounds (87)


The Nonroad HC Speciation Calculator input comes from:

  • Nonroad Calculator


The Nonroad HC Speciation Calculator output is used by:

  • Nonroad Air toxics Calculator


Nonroad HC Speciation Calculator uses the following tables:

  • nrhcspeciation
  • nrhpcategory
  • nrmethanethcratio


Nonroad HC Speciation Calculator is expressed in these source code files:

  • /calc/go/src/nrhcspeciation/nrhcspeciation.go
  • /database/NRHCSpeciationCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/NRHCSpeciationCalculator.java

Steps

The Nonroad HC Speciation Calculator algorithm is as follows.

Step: methane (5) = THC * CH4THCRatio
Inputs: nrMethaneTHCRatio

Step: NMHC (79) = THC * (1-CH4THCRatio)
Inputs: nrMethaneTHCRatio

Step: NMOG (80) = NMHC*speciationConstant.
Inputs: nrHCSpeciation, nrHPCategory

Step: VOC (87) = NMHC*speciationConstant.
Inputs: nrHCSpeciation, nrHPCategory

Step: TOG (86) = NMOG (80) + Methane (5)


PM10 Brake Tire Calculator

PM10 Brake Tire Calculator is a CHAINED CALCULATOR.

The PM10 Brake Tire Calculator is responsible for:

  • Brakewear (9) Primary PM10 - Brakewear Particulate (106)
  • Tirewear (10) Primary PM10 - Tirewear Particulate (107)


The PM10 Brake Tire Calculator input comes from:

  • BaseRateCalculator


PM10 Brake Tire Calculator uses the following tables:

  • PM10EmissionRatio
  • PollutantProcessAssoc


PM10 Brake Tire Calculator is expressed in these source code files:

  • /database/PM10BrakeTireCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/PM10BrakeTireCalculator.java

Steps

The PM10 Brake Tire Calculator algorithm is as follows.

Step: PM10 Brakewear (106) = PM2.5 Brakewear (116) * PM10PM25Ratio. PM10 Tirewear (107) = PM2.5 Tirewear (117) * PM10PM25Ratio.
Inputs: movesworkeroutput, pm10emissionratio, pm10pollutantprocessassoc
Outputs: pm10braketiremovesworkeroutputtemp


PM10 Emission Calculator

PM10 Emission Calculator is a CHAINED CALCULATOR.

The PM10 Emission Calculator is responsible for:

  • Running Exhaust (1) Primary Exhaust PM10 - Total (100)
  • Start Exhaust (2) Primary Exhaust PM10 - Total (100)
  • Extended Idle Exhaust (90) Primary Exhaust PM10 - Total (100)
  • Auxiliary Power Exhaust (91) Primary Exhaust PM10 - Total (100)
  • Crankcase Running Exhaust (15) Primary Exhaust PM10 - Total (100)
  • Crankcase Start Exhaust (16) Primary Exhaust PM10 - Total (100)
  • Crankcase Extended Idle Exhaust (17) Primary Exhaust PM10 - Total (100)


The PM10 Emission Calculator input comes from:

  • Sulfate PM Calculator


PM10 Emission Calculator uses the following tables:

  • PM10EmissionRatio
  • PollutantProcessAssoc


PM10 Emission Calculator is expressed in these source code files:

  • /database/PM10EmissionCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/PM10EmissionCalculator.java

Steps

The PM10 Emission Calculator algorithm is as follows.

Step: PM10 Total = PM2.5 Total * PM10PM25Ratio.
Inputs: movesworkeroutput, pm10emissionratio, pm10pollutantprocessassoc
Outputs: pm10movesworkeroutputtemp


Rates Operating Mode Distribution Generator

Rates Operating Mode Distribution Generator is a GENERATOR that executes at the YEAR level.

Rates Operating Mode Distribution Generator uses the following tables:

  • AvgSpeedBin
  • DriveSchedule
  • DriveScheduleAssoc
  • DriveScheduleSecond
  • hotellingActivityDistribution
  • OMDGPolProcessRepresented
  • OperatingMode
  • OpModePolProcAssoc
  • PollutantProcessAssoc
  • RoadOpmodeDistribution
  • RoadType
  • SourceTypePolProcess


Rates Operating Mode Distribution Generator populates the following tables:

  • DriveScheduleAssoc


Rates Operating Mode Distribution Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/RatesOperatingModeDistributionGenerator.java

Steps

The Rates Operating Mode Distribution Generator algorithm is as follows.

Step: Setup for Model Year Physics effects.

Step: Remove DriveScheduleAssoc records with isRamp='Y' but associated with RoadTypes with rampFraction <= 0 since these are nonsensical conditions.
Conditions: Non-Project domain
Inputs: roadType
Outputs: driveScheduleAssoc

Step: Speed bins with values below and above the lowest and highest drive schedule values are bound to those values. scheduleBoundLo = min(averageSpeed). scheduleBoundHi = max(averageSpeed).
Inputs: DriveSchedule, DriveScheduleAssoc, RunSpecRoadType, RunSpecSourceType
Outputs: DriveScheduleBounds

Step: loScheduleSpeed = max(averageSpeed). isOutOfBounds = 0.
Conditions: Non-ramps, Drive schedules with averageSpeed <= avgBinSpeed
Inputs: AvgSpeedBin, DriveSchedule, DriveScheduleAssoc, RunSpecRoadType, RunSpecSourceType
Outputs: BracketScheduleLo2

Step: loScheduleSpeed = scheduleBoundLo. isOutOfBounds = 1.
Conditions: Non-ramps, avgBinSpeed < scheduleBoundLo.
Inputs: AvgSpeedBin, DriveSchedule, DriveScheduleAssoc, DriveScheduleBounds, RunSpecRoadType, RunSpecSourceType
Outputs: BracketScheduleLo2

Step: Find the drive cycle with an averageSpeed = loScheduleSpeed.
Inputs: BracketScheduleLo2, DriveSchedule, DriveScheduleAssoc
Outputs: BracketScheduleLo

Step: hiScheduleSpeed = min(averageSpeed). isOutOfBounds = 0.
Conditions: Non-ramps, Drive schedules with averageSpeed > avgBinSpeed
Inputs: AvgSpeedBin, DriveSchedule, DriveScheduleAssoc, RunSpecRoadType, RunSpecSourceType
Outputs: BracketScheduleHi2

Step: hiScheduleSpeed = scheduleBoundHi. isOutOfBounds = 1.
Conditions: Non-ramps, avgBinSpeed > scheduleBoundHi.
Inputs: AvgSpeedBin, DriveSchedule, DriveScheduleAssoc, DriveScheduleBounds, RunSpecRoadType, RunSpecSourceType
Outputs: BracketScheduleHi2

Step: Find the drive cycle with an averageSpeed = hiScheduleSpeed.
Inputs: BracketScheduleHi2, DriveSchedule, DriveScheduleAssoc
Outputs: BracketScheduleHi

Step: loScheduleFraction=(hiScheduleSpeed - avgBinSpeed) / (hiScheduleSpeed - loScheduleSpeed).
Conditions: hiScheduleSpeed <> loScheduleSpeed
Inputs: AvgSpeedBin, BracketScheduleHi, BracketScheduleLo
Outputs: LoScheduleFraction

Step: loScheduleFraction=1.
Conditions: hiScheduleSpeed = loScheduleSpeed
Inputs: BracketScheduleHi, BracketScheduleLo
Outputs: LoScheduleFraction

Step: hiScheduleFraction = 1-loScheduleFraction.
Inputs: BracketScheduleHi, loScheduleFraction
Outputs: HiScheduleFraction

Step: Verify each road and source type combination has at least one associated non-ramp drive schedule. Issue an error message for any combination that does not have one.
Inputs: DriveScheduleAssoc, RunSpecRoadType

Step: rampFractionTerm = 1 - rampFraction, when conditions are met, 1 otherwise.
Conditions: Combining ramps with real road types
Inputs: RoadType

Step: driveScheduleFraction=sum(loScheduleFraction).
Inputs: BracketScheduleLo, LoScheduleFraction
Outputs: DriveScheduleFractionLo

Step: driveScheduleFraction=sum(hiScheduleFraction).
Inputs: BracketScheduleHi, HiScheduleFraction
Outputs: DriveScheduleFractionHi

Step: driveScheduleFraction = rampFractionTerm * (DriveScheduleFractionLo.driveScheduleFraction + DriveScheduleFractionHi.driveScheduleFraction).
Inputs: BracketScheduleHi, DriveScheduleAssoc, DriveScheduleFractionHi, DriveScheduleFractionLo, RoadType
Outputs: DriveScheduleFraction

Step: Get unique combinations of sourceTypeID and driveScheduleID. Only these combinations require VSP and operating mode computations.
Conditions: driveScheduleFraction <> 0
Inputs: DriveScheduleFraction
Outputs: SourceTypeDriveSchedule

Step: Find the first recorded second in each drive schedule. second=min(second).
Inputs: DriveScheduleSecond
Outputs: DriveScheduleFirstSecond

Step: Calculate speed and acceleration during the first second. The acceleration of the 1st second = the acceleration of the 2nd second. speed[t] = speed[t] * 0.44704. acceleration[t] = (speed[t+1]-speed[t]) * 0.44704.
Inputs: DriveScheduleFirstSecond, DriveScheduleSecond at time t, DriveScheduleSecond at time t+1
Outputs: DriveScheduleSecond2

Step: Calculate speed and acceleration during the remaining seconds. speed[t] = speed[t] * 0.44704. acceleration[t] = (speed[t]-speed[t-1]) * 0.44704.
Inputs: DriveScheduleSecond at time t, DriveScheduleSecond at time t-1
Outputs: DriveScheduleSecond2

Step: Calculate VSP for each second of each drive schedule, using sourceTypeID-specific terms. VSP=(rollingTermA * speed + sut.rotatingTermB * POW(dss2.speed,2) + dragTermC * POW(speed,3) + sourceMass * speed * acceleration) / fixedMassFactor.
Inputs: DriveScheduleSecond2, SourceTypeDriveSchedule, sourceUseTypePhysicsMapping
Outputs: VSP

Step: Get the acceleration of every second beyond the first. acceleration[t] = speed[t] - speed[t-1].
Inputs: DriveScheduleSecond for time t, DriveScheduleSecond for time t-1
Outputs: DriveScheduleSecond3

Step: Get the acceleration of the first second. Use INSERT IGNORE so only the 1st second entries will be altered. All other seconds already exist and will be ignored. acceleration[t] = speed[t+1] - speed[t].
Inputs: DriveScheduleSecond for time t, DriveScheduleSecond for time t+1
Outputs: DriveScheduleSecond3

Step: Get the distinct polProcessIDs that require operating modes.
Inputs: OpModePolProcAssoc
Outputs: OMDGPollutantProcess

Step: Remove anything from OMDGPollutantProcess that has a representing pollutant/process. Only its representing item should be calculated.
Inputs: OMDGPolProcessRepresented
Outputs: OMDGPollutantProcess

Step: Get the set of polProcessID and opModeID combinations that must be calculated.
Inputs: OMDGPollutantProcess, OpModePolProcAssoc
Outputs: OpModePolProcAssocTrimmed

Step: Associate each second of each drive schedule with a polProcessID. Obtain the speed, acceleration, and VSP at each point. This facilitates easy opModeID assignment.
Inputs: DriveScheduleSecond3, OMDGPollutantProcess, VSP
Outputs: OpModeIDBySecond

Step: Find braking events, copying information from time t that meet braking conditions and setting opModeID=0.
Conditions: acceleration[t] <= -2 or (acceleration[t] < -1 and acceleration[t-1] < -1 and acceleration[t-2] < -1)
Inputs: OpModeIDBySecond for time t, OpModeIDBySecond for time t-1, OpModeIDBySecond for time t-2
Outputs: OpModeIDBySecond_Temp

Step: Copy braking events back into OpModeIDBySecond.
Inputs: OpModeIDBySecond_Temp
Outputs: OpModeIDBySecond

Step: opModeID=0, braking.
Conditions: Any second in which the acceleration <= -2.
Outputs: OpModeIDBySecond

Step: Assign an opModeID to each second based upon operating mode VSP and speed information.
Conditions: 1 < opModeID < 100, opModeID not previously assigned
Inputs: OperatingMode, OpModePolProcAssocTrimmed
Outputs: OpModeIDBySecond

Step: Assign the Idle operating mode to speed=0. OpModeID=IF(speed=0 and polProcessID=11609,501,if(speed<1.0,1,opModeID)).
Outputs: OpModeIDBySecond

Step: secondSum=count(seconds in each drive schedule).
Inputs: OpModeIDBySecond
Outputs: OpModeFractionBySchedule2

Step: modeFraction = count(seconds in each opModeID)/secondSum.
Inputs: OpModeFractionBySchedule2, OpModeIDBySecond
Outputs: OpModeFractionBySchedule

Step: Add ramp data. opModeFraction = opModeFraction * rampFraction.
Conditions: Not separating ramps, Not polProcessID 11710, 0 < rampFraction < 1
Inputs: OpModePolProcAssocTrimmed, roadOpModeDistribution, roadType
Outputs: OpModeFraction2a

Step: Add data from roads that are 100% ramps. opModeFraction = opModeFraction * rampFraction.
Conditions: Separating ramps, Not polProcessID 11710, rampFraction = 1
Inputs: OpModePolProcAssocTrimmed, roadOpModeDistribution, roadType
Outputs: OpModeFraction2a

Step: Add non-ramp-based information. opModeFraction = sum(modeFraction * driveScheduleFraction).
Conditions: Separating ramps, Not polProcessID 11710
Inputs: DriveScheduleFraction, OpModeFractionBySchedule, OpModePolProcAssocTrimmed
Outputs: OpModeFraction2a

Step: Aggregate ramp and non-ramp data. opModeFraction = sum(opModeFraction).
Inputs: OpModeFraction2a
Outputs: OpModeFraction2

Step: Add all running operating mode 300. opModeFraction[opModeID=300]=1.
Inputs: OpModeFraction2a
Outputs: OpModeFraction2

Step: opModeFraction=1.
Conditions: Extended Idle, sourceTypeID=62 only
Inputs: opModePolProcessAssoc, pollutantProcessAssoc, runSpecHourDay, sourceTypePolProcess
Outputs: RatesOpModeDistribution

Step: Add data for all extended idling (opModeID 200). opModeFraction[opModeID=200]=1.
Conditions: Extended Idle, sourceTypeID=62 only, opModeFraction[opModeID=200] not already specified
Inputs: opModePolProcessAssoc, pollutantProcessAssoc, runSpecHourDay, sourceTypePolProcess
Outputs: RatesOpModeDistribution

Step: opModeFraction=1.
Conditions: Auxiliary Power Exhaust, sourceTypeID=62 only, Not opModeID 200 (Extended Idle)
Inputs: opModePolProcessAssoc, pollutantProcessAssoc, runSpecHourDay, sourceTypePolProcess
Outputs: RatesOpModeDistribution

Step: Add data for all hotelling except extended idling (opModeID 200). opModeFraction=1.
Conditions: Auxiliary Power Exhaust, sourceTypeID=62 only, Not opModeID 200 (Extended Idle)
Inputs: hotellingActivityDistribution, pollutantProcessAssoc, runSpecHourDay, runSpecSourceType
Outputs: RatesOpModeDistribution

Step: Find [sourceTypeID, roadTypeID, avgSpeedBinID, polProcessID] combinations that already exist within RatesOpModeDistribution.
Conditions: Non-Project domain Running Exhaust
Inputs: PollutantProcessAssoc, RatesOpModeDistribution
Outputs: OMDGOMDKeys

Step: Add to RatesOpModeDistribution those entries that don't already have records. Add records that do not appear within OMDGOMDKeys.
Conditions: Non-Project domain Running Exhaust
Inputs: OMDGOMDKeys, OpModeFraction2, runSpecHourDay
Outputs: RatesOpModeDistribution

Step: Clear all entries from OMDGOMDKeys.
Conditions: Non-Project domain Running Exhaust
Outputs: OMDGOMDKeys

Step: Find [sourceTypeID, roadTypeID, avgSpeedBinID, polProcessID] combinations that already exist within RatesOpModeDistribution.
Conditions: Non-Project domain Running Exhaust
Inputs: PollutantProcessAssoc, RatesOpModeDistribution
Outputs: OMDGOMDKeys

Step: Copy representing entries to those being represented, but only if those being represented are not already present. Add to RatesOpModeDistribution those entries that don't already have records. Add records that do not appear within OMDGOMDKeys.
Conditions: Non-Project domain Running Exhaust
Inputs: OMDGOMDKeys, OpModeFraction2, runSpecHourDay
Outputs: RatesOpModeDistribution

Step: Update emission rate tables for Model Year Physics effects. In Project domain, only Extended Idle and APU are used in this generator. Since neither is affected by aerodynamics, only do this for Non-Project domain.
Conditions: Non-Project domain


Refueling Loss Calculator

Refueling Loss Calculator is a CHAINED CALCULATOR.

The Refueling Loss Calculator is responsible for:

  • Refueling Displacement Vapor Loss (18) Total Gaseous Hydrocarbons (1)
  • Refueling Spillage Loss (19) Total Gaseous Hydrocarbons (1)


The Refueling Loss Calculator input comes from:

  • BaseRateCalculator


The Refueling Loss Calculator output is used by:

  • HC Speciation Calculator


Refueling Loss Calculator uses the following tables:

  • CountyYear
  • FuelFormulation
  • FuelSubtype
  • FuelSupply
  • FuelType
  • MonthofAnyYear
  • Pollutant
  • RefuelingFactors
  • SourceTypeTechAdjustment
  • Year
  • ZoneMonthHour


Refueling Loss Calculator is expressed in these source code files:

  • /database/RefuelingLossCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/RefuelingLossCalculator.java

Steps

The Refueling Loss Calculator algorithm is as follows.

Step: energyContent = sum(marketShare * energyContent) across all the fuel supply.
Inputs: fuelformulation, fuelsubtype, fuelsupply, fueltype, monthofanyyear, runspecmonth, year
Outputs: refuelingfueltype

Step: Determine the refueling temperatures
Outputs: refuelingtemp

Step: refuelingTemperature = temperature subject to lower bound of vaporLowLimit and upper bound of vaporHighLimit.
Inputs: refuelingfactors, refuelingzonemonthhour
Outputs: refuelingtemp

Step: tankTemperatureDif = ((vaporTermE*refuelingTemperature) + vaporTermF) subject to lower bound of 0 and upper bound of tankDiffLimit.
Outputs: refuelingfactors, refuelingtemp

Step: Determine the unadjusted refueling displacement vapor loss rate
Outputs: refuelingaveragervp

Step: averageRVP = sum(RVP * marketShare) across fuel formulations.
Inputs: refuelingfuelformulation, refuelingfuelsubtype, refuelingfuelsupply, refuelingmonthofanyyear
Outputs: refuelingaveragervp

Step: Provide default averageRVP of 0.
Inputs: refuelingfactors, refuelingmonthofanyyear
Outputs: refuelingaveragervp

Step: displacedVaporRate = exp(vaporTermA + vaporTermB * tankTemperatureDif + vaporTermC * refuelingTemperature + vaporTermD * averageRVP)
Outputs: refuelingaveragervp, refuelingfactors, refuelingtemp

Step: Limit displacedVaporRate to no less than minimumRefuelingVaporLoss.
Outputs: refuelingfactors, refuelingtemp

Step: Technology and Program adjustment of the refueling displacement vapor loss rate. adjustedVaporRate = (1.0-refuelingVaporProgramAdjust)*((1.0-refuelingTechAdjustment)*displacedVaporRate).
Conditions: Refueling Displacement Vapor Loss (18).
Inputs: refuelingcountyyear, refuelingtemp, sourcetypetechadjustment
Outputs: refuelingdisplacement

Step: Technology and Program adjustment of the refueling spillage rate. adjustedSpillRate = (1.0-refuelingSpillProgramAdjust)*((1.0-refuelingTechAdjustment)*refuelingSpillRate).
Conditions: Refueling Spillage Loss (19).
Inputs: refuelingcountyyear, refuelingfactors, sourcetypetechadjustment
Outputs: refuelingspillage

Step: emissions = (adjustedVaporRate * Total Energy Consumption (91)) / (energyContent * fuelDensity).
Conditions: Refueling Displacement Vapor Loss (18).
Inputs: movesworkeroutput, refuelingdisplacement, refuelingfueltype
Outputs: refuelingworkeroutputtemp

Step: emissions = (adjustedSpillRate * Total Energy Consumption (91)) / (energyContent * fuelDensity).
Conditions: Refueling Spillage Loss (19).
Inputs: movesworkeroutput, refuelingfueltype, refuelingspillage
Outputs: refuelingworkeroutputtemp


SO2 Calculator

SO2 Calculator is a CHAINED CALCULATOR.

The SO2 Calculator is responsible for:

  • Running Exhaust (1) Sulfur Dioxide (SO2) (31)
  • Start Exhaust (2) Sulfur Dioxide (SO2) (31)
  • Extended Idle Exhaust (90) Sulfur Dioxide (SO2) (31)
  • Auxiliary Power Exhaust (91) Sulfur Dioxide (SO2) (31)


The SO2 Calculator input comes from:

  • BaseRateCalculator


The SO2 Calculator output is used by:

  • Crankcase Emission Calculator


SO2 Calculator uses the following tables:

  • County
  • FuelFormulation
  • FuelSubtype
  • FuelSupply
  • FuelType
  • generalFuelRatio
  • MonthofAnyYear
  • PollutantProcessAssoc
  • SulfateEmissionRate
  • Year


SO2 Calculator is expressed in these source code files:

  • /database/SO2Calculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/SO2Calculator.java

Steps

The SO2 Calculator algorithm is as follows.

Step: energyContent = sum(marketShare * energyContent) across the fuel supply. WsulfurLevel = sum(marketShare * sulfurLevel) across the fuel supply.
Inputs: so2copyoffuelformulation, so2copyoffuelsubtype, so2copyoffuelsupply, so2copyoffueltype, so2copyofyear
Outputs: so2fuelcalculation1

Step: SO2 (31) = (meanBaseRate * WsulfurLevel * Total Energy Consumption (91)) / energyContent.
Inputs: movesworkeroutput, so2copyofmonthofanyyear, so2fuelcalculation1, so2fuelcalculation2
Outputs: so2movesoutputtemp1

Step: Apply general fuel effects. emissionQuant = emissionQuant * fuelEffectRatio.
Outputs: so2movesoutputtemp1, so2pmonecountyyeargeneralfuelratio


SourceBin Distribution Generator

SourceBin Distribution Generator is a GENERATOR that executes at the YEAR level.

SourceBin Distribution Generator uses the following tables:

  • AgeCategory
  • fuelUsageFraction
  • ModelYearGroup
  • PollutantProcessAssoc
  • PollutantProcessModelYear
  • sampleVehiclePopulation
  • SourceBin
  • SourceBinDistribution
  • SourceTypeModelYear
  • SourceTypePolProcess


SourceBin Distribution Generator populates the following tables:

  • SourceBin
  • SourceBinDistribution


SourceBin Distribution Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/SourceBinDistributionGenerator.java

Steps

The SourceBin Distribution Generator algorithm is as follows.

Step: Determine the set of SourceTypes which should be blocked because they already have output data for the current polProcessID.
Inputs: current polProcessID, SourceBinDistribution, SourceTypeModelYear
Outputs: BlockSourceType

Step: Determine the set of SourceTypes which should be used, namely those that exist in SourceTypePolProcess for the current polProcessID and which are not listed in BlockSourceType.
Inputs: BlockSourceType, current polProcessID, SourceTypePolProcess
Outputs: list of sourceTypeIDs

Step: Perform the following steps for each source type is the list of sourceTypeIDs and for the current polProcessID.
Inputs: current polProcessID, list of sourceTypeIDs

Step: Lookup isRegClassRequired and isMYGroupRequired.
Inputs: current polProcessID, current sourceTypeID, SourceTypePolProcess

Step: Aggregate sampleVehiclePopulation.stmyFraction based upon the need for regulatory class and model year group in the source bin. stmyFraction[sourceTypeModelYearID,fuelTypeID,engTechID,optionally regClassID,optionally shortModYrGroupID] = sum(SampleVehiclePopulation.stmyFraction).
Inputs: isMYGroupRequired, isRegClassRequired, modelYearGroup, pollutantProcessModelYear, sampleVehiclePopulation
Outputs: SBDGSVP

Step: Assign sourceBinID by combining other columns. sourceBinID= 1000000000000000000+ fuelTypeID*10000000000000000 + engTechID*100000000000000 + regClassID*1000000000000 + shortModYrGroupID*10000000000.
Outputs: SBDGSVP

Step: Find sourceBinIDs that do not already exist within SourceBin.
Inputs: SBDGSVP, SourceBin
Outputs: NewSourceBin2

Step: Add sourceBinIDs that did not previously exist within SourceBin.
Inputs: NewSourceBin2
Outputs: SourceBin

Step: sourceBinActivityFraction[sourceTypeModelYearID,sourceBinID] = sum(stmyFraction) of SampleVehiclePopulation records that have been aggregated according to sourcebin needs.
Inputs: SBDGSVP
Outputs: SourceBinDistribution

Step: Done iterating over the list of sourceTypeIDs for the current polProcessID.
Inputs: list of sourceTypeIDs

Step: equippedSourceBinID=sourceBin[fuelTypeID=sourceBinFuelTypeID]. usedSourceBinID=sourceBin[fuelTypeID=fuelSupplyFuelTypeID].
Inputs: fuelUsageFraction, sourceBin
Outputs: sourceBinFuelUsage

Step: Convert sourceBinDistribution from equipped fuels to used fuels basis. Use a new output table with a name that includes the process, county, and calendar year. sourceBinActivityFraction[sourceBinID=usedSourceBinID]=sum(usageFraction * sourceBinActivityFraction).
Inputs: pollutantProcessAssoc, sourceBinDistribution, sourceBinFuelUsage
Outputs: sourceBinDistributionFuelUsage_[processID]_[countyID]_[year]


Start Operating Mode Distribution Generator

Start Operating Mode Distribution Generator is a GENERATOR that executes at the PROCESS level.

Start Operating Mode Distribution Generator uses the following tables:

  • HourDay
  • OperatingMode
  • OpModeDistribution
  • OpModePolProcAssoc
  • SampleVehicleDay
  • SampleVehicleTrip
  • SourceTypePolProcess


Start Operating Mode Distribution Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/StartOperatingModeDistributionGenerator.java

Steps

The Start Operating Mode Distribution Generator algorithm is as follows.

Step: Determine the soak time for each sample vehicle trip by subtracking the keyontime of the trip from the keyofftime of the previous trip. soakTime = keyOnTime[trip t] - keyOffTime[trip t-1].
Inputs: SampleVehicleTrip
Outputs: SoakTime

Step: Find the operating mode for each soaking vehicle.
Conditions: (minSoakTime <= soakTime OR (minSoakTime IS NULL AND maxSoakTime IS NOT NULL)) AND (maxSoakTime > soakTime OR (maxSoakTime IS NULL AND minSoakTime IS NOT NULL)).
Inputs: OperatingMode, SoakTime
Outputs: StartOpMode

Step: Find the number of vehicle starts per day. starts = count(keyOnTime).
Inputs: HourDay, RunSpecHourDay, SampleVehicleDay, SampleVehicleTrip, StartOpMode
Outputs: StartsPerVehicleDay

Step: Calculate the operating mode fraction. opModeFraction = count(opModeID)/starts.
Inputs: SampleVehicleDay, SampleVehicleTrip, StartOpMode, StartsPerVehicleDay
Outputs: StartOpModeDistribution

Step: Find the set of unique opModeID values within StartOpModeDistribution.
Inputs: StartOpModeDistribution
Outputs: SOMDGOpModes

Step: Find the set of operating mode distribution entries that already exist.
Inputs: opModeDistribution, SOMDGOpModes
Outputs: existingStartOMD

Step: Populate RatesOpModeDistribution.
Conditions: Project domain
Inputs: OpModeDistribution, opModePolProcAssoc, sourceTypePolProcess
Outputs: RatesOpModeDistribution

Step: Populate RatesOpModeDistribution.
Conditions: Non-Project domain
Inputs: opModePolProcAssoc, sourceTypePolProcess, StartOpModeDistribution
Outputs: RatesOpModeDistribution

Step: Add information for All Starts using operating mode 100 and polProcessID 602. opModeFraction[opModeID=100,polProcessID=602]=1.0.
Inputs: runSpecHourDay, runSpecSourceType
Outputs: RatesOpModeDistribution


Sulfate PM Calculator

Sulfate PM Calculator is a CALCULATOR that executes at the YEAR level.

The Sulfate PM Calculator is responsible for:

  • Running Exhaust (1) Nitrate (NO3) (35)
  • Start Exhaust (2) Nitrate (NO3) (35)
  • Extended Idle Exhaust (90) Nitrate (NO3) (35)
  • Auxiliary Power Exhaust (91) Nitrate (NO3) (35)
  • Crankcase Running Exhaust (15) Nitrate (NO3) (35)
  • Crankcase Start Exhaust (16) Nitrate (NO3) (35)
  • Crankcase Extended Idle Exhaust (17) Nitrate (NO3) (35)
  • Running Exhaust (1) Ammonium (NH4) (36)
  • Start Exhaust (2) Ammonium (NH4) (36)
  • Extended Idle Exhaust (90) Ammonium (NH4) (36)
  • Auxiliary Power Exhaust (91) Ammonium (NH4) (36)
  • Crankcase Running Exhaust (15) Ammonium (NH4) (36)
  • Crankcase Start Exhaust (16) Ammonium (NH4) (36)
  • Crankcase Extended Idle Exhaust (17) Ammonium (NH4) (36)
  • Running Exhaust (1) Chloride (51)
  • Start Exhaust (2) Chloride (51)
  • Extended Idle Exhaust (90) Chloride (51)
  • Auxiliary Power Exhaust (91) Chloride (51)
  • Crankcase Running Exhaust (15) Chloride (51)
  • Crankcase Start Exhaust (16) Chloride (51)
  • Crankcase Extended Idle Exhaust (17) Chloride (51)
  • Running Exhaust (1) Sodium (52)
  • Start Exhaust (2) Sodium (52)
  • Extended Idle Exhaust (90) Sodium (52)
  • Auxiliary Power Exhaust (91) Sodium (52)
  • Crankcase Running Exhaust (15) Sodium (52)
  • Crankcase Start Exhaust (16) Sodium (52)
  • Crankcase Extended Idle Exhaust (17) Sodium (52)
  • Running Exhaust (1) Potassium (53)
  • Start Exhaust (2) Potassium (53)
  • Extended Idle Exhaust (90) Potassium (53)
  • Auxiliary Power Exhaust (91) Potassium (53)
  • Crankcase Running Exhaust (15) Potassium (53)
  • Crankcase Start Exhaust (16) Potassium (53)
  • Crankcase Extended Idle Exhaust (17) Potassium (53)
  • Running Exhaust (1) Magnesium (54)
  • Start Exhaust (2) Magnesium (54)
  • Extended Idle Exhaust (90) Magnesium (54)
  • Auxiliary Power Exhaust (91) Magnesium (54)
  • Crankcase Running Exhaust (15) Magnesium (54)
  • Crankcase Start Exhaust (16) Magnesium (54)
  • Crankcase Extended Idle Exhaust (17) Magnesium (54)
  • Running Exhaust (1) Calcium (55)
  • Start Exhaust (2) Calcium (55)
  • Extended Idle Exhaust (90) Calcium (55)
  • Auxiliary Power Exhaust (91) Calcium (55)
  • Crankcase Running Exhaust (15) Calcium (55)
  • Crankcase Start Exhaust (16) Calcium (55)
  • Crankcase Extended Idle Exhaust (17) Calcium (55)
  • Running Exhaust (1) Titanium (56)
  • Start Exhaust (2) Titanium (56)
  • Extended Idle Exhaust (90) Titanium (56)
  • Auxiliary Power Exhaust (91) Titanium (56)
  • Crankcase Running Exhaust (15) Titanium (56)
  • Crankcase Start Exhaust (16) Titanium (56)
  • Crankcase Extended Idle Exhaust (17) Titanium (56)
  • Running Exhaust (1) Silicon (57)
  • Start Exhaust (2) Silicon (57)
  • Extended Idle Exhaust (90) Silicon (57)
  • Auxiliary Power Exhaust (91) Silicon (57)
  • Crankcase Running Exhaust (15) Silicon (57)
  • Crankcase Start Exhaust (16) Silicon (57)
  • Crankcase Extended Idle Exhaust (17) Silicon (57)
  • Running Exhaust (1) Aluminum (58)
  • Start Exhaust (2) Aluminum (58)
  • Extended Idle Exhaust (90) Aluminum (58)
  • Auxiliary Power Exhaust (91) Aluminum (58)
  • Crankcase Running Exhaust (15) Aluminum (58)
  • Crankcase Start Exhaust (16) Aluminum (58)
  • Crankcase Extended Idle Exhaust (17) Aluminum (58)
  • Running Exhaust (1) Iron (59)
  • Start Exhaust (2) Iron (59)
  • Extended Idle Exhaust (90) Iron (59)
  • Auxiliary Power Exhaust (91) Iron (59)
  • Crankcase Running Exhaust (15) Iron (59)
  • Crankcase Start Exhaust (16) Iron (59)
  • Crankcase Extended Idle Exhaust (17) Iron (59)
  • Running Exhaust (1) Primary Exhaust PM2.5 - Total (110)
  • Start Exhaust (2) Primary Exhaust PM2.5 - Total (110)
  • Extended Idle Exhaust (90) Primary Exhaust PM2.5 - Total (110)
  • Auxiliary Power Exhaust (91) Primary Exhaust PM2.5 - Total (110)
  • Crankcase Running Exhaust (15) Primary Exhaust PM2.5 - Total (110)
  • Crankcase Start Exhaust (16) Primary Exhaust PM2.5 - Total (110)
  • Crankcase Extended Idle Exhaust (17) Primary Exhaust PM2.5 - Total (110)
  • Running Exhaust (1) Organic Carbon (111)
  • Start Exhaust (2) Organic Carbon (111)
  • Extended Idle Exhaust (90) Organic Carbon (111)
  • Auxiliary Power Exhaust (91) Organic Carbon (111)
  • Crankcase Running Exhaust (15) Organic Carbon (111)
  • Crankcase Start Exhaust (16) Organic Carbon (111)
  • Crankcase Extended Idle Exhaust (17) Organic Carbon (111)
  • Running Exhaust (1) Elemental Carbon (112)
  • Start Exhaust (2) Elemental Carbon (112)
  • Extended Idle Exhaust (90) Elemental Carbon (112)
  • Auxiliary Power Exhaust (91) Elemental Carbon (112)
  • Crankcase Running Exhaust (15) Elemental Carbon (112)
  • Crankcase Start Exhaust (16) Elemental Carbon (112)
  • Crankcase Extended Idle Exhaust (17) Elemental Carbon (112)
  • Running Exhaust (1) Sulfate Particulate (115)
  • Start Exhaust (2) Sulfate Particulate (115)
  • Extended Idle Exhaust (90) Sulfate Particulate (115)
  • Auxiliary Power Exhaust (91) Sulfate Particulate (115)
  • Crankcase Running Exhaust (15) Sulfate Particulate (115)
  • Crankcase Start Exhaust (16) Sulfate Particulate (115)
  • Crankcase Extended Idle Exhaust (17) Sulfate Particulate (115)
  • Running Exhaust (1) Composite - NonECPM (118)
  • Start Exhaust (2) Composite - NonECPM (118)
  • Extended Idle Exhaust (90) Composite - NonECPM (118)
  • Auxiliary Power Exhaust (91) Composite - NonECPM (118)
  • Crankcase Running Exhaust (15) Composite - NonECPM (118)
  • Crankcase Start Exhaust (16) Composite - NonECPM (118)
  • Crankcase Extended Idle Exhaust (17) Composite - NonECPM (118)
  • Running Exhaust (1) H2O (aerosol) (119)
  • Start Exhaust (2) H2O (aerosol) (119)
  • Extended Idle Exhaust (90) H2O (aerosol) (119)
  • Auxiliary Power Exhaust (91) H2O (aerosol) (119)
  • Crankcase Running Exhaust (15) H2O (aerosol) (119)
  • Crankcase Start Exhaust (16) H2O (aerosol) (119)
  • Crankcase Extended Idle Exhaust (17) H2O (aerosol) (119)
  • Running Exhaust (1) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Start Exhaust (2) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Extended Idle Exhaust (90) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Auxiliary Power Exhaust (91) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Crankcase Running Exhaust (15) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Crankcase Start Exhaust (16) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Crankcase Extended Idle Exhaust (17) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Running Exhaust (1) Non-carbon Organic Matter (NCOM) (122)
  • Start Exhaust (2) Non-carbon Organic Matter (NCOM) (122)
  • Extended Idle Exhaust (90) Non-carbon Organic Matter (NCOM) (122)
  • Auxiliary Power Exhaust (91) Non-carbon Organic Matter (NCOM) (122)
  • Crankcase Running Exhaust (15) Non-carbon Organic Matter (NCOM) (122)
  • Crankcase Start Exhaust (16) Non-carbon Organic Matter (NCOM) (122)
  • Crankcase Extended Idle Exhaust (17) Non-carbon Organic Matter (NCOM) (122)


The Sulfate PM Calculator input comes from:

  • BaseRateCalculator


The Sulfate PM Calculator output is used by:

  • Air toxics Calculator
  • PM10 Emission Calculator


Sulfate PM Calculator uses the following tables:

  • County
  • CrankcaseEmissionRatio
  • EmissionProcess
  • FuelFormulation
  • FuelSubtype
  • FuelSupply
  • generalFuelRatio
  • MonthofAnyYear
  • PMSpeciation
  • SulfateFractions
  • temperatureFactorExpression
  • Year
  • ZoneMonthHour


Sulfate PM Calculator is expressed in these source code files:

  • /database/SulfatePMCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/SulfatePMCalculator.java

Steps

The Sulfate PM Calculator algorithm is as follows.

Step: Get fuel effects for NonECNonSO4PM (120).
Inputs: county, fuelsupply, generalfuelratio, monthofanyyear, runspecmodelyearage, runspecmonthgroup, runspecsourcefueltype, year
Outputs: spmonecountyyeargeneralfuelratio

Step: Calculate adjusted SulfateNonECPMFraction and H2ONonECPMFraction using the sulfurLevel of available fuel formulations. Weight each adjusted fraction by formulation market share.
Inputs: county, fuelformulation, fuelsubtype, fuelsupply, monthofanyyear, runspecmodelyearage, runspecmonthgroup, runspecsourcefueltype, sulfatefractions, year
Outputs: onecountyyearsulfatefractions

Step: Collect speciation data.
Outputs: pmspeciation

Step: Create temperature effects for Sulfate (115), H2O (aersol) (119), and NonECNonSO4PM (120).
Inputs: temperaturefactorexpression, zonemonthhour
Outputs: onezoneyeartemperaturefactor

Step: Create crankcase split fractions for EC (112), Sulfate (115), H2O (aersol) (119), and NonECNonSO4PM (120). The query must account for the lack of NonECNonSO4PM in the Pollutant table.
Inputs: crankcaseemissionratio, emissionprocess
Outputs: crankcasesplit

Step: Copy unadjusted EC (112) so it can be adjusted.
Inputs: movesworkeroutput
Outputs: spmoutput

Step: Remove unadjusted EC. The adjusted EC will be added later.
Outputs: from

Step: Specify the split to make sulfate (115) from NonECPM (118). Sulfate = NonECPM * SulfateNonECPMFraction.
Inputs: onecountyyearsulfatefractions
Outputs: spmsplit1

Step: Specify the split to make H2O (aerosol) (119) from NonECPM (118). H2O = NonECPM * H2ONonECPMFraction.
Inputs: onecountyyearsulfatefractions
Outputs: spmsplit1

Step: Specify the split to make NonECNonSO4PM (120) from NonECPM (118). NonECNonSO4PM = NonECPM * (1 - UnadjustedH2ONonECPMFraction - UnadjustedSulfateNonECPMFraction).
Inputs: onecountyyearsulfatefractions
Outputs: spmsplit1

Step: Apply the splits, making Sulfate (115), H2O (aerosol) (119), and NonECNonSO4PM (120) from NonECPM (118).
Inputs: movesworkeroutput, spmsplit1
Outputs: spmoutput

Step: Apply fuel effects. Only NonECNonSO4PM (120) is affected.
Outputs: spmonecountyyeargeneralfuelratio, spmoutput

Step: Apply temperature effects to Sulfate, H2O (aersol), and NonECNonSO4PM.
Outputs: onezoneyeartemperaturefactor, spmoutput

Step: Split EC, Sulfate, H2O (aersol), and NonECNonSO4PM by crankcase effects.
Inputs: crankcasesplit, spmoutput
Outputs: spmoutput2

Step: Sum EC, NonECNonSO4PM, Sulfate, and H2O (aerosol) to make Total PM 2.5 (110)
Inputs: spmoutput2
Outputs: movesworkeroutput

Step: Copy EC, Sulfate, H2O to the output.
Inputs: spmoutput2
Outputs: movesworkeroutput

Step: Remove unadjusted NonECPM (118).
Outputs: from

Step: Sum the adjusted NonECNonSO4PM, Sulfate, and H2O (aerosol) to make the adjusted NonECPM (118).
Inputs: spmoutput2
Outputs: movesworkeroutput

Step: Speciate the remaining pollutants. species output = pmSpeciationFraction * species input
Inputs: pmspeciation, spmoutput2
Outputs: movesworkeroutput


TOG Speciation Calculator

TOG Speciation Calculator is a that executes at the level.

The TOG Speciation Calculator is responsible for:

  • Running Exhaust (1) CB05 Mechanism (1000)
  • Running Exhaust (1) NonHAPTOG (88)
  • Running Exhaust (1) CB05_ALD2 (1001)
  • Running Exhaust (1) CB05_ALDX (1002)
  • Running Exhaust (1) CB05_ETH (1005)
  • Running Exhaust (1) CB05_ETHA (1006)
  • Running Exhaust (1) CB05_FORM (1008)
  • Running Exhaust (1) CB05_IOLE (1009)
  • Running Exhaust (1) CB05_OLE (1012)
  • Running Exhaust (1) CB05_PAR (1013)
  • Running Exhaust (1) CB05_TOL (1015)
  • Running Exhaust (1) CB05_UNR (1017)
  • Running Exhaust (1) CB05_XYL (1018)
  • Running Exhaust (1) CB05_ISOP (1010)
  • Running Exhaust (1) CB05_MEOH (1011)
  • Running Exhaust (1) CB05_TERP (1014)
  • Running Exhaust (1) CB05_UNK (1016)
  • Start Exhaust (2) CB05 Mechanism (1000)
  • Start Exhaust (2) NonHAPTOG (88)
  • Start Exhaust (2) CB05_ALD2 (1001)
  • Start Exhaust (2) CB05_ALDX (1002)
  • Start Exhaust (2) CB05_ETH (1005)
  • Start Exhaust (2) CB05_ETHA (1006)
  • Start Exhaust (2) CB05_FORM (1008)
  • Start Exhaust (2) CB05_IOLE (1009)
  • Start Exhaust (2) CB05_OLE (1012)
  • Start Exhaust (2) CB05_PAR (1013)
  • Start Exhaust (2) CB05_TOL (1015)
  • Start Exhaust (2) CB05_UNR (1017)
  • Start Exhaust (2) CB05_XYL (1018)
  • Start Exhaust (2) CB05_ISOP (1010)
  • Start Exhaust (2) CB05_MEOH (1011)
  • Start Exhaust (2) CB05_TERP (1014)
  • Start Exhaust (2) CB05_UNK (1016)
  • Evap Permeation (11) CB05 Mechanism (1000)
  • Evap Permeation (11) NonHAPTOG (88)
  • Evap Permeation (11) CB05_ALD2 (1001)
  • Evap Permeation (11) CB05_ALDX (1002)
  • Evap Permeation (11) CB05_ETH (1005)
  • Evap Permeation (11) CB05_FORM (1008)
  • Evap Permeation (11) CB05_IOLE (1009)
  • Evap Permeation (11) CB05_ISOP (1010)
  • Evap Permeation (11) CB05_MEOH (1011)
  • Evap Permeation (11) CB05_OLE (1012)
  • Evap Permeation (11) CB05_PAR (1013)
  • Evap Permeation (11) CB05_TERP (1014)
  • Evap Permeation (11) CB05_TOL (1015)
  • Evap Permeation (11) CB05_UNR (1017)
  • Evap Permeation (11) CB05_XYL (1018)
  • Evap Permeation (11) CB05_ETHA (1006)
  • Evap Fuel Vapor Venting (12) CB05 Mechanism (1000)
  • Evap Fuel Vapor Venting (12) NonHAPTOG (88)
  • Evap Fuel Vapor Venting (12) CB05_ALD2 (1001)
  • Evap Fuel Vapor Venting (12) CB05_ALDX (1002)
  • Evap Fuel Vapor Venting (12) CB05_FORM (1008)
  • Evap Fuel Vapor Venting (12) CB05_IOLE (1009)
  • Evap Fuel Vapor Venting (12) CB05_ISOP (1010)
  • Evap Fuel Vapor Venting (12) CB05_OLE (1012)
  • Evap Fuel Vapor Venting (12) CB05_PAR (1013)
  • Evap Fuel Vapor Venting (12) CB05_TOL (1015)
  • Evap Fuel Vapor Venting (12) CB05_UNR (1017)
  • Evap Fuel Vapor Venting (12) CB05_XYL (1018)
  • Evap Fuel Vapor Venting (12) CB05_TERP (1014)
  • Evap Fuel Leaks (13) CB05 Mechanism (1000)
  • Evap Fuel Leaks (13) NonHAPTOG (88)
  • Evap Fuel Leaks (13) CB05_ALD2 (1001)
  • Evap Fuel Leaks (13) CB05_ALDX (1002)
  • Evap Fuel Leaks (13) CB05_FORM (1008)
  • Evap Fuel Leaks (13) CB05_IOLE (1009)
  • Evap Fuel Leaks (13) CB05_ISOP (1010)
  • Evap Fuel Leaks (13) CB05_OLE (1012)
  • Evap Fuel Leaks (13) CB05_PAR (1013)
  • Evap Fuel Leaks (13) CB05_TOL (1015)
  • Evap Fuel Leaks (13) CB05_UNR (1017)
  • Evap Fuel Leaks (13) CB05_XYL (1018)
  • Evap Fuel Leaks (13) CB05_TERP (1014)
  • Crankcase Running Exhaust (15) CB05 Mechanism (1000)
  • Crankcase Running Exhaust (15) NonHAPTOG (88)
  • Crankcase Running Exhaust (15) CB05_ALD2 (1001)
  • Crankcase Running Exhaust (15) CB05_ALDX (1002)
  • Crankcase Running Exhaust (15) CB05_ETH (1005)
  • Crankcase Running Exhaust (15) CB05_ETHA (1006)
  • Crankcase Running Exhaust (15) CB05_FORM (1008)
  • Crankcase Running Exhaust (15) CB05_IOLE (1009)
  • Crankcase Running Exhaust (15) CB05_OLE (1012)
  • Crankcase Running Exhaust (15) CB05_PAR (1013)
  • Crankcase Running Exhaust (15) CB05_TOL (1015)
  • Crankcase Running Exhaust (15) CB05_UNR (1017)
  • Crankcase Running Exhaust (15) CB05_XYL (1018)
  • Crankcase Running Exhaust (15) CB05_ISOP (1010)
  • Crankcase Running Exhaust (15) CB05_MEOH (1011)
  • Crankcase Running Exhaust (15) CB05_TERP (1014)
  • Crankcase Running Exhaust (15) CB05_UNK (1016)
  • Crankcase Start Exhaust (16) CB05 Mechanism (1000)
  • Crankcase Start Exhaust (16) NonHAPTOG (88)
  • Crankcase Start Exhaust (16) CB05_ALD2 (1001)
  • Crankcase Start Exhaust (16) CB05_ALDX (1002)
  • Crankcase Start Exhaust (16) CB05_ETH (1005)
  • Crankcase Start Exhaust (16) CB05_ETHA (1006)
  • Crankcase Start Exhaust (16) CB05_FORM (1008)
  • Crankcase Start Exhaust (16) CB05_IOLE (1009)
  • Crankcase Start Exhaust (16) CB05_OLE (1012)
  • Crankcase Start Exhaust (16) CB05_PAR (1013)
  • Crankcase Start Exhaust (16) CB05_TOL (1015)
  • Crankcase Start Exhaust (16) CB05_UNR (1017)
  • Crankcase Start Exhaust (16) CB05_XYL (1018)
  • Crankcase Start Exhaust (16) CB05_ISOP (1010)
  • Crankcase Start Exhaust (16) CB05_MEOH (1011)
  • Crankcase Start Exhaust (16) CB05_TERP (1014)
  • Crankcase Start Exhaust (16) CB05_UNK (1016)
  • Crankcase Extended Idle Exhaust (17) CB05 Mechanism (1000)
  • Crankcase Extended Idle Exhaust (17) NonHAPTOG (88)
  • Crankcase Extended Idle Exhaust (17) CB05_ALD2 (1001)
  • Crankcase Extended Idle Exhaust (17) CB05_ALDX (1002)
  • Crankcase Extended Idle Exhaust (17) CB05_ETH (1005)
  • Crankcase Extended Idle Exhaust (17) CB05_ETHA (1006)
  • Crankcase Extended Idle Exhaust (17) CB05_FORM (1008)
  • Crankcase Extended Idle Exhaust (17) CB05_IOLE (1009)
  • Crankcase Extended Idle Exhaust (17) CB05_ISOP (1010)
  • Crankcase Extended Idle Exhaust (17) CB05_OLE (1012)
  • Crankcase Extended Idle Exhaust (17) CB05_PAR (1013)
  • Crankcase Extended Idle Exhaust (17) CB05_TERP (1014)
  • Crankcase Extended Idle Exhaust (17) CB05_TOL (1015)
  • Crankcase Extended Idle Exhaust (17) CB05_UNK (1016)
  • Crankcase Extended Idle Exhaust (17) CB05_UNR (1017)
  • Crankcase Extended Idle Exhaust (17) CB05_XYL (1018)
  • Refueling Displacement Vapor Loss (18) CB05 Mechanism (1000)
  • Refueling Displacement Vapor Loss (18) NonHAPTOG (88)
  • Refueling Displacement Vapor Loss (18) CB05_ALD2 (1001)
  • Refueling Displacement Vapor Loss (18) CB05_ALDX (1002)
  • Refueling Displacement Vapor Loss (18) CB05_FORM (1008)
  • Refueling Displacement Vapor Loss (18) CB05_IOLE (1009)
  • Refueling Displacement Vapor Loss (18) CB05_ISOP (1010)
  • Refueling Displacement Vapor Loss (18) CB05_OLE (1012)
  • Refueling Displacement Vapor Loss (18) CB05_PAR (1013)
  • Refueling Displacement Vapor Loss (18) CB05_TERP (1014)
  • Refueling Displacement Vapor Loss (18) CB05_TOL (1015)
  • Refueling Displacement Vapor Loss (18) CB05_UNR (1017)
  • Refueling Displacement Vapor Loss (18) CB05_XYL (1018)
  • Refueling Spillage Loss (19) CB05 Mechanism (1000)
  • Refueling Spillage Loss (19) NonHAPTOG (88)
  • Refueling Spillage Loss (19) CB05_ALD2 (1001)
  • Refueling Spillage Loss (19) CB05_ALDX (1002)
  • Refueling Spillage Loss (19) CB05_FORM (1008)
  • Refueling Spillage Loss (19) CB05_IOLE (1009)
  • Refueling Spillage Loss (19) CB05_ISOP (1010)
  • Refueling Spillage Loss (19) CB05_OLE (1012)
  • Refueling Spillage Loss (19) CB05_PAR (1013)
  • Refueling Spillage Loss (19) CB05_TOL (1015)
  • Refueling Spillage Loss (19) CB05_UNR (1017)
  • Refueling Spillage Loss (19) CB05_XYL (1018)
  • Refueling Spillage Loss (19) CB05_TERP (1014)
  • Extended Idle Exhaust (90) CB05 Mechanism (1000)
  • Extended Idle Exhaust (90) NonHAPTOG (88)
  • Extended Idle Exhaust (90) CB05_ALD2 (1001)
  • Extended Idle Exhaust (90) CB05_ALDX (1002)
  • Extended Idle Exhaust (90) CB05_ETH (1005)
  • Extended Idle Exhaust (90) CB05_ETHA (1006)
  • Extended Idle Exhaust (90) CB05_FORM (1008)
  • Extended Idle Exhaust (90) CB05_IOLE (1009)
  • Extended Idle Exhaust (90) CB05_ISOP (1010)
  • Extended Idle Exhaust (90) CB05_OLE (1012)
  • Extended Idle Exhaust (90) CB05_PAR (1013)
  • Extended Idle Exhaust (90) CB05_TERP (1014)
  • Extended Idle Exhaust (90) CB05_TOL (1015)
  • Extended Idle Exhaust (90) CB05_UNK (1016)
  • Extended Idle Exhaust (90) CB05_UNR (1017)
  • Extended Idle Exhaust (90) CB05_XYL (1018)
  • Auxiliary Power Exhaust (91) CB05 Mechanism (1000)
  • Auxiliary Power Exhaust (91) NonHAPTOG (88)
  • Auxiliary Power Exhaust (91) CB05_ALD2 (1001)
  • Auxiliary Power Exhaust (91) CB05_ALDX (1002)
  • Auxiliary Power Exhaust (91) CB05_ETH (1005)
  • Auxiliary Power Exhaust (91) CB05_ETHA (1006)
  • Auxiliary Power Exhaust (91) CB05_FORM (1008)
  • Auxiliary Power Exhaust (91) CB05_IOLE (1009)
  • Auxiliary Power Exhaust (91) CB05_ISOP (1010)
  • Auxiliary Power Exhaust (91) CB05_OLE (1012)
  • Auxiliary Power Exhaust (91) CB05_PAR (1013)
  • Auxiliary Power Exhaust (91) CB05_TERP (1014)
  • Auxiliary Power Exhaust (91) CB05_TOL (1015)
  • Auxiliary Power Exhaust (91) CB05_UNK (1016)
  • Auxiliary Power Exhaust (91) CB05_UNR (1017)
  • Auxiliary Power Exhaust (91) CB05_XYL (1018)


The TOG Speciation Calculator input comes from:

  • Crankcase Emission Calculator
  • Air toxics Calculator
  • HC Speciation Calculator


TOG Speciation Calculator uses the following tables:

  • FuelFormulation
  • FuelSubtype
  • FuelSupply
  • integratedSpeciesSet
  • lumpedSpeciesName
  • MonthofAnyYear
  • togSpeciation
  • TOGSpeciationProfile
  • Year


TOG Speciation Calculator is expressed in these source code files:

  • /database/TOGSpeciationCalculator.sql

Steps

The TOG Speciation Calculator algorithm is as follows.

Step: Add NMOG (80) to the set of chained input pollutants.
Outputs: integratedspeciesset

Step: Index integratedSpeciesSet by pollutantID to increase speed.
Outputs: integratedspeciesset

Step: Find the subset of records that are actually needed. These include NMOG (80) and anything listed in integratedSpeciesSet.
Inputs: movesworkeroutput
Outputs: togworkeroutput

Step: Convert integrated species to negative NonHapTOG (88) entries and NMOG (80) values to positive NonHAPTOG (88) entries. When summed, this will complete the integration.
Inputs: integratedspeciesset
Outputs: togworkeroutput

Step: Sum the NonHAPTOG (88) records, reducing record count and completing the species integration.
Inputs: togworkeroutput
Outputs: togworkeroutputintegrated

Step: Copy NonHAPTOG (88) entries into MOVESWorkerOutput.
Inputs: togworkeroutputintegrated
Outputs: movesworkeroutput

Step: Index togSpeciationProfile by pollutantID to increase speed.
Outputs: togspeciationprofile

Step: Get the set of distinct pollutants that are needed for speciation input.
Inputs: togspeciationprofile
Outputs: togspeciationpollutants

Step: Find the subset of records that are needed for speciation input. These are the pollutants listed in the togSpeciationProfile table.
Inputs: movesworkeroutput, togspeciationpollutants
Outputs: togworkeroutputintegrated

Step: Speciate NonHAPTOG (88) and anything else listed as an input in togSpeciationProfile.


Tank Fuel Generator

Tank Fuel Generator is a GENERATOR that executes at the YEAR level.

Tank Fuel Generator uses the following tables:

  • FuelFormulation
  • FuelSubtype
  • FuelSupply
  • FuelType
  • MonthofAnyYear
  • Year
  • Zone
  • ZoneMonthHour


Tank Fuel Generator populates the following tables:

  • AverageTankGasoline


Tank Fuel Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/TankFuelGenerator.java

Steps

The Tank Fuel Generator algorithm is as follows.

Step: ethanolRVP = 2.3. weatheringConstant = 0.049.

Step: Find fuel formulations used by the fuel supply.
Inputs: FuelFormulation, FuelSubtype, FuelSupply, FuelType, RunSpecMonthGroup, RunSpecYear, Year
Outputs: TFGUsedFuelFormulation

Step: kGasoline=((-7e-7)*pow(ETOHVolume,3))+(0.0002*pow(ETOHVolume,2))+(0.0024*ETOHVolume)+1.0. kEthanol=(case when ETOHVolume>0 then (46.321*pow(ETOHVolume,-0.8422)) else 1000.0 end).
Inputs: FuelFormulation
Outputs: TFGUsedFuelFormulation

Step: gasPortionRVP=(RVP-kEthanol*ETOHVolume/100.0* ethanolRVP )/(kGasoline*(100.0-ETOHVolume)/100.0).
Inputs: FuelFormulation
Outputs: TFGUsedFuelFormulation

Step: linearAverageRVP=sum(RVP*marketShare)/sum(marketShare). tankAverageETOHVolume=sum(ETOHVolume*marketShare)/sum(marketShare). averageGasPortionRVP=sum(gasPortionRVP*marketShare)/sum(marketShare).
Inputs: FuelFormulation, FuelSupply, RunSpecYear, TFGUsedFuelFormulation, Year
Outputs: TFGFuelSupplyAverage

Step: gasoholMarketShare=sum(marketShare).
Conditions: 4 <= ETOHVolume <= 20
Inputs: FuelFormulation, FuelSupply, RunSpecYear, TFGUsedFuelFormulation, Year
Outputs: TFGTemp

Step: Copy gasoholMarketShare to TFGFuelSupplyAverage.
Inputs: TFGTemp
Outputs: TFGFuelSupplyAverage

Step: averageKGasoline=((-7e-7)*pow(tankAverageETOHVolume,3))+(0.0002*pow(tankAverageETOHVolume,2))+(0.0024*tankAverageETOHVolume)+1. averageKEthanol=(case when tankAverageETOHVolume > 0 then (46.321*pow(tankAverageETOHVolume,-0.8422)).
Outputs: TFGFuelSupplyAverage

Step: noWeatheringReddyRVP= averageKGasoline* (100.0- tankAverageETOHVolume)/100.0 * averageGasPortionRVP + averageKEthanol * tankAverageETOHVolume/100.0 * ethanolRVP.
Outputs: TFGFuelSupplyAverage

Step: Find zone temperature extremes. zoneMin=min(temperature). zoneMax=max(temperature).
Inputs: MonthOfAnyYear, RunSpecMonth, Zone, ZoneMonthHour
Outputs: TFGZone

Step: zoneEvapTemp = (case when ((zoneMax < 40) or (zoneMax-zoneMin <= 0)) then (zoneMin+zoneMax)/2.0 else -1.7474+1.029*zoneMin+0.99202*(zoneMax-zoneMin)-0.0025173*zoneMin*(zoneMax-zoneMin) end).
Outputs: TFGZone

Step: ratioGasolineRVPLoss=greatest(0, (-2.4908+0.026196*zoneEvapTemp+0.00076898*zoneEvapTemp*averageGasPortionRVP) / (-0.0860+0.070592*averageGasPortionRVP) ).
Inputs: TFGFuelSupplyAverage, TFGZone
Outputs: TFGZoneFuel

Step: weatheredGasPortionRVP=averageGasPortionRVP*(1.0-ratioGasolineRVPLoss*weatheringConstant).
Inputs: TFGFuelSupplyAverage
Outputs: TFGZoneFuel

Step: weatheredReddyRVP= averageKGasoline*(100.0-tankAverageETOHVolume)/100.0*weatheredGasPortionRVP + averageKEthanol*tankAverageETOHVolume/100.0*ethanolRVP.
Inputs: TFGFuelSupplyAverage
Outputs: TFGZoneFuel

Step: commingledRVP=linearAverageRVP*(case when gasoholMarketShare >= 1.0 then 1.000 when gasoholMarketShare >= 0.9 then 1.018 when gasoholMarketShare >= 0.8 then 1.027 when gasoholMarketShare >= 0.7 then 1.034 when gasoholMarketShare >= 0.6 then 1.038 when gasoholMarketShare >= 0.5 then 1.040 when gasoholMarketShare >= 0.4 then 1.039 when gasoholMarketShare >= 0.3 then 1.035 when gasoholMarketShare >= 0.2 then 1.028 when gasoholMarketShare >= 0.1 then 1.016 else 1.000" end).
Outputs: TFGFuelSupplyAverage

Step: ETOHVolume=tankAverageETOHVolume. RVP=(weatheredReddyRVP*commingledRVP)/noWeatheringReddyRVP.
Inputs: TFGFuelSupplyAverage, TFGZoneFuel
Outputs: AverageTankGasoline


Tank Temperature Generator

Tank Temperature Generator is a GENERATOR that executes at the ZONE level.

Tank Temperature Generator uses the following tables:

  • AverageTankTemperature
  • ColdSoakTankTemperature
  • HourDay
  • SampleVehicleDay
  • SampleVehicleTrip
  • SourceTypeModelYearGroup
  • TankTemperatureRise
  • ZoneMonthHour


Tank Temperature Generator populates the following tables:

  • AverageTankTemperature
  • ColdSoakInitialHourFraction
  • ColdSoakTankTemperature
  • SampleVehicleTrip
  • SoakActivityFraction


Tank Temperature Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/TankTemperatureGenerator.java

Steps

The Tank Temperature Generator algorithm is as follows.

Step: Obtain the required set of vehID and tankTemperatureGroupID combinations.
Inputs: SampleVehicleDay, SourceTypeModelYearGroup
Outputs: TempVehAndTTG

Step: Calculate temperatures in quarter hour increments using linear interpolation. quarterHourTemperature[hourID,timeStep] = temperature[hourID=h-1] + ((timeStep-1) * 0.25 * (temperature[hourID=h] - temperature[hourID=h-1])) for timeSteps 1-4.
Inputs: ZoneMonthHour for hour h, ZoneMonthHour for hour h-1 (or hour 24 if h is the hour 1)
Outputs: QuarterHourTemperature

Step: firstQuarterHourTankTemperature[monthID]=quarterHourTemperature[hourID=1,monthID,timeStep=1].
Inputs: QuarterHourTemperature

Step: sumTempDelta=0
Conditions: Resets to 0 for each monthID.

Step: Calculate quarter hour tank temperature from the quarter hour ambient temperature. quarterHourTankTemperature = 1.4*sumTempDelta + firstQuarterHourTankTemperature. tempDelta = quarterHourTemperature - quarterHourTankTemperature. sumTempDelta = sumTempDelta + tempDelta.
Conditions: for each hour and quarter hour time step of the current month, in temporal sequence
Inputs: QuarterHourTemperature
Outputs: QuarterHourTankTemperature

Step: coldSoakTankTemperature[zoneID,monthID,hourID]=quarterHourTankTemperature[zoneID,monthID,hourID,timeStep=1].
Inputs: QuarterHourTankTemperature
Outputs: ColdSoakTankTemperature

Step: coldSoakTankTemperature[zoneID,monthID,hourID]=quarterHourTankTemperature[zoneID,monthID,hourID,timeStep=1].
Conditions: QuarterHourTankTemperature has been populated
Inputs: QuarterHourTankTemperature
Outputs: TempColdSoakTankTemperature

Step: Copy ColdSoakTankTemperature to TempColdSoakTankTemperature.
Conditions: QuarterHourTankTemperature has not been populated
Inputs: ColdSoakTankTemperature
Outputs: TempColdSoakTankTemperature

Step: Flag all trips by default as Normal (tripType=N). Subsequent steps may alter this designation.
Outputs: SampleVehicleTrip

Step: Flag marker trips. tripType=M.
Conditions: keyOnTime is null and priorTripID is null
Outputs: SampleVehicleTrip

Step: Copy marker trips from SampleVehicleTrip to MarkerTrip.
Inputs: SampleVehicleTrip
Outputs: MarkerTrip

Step: Identify trips as the first trip of a day. tripType = F. priorTripID = NULL.
Conditions: Trips having a prior trip that is a marker trip.
Inputs: MarkerTrip
Outputs: SampleVehicleTrip

Step: Identify more trips as the first trip of a day. tripType = F.
Conditions: priorTripID is null and keyOnTime is not null (i.e. there is no prior trip and the vehicle was started during this trip) and the trip is still considered a Normal trip (tripType=N)
Outputs: SampleVehicleTrip

Step: vehicleCount = count(*) for each source type and day.
Inputs: sampleVehicleDay
Outputs: TTGeTemp

Step: eMinutes = 60*vehicleCount.
Inputs: HourDay, runSpecHourDay, runSpecMonth, TTGeTemp
Outputs: TTGeMinutes

Step: EndOfHour = (FLOOR(keyOnTime/60)+1)*60.
Conditions: tripType <> M (i.e. don't include marker trips)
Inputs: HourDay, SampleVehicleDay, SampleVehicleTrip
Outputs: list of trip data in memory

Step: Split trips into individual hours. startOfTrip = 1 for the first hour of the trip, 0 otherwise. endOfTrip = 1 when keyOffTime <= endOfHour, 0 otherwise.
Inputs: list of trip data in memory
Outputs: SampleVehicleTripByHour

Step: Find all hours in which a trip ends.
Conditions: endOfTrip=1
Inputs: SampleVehicleTripByHour
Outputs: list of trip end hours in memory

Step: hotSoakBegin = keyOffTime of each trip end.
Inputs: list of trip end hours in memory

Step: Get keyOnTime for the first hour of each trip's subsequent trip.
Inputs: SampleVehcileTripByHour
Outputs: keyOnTime for the current trip's first hour

Step: hotSoakEnd = min(endOfHour, nextKeyOnTime) when there is a next trip, endOfHour otherwise.

Step: Record each hot soaking event from hotSoakBegin to hotSoakEnd.
Outputs: HotSoakEventByHour

Step: Collect the list of tank temperature data sets to be iterated.
Inputs: SampleVehicleTripByHour, TankTemperatureRise, TempColdSoakTankTemperature, TempVehAndTTG
Outputs: list of tank temperature data sets to be iterated

Step: Calculate operating temperatures. keyOnTemp = coldSoakTankTemperature when starting a trip and a prior trip exists and it known that hot soaking has already ended. keyOnTemp = tank temperature when the the trip started when starting a trip and a prior trip exists and hot soaking is not already ended. keyOnTemp = coldSoakTankTemperature when starting a trip and no prior trip exists. keyOnTemp = keyOffTemp when a trip is continued into a new hour. keyOffTemp = keyOnTemp + ((tankTemperatureRiseTermA+tankTemperatureRiseTermB*(95.0-keyOnTemp))/1.2)*((keyOffTime-keyOnTime)/60.0). keyOffTemp = 140 when keyOffTemp > 140, limiting keyOffTemp to 140 degrees Fahrenheit.
Inputs: current item from the list of tank temperature data sets to be iterated
Outputs: OperatingTemperature

Step: Get the hot soak events beginning at the end of the current trip.
Inputs: HotSoakEventByHour, HourDay
Outputs: list of hot soak events

Step: Setup hot soak variables for the current vehicle, day, and trip. tempDeltaSum = 0. initialTankTemperature = keyOffTemp.

Step: Get the ambient temperature and coldSoakTankTemperature for the current month, zone, hour, and day.
Inputs: HourDay, TempColdSoakTankTemperature, ZoneMonthHour

Step: Generate the minute-by-minute hot soak temperatures. soakTankTemperature = 1.4*tempDeltaSum/60 + initialTankTemperature. tempDelta = temperature - soakTankTemperature. tempDeltaSum = tempDeltaSum + tempDelta. opModeID = 150 (hot soaking) when soakTankTemperature > coldSoakTankTemperature + 3, 151 (cold soaking) otherwise. When opModeID=151 (cold soaking), set soakTankTemperature=-1000 and do not record the hot soak minute or any others.
Conditions: each minute from hotSoakBegin, inclusive, to hotSoakEnd, exclusive.
Outputs: HotSoakTemperature

Step: Find AverageTankTemperature entries provided by the user as these should not be replaced with calculated values.
Inputs: AverageTankTemperature
Outputs: AverageTankTemperatureKeys

Step: Find all unique combinations of monthID, hourDayID, tankTemperatureGroupID in the operating temperature table.
Inputs: OperatingTemperature
Outputs: TempOperatingTemperatureSummary

Step: averageTankTemperature[opModeID=151 cold soaking]=coldSoakTankTemperature.
Conditions: No matching entries in AverageTankTemperatureKeys
Inputs: AverageTankTemperatureKeys, HourDay, TempColdSoakTankTemperature, TempOperatingTemperatureSummary
Outputs: AverageTankTemperature

Step: averageTankTemperature[opModeID=300 all running]=SUM((keyOffTime-keyOnTime)*(keyOnTemp+keyOffTemp)/2.0)/SUM(keyOffTime-keyOnTime).
Conditions: No matching entries in AverageTankTemperatureKeys
Inputs: AverageTankTemperatureKeys, OperatingTemperature
Outputs: AverageTankTemperature

Step: averageTankTemperature[opModeID=150 hot soaking]=average(soakTankTemp).
Conditions: No matching entries in AverageTankTemperatureKeys
Inputs: AverageTankTemperatureKeys, HotSoakTemperature
Outputs: AverageTankTemperature

Step: soakActivityFraction[opModeID=150 hot soaking]=hotSoakOpModeCount / (eMinutes - oMinutes).
Inputs: HotSoakOpModeCount, SoakActivityFractionKeys, TTGeMinutes, TTGoMinutes
Outputs: SoakActivityFraction

Step: soakActivityFraction[opModeID=151 cold soaking]=(eMinutes-oMinutes-hotSoakOpModeCount) / (eMinutes - oMinutes).
Inputs: HotSoakOpModeCount, SoakActivityFractionKeys, TTGeMinutes, TTGoMinutes
Outputs: SoakActivityFraction

Step: Read TempVehAndTTG into memory.
Inputs: TempVehAndTTG
Outputs: list of vehID, tankTemperatureGroupID in memory

Step: Read SampleVehicleTripByHour into memory.
Inputs: SampleVehicleTripByHour
Outputs: list of vehID, hourDayID, keyOnTime, keyOffTime in memory

Step: Read hot soak vehID, hourDayID, hotSoakTime, tankTemperatureGroupID, monthID combinations into memory.
Inputs: HotSoakTemperature
Outputs: list of objects in memory

Step: minutesColdSoakStartingFromInitialHour = modulus(keyOnTime,60). minutesColdSoakStartingInCurrentHour = 60 - minutesColdSoakStartingFromInitialHour - sum(KeyOffTime - KeyOnTime). minutesColdSoakStartingInCurrentHour -= hotSoakCount[monthID][tankTemperatureGroupID].
Conditions: Vehicle trip record

Step: minutesColdSoakStartingFromInitialHour = 0. minutesColdSoakStartingInCurrentHour = 60. minutesColdSoakStartingInCurrentHour -= hotSoakCount[monthID][tankTemperatureGroupID]. minutesColdSoakStartingInCurrentHour -= sum(KeyOffTime - KeyOnTime).
Conditions: Hot soak minute

Step: coldSoakMinutes[sourceTypeID][monthID][hourID][initialHourID] += minutesColdSoakStartingFromInitialHour. coldSoakMinutes[sourceTypeID][monthID][hourID][hourID] += minutesColdSoakStartingInCurrentHour. coldSoakMinutesSum[sourceTypeID][monthID][hourID] += minutesColdSoakStartingFromInitialHour + minutesColdSoakStartingInCurrentHour.

Step: coldSoakInitialHourFraction = coldSoakMinutes / coldSoakMinutesSum.
Outputs: ColdSoakInitialHourFraction


Tank Vapor Venting Calculator

Tank Vapor Venting Calculator is a CALCULATOR that executes at the MONTH level.

The Tank Vapor Venting Calculator is responsible for:

  • Evap Fuel Vapor Venting (12) Total Gaseous Hydrocarbons (1)


The Tank Vapor Venting Calculator output is used by:

  • HC Speciation Calculator


Tank Vapor Venting Calculator uses the following tables:

  • AgeCategory
  • AverageTankGasoline
  • AverageTankTemperature
  • ColdSoakInitialHourFraction
  • ColdSoakTankTemperature
  • County
  • CumTVVCoeffs
  • EmissionRateByAge
  • evapRVPTemperatureAdjustment
  • evapTemperatureAdjustment
  • FuelType
  • HourDay
  • HourOfAnyDay
  • IMCoverage
  • IMFactor
  • Link
  • MonthofAnyYear
  • OpModeDistribution
  • PollutantProcessAssoc
  • PollutantProcessModelYear
  • SampleVehicleDay
  • sampleVehiclePopulation
  • sampleVehicleSoaking
  • sampleVehicleSoakingDay
  • sampleVehicleSoakingDayBasis
  • SampleVehicleTrip
  • SourceBin
  • SourceBinDistribution
  • SourceHours
  • SourceTypeModelYear
  • SourceTypeModelYearGroup
  • TankVaporGenCoeffs
  • Year
  • Zone
  • ZoneMonthHour


Tank Vapor Venting Calculator is expressed in these source code files:

  • /database/MultidayTankVaporVentingCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/TankVaporVentingCalculator.java

Steps

The Tank Vapor Venting Calculator algorithm is as follows.

Step: totalVehicles = count(dayID, sourceTypeID) from sampleVehicleDay.
Conditions: First bundle only.
Inputs: samplevehicleday
Outputs: samplevehiclecount

Step: vehiclesNeverStarted = count(dayID, sourceTypeID) from sampleVehicleDay without any corresponding entry in sampleVehicleTrip.
Conditions: First bundle only.
Inputs: samplevehicleday, samplevehicletrip
Outputs: samplevehicleneverstarted

Step: fractionNeverStarted[dayID,sourceTypeID] = vehiclesNeverStarted/totalVehicles.
Conditions: First bundle only.
Outputs: samplevehiclecount, samplevehicleneverstarted

Step: hour of first start[vehID,dayID,sourceTypeID] = min(SampleVehicleTrip.hourID).
Conditions: First bundle only.
Inputs: samplevehicleday, samplevehicletrip
Outputs: samplevehiclefirststart

Step: In each day and hour, count the number of vehicles that start for the first time. vehiclesFirstStarted[dayID,sourceTypeID,hourID] = count(dayID,sourceTypeID,hourID) by hour of first start.
Conditions: First bundle only.
Inputs: samplevehiclefirststart
Outputs: samplevehiclesoaktemp

Step: In each day and hour, sum the number of vehicles that have started up to then. totalVehiclesStarted[dayID,sourceTypeID,hourID]=sum(vehiclesFirstStarted) for all hours up to hourID.
Conditions: First bundle only.
Inputs: hourofanyday, samplevehiclesoaktemp
Outputs: samplevehiclesoaktemp2

Step: Obtain the fraction of vehicles soaking, awaiting their first start, for each day and hour. soakFraction[soakDayID=0,sourceTypeID,dayID,hourID]=(totalVehicles-totalVehiclesStarted)/totalVehicles.
Conditions: First bundle only.
Inputs: samplevehiclecount, samplevehiclesoaktemp2
Outputs: samplevehiclesoaking

Step: Assume a default soakFraction of 1 for any day and hour that has no vehicles started previously.
Conditions: First bundle only.
Inputs: hourofanyday, samplevehiclesoaktemp
Outputs: samplevehiclesoaking

Step: dayF[soakDayID=1,sourceTypeID,dayID]=soakFraction[soakDayID=0,sourceTypeID,dayID,hourID=24]
Conditions: First bundle only.
Inputs: samplevehiclesoaking
Outputs: samplevehiclesoakingday

Step: soakF[soakDayID=1,sourceTypeID,dayID]=dayF[soakDayID=1,sourceTypeID,dayID]. GammaFn1[soakDayID=1,sourceTypeID,dayID]=dayF[soakDayID=1,sourceTypeID,dayID]. GammaFn[soakDayID=1,sourceTypeID,dayID]=dayF[soakDayID=1,sourceTypeID,dayID].
Conditions: First bundle only.
Inputs: samplevehiclesoakingday
Outputs: samplevehiclesoakingf

Step: dayF[soakDayID=2,sourceTypeID,dayID]=greatest(dayF[soakDayID=1,sourceTypeID,dayID], basisF[soakDayID=2,dayID]).
Conditions: First bundle only.
Inputs: samplevehiclesoakingdaybasis
Outputs: samplevehiclesoakingday

Step: soakF[soakDayID=2,sourceTypeID,dayID]=dayF[soakDayID=2,sourceTypeID,dayID]. GammaFn1[soakDayID=2,sourceTypeID,dayID]=GammaFn[soakDayID=1,sourceTypeID,dayID]. GammaFn[soakDayID=2,sourceTypeID,dayID]=dayF[soakDayID=2,sourceTypeID,dayID] * GammaFn[soakDayID=1,sourceTypeID,dayID].
Conditions: First bundle only.
Inputs: samplevehiclesoakingday
Outputs: samplevehiclesoakingf

Step: dayF[soakDayID=3,sourceTypeID,dayID]=greatest(dayF[soakDayID=2,sourceTypeID,dayID], basisF[soakDayID=3,dayID]).
Conditions: First bundle only.
Inputs: samplevehiclesoakingdaybasis
Outputs: samplevehiclesoakingday

Step: soakF[soakDayID=3,sourceTypeID,dayID]=dayF[soakDayID=3,sourceTypeID,dayID]. GammaFn1[soakDayID=3,sourceTypeID,dayID]=GammaFn[soakDayID=2,sourceTypeID,dayID]. GammaFn[soakDayID=3,sourceTypeID,dayID]=dayF[soakDayID=3,sourceTypeID,dayID] * GammaFn[soakDayID=2,sourceTypeID,dayID].
Conditions: First bundle only.
Inputs: samplevehiclesoakingday
Outputs: samplevehiclesoakingf

Step: dayF[soakDayID=4,sourceTypeID,dayID]=greatest(dayF[soakDayID=3,sourceTypeID,dayID], basisF[soakDayID=4,dayID]).
Conditions: First bundle only.
Inputs: samplevehiclesoakingdaybasis
Outputs: samplevehiclesoakingday

Step: soakF[soakDayID=4,sourceTypeID,dayID]=dayF[soakDayID=4,sourceTypeID,dayID]. GammaFn1[soakDayID=4,sourceTypeID,dayID]=GammaFn[soakDayID=3,sourceTypeID,dayID]. GammaFn[soakDayID=4,sourceTypeID,dayID]=dayF[soakDayID=4,sourceTypeID,dayID] * GammaFn[soakDayID=3,sourceTypeID,dayID].
Conditions: First bundle only.
Inputs: samplevehiclesoakingday
Outputs: samplevehiclesoakingf

Step: dayF[soakDayID=5,sourceTypeID,dayID]=greatest(dayF[soakDayID=4,sourceTypeID,dayID], basisF[soakDayID=5,dayID]).
Conditions: First bundle only.
Inputs: samplevehiclesoakingdaybasis
Outputs: samplevehiclesoakingday

Step: soakF[soakDayID=5,sourceTypeID,dayID]=dayF[soakDayID=5,sourceTypeID,dayID]. GammaFn1[soakDayID=5,sourceTypeID,dayID]=GammaFn[soakDayID=4,sourceTypeID,dayID]. GammaFn[soakDayID=5,sourceTypeID,dayID]=dayF[soakDayID=5,sourceTypeID,dayID] * GammaFn[soakDayID=4,sourceTypeID,dayID].
Conditions: First bundle only.
Inputs: samplevehiclesoakingday
Outputs: samplevehiclesoakingf

Step: nextF[soakDayID,sourceTypeID,dayID]=soakF[soakDayID+1,sourceTypeID,dayID].
Conditions: First bundle only.
Outputs: samplevehiclesoakingf, samplevehiclesoakingf2

Step: P[n,1] = 1 for each soaking day
Conditions: First bundle only.
Inputs: samplevehiclesoakingday
Outputs: samplevehiclesoakingproportion

Step: D[5,1] = Gamma[F4]
Conditions: First bundle only.
Inputs: samplevehiclesoakingf
Outputs: samplevehiclesoaking

Step: D[5,24] = Gamma[F5], for soakday 5
Conditions: First bundle only.
Inputs: samplevehiclesoakingf
Outputs: samplevehiclesoaking

Step: D[n,24] = Gamma[Fn] * (1-F[n+1]), for soakdays 1-4
Conditions: First bundle only.
Inputs: samplevehiclesoakingf
Outputs: samplevehiclesoaking

Step: D[1,1] = D1-D24 for soakday 1
Conditions: First bundle only.
Outputs: samplevehiclesoaking

Step: D[n,1] = D[n-1,24] for soakday 2,3,4
Conditions: First bundle only.
Outputs: samplevehiclesoaking

Step: P[n,24]=D[n,24]/D[n,1]
Conditions: First bundle only.
Inputs: samplevehiclesoaking
Outputs: samplevehiclesoakingproportion

Step: Precalc[h] = (D[0,h]-D[0,24]) / (D[0,1]-D[0,24]) because it is used in P[n,1 < h < 24]
Conditions: First bundle only.
Inputs: samplevehiclesoaking
Outputs: samplevehiclesoakingdh

Step: Store P[n,1] for each day alongside P[n,24] since they are used together
Conditions: First bundle only.
Outputs: samplevehiclesoakingf, samplevehiclesoakingproportion

Step: P[n,h]=Precalc[h]*(P[n,1]-P[n,24]) + P[n,24] for 1 <= n <= 5, 1 < h < 24
Conditions: First bundle only.
Inputs: samplevehiclesoakingdh
Outputs: samplevehiclesoakingproportion

Step: D[n,h] = D[n,1]*P[n,h] for 1 <= n <= 5, 1 < h < 24
Conditions: First bundle only.
Inputs: samplevehiclesoakingproportion
Outputs: samplevehiclesoaking

Step: Index by hourID to speedup later joins.
Inputs: ColdSoakTankTemperature
Outputs: coldsoaktanktemperature

Step: Include soakDayID in ColdSoakInitialHourFraction.
Inputs: ColdSoakInitialHourFraction
Outputs: coldsoakinitialhourfraction

Step: Disaggregate IMCoverage records, expanding model year ranges into individual model years. IMAdjustFract[processID,pollutantID,modelYearID,fuelTypeID,sourceTypeID]=IMFactor*complianceFactor*0.01.
Inputs: agecategory, imcoverage, imfactor, pollutantprocessassoc, pollutantprocessmappedmodelyear
Outputs: imcoveragemergedungrouped

Step: Compute peakHourID by monthID. The maximum value of the expression is found. This finds the maximum temperature and the earliest time of day in which the temperature occurs, storing both as a single number.
Inputs: coldsoaktanktemperature
Outputs: peakhourofcoldsoak

Step: Calculate tankVaporGenerated for high and low altitudes. The time spans t1 (based upon ColdSoakInitialHourFraction.initialHourDayID) to t2 (based upon ColdSoakInitialHourFraction.hourDayID). tankVaporGenerated[high and low altitudes] = (tankSize*(1-tankFillFraction))*(tvgTermA*exp(tvgTermB*RVP)*(exp(tvgTermC*t2.coldSoakTankTemperature)-exp(tvgTermC*t1.coldSoakTankTemperature)))
Conditions: t1.coldSoakTankTemperature < t2.coldSoakTankTemperature, 0 otherwise.
Inputs: averagetankgasoline, coldsoakinitialhourfraction, coldsoaktanktemperature, hourday, monthofanyyear, peakhourofcoldsoak, stmytvvcoeffs, tankvaporgencoeffs
Outputs: tankvaporgeneratedhighandlow

Step: Interpolate tankVaporGenerated based upon the county's barometric pressure. Don't allow negative values. Low altitude is based upon Wayne County, Michigan (26163) with a barometric pressure of 29.069. High altitude is based upon Denver County, Colorado (8031) with a barometric pressure of 24.087. tankVaporGenerated = greatest(((barometricPressure - 29.069) / (24.087 - 29.069)) * (high.tankVaporGenerated - low.tankVaporGenerated) + low.tankVaporGenerated,0).
Inputs: county, tankvaporgeneratedhighandlow
Outputs: tankvaporgenerated

Step: Calculated the ethanol weighted TVG using tankVaporGenerated for E10 fuel (t10) and that of E0 fuel (t0). ethanolWeightedTVG=(t10.tankVaporGenerated*(least(10.0,ETOHVolume)/10.0)+t0.tankVaporGenerated*(1.0-least(10.0,ETOHVolume)/10.0)).
Inputs: averagetankgasoline, monthofanyyear, tankvaporgenerated
Outputs: ethanolweightedtvgtemp

Step: Until now, ethanolWeightedTVG has been a cumulative total. Convert it to an hourly increment by subtracting the total of the previous hour. ethanolWeightedTVG[hourID]=ethanolWeightedTVG[hourID]-ethanolWeightedTVG[hourID-1].
Inputs: ethanolweightedtvgtemp
Outputs: ethanolweightedtvg

Step: tvgSumIH = Sum of TVG hourly from initial hour I to hour H
Inputs: ethanolweightedtvg, hourday
Outputs: tvgsumih

Step: tvgSumI24 = Sum of TVG hourly from initial hour I to the last hour of the day
Inputs: ethanolweightedtvg, hourday
Outputs: tvgsumi24

Step: tvgSum1H = Sum of TVG hourly from the first hour of the day to hour H
Inputs: ethanolweightedtvg, hourday
Outputs: tvgsum1h

Step: tvgSumH24 = Sum of TVG hourly from after hour H to the last hour of the day
Inputs: ethanolweightedtvg, hourday
Outputs: tvgsumh24

Step: TVGdaily[soakDayID=1] = tvgSumIH. Xn[soakDayID=1] = tvgSumIH.
Inputs: ethanolweightedtvg, tvgsum1h, tvgsumh24, tvgsumih
Outputs: tvg

Step: TVGdaily[soakDayID=2] = TVGdaily[soakDayID=1]. Xn[soakDayID=2] = ((1-backPurgeFactor)*least(tvgSumI24,averageCanisterCapacity))+tvgSum1H.
Inputs: tvgsumi24
Outputs: tvg

Step: TVGdaily[soakDayID>2] = TVGdaily[soakDayID-1]. Xn[soakDayID>2] = ((1-backPurgeFactor)*least(Xn[soakDayID-1] + tvgSumH24,averageCanisterCapacity))+tvgSum1H.
Outputs: tvg

Step: Include leaking using database-driven TVV and Leak equations. tankVaporVented = (1-leakFraction)*(TVV equation) + leakFraction*(Leak equation). tankVaporVentedIM = (1-leakFractionIM)*(TVV equation) + leakFractionIM*(Leak equation).
Inputs: agecategory, hourday, stmytvvequations, tvg
Outputs: cummulativetankvaporvented

Step: unweightedHourlyTVV = tankVaporVented[hourID] - tankVaporVented[hourID-1]. unweightedHourlyTVVIM = tankVaporVentedIM[hourID] - tankVaporVentedIM[hourID-1].
Conditions: only when coldSoakTankTemperature[hourID] > coldSoakTankTemperature[hourID-1], 0 otherwise.
Inputs: coldsoaktanktemperature, cummulativetankvaporvented
Outputs: unweightedhourlytvv

Step: Add coldSoakInitialHourFraction entries for soaking days beyond the first day
Inputs: hourday, samplevehiclesoaking
Outputs: coldsoakinitialhourfraction

Step: hourlyTVV = unweightedHourlyTVV * coldSoakInitialHourFraction. hourlyTVVIM = unweightedHourlyTVVIM * coldSoakInitialHourFraction.
Inputs: coldsoakinitialhourfraction, unweightedhourlytvv
Outputs: hourlytvvtemp

Step: hourlyTVV = sum(hourlyTVV). hourlyTVVIM = sum(hourlyTVVIM).
Inputs: hourlytvvtemp
Outputs: hourlytvv

Step: Reduce TVV emissions for hours past the hour with the peak temperature. hourlyTVV(with and without I/M) = hourlyTVV(with and without I/M) * (0 when >= 5 hours past the peak, 0.0005 when >= 4 hours, 0.0040 when >= 3 hours, 0.0100 when >= 2 hours, 0.0200 when >= 1 hour, 1.0 otherwise).
Inputs: copyofhourlytvv, hourday, peakhourofcoldsoak
Outputs: hourlytvv

Step: THC rate[opModeID=151 cold soak]=sum(sourceBinActivityFraction * hourlyTVV). THC I/M rate[opModeID=151 cold soak]=sum(sourceBinActivityFraction * hourlyTVVIM).
Inputs: fueltype, hourlytvv, pollutantprocessmodelyear, sourcebin, sourcebindistribution, sourcetypemodelyear
Outputs: weightedmeanbaserate

Step: Find bounds on RVP-based operating and hot soak adjustments (opModeIDs 300 and 150).
Inputs: evaprvptemperatureadjustment
Outputs: evaprvptemperatureadjustmentsummary

Step: Linearly interpolate RVP adjustment terms for each entry in averageTankGasoline, where lowAdj is the evapRVPTemperatureAdjustment record such that lowAdj.RVP <= averageTankGasoline.RVP and highAdj is similar with highAdj.RVP > averageTankGasoline.RVP. adjustTerm3 = lowAdj.adjustTerm3 + (highAdj.adjustTerm3 - lowAdj.adjustTerm3)/(highAdj.RVP - lowAdj.RVP) * (atg.RVP - lowAdj.RVP)). adjustTerm2 = lowAdj.adjustTerm2 + (highAdj.adjustTerm2 - lowAdj.adjustTerm2)/(highAdj.RVP - lowAdj.RVP) * (atg.RVP - lowAdj.RVP). adjustTerm1 = lowAdj.adjustTerm1 + (highAdj.adjustTerm1 - lowAdj.adjustTerm1)/(highAdj.RVP - lowAdj.RVP) * (atg.RVP - lowAdj.RVP). adjustConstant = lowAdj.adjustConstant + (highAdj.adjustConstant - lowAdj.adjustConstant)/(highAdj.RVP - lowAdj.RVP) * (atg.RVP - lowAdj.RVP).
Inputs: evaprvptemperatureadjustment, tempatg
Outputs: averagetankgasoline

Step: Adjust hot soak (opModeID 150) and running (opModeID 300) by temperature and RVP effects. tempAdjustment[opModeID=300]= (tempAdjustTerm3*power(greatest(temperature,40.0),3) + tempAdjustTerm2*power(greatest(temperature,40.0),2) + tempAdjustTerm1*greatest(temperature,40.0) + tempAdjustConstant). tempAdjustment[opModeID=150]=1. rvpAdjustment[opModeID=300]=1 for temperature < 40F, otherwise for temperature >= 40F: (adjustTerm3*power(temperature,3) + adjustTerm2*power(temperature,2) + adjustTerm1*temperature + adjustConstant). rvpAdjustment[opModeID=150]=1. weightedMeanBaseRate=sum(sourceBinActivityFraction*meanBaseRate)*rvpAdjustment*tempAdjustment. weightedMeanBaseRateIM=sum(sourceBinActivityFraction*meanBaseRateIM)*rvpAdjustment*tempAdjustment.
Conditions: Only Gasoline (1) and Ethanol (5) fuel types, all others have no adjustments in this step.
Inputs: agecategory, averagetankgasoline, emissionratebyage, evaptemperatureadjustment, fueltype, hourday, pollutantprocessmodelyear, runspechourday, runspecsourcetype, sourcebin, sourcebindistribution, sourcetypemodelyear, zonemonthhour
Outputs: weightedmeanbaserate

Step: Combine cold soaking (opModeID=151), hot soaking (150), and running (300) evaporative emissions. THC=weightedMeanBaseRate*sourceHours*opModeFraction. THC I/M=weightedMeanBaseRateIM*sourceHours*opModeFraction.
Inputs: hourday, opmodedistribution, pollutantprocessassoc, sourcehours, weightedmeanbaserate
Outputs: movesworkeroutput

Step: Apply I/M programs to the aggregat combination of cold soak, hot soaking, and running evap. THC=THC I/M*IMAdjustFract + THC*(1-IMAdjustFract).
Outputs: imcoveragemergedungrouped, movesworkeroutput*>
 


Total Activity Generator

Total Activity Generator is a GENERATOR that executes at the YEAR level.

Total Activity Generator uses the following tables:

  • AvgSpeedBin
  • AvgSpeedDistribution
  • DayOfAnyWeek
  • DayVMTFraction
  • hotellingActivityDistribution
  • hotellingCalendarYear
  • hotellingHours
  • HourDay
  • HourOfAnyDay
  • HourVMTFraction
  • HPMSVtypeDay
  • HPMSVtypeYear
  • Link
  • LinkAverageSpeed
  • MonthVMTFraction
  • RoadType
  • RoadTypeDistribution
  • SampleVehicleDay
  • SampleVehicleTrip
  • SHO
  • SourceTypeAge
  • SourceTypeAgeDistribution
  • SourceTypeDayVMT
  • SourceTypeHour
  • SourceTypeYear
  • SourceTypeYearVMT
  • SourceUseType
  • StartsPerVehicle
  • Year
  • Zone
  • ZoneRoadType


Total Activity Generator populates the following tables:

  • ExtendedIdleHours
  • SHO
  • SourceHours
  • SourceTypeAgeDistribution
  • Starts
  • StartsPerVehicle


Total Activity Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/TotalActivityGenerator.java

Steps

The Total Activity Generator algorithm is as follows.

Step: baseYear = max(year) where year <= analysisYear and year is a base year.
Inputs: year

Step: population = sourceTypePopulation * ageFraction.
Inputs: SourceTypeAgeDistribution, SourceTypeYear
Outputs: SourceTypeAgePopulation

Step: Grow the age 0 population. population[ageID=0,y] = (population[y-1]/migrationRate[y-1])*salesGrowthFactor[y]*migrationRate[y].
Inputs: SourceTypeAgePopulation for year y-1, SourceTypeYear for year y, SourceTypeYear for year y-1
Outputs: SourceTypeAgePopulation2

Step: Move the newly grown population to the main population table.
Inputs: SourceTypeAgePopulation2
Outputs: SourceTypeAgePopulation

Step: Grow the population for 1 <= ageID < 30. population[ageID,y] = population[y-1,ageID-1]*survivalRate[ageID]*migrationRate[y].
Inputs: SourceTypeAge, SourceTypeAgePopulation for year y-1, SourceTypeYear for year y
Outputs: SourceTypeAgePopulation2

Step: Grow the population ageID >= 30. population[ageID,y] = population[ageID=29,y-1]*survivalRate[ageID=29]*migrationRate[y] + population[ageID=30,y]*survivalRate[ageID=30]*migrationRate[y].
Inputs: sta SourceTypeAge for ageID=29, sta2 SourceTypeAge for ageID=30, stap SourceTypeAgePopulation for year y-1 and ageID=29, stap2 SourceTypeAgePopulation for year y and ageID=30, sty SourceTypeYear for year y
Outputs: SourceTypeAgePopulation2

Step: totalPopulation = sum(population).
Inputs: sourceTypeagePopulation
Outputs: sourceTypeAgePopulationTotal

Step: ageFraction = population/totalPopulation.
Inputs: sourceTypeAgePopulation, sourceTypeAgePopulationTotal
Outputs: sourceTypeAgeDistribution

Step: population[HPMSVTypeID] = sum(population[sourceTypeID]).
Inputs: SourceTypeAgePopulation, SourceUseType
Outputs: HPMSVTypePopulation

Step: FractionWithinHPMSVType = population[sourceTypeID]/population[HPMSVTypeID].
Inputs: HPMSVTypePopulation, SourceTypeAgePopulation, SourceUseType
Outputs: FractionWithinHPMSVType

Step: HPMSTravelFraction = sum(relativeMAR * FractionWithinHPMSVType).
Inputs: FractionWithinHPMSVType, SourceTypeAge, SourceUseType
Outputs: HPMSTravelFraction

Step: TravelFraction = (FractionWithinHPMSVType * relativeMAR) / HPMSTravelFraction.
Inputs: FractionWithinHPMSVType, HPMSTravelFraction, SourceTypeAge, SourceUseType
Outputs: TravelFraction

Step: totalTravelFraction(yearID,sourceTypeID) = Sum(TravelFraction).
Conditions: VMT provided by sourcetype not HPMSVType
Inputs: TravelFraction
Outputs: TravelFractionSourceTypeSum

Step: When VMT by source type has been provided, normalize TravelFraction by year and source type. normalized TravelFraction = TravelFraction / totalTravelFraction.
Conditions: VMT provided by sourcetype not HPMSVType
Inputs: TravelFractionSourceTypeSum
Outputs: TravelFraction

Step: VMT = HPMSBaseYearVMT.
Inputs: HPMSVTypeYear, RunSpecSourceType, SourceUseType
Outputs: AnalysisYearVMT

Step: Grow VMT one year. VMT[y] = VMT[y-1] * VMTGrowthFactor[y].
Inputs: AnalysisYearVMT for year y-1, HPMSVTypeYear for year y
Outputs: AnalysisYearVMT2

Step: Copy AnalysisYearVMT2 data into AnalysisYearVMT.
Inputs: AnalysisYearVMT2
Outputs: AnalysisYearVMT

Step: VMT = VMT * roadTypeVMTFraction * TravelFraction.
Conditions: VMT provided by HPMSVType
Inputs: AnalysisYearVMT, RoadType, RoadTypeDistribution, SourceUseType, TravelFraction
Outputs: AnnualVMTByAgeRoadway

Step: VMT = VMT * roadTypeVMTFraction * TravelFraction.
Conditions: VMT provided by source type
Inputs: RoadType, RoadTypeDistribution, SourceTypeYearVMT, TravelFraction
Outputs: AnnualVMTByAgeRoadway

Step: Append monthVMTFraction to AnnualVMTByAgeRoadway.
Inputs: AnnualVMTByAgeRoadway, MonthVMTFraction
Outputs: AvarMonth

Step: Append dayVMTFraction to AvarMonth.
Inputs: AvarMonth, DayVMTFraction
Outputs: AvarMonthDay

Step: Hourly VMT = Annual VMT * monthVMTFraction * dayVMTFraction * hourVMTFraction / weeksPerMonth.
Conditions: Annual VMT provided, either by HPMSVType or sourceTypeID
Inputs: AvarMonthDay, HourDay, HourVMTFraction
Outputs: VMTByAgeRoadwayHour

Step: Hourly VMT = Daily VMT * hourVMTFraction * roadTypeVMTFraction * TravelFraction * NumberOfRealDays.
Conditions: Daily VMT provided by sourceTypeID
Inputs: DayOfAnyWeek, HourDay, HourVMTFraction, RoadTypeDistribution, SourceTypeDayVMT, TravelFraction
Outputs: VMTByAgeRoadwayHour

Step: Hourly VMT = Daily VMT * hourVMTFraction * roadTypeVMTFraction * TravelFraction * NumberOfRealDays.
Conditions: Daily VMT provided by HPMSVType
Inputs: DayOfAnyWeek, HourDay, HourVMTFraction, HPMSVTypeDay, RoadTypeDistribution, SourceUseType, TravelFraction
Outputs: VMTByAgeRoadwayHour

Step: totalVMT = sum(VMT).
Inputs: vmtByAgeRoadwayHour
Outputs: vmtByMYRoadHourSummary

Step: Find VMT fraction by model year. vmtFraction = VMT/totalVMT.
Inputs: vmtByAgeRoadwayHour, vmtByMYRoadHourSummary
Outputs: vmtByMYRoadHourFraction

Step: Append dayID and hourID to SourceTypeHour.
Inputs: HourDay, SourceTypeHour
Outputs: SourceTypeHour2

Step: averageSpeed = sum(avgBinSpeed * avgSpeedFraction).
Inputs: AvgSpeedBin, AvgSpeedDistribution, HourDay, HourOfAnyDay, RoadType, RunSpecDay, RunSpecSourceType
Outputs: AverageSpeed

Step: SHO = VMT/averageSpeed where averageSpeed > 0, 0 otherwise.
Inputs: AverageSpeed, VMTByAgeRoadwayHour
Outputs: SHOByAgeRoadwayHour

Step: Find total VMT by day on Rural Restricted Access roads (roadTypeID=2) for Combination Long Haul Trucks (sourceTypeID=62). Daily VMT = sum(hourly VMT). hotellingHours = 0.
Inputs: VMTByAgeRoadwayHour
Outputs: VMTByAgeRoadwayDay

Step: hotellingHours = Daily VMT * hotellingRate.
Inputs: hotellingCalendarYear
Outputs: VMTByAgeRoadwayDay

Step: idleHours = hotellingHours * hotellingDist.
Inputs: SourceTypeHour2, VMTByAgeRoadwayDay
Outputs: IdleHoursByAgeHour

Step: Find the number of starts for each sample vehicle. starts = count(trips) * noOfRealDays.
Conditions: Ignore marker trips
Inputs: DayOfAnyWeek, HourDay, SampleVehicleDay, SampleVehicleTrip
Outputs: StartsPerSampleVehicle

Step: startsPerVehicle = starts / count(sample vehicles).
Inputs: SampleVehicleDay, StartsPerSampleVehicle
Outputs: StartsPerVehicle

Step: starts = population * startsPerVehicle.
Inputs: SourceTypeAgePopulation, StartsPerVehicle
Outputs: StartsByAgeHour

Step: SHP = (population*noOfRealDays) - SUM(sho).
Inputs: DayOfAnyWeek, ShoByAgeRoadwayHour, SourceTypeAgePopulation
Outputs: SHPByAgeHour

Step: Copy SHO for blended road types to corresponding ramp road types. No scaling is done here.
Outputs: SHOByAgeRoadwayHour

Step: Append SHOAllocFactor to link information.
Inputs: Link, ZoneRoadType
Outputs: ZoneRoadTypeLinkTemp

Step: SHO = SHO * averageSpeed * SHOAllocFactor.
Conditions: Rates
Inputs: AverageSpeed, LinkAverageSpeed, RunSpecHourDay, SHOByAgeRoadwayHour, ZoneRoadTypeLinkTemp
Outputs: SHO

Step: SHO = SHO * SHOAllocFactor.
Conditions: Inventory
Inputs: RunSpecHourDay, SHOByAgeRoadwayHour, ZoneRoadTypeLinkTemp
Outputs: SHO

Step: starts = starts * startAllocFactor.
Conditions: Inventory
Inputs: RunSpecMonth, StartsByAgeHour
Outputs: Starts

Step: extendedIdleHours = hotellingHours * opModeFraction[opModeID=200 extended idling].
Conditions: HotellingHours contains user-supplied hotelling information
Inputs: hotellingActivityDistribution, hotellingHours
Outputs: extendedIdleHours

Step: extendedIdleHours = idleHours * SHOAllocFactor * opModeFraction[opModeID=200 extended idling].
Inputs: hotellingActivityDistribution, HourDay, IdleHoursByAgeHour, runSpecHourDay, ZoneRoadType
Outputs: extendedIdleHours

Step: SHP = SHP * SHPAllocFactor.
Inputs: RunSpecHourDay, SHPByAgeHour, Zone
Outputs: SHP

Step: sourceHours = SHP.
Inputs: Link, SHP
Outputs: SourceHours

Step: sourceHours = SHO.
Inputs: SHO
Outputs: SourceHours

Step: distance = SHO * averageSpeed.
Conditions: Rates
Inputs: LinkAverageSpeed
Outputs: SHO

Step: Append link and SHO information.
Conditions: Inventory
Inputs: Link, SHO
Outputs: SHOTemp

Step: Append AverageSpeed and HourDay information.
Conditions: Inventory
Inputs: AverageSpeed, HourDay
Outputs: AverageSpeedTemp

Step: distance = SHO * averageSpeed.
Conditions: Inventory
Inputs: AverageSpeedTemp, SHOTemp
Outputs: SHO2

Step: Remove all items from the SHO table.
Conditions: Inventory
Outputs: SHO

Step: Copy the SHO2 information, which now includes distance, to the SHO table.
Conditions: Inventory
Inputs: SHO2
Outputs: SHO
 


AgeCategory table

CREATE TABLE agecategory (
  ageID smallint(6) NOT NULL DEFAULT '0',
  ageGroupID smallint(6) NOT NULL DEFAULT '0',
  ageCategoryName char(50) DEFAULT NULL,
  PRIMARY KEY (ageID),
  KEY ageGroupID (ageGroupID,ageID),
  KEY ageID (ageID,ageGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The AgeCategory is used by these modules:

  • BaseRateCalculator
  • Evaporative Permeation Calculator
  • Liquid Leaking Calculator
  • SourceBin Distribution Generator
  • Tank Vapor Venting Calculator

AgeGroup table

CREATE TABLE agegroup (
  ageGroupID smallint(6) NOT NULL DEFAULT '0',
  ageGroupName char(50) DEFAULT NULL,
  PRIMARY KEY (ageGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

ATBaseEmissions table

CREATE TABLE atbaseemissions (
  polProcessID int(11) NOT NULL DEFAULT '0',
  monthGroupID smallint(6) NOT NULL DEFAULT '0',
  atBaseEmissions float NOT NULL DEFAULT '0',
  dataSourceID smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,monthGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ATBaseEmissions is used by these modules:

  • Fuel Effects Generator

ATRatio table

CREATE TABLE atratio (
  fuelTypeID smallint(6) NOT NULL,
  fuelFormulationID smallint(6) NOT NULL,
  polProcessID int(11) NOT NULL,
  minModelYearID smallint(6) NOT NULL,
  maxModelYearID smallint(6) NOT NULL,
  ageID smallint(6) NOT NULL,
  monthGroupID smallint(6) NOT NULL,
  atRatio double DEFAULT NULL,
  PRIMARY KEY (fuelTypeID,fuelFormulationID,polProcessID,minModelYearID,maxModelYearID,ageID,monthGroupID),
  KEY atratio_key1 (fuelFormulationID,polProcessID,minModelYearID),
  KEY atratio_key2 (polProcessID,fuelTypeID,monthGroupID,minModelYearID,ageID,maxModelYearID,fuelFormulationID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ATRatio is used by these modules:

  • Air toxics Calculator
  • Fuel Effects Generator

ATRatioGas2 table

CREATE TABLE atratiogas2 (
  polProcessID int(11) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  ATRatio float DEFAULT NULL,
  ATRatioCV float DEFAULT NULL,
  PRIMARY KEY (polProcessID,sourceTypeID,fuelSubtypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ATRatioGas2 is used by these modules:

  • Air toxics Calculator

ATRatioNonGas table

CREATE TABLE atrationongas (
  polProcessID int(11) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  ATRatio double DEFAULT NULL,
  ATRatioCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,sourceTypeID,fuelSubtypeID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ATRatioNonGas is used by these modules:

  • Air toxics Calculator
  • Fuel Effects Generator

AverageTankGasoline table

CREATE TABLE averagetankgasoline (
  zoneID int(11) NOT NULL DEFAULT '0',
  fuelYearID int(11) NOT NULL DEFAULT '0',
  monthGroupID smallint(6) NOT NULL DEFAULT '0',
  ETOHVolume float DEFAULT NULL,
  RVP float DEFAULT NULL,
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (zoneID,fuelTypeID,fuelYearID,monthGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The AverageTankGasoline is used by these modules:

  • Tank Fuel Generator
  • Tank Vapor Venting Calculator

AverageTankTemperature table

CREATE TABLE averagetanktemperature (
  tankTemperatureGroupID smallint(6) NOT NULL DEFAULT '0',
  zoneID int(11) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  opModeID smallint(6) NOT NULL DEFAULT '0',
  averageTankTemperature float DEFAULT NULL,
  averageTankTemperatureCV float DEFAULT NULL,
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (tankTemperatureGroupID,zoneID,monthID,hourDayID,opModeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The AverageTankTemperature is used by these modules:

  • Evaporative Permeation Calculator
  • Tank Temperature Generator
  • Tank Vapor Venting Calculator

avft table

CREATE TABLE avft (
  sourceTypeID smallint(6) NOT NULL,
  modelYearID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  fuelEngFraction double NOT NULL,
  PRIMARY KEY (sourceTypeID,modelYearID,fuelTypeID,engTechID),
  KEY sourceTypeID (sourceTypeID),
  KEY modelYearID (modelYearID),
  KEY fuelTypeID (fuelTypeID),
  KEY engTechID (engTechID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

AvgSpeedBin table

CREATE TABLE avgspeedbin (
  avgSpeedBinID smallint(6) NOT NULL DEFAULT '0',
  avgBinSpeed float DEFAULT NULL,
  avgSpeedBinDesc char(50) DEFAULT NULL,
  opModeIDTirewear smallint(6) DEFAULT NULL,
  opModeIDRunning smallint(6) DEFAULT NULL,
  PRIMARY KEY (avgSpeedBinID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The AvgSpeedBin is used by these modules:

  • Average Speed Operating Mode Distribution Generator
  • Rates Operating Mode Distribution Generator
  • Total Activity Generator

AvgSpeedDistribution table

CREATE TABLE avgspeeddistribution (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  roadTypeID smallint(6) NOT NULL DEFAULT '0',
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  avgSpeedBinID smallint(6) NOT NULL DEFAULT '0',
  avgSpeedFraction float DEFAULT NULL,
  PRIMARY KEY (avgSpeedBinID,hourDayID,roadTypeID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY roadTypeID (roadTypeID),
  KEY hourDayID (hourDayID),
  KEY avgSpeedBinID (avgSpeedBinID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The AvgSpeedDistribution is used by these modules:

  • Total Activity Generator

BaseFuel table

CREATE TABLE basefuel (
  calculationEngine varchar(100) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  fuelFormulationID smallint(6) NOT NULL,
  description varchar(255) NOT NULL DEFAULT '',
  dataSourceID smallint(6) NOT NULL,
  PRIMARY KEY (calculationEngine,fuelTypeID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The BaseFuel is used by these modules:

  • Fuel Effects Generator

ColdSoakInitialHourFraction table

CREATE TABLE coldsoakinitialhourfraction (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  zoneID int(11) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  initialHourDayID smallint(6) NOT NULL DEFAULT '0',
  coldSoakInitialHourFraction float NOT NULL DEFAULT '0',
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (sourceTypeID,zoneID,monthID,hourDayID,initialHourDayID),
  KEY isUserInput (isUserInput)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ColdSoakInitialHourFraction is used by these modules:

  • Tank Temperature Generator
  • Tank Vapor Venting Calculator

ColdSoakTankTemperature table

CREATE TABLE coldsoaktanktemperature (
  zoneID int(11) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  hourID smallint(6) NOT NULL DEFAULT '0',
  coldSoakTankTemperature float NOT NULL DEFAULT '0',
  PRIMARY KEY (zoneID,monthID,hourID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ColdSoakTankTemperature is used by these modules:

  • Tank Temperature Generator
  • Tank Vapor Venting Calculator

ComplexModelParameterName table

CREATE TABLE complexmodelparametername (
  cmpID smallint(6) NOT NULL DEFAULT '0',
  cmpName char(25) NOT NULL,
  cmpExpression varchar(500) NOT NULL,
  PRIMARY KEY (cmpID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ComplexModelParameterName is used by these modules:

  • Fuel Effects Generator

ComplexModelParameters table

CREATE TABLE complexmodelparameters (
  polProcessID int(11) NOT NULL DEFAULT '0',
  fuelModelID smallint(6) NOT NULL DEFAULT '0',
  cmpID smallint(6) NOT NULL DEFAULT '0',
  coeff1 float DEFAULT NULL,
  coeff2 float DEFAULT NULL,
  coeff3 float DEFAULT NULL,
  dataSourceID smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,fuelModelID,cmpID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ComplexModelParameters is used by these modules:

  • Fuel Effects Generator

County table

CREATE TABLE county (
  countyID int(11) NOT NULL DEFAULT '0',
  stateID smallint(6) NOT NULL DEFAULT '0',
  countyName char(50) DEFAULT NULL,
  altitude char(1) DEFAULT NULL,
  GPAFract float DEFAULT NULL,
  barometricPressure float DEFAULT NULL,
  barometricPressureCV float DEFAULT NULL,
  PRIMARY KEY (countyID),
  KEY countyID (countyID,stateID),
  KEY stateID (stateID,countyID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The County is used by these modules:

  • BaseRateCalculator
  • Distance Calculator
  • Evaporative Permeation Calculator
  • Liquid Leaking Calculator
  • Meteorology Generator
  • SO2 Calculator
  • Sulfate PM Calculator
  • Tank Vapor Venting Calculator

CountyYear table

CREATE TABLE countyyear (
  countyID int(11) NOT NULL DEFAULT '0',
  yearID smallint(6) NOT NULL DEFAULT '0',
  refuelingVaporProgramAdjust float NOT NULL DEFAULT '0',
  refuelingSpillProgramAdjust float NOT NULL DEFAULT '0',
  PRIMARY KEY (countyID,yearID),
  KEY countyID (countyID),
  KEY yearID (yearID),
  KEY yearID_2 (yearID,countyID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The CountyYear is used by these modules:

  • Refueling Loss Calculator

CrankcaseEmissionRatio table

CREATE TABLE crankcaseemissionratio (
  polProcessID int(11) NOT NULL,
  minModelYearID smallint(6) NOT NULL,
  maxModelYearID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  crankcaseRatio float NOT NULL,
  crankcaseRatioCV float DEFAULT NULL,
  PRIMARY KEY (polProcessID,minModelYearID,maxModelYearID,sourceTypeID,fuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The CrankcaseEmissionRatio is used by these modules:

  • Crankcase Emission Calculator
  • Sulfate PM Calculator

criteriaRatio table

CREATE TABLE criteriaratio (
  fuelTypeID smallint(6) NOT NULL,
  fuelFormulationID smallint(6) NOT NULL,
  polProcessID int(11) NOT NULL,
  pollutantID smallint(6) NOT NULL,
  processID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  modelYearID smallint(6) NOT NULL,
  ageID smallint(6) NOT NULL,
  ratio double DEFAULT NULL,
  ratioGPA double DEFAULT NULL,
  ratioNoSulfur double DEFAULT NULL,
  PRIMARY KEY (fuelTypeID,fuelFormulationID,polProcessID,pollutantID,processID,sourceTypeID,modelYearID,ageID),
  KEY crFuelFormulation (polProcessID,fuelFormulationID),
  KEY crCommon (polProcessID,modelYearID,ageID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The criteriaRatio is used by these modules:

  • BaseRateCalculator
  • Fuel Effects Generator

CumTVVCoeffs table

CREATE TABLE cumtvvcoeffs (
  regClassID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  ageGroupID smallint(6) NOT NULL DEFAULT '0',
  polProcessID int(11) NOT NULL DEFAULT '0',
  tvvTermA float DEFAULT NULL,
  tvvTermB float DEFAULT NULL,
  tvvTermC float DEFAULT NULL,
  tvvTermACV float DEFAULT NULL,
  tvvTermBCV float DEFAULT NULL,
  tvvTermCCV float DEFAULT NULL,
  tvvTermAIM float DEFAULT NULL,
  tvvTermBIM float DEFAULT NULL,
  tvvTermCIM float DEFAULT NULL,
  tvvTermAIMCV float DEFAULT NULL,
  tvvTermBIMCV float DEFAULT NULL,
  tvvTermCIMCV float DEFAULT NULL,
  backPurgeFactor double DEFAULT NULL,
  averageCanisterCapacity double DEFAULT NULL,
  tvvEquation varchar(4096) NOT NULL DEFAULT '',
  leakEquation varchar(4096) NOT NULL DEFAULT '',
  leakFraction double DEFAULT NULL,
  tankSize double DEFAULT NULL,
  tankFillFraction double DEFAULT NULL,
  leakFractionIM double DEFAULT NULL,
  PRIMARY KEY (regClassID,modelYearGroupID,ageGroupID,polProcessID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The CumTVVCoeffs is used by these modules:

  • Tank Vapor Venting Calculator

DataSource table

CREATE TABLE datasource (
  DataSourceId smallint(6) NOT NULL DEFAULT '0',
  Author char(25) DEFAULT NULL,
  Date date DEFAULT NULL,
  Sponsor char(30) DEFAULT NULL,
  DocumentID char(150) DEFAULT NULL,
  QualityLevel char(1) DEFAULT NULL,
  PRIMARY KEY (DataSourceId)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

DayOfAnyWeek table

CREATE TABLE dayofanyweek (
  dayID smallint(6) NOT NULL DEFAULT '0',
  dayName char(10) DEFAULT NULL,
  noOfRealDays float NOT NULL DEFAULT '1',
  PRIMARY KEY (dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The DayOfAnyWeek is used by these modules:

  • Total Activity Generator

DayVMTFraction table

CREATE TABLE dayvmtfraction (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  roadTypeID smallint(6) NOT NULL DEFAULT '0',
  dayID smallint(6) NOT NULL DEFAULT '0',
  dayVMTFraction float DEFAULT NULL,
  PRIMARY KEY (dayID,monthID,roadTypeID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY monthID (monthID),
  KEY roadTypeID (roadTypeID),
  KEY dayID (dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The DayVMTFraction is used by these modules:

  • Total Activity Generator

dioxinemissionrate table

CREATE TABLE dioxinemissionrate (
  polProcessID int(11) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  units char(30) DEFAULT NULL,
  meanBaseRate double DEFAULT NULL,
  meanBaseRateCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,fuelTypeID,modelYearGroupID),
  UNIQUE KEY XPKDioxinEmissionRate (polProcessID,fuelTypeID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The dioxinemissionrate is used by these modules:

  • Base Rate Generator
  • Fuel Effects Generator

DriveSchedule table

CREATE TABLE driveschedule (
  driveScheduleID smallint(6) NOT NULL DEFAULT '0',
  averageSpeed float NOT NULL DEFAULT '0',
  driveScheduleName char(50) DEFAULT NULL,
  PRIMARY KEY (driveScheduleID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The DriveSchedule is used by these modules:

  • Link Operating Mode Distribution Generator
  • Rates Operating Mode Distribution Generator

DriveScheduleAssoc table

CREATE TABLE drivescheduleassoc (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  roadTypeID smallint(6) NOT NULL DEFAULT '0',
  isRamp char(1) NOT NULL DEFAULT '',
  driveScheduleID smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (driveScheduleID,isRamp,roadTypeID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY roadTypeID (roadTypeID),
  KEY isRamp (isRamp),
  KEY driveScheduleID (driveScheduleID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The DriveScheduleAssoc is used by these modules:

  • Link Operating Mode Distribution Generator
  • Rates Operating Mode Distribution Generator

DriveScheduleSecond table

CREATE TABLE driveschedulesecond (
  driveScheduleID smallint(6) NOT NULL DEFAULT '0',
  second smallint(6) NOT NULL DEFAULT '0',
  speed float DEFAULT NULL,
  PRIMARY KEY (driveScheduleID,second),
  KEY driveScheduleID (driveScheduleID),
  KEY second (second)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The DriveScheduleSecond is used by these modules:

  • Link Operating Mode Distribution Generator
  • Rates Operating Mode Distribution Generator

driveScheduleSecondLink table

CREATE TABLE driveschedulesecondlink (
  linkID int(11) NOT NULL,
  secondID smallint(6) NOT NULL,
  speed float DEFAULT NULL,
  grade float NOT NULL DEFAULT '0',
  PRIMARY KEY (linkID,secondID),
  KEY secondID (secondID,linkID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The driveScheduleSecondLink is used by these modules:

  • Link Operating Mode Distribution Generator

e10FuelProperties table

CREATE TABLE e10fuelproperties (
  fuelRegionID int(11) NOT NULL,
  fuelYearID int(11) NOT NULL,
  monthGroupID smallint(6) NOT NULL,
  RVP double DEFAULT NULL,
  sulfurLevel double DEFAULT NULL,
  ETOHVolume double DEFAULT NULL,
  MTBEVolume double DEFAULT NULL,
  ETBEVolume double DEFAULT NULL,
  TAMEVolume double DEFAULT NULL,
  aromaticContent double DEFAULT NULL,
  olefinContent double DEFAULT NULL,
  benzeneContent double DEFAULT NULL,
  e200 double DEFAULT NULL,
  e300 double DEFAULT NULL,
  BioDieselEsterVolume double DEFAULT NULL,
  CetaneIndex double DEFAULT NULL,
  PAHContent double DEFAULT NULL,
  T50 double DEFAULT NULL,
  T90 double DEFAULT NULL,
  PRIMARY KEY (fuelRegionID,fuelYearID,monthGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

EmissionProcess table

CREATE TABLE emissionprocess (
  processID smallint(6) NOT NULL DEFAULT '0',
  processName char(50) DEFAULT NULL,
  SCCProcID char(1) DEFAULT NULL,
  occursOnRealRoads char(1) NOT NULL DEFAULT 'Y',
  shortName varchar(50) DEFAULT NULL,
  processDisplayGroupID smallint(6) unsigned DEFAULT NULL,
  isAffectedByOnroad tinyint(1) DEFAULT '1',
  isAffectedByNonroad tinyint(1) DEFAULT '0',
  PRIMARY KEY (processID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The EmissionProcess is used by these modules:

  • Distance Calculator
  • Sulfate PM Calculator

EmissionRate table

CREATE TABLE emissionrate (
  sourceBinID bigint(20) NOT NULL DEFAULT '0',
  polProcessID int(11) NOT NULL DEFAULT '0',
  opModeID smallint(6) NOT NULL DEFAULT '0',
  meanBaseRate float DEFAULT NULL,
  meanBaseRateCV float DEFAULT NULL,
  meanBaseRateIM float DEFAULT NULL,
  meanBaseRateIMCV float DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (opModeID,polProcessID,sourceBinID),
  KEY sourceBinID (sourceBinID),
  KEY polProcessID (polProcessID),
  KEY opModeID (opModeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The EmissionRate is used by these modules:

  • Base Rate Generator

EmissionRateAdjustment table

CREATE TABLE emissionrateadjustment (
  polProcessID int(11) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  regClassID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  beginModelYearID smallint(6) NOT NULL,
  endModelYearID smallint(6) NOT NULL,
  emissionRateAdjustment double DEFAULT NULL,
  dataSourceID smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,sourceTypeID,fuelTypeID,regClassID,beginModelYearID,endModelYearID),
  KEY polProcessID (polProcessID,beginModelYearID,endModelYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The EmissionRateAdjustment is used by these modules:

  • BaseRateCalculator

EmissionRateByAge table

CREATE TABLE emissionratebyage (
  sourceBinID bigint(20) NOT NULL DEFAULT '0',
  polProcessID int(11) NOT NULL DEFAULT '0',
  opModeID smallint(6) NOT NULL DEFAULT '0',
  ageGroupID smallint(6) NOT NULL DEFAULT '0',
  meanBaseRate float DEFAULT NULL,
  meanBaseRateCV float DEFAULT NULL,
  meanBaseRateIM float DEFAULT NULL,
  meanBaseRateIMCV float DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (ageGroupID,opModeID,polProcessID,sourceBinID),
  UNIQUE KEY XPKEmissionRateByAge (sourceBinID,polProcessID,opModeID,ageGroupID),
  KEY polProcessID (polProcessID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The EmissionRateByAge is used by these modules:

  • Base Rate Generator
  • Evaporative Permeation Calculator
  • Liquid Leaking Calculator
  • Tank Vapor Venting Calculator

EngineSize table

CREATE TABLE enginesize (
  engSizeID int(11) NOT NULL,
  engSizeName char(50) DEFAULT NULL,
  PRIMARY KEY (engSizeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

enginetech table

CREATE TABLE enginetech (
  engTechID smallint(6) NOT NULL DEFAULT '0',
  tierID smallint(6) DEFAULT '99',
  strokes smallint(6) DEFAULT '99',
  engTechName char(50) DEFAULT NULL,
  engTechDesc char(80) DEFAULT NULL,
  PRIMARY KEY (engTechID)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

ETOHBin table

CREATE TABLE etohbin (
  etohThreshID smallint(6) NOT NULL DEFAULT '0',
  etohThreshLow float DEFAULT NULL,
  etohThreshHigh float DEFAULT NULL,
  etohNominalValue float DEFAULT NULL,
  PRIMARY KEY (etohThreshID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ETOHBin is used by these modules:

  • Evaporative Permeation Calculator

evapRVPTemperatureAdjustment table

CREATE TABLE evaprvptemperatureadjustment (
  processID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  RVP double NOT NULL,
  adjustTerm3 double NOT NULL DEFAULT '0',
  adjustTerm2 double NOT NULL DEFAULT '0',
  adjustTerm1 double NOT NULL DEFAULT '0',
  adjustConstant double NOT NULL DEFAULT '0',
  PRIMARY KEY (processID,fuelTypeID,RVP),
  KEY RVP (RVP,processID,fuelTypeID),
  KEY RVP_2 (RVP,fuelTypeID,processID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The evapRVPTemperatureAdjustment is used by these modules:

  • Tank Vapor Venting Calculator

evapTemperatureAdjustment table

CREATE TABLE evaptemperatureadjustment (
  processID smallint(6) NOT NULL,
  tempAdjustTerm3 double NOT NULL DEFAULT '0',
  tempAdjustTerm2 double NOT NULL DEFAULT '0',
  tempAdjustTerm1 double NOT NULL DEFAULT '0',
  tempAdjustConstant double NOT NULL DEFAULT '0',
  PRIMARY KEY (processID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The evapTemperatureAdjustment is used by these modules:

  • Tank Vapor Venting Calculator

ExtendedIdleHours table

CREATE TABLE extendedidlehours (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  yearID smallint(6) NOT NULL DEFAULT '0',
  ageID smallint(6) NOT NULL DEFAULT '0',
  zoneID int(11) NOT NULL DEFAULT '0',
  extendedIdleHours float DEFAULT NULL,
  extendedIdleHoursCV float DEFAULT NULL,
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (ageID,hourDayID,monthID,sourceTypeID,yearID,zoneID),
  KEY sourceTypeID (sourceTypeID),
  KEY hourDayID (hourDayID),
  KEY monthID (monthID),
  KEY yearID (yearID),
  KEY ageID (ageID),
  KEY zoneID (zoneID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ExtendedIdleHours is used by these modules:

  • Activity Calculator
  • BaseRateCalculator
  • Total Activity Generator

FuelEngTechAssoc table

CREATE TABLE fuelengtechassoc (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  engTechID smallint(6) NOT NULL DEFAULT '0',
  category char(50) NOT NULL DEFAULT '',
  categoryDisplayOrder smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (engTechID,fuelTypeID,sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

FuelFormulation table

CREATE TABLE fuelformulation (
  fuelFormulationID smallint(6) NOT NULL DEFAULT '0',
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  RVP float DEFAULT NULL,
  sulfurLevel float NOT NULL DEFAULT '30',
  ETOHVolume float DEFAULT NULL,
  MTBEVolume float DEFAULT NULL,
  ETBEVolume float DEFAULT NULL,
  TAMEVolume float DEFAULT NULL,
  aromaticContent float DEFAULT NULL,
  olefinContent float DEFAULT NULL,
  benzeneContent float DEFAULT NULL,
  e200 float DEFAULT NULL,
  e300 float DEFAULT NULL,
  volToWtPercentOxy float DEFAULT NULL,
  BioDieselEsterVolume float DEFAULT NULL,
  CetaneIndex float DEFAULT NULL,
  PAHContent float DEFAULT NULL,
  T50 float DEFAULT NULL,
  T90 float DEFAULT NULL,
  PRIMARY KEY (fuelFormulationID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelFormulation is used by these modules:

  • Air toxics Calculator
  • BaseRateCalculator
  • CO2AERunningStartExtendedIdleCalculator
  • Evaporative Permeation Calculator
  • Fuel Effects Generator
  • HC Speciation Calculator
  • Refueling Loss Calculator
  • SO2 Calculator
  • Sulfate PM Calculator
  • Tank Fuel Generator
  • TOG Speciation Calculator

FuelModelName table

CREATE TABLE fuelmodelname (
  fuelModelID smallint(6) NOT NULL DEFAULT '0',
  fuelModelName varchar(50) NOT NULL DEFAULT '',
  fuelModelAbbreviation varchar(10) NOT NULL DEFAULT '',
  calculationEngines varchar(200) NOT NULL DEFAULT '',
  PRIMARY KEY (fuelModelID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelModelName is used by these modules:

  • Fuel Effects Generator

FuelModelWtFactor table

CREATE TABLE fuelmodelwtfactor (
  fuelModelID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  ageID smallint(6) NOT NULL DEFAULT '0',
  fuelModelWtFactor float DEFAULT NULL,
  dataSourceID smallint(6) DEFAULT NULL,
  PRIMARY KEY (fuelModelID,modelYearGroupID,ageID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelModelWtFactor is used by these modules:

  • Fuel Effects Generator

FuelModelYearGroup table

CREATE TABLE fuelmodelyeargroup (
  fuelMYGroupID int(11) NOT NULL DEFAULT '0',
  fuelMYGroupName char(100) DEFAULT NULL,
  fuelMYGroupFunction char(200) DEFAULT NULL,
  maxSulfurLevel float DEFAULT NULL,
  maxSulfurLevelCV float DEFAULT NULL,
  maxSulfurLevelGPA float DEFAULT NULL,
  maxSulfurLevelGPACV float DEFAULT NULL,
  PRIMARY KEY (fuelMYGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

FuelParameterName table

CREATE TABLE fuelparametername (
  fuelParameterID smallint(6) NOT NULL DEFAULT '0',
  fuelParameterName varchar(25) NOT NULL DEFAULT '',
  fuelParameterUnits varchar(20) NOT NULL DEFAULT '',
  fuelParameterExpression varchar(500) NOT NULL DEFAULT '',
  PRIMARY KEY (fuelParameterID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelParameterName is used by these modules:

  • Fuel Effects Generator

FuelSubtype table

CREATE TABLE fuelsubtype (
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelSubtypeDesc char(50) DEFAULT NULL,
  fuelSubtypePetroleumFraction float DEFAULT NULL,
  fuelSubtypePetroleumFractionCV float DEFAULT NULL,
  fuelSubtypeFossilFraction float DEFAULT NULL,
  fuelSubtypeFossilFractionCV float DEFAULT NULL,
  carbonContent float DEFAULT NULL,
  oxidationFraction float DEFAULT NULL,
  carbonContentCV float DEFAULT NULL,
  oxidationFractionCV float DEFAULT NULL,
  energyContent float DEFAULT NULL,
  PRIMARY KEY (fuelSubtypeID),
  KEY fuelTypeID (fuelTypeID,fuelSubtypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelSubtype is used by these modules:

  • Air toxics Calculator
  • BaseRateCalculator
  • CO2AERunningStartExtendedIdleCalculator
  • Evaporative Permeation Calculator
  • Refueling Loss Calculator
  • SO2 Calculator
  • Sulfate PM Calculator
  • Tank Fuel Generator
  • TOG Speciation Calculator

FuelSupply table

CREATE TABLE fuelsupply (
  fuelRegionID int(11) NOT NULL DEFAULT '0',
  fuelYearID smallint(6) NOT NULL DEFAULT '0',
  monthGroupID smallint(6) NOT NULL DEFAULT '0',
  fuelFormulationID smallint(6) NOT NULL DEFAULT '0',
  marketShare float DEFAULT NULL,
  marketShareCV float DEFAULT NULL,
  PRIMARY KEY (fuelRegionID,fuelFormulationID,monthGroupID,fuelYearID),
  KEY fuelRegionID (fuelRegionID),
  KEY yearID (fuelYearID),
  KEY monthGroupID (monthGroupID),
  KEY fuelSubtypeID (fuelFormulationID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelSupply is used by these modules:

  • Air toxics Calculator
  • BaseRateCalculator
  • CO2AERunningStartExtendedIdleCalculator
  • Evaporative Permeation Calculator
  • Fuel Effects Generator
  • Refueling Loss Calculator
  • SO2 Calculator
  • Sulfate PM Calculator
  • Tank Fuel Generator
  • TOG Speciation Calculator

FuelSupplyYear table

CREATE TABLE fuelsupplyyear (
  fuelYearID int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (fuelYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

FuelType table

CREATE TABLE fueltype (
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  defaultFormulationID smallint(6) NOT NULL DEFAULT '0',
  fuelTypeDesc char(50) DEFAULT NULL,
  humidityCorrectionCoeff float DEFAULT NULL,
  humidityCorrectionCoeffCV float DEFAULT NULL,
  fuelDensity float DEFAULT NULL,
  subjectToEvapCalculations char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (fuelTypeID),
  KEY subjectToEvapCalculations (subjectToEvapCalculations,fuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelType is used by these modules:

  • BaseRateCalculator
  • Liquid Leaking Calculator
  • NO Calculator
  • NO2 Calculator
  • Refueling Loss Calculator
  • SO2 Calculator
  • Tank Fuel Generator
  • Tank Vapor Venting Calculator

fuelUsageFraction table

CREATE TABLE fuelusagefraction (
  countyID int(11) NOT NULL,
  fuelYearID int(11) NOT NULL,
  modelYearGroupID int(11) NOT NULL,
  sourceBinFuelTypeID smallint(6) NOT NULL,
  fuelSupplyFuelTypeID smallint(6) NOT NULL,
  usageFraction double DEFAULT NULL,
  PRIMARY KEY (countyID,fuelYearID,modelYearGroupID,sourceBinFuelTypeID,fuelSupplyFuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The fuelUsageFraction is used by these modules:

  • Activity Calculator
  • SourceBin Distribution Generator

fuelWizardFactors table

CREATE TABLE fuelwizardfactors (
  adjustedParameter varchar(4) NOT NULL,
  minLevel double NOT NULL,
  maxLevel double NOT NULL,
  functionType varchar(4) NOT NULL,
  monthGroupID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  RVP_factor double DEFAULT NULL,
  sulf_factor double DEFAULT NULL,
  ETOH_factor double DEFAULT NULL,
  arom_factor double DEFAULT NULL,
  olef_factor double DEFAULT NULL,
  benz_factor double DEFAULT NULL,
  e200_factor double DEFAULT NULL,
  e300_factor double DEFAULT NULL,
  T50_factor double DEFAULT NULL,
  T90_factor double DEFAULT NULL,
  units varchar(6) DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (fuelTypeID,monthGroupID,adjustedParameter,minLevel,maxLevel,functionType)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

FullACAdjustment table

CREATE TABLE fullacadjustment (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  polProcessID int(11) NOT NULL DEFAULT '0',
  opModeID smallint(6) NOT NULL DEFAULT '0',
  fullACAdjustment float DEFAULT NULL,
  fullACAdjustmentCV float DEFAULT NULL,
  PRIMARY KEY (opModeID,polProcessID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY polProcessID (polProcessID),
  KEY opModeID (opModeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FullACAdjustment is used by these modules:

  • Base Rate Generator

generalFuelRatio table

CREATE TABLE generalfuelratio (
  fuelTypeID smallint(6) NOT NULL,
  fuelFormulationID smallint(6) NOT NULL,
  polProcessID int(11) NOT NULL,
  pollutantID smallint(6) NOT NULL,
  processID smallint(6) NOT NULL,
  minModelYearID smallint(6) NOT NULL DEFAULT '1960',
  maxModelYearID smallint(6) NOT NULL DEFAULT '2050',
  minAgeID smallint(6) NOT NULL DEFAULT '0',
  maxAgeID smallint(6) NOT NULL DEFAULT '30',
  sourceTypeID smallint(6) unsigned NOT NULL,
  fuelEffectRatio double NOT NULL DEFAULT '0',
  fuelEffectRatioGPA double NOT NULL DEFAULT '0',
  PRIMARY KEY (fuelTypeID,fuelFormulationID,polProcessID,pollutantID,processID,minModelYearID,maxModelYearID,minAgeID,maxAgeID,sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The generalFuelRatio is used by these modules:

  • BaseRateCalculator
  • Fuel Effects Generator
  • SO2 Calculator
  • Sulfate PM Calculator

generalFuelRatioExpression table

CREATE TABLE generalfuelratioexpression (
  fuelTypeID smallint(6) NOT NULL,
  polProcessID int(11) NOT NULL,
  minModelYearID int(11) NOT NULL DEFAULT '1960',
  maxModelYearID int(11) NOT NULL DEFAULT '2050',
  minAgeID int(11) NOT NULL DEFAULT '0',
  maxAgeID int(11) NOT NULL DEFAULT '30',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelEffectRatioExpression varchar(32000) NOT NULL DEFAULT '',
  fuelEffectRatioGPAExpression varchar(32000) NOT NULL DEFAULT '',
  PRIMARY KEY (fuelTypeID,polProcessID,minModelYearID,maxModelYearID,minAgeID,maxAgeID,sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The generalFuelRatioExpression is used by these modules:

  • Fuel Effects Generator

GREETManfAndDisposal table

CREATE TABLE greetmanfanddisposal (
  GREETVehicleType smallint(6) NOT NULL DEFAULT '0',
  modelYearID smallint(6) NOT NULL DEFAULT '0',
  pollutantID smallint(6) NOT NULL DEFAULT '0',
  EmissionStage char(4) NOT NULL DEFAULT '',
  emissionPerVehicle float DEFAULT NULL,
  PRIMARY KEY (EmissionStage,GREETVehicleType,modelYearID,pollutantID),
  UNIQUE KEY XPKGREETManfAndDisposal (GREETVehicleType,modelYearID,pollutantID,EmissionStage),
  KEY GREETVehicleType (GREETVehicleType),
  KEY modelYearID (modelYearID),
  KEY pollutantID (pollutantID),
  KEY EmissionStage (EmissionStage)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

GREETWellToPump table

CREATE TABLE greetwelltopump (
  yearID smallint(6) NOT NULL DEFAULT '0',
  pollutantID smallint(6) NOT NULL DEFAULT '0',
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  emissionRate float DEFAULT NULL,
  emissionRateUncertainty float DEFAULT NULL,
  PRIMARY KEY (fuelSubtypeID,pollutantID,yearID),
  KEY yearID (yearID),
  KEY pollutantID (pollutantID),
  KEY fuelSubtypeID (fuelSubtypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The GREETWellToPump is used by these modules:


Grid table

CREATE TABLE grid (
  gridID int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (gridID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

GridZoneAssoc table

CREATE TABLE gridzoneassoc (
  zoneID int(11) NOT NULL DEFAULT '0',
  gridID int(11) NOT NULL DEFAULT '0',
  gridAllocFactor float DEFAULT NULL,
  PRIMARY KEY (gridID,zoneID),
  KEY zoneID (zoneID),
  KEY gridID (gridID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

HCPermeationCoeff table

CREATE TABLE hcpermeationcoeff (
  polProcessID int(11) NOT NULL DEFAULT '0',
  etohThreshID smallint(6) NOT NULL DEFAULT '0',
  fuelMYGroupID int(11) NOT NULL DEFAULT '0',
  fuelAdjustment float DEFAULT NULL,
  fuelAdjustmentGPA float DEFAULT NULL,
  dataSourceID smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,etohThreshID,fuelMYGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The HCPermeationCoeff is used by these modules:

  • Evaporative Permeation Calculator

HCSpeciation table

CREATE TABLE hcspeciation (
  polProcessID int(11) NOT NULL DEFAULT '0',
  fuelMYGroupID int(11) NOT NULL DEFAULT '0',
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  etohThreshID smallint(6) NOT NULL DEFAULT '0',
  oxyThreshID smallint(6) NOT NULL DEFAULT '0',
  speciationConstant float DEFAULT NULL,
  oxySpeciation float DEFAULT NULL,
  PRIMARY KEY (polProcessID,fuelMYGroupID,fuelSubtypeID,etohThreshID,oxyThreshID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The HCSpeciation is used by these modules:

  • HC Speciation Calculator

hotellingActivityDistribution table

CREATE TABLE hotellingactivitydistribution (
  beginModelYearID smallint(6) NOT NULL,
  endModelYearID smallint(6) NOT NULL,
  opModeID smallint(6) NOT NULL,
  opModeFraction float NOT NULL,
  PRIMARY KEY (beginModelYearID,endModelYearID,opModeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The hotellingActivityDistribution is used by these modules:

  • Activity Calculator
  • Base Rate Generator
  • BaseRateCalculator
  • Rates Operating Mode Distribution Generator
  • Total Activity Generator

hotellingCalendarYear table

CREATE TABLE hotellingcalendaryear (
  yearID smallint(6) NOT NULL,
  hotellingRate double NOT NULL,
  PRIMARY KEY (yearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The hotellingCalendarYear is used by these modules:

  • Total Activity Generator

hotellingHours table

CREATE TABLE hotellinghours (
  sourceTypeID smallint(6) NOT NULL,
  hourDayID smallint(6) NOT NULL,
  monthID smallint(6) NOT NULL,
  yearID smallint(6) NOT NULL,
  ageID smallint(6) NOT NULL,
  zoneID int(11) NOT NULL,
  hotellingHours double DEFAULT NULL,
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID),
  KEY sourceTypeID (sourceTypeID),
  KEY hourDayID (hourDayID),
  KEY monthID (monthID),
  KEY yearID (yearID),
  KEY ageID (ageID),
  KEY zoneID (zoneID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The hotellingHours is used by these modules:

  • Activity Calculator
  • BaseRateCalculator
  • Total Activity Generator

HourDay table

CREATE TABLE hourday (
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  dayID smallint(6) NOT NULL DEFAULT '0',
  hourID smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (hourDayID),
  KEY dayID (dayID),
  KEY hourID (hourID),
  KEY dayID_2 (dayID,hourID,hourDayID),
  KEY hourID_2 (hourID,dayID,hourDayID),
  KEY hourDayID (hourDayID,dayID,hourID),
  KEY hourDayID_2 (hourDayID,hourID,dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The HourDay is used by these modules:

  • Activity Calculator
  • Distance Calculator
  • Evaporative Permeation Calculator
  • Liquid Leaking Calculator
  • Start Operating Mode Distribution Generator
  • Tank Temperature Generator
  • Tank Vapor Venting Calculator
  • Total Activity Generator

HourOfAnyDay table

CREATE TABLE hourofanyday (
  hourID smallint(6) NOT NULL DEFAULT '0',
  hourname char(50) DEFAULT NULL,
  PRIMARY KEY (hourID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The HourOfAnyDay is used by these modules:

  • Tank Vapor Venting Calculator
  • Total Activity Generator

HourVMTFraction table

CREATE TABLE hourvmtfraction (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  roadTypeID smallint(6) NOT NULL DEFAULT '0',
  dayID smallint(6) NOT NULL DEFAULT '0',
  hourID smallint(6) NOT NULL DEFAULT '0',
  hourVMTFraction float DEFAULT NULL,
  PRIMARY KEY (dayID,hourID,roadTypeID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY roadTypeID (roadTypeID),
  KEY dayID (dayID),
  KEY hourID (hourID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The HourVMTFraction is used by these modules:

  • Total Activity Generator

HPMSVtype table

CREATE TABLE hpmsvtype (
  HPMSVtypeID smallint(6) NOT NULL DEFAULT '0',
  HPMSVtypeName char(50) DEFAULT NULL,
  PRIMARY KEY (HPMSVtypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

HPMSVtypeDay table

CREATE TABLE hpmsvtypeday (
  yearID smallint(6) NOT NULL,
  monthID smallint(6) NOT NULL,
  dayID smallint(6) NOT NULL,
  HPMSVtypeID smallint(6) NOT NULL,
  VMT double NOT NULL,
  PRIMARY KEY (yearID,monthID,dayID,HPMSVtypeID),
  KEY HPMSVtypeID (HPMSVtypeID,yearID,monthID,dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The HPMSVtypeDay is used by these modules:

  • Total Activity Generator

HPMSVtypeYear table

CREATE TABLE hpmsvtypeyear (
  HPMSVtypeID smallint(6) NOT NULL DEFAULT '0',
  yearID smallint(6) NOT NULL DEFAULT '0',
  VMTGrowthFactor double DEFAULT NULL,
  HPMSBaseYearVMT double DEFAULT NULL,
  PRIMARY KEY (HPMSVtypeID,yearID),
  KEY HPMSVtypeID (HPMSVtypeID),
  KEY yearID (yearID),
  KEY yearID_2 (yearID,HPMSVtypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The HPMSVtypeYear is used by these modules:

  • Total Activity Generator

IMCoverage table

CREATE TABLE imcoverage (
  polProcessID int(11) NOT NULL DEFAULT '0',
  stateID smallint(6) NOT NULL DEFAULT '0',
  countyID int(11) NOT NULL DEFAULT '0',
  yearID smallint(6) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  IMProgramID smallint(6) NOT NULL DEFAULT '0',
  begModelYearID smallint(6) NOT NULL DEFAULT '0',
  endModelYearID smallint(6) NOT NULL DEFAULT '0',
  inspectFreq smallint(6) DEFAULT NULL,
  testStandardsID smallint(6) NOT NULL DEFAULT '0',
  useIMyn char(1) NOT NULL DEFAULT 'Y',
  complianceFactor float DEFAULT NULL,
  PRIMARY KEY (polProcessID,stateID,countyID,yearID,sourceTypeID,fuelTypeID,IMProgramID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The IMCoverage is used by these modules:

  • BaseRateCalculator
  • Liquid Leaking Calculator
  • Tank Vapor Venting Calculator

IMFactor table

CREATE TABLE imfactor (
  polProcessID int(11) NOT NULL,
  inspectFreq smallint(6) NOT NULL,
  testStandardsID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  IMModelYearGroupID int(8) NOT NULL,
  ageGroupID smallint(6) NOT NULL,
  IMFactor float DEFAULT NULL,
  PRIMARY KEY (polProcessID,inspectFreq,testStandardsID,sourceTypeID,fuelTypeID,IMModelYearGroupID,ageGroupID),
  UNIQUE KEY XPKIMFactor (polProcessID,inspectFreq,testStandardsID,sourceTypeID,fuelTypeID,IMModelYearGroupID,ageGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The IMFactor is used by these modules:

  • BaseRateCalculator
  • Liquid Leaking Calculator
  • Tank Vapor Venting Calculator

imInspectFreq table

CREATE TABLE iminspectfreq (
  inspectFreq smallint(6) NOT NULL,
  inspectFreqDesc char(50) DEFAULT NULL,
  PRIMARY KEY (inspectFreq),
  UNIQUE KEY XPKIMInspectFreq (inspectFreq)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

IMModelYearGroup table

CREATE TABLE immodelyeargroup (
  IMModelYearGroupID int(8) NOT NULL,
  IMModelYearGroupDesc char(40) NOT NULL,
  PRIMARY KEY (IMModelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

importStartsOpModeDistribution table

CREATE TABLE importstartsopmodedistribution (
  sourceTypeID smallint(6) NOT NULL,
  hourDayID smallint(6) NOT NULL,
  linkID int(11) NOT NULL,
  polProcessID int(11) NOT NULL,
  opModeID smallint(6) NOT NULL,
  opModeFraction float DEFAULT NULL,
  opModeFractionCV float DEFAULT NULL,
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (sourceTypeID,hourDayID,linkID,polProcessID,opModeID),
  KEY sourceTypeID (sourceTypeID),
  KEY hourDayID (hourDayID),
  KEY linkID (linkID),
  KEY polProcessID (polProcessID),
  KEY opModeID (opModeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

IMTestStandards table

CREATE TABLE imteststandards (
  testStandardsID smallint(6) NOT NULL,
  testStandardsDesc char(50) NOT NULL,
  shortName varchar(50) DEFAULT NULL,
  PRIMARY KEY (testStandardsID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

integratedSpeciesSet table

CREATE TABLE integratedspeciesset (
  mechanismID smallint(6) NOT NULL,
  integratedSpeciesSetID smallint(6) NOT NULL,
  pollutantID smallint(6) NOT NULL,
  useISSyn varchar(2) DEFAULT NULL,
  PRIMARY KEY (mechanismID,integratedSpeciesSetID,pollutantID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The integratedSpeciesSet is used by these modules:

  • TOG Speciation Calculator

integratedSpeciesSetName table

CREATE TABLE integratedspeciessetname (
  integratedSpeciesSetID smallint(6) NOT NULL,
  integratedSpeciesSetName varchar(40) DEFAULT NULL,
  PRIMARY KEY (integratedSpeciesSetID),
  KEY integratedSpeciesSetName (integratedSpeciesSetName)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Link table

CREATE TABLE link (
  linkID int(11) NOT NULL DEFAULT '0',
  countyID int(11) NOT NULL DEFAULT '0',
  zoneID int(11) DEFAULT NULL,
  roadTypeID smallint(6) NOT NULL DEFAULT '0',
  linkLength float DEFAULT NULL,
  linkVolume float DEFAULT NULL,
  linkAvgSpeed float DEFAULT NULL,
  linkDescription varchar(50) DEFAULT NULL,
  linkAvgGrade float DEFAULT NULL,
  PRIMARY KEY (linkID),
  KEY countyID (countyID),
  KEY zoneID (zoneID),
  KEY roadTypeID (roadTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The Link is used by these modules:

  • Activity Calculator
  • Average Speed Operating Mode Distribution Generator
  • Distance Calculator
  • Evaporative Permeation Calculator
  • Link Operating Mode Distribution Generator
  • Liquid Leaking Calculator
  • Tank Vapor Venting Calculator
  • Total Activity Generator

LinkAverageSpeed table

CREATE TABLE linkaveragespeed (
  linkID int(11) NOT NULL DEFAULT '0',
  averageSpeed float DEFAULT NULL,
  PRIMARY KEY (linkID),
  KEY linkID (linkID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The LinkAverageSpeed is used by these modules:

  • Total Activity Generator

LinkHourVMTFraction table

CREATE TABLE linkhourvmtfraction (
  linkID int(11) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  dayID smallint(6) NOT NULL DEFAULT '0',
  hourID smallint(6) NOT NULL DEFAULT '0',
  VMTFraction float DEFAULT NULL,
  PRIMARY KEY (dayID,hourID,linkID,monthID,sourceTypeID),
  KEY linkID (linkID),
  KEY monthID (monthID),
  KEY sourceTypeID (sourceTypeID),
  KEY dayID (dayID),
  KEY hourID (hourID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

linkSourceTypeHour table

CREATE TABLE linksourcetypehour (
  linkID int(11) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  sourceTypeHourFraction float DEFAULT NULL,
  PRIMARY KEY (linkID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID,linkID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The linkSourceTypeHour is used by these modules:

  • Activity Calculator

lumpedSpeciesName table

CREATE TABLE lumpedspeciesname (
  lumpedSpeciesID smallint(6) NOT NULL,
  lumpedSpeciesName varchar(20) DEFAULT NULL,
  PRIMARY KEY (lumpedSpeciesID),
  KEY lumpedSpeciesName (lumpedSpeciesName)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The lumpedSpeciesName is used by these modules:

  • TOG Speciation Calculator

M6SulfurCoeff table

CREATE TABLE m6sulfurcoeff (
  pollutantID smallint(6) NOT NULL,
  minModelYearID smallint(6) NOT NULL,
  maxModelYearID smallint(6) NOT NULL,
  minSulfur double NOT NULL,
  sulfurLongCoeff double DEFAULT NULL,
  sulfurIRFactor double DEFAULT NULL,
  maxIRFactorSulfur double DEFAULT NULL,
  PRIMARY KEY (pollutantID,minModelYearID,maxModelYearID),
  KEY pollutantID (pollutantID,minModelYearID,maxModelYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

MeanFuelParameters table

CREATE TABLE meanfuelparameters (
  polProcessID int(11) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  fuelParameterID smallint(6) NOT NULL DEFAULT '0',
  baseValue float DEFAULT NULL,
  centeringValue float DEFAULT NULL,
  stdDevValue float DEFAULT NULL,
  dataSourceID smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,fuelTypeID,modelYearGroupID,fuelParameterID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The MeanFuelParameters is used by these modules:

  • Fuel Effects Generator

mechanismName table

CREATE TABLE mechanismname (
  mechanismID smallint(6) NOT NULL,
  mechanismName varchar(40) DEFAULT NULL,
  PRIMARY KEY (mechanismID),
  KEY mechanismName (mechanismName)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

metalemissionrate table

CREATE TABLE metalemissionrate (
  polProcessID int(11) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  units char(20) DEFAULT NULL,
  meanBaseRate double DEFAULT NULL,
  meanBaseRateCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,fuelTypeID,sourceTypeID,modelYearGroupID),
  UNIQUE KEY XPKMetalEmissionRate (polProcessID,fuelTypeID,sourceTypeID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The metalemissionrate is used by these modules:

  • Base Rate Generator
  • Fuel Effects Generator

methaneTHCRatio table

CREATE TABLE methanethcratio (
  processID smallint(6) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  ageGroupID smallint(6) NOT NULL DEFAULT '0',
  CH4THCRatio double DEFAULT NULL,
  CH4THCRatioCV double DEFAULT NULL,
  PRIMARY KEY (processID,fuelTypeID,sourceTypeID,modelYearGroupID,ageGroupID),
  UNIQUE KEY XPKMethaneTHCRatio (processID,fuelTypeID,sourceTypeID,modelYearGroupID,ageGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The methaneTHCRatio is used by these modules:

  • HC Speciation Calculator

minorhapratio table

CREATE TABLE minorhapratio (
  polProcessID int(11) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  atRatio double DEFAULT NULL,
  atRatioCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (fuelTypeID,fuelSubtypeID,polProcessID,modelYearGroupID),
  UNIQUE KEY XPKMinorHAPRatio (fuelTypeID,fuelSubtypeID,polProcessID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The minorhapratio is used by these modules:

  • Air toxics Calculator
  • Fuel Effects Generator

ModelYear table

CREATE TABLE modelyear (
  modelYearID smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (modelYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ModelYear is used by these modules:

  • Air toxics Calculator
  • BaseRateCalculator
  • Evaporative Permeation Calculator

modelYearCutPoints table

CREATE TABLE modelyearcutpoints (
  cutPointName varchar(100) NOT NULL,
  modelYearID smallint(6) NOT NULL,
  PRIMARY KEY (cutPointName)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The modelYearCutPoints is used by these modules:

  • Fuel Effects Generator

ModelYearGroup table

CREATE TABLE modelyeargroup (
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  shortModYrGroupID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupName char(50) DEFAULT NULL,
  modelYearGroupStartYear smallint(6) DEFAULT NULL,
  modelYearGroupEndYear smallint(6) DEFAULT NULL,
  PRIMARY KEY (modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ModelYearGroup is used by these modules:

  • Base Rate Generator
  • SourceBin Distribution Generator

modelYearMapping table

CREATE TABLE modelyearmapping (
  startUserModelYear smallint(6) NOT NULL,
  endUserModelYear smallint(6) NOT NULL,
  startStandardModelYear smallint(6) NOT NULL,
  endStandardModelYear smallint(6) NOT NULL,
  PRIMARY KEY (startUserModelYear,endUserModelYear)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The modelYearMapping is used by these modules:

  • Fuel Effects Generator

MonthGroupHour table

CREATE TABLE monthgrouphour (
  monthGroupID smallint(6) NOT NULL DEFAULT '0',
  hourID smallint(6) NOT NULL DEFAULT '0',
  ACActivityTermA float DEFAULT NULL,
  ACActivityTermACV float DEFAULT NULL,
  ACActivityTermB float DEFAULT NULL,
  ACActivityTermBCV float DEFAULT NULL,
  ACActivityTermC float DEFAULT NULL,
  ACActivityTermCCV float DEFAULT NULL,
  PRIMARY KEY (hourID,monthGroupID),
  KEY monthGroupID (monthGroupID),
  KEY hourID (hourID),
  KEY hourID_2 (hourID,monthGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The MonthGroupHour is used by these modules:

  • BaseRateCalculator

MonthGroupOfAnyYear table

CREATE TABLE monthgroupofanyyear (
  monthGroupID smallint(6) NOT NULL DEFAULT '0',
  monthGroupName char(50) DEFAULT NULL,
  PRIMARY KEY (monthGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

MonthofAnyYear table

CREATE TABLE monthofanyyear (
  monthID smallint(6) NOT NULL DEFAULT '0',
  monthName char(10) DEFAULT NULL,
  noOfDays smallint(6) DEFAULT NULL,
  monthGroupID smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (monthID),
  KEY monthGroupID (monthGroupID),
  KEY monthGroupID_2 (monthGroupID,monthID),
  KEY monthID (monthID,monthGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The MonthofAnyYear is used by these modules:

  • Air toxics Calculator
  • BaseRateCalculator
  • CO2AERunningStartExtendedIdleCalculator
  • Evaporative Permeation Calculator
  • Liquid Leaking Calculator
  • Refueling Loss Calculator
  • SO2 Calculator
  • Sulfate PM Calculator
  • Tank Fuel Generator
  • Tank Vapor Venting Calculator
  • TOG Speciation Calculator

MonthVMTFraction table

CREATE TABLE monthvmtfraction (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  monthVMTFraction float DEFAULT NULL,
  PRIMARY KEY (monthID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY monthID (monthID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The MonthVMTFraction is used by these modules:

  • Total Activity Generator

NONO2Ratio table

CREATE TABLE nono2ratio (
  polProcessID int(11) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  NOxRatio float DEFAULT NULL,
  NOxRatioCV float DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,sourceTypeID,fuelTypeID,modelYearGroupID),
  UNIQUE KEY XPKNONO2Ratio (polProcessID,sourceTypeID,fuelTypeID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The NONO2Ratio is used by these modules:

  • NO Calculator
  • NO2 Calculator

nrAgeCategory table

CREATE TABLE nragecategory (
  ageID smallint(6) NOT NULL,
  ageCategoryName char(50) DEFAULT NULL,
  PRIMARY KEY (ageID),
  UNIQUE KEY XPKNRAgeCategory (ageID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nratratio table

CREATE TABLE nratratio (
  pollutantID smallint(6) NOT NULL,
  processID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  fuelSubtypeID smallint(6) NOT NULL,
  nrHPCategory char(1) NOT NULL,
  atRatio double DEFAULT NULL,
  atRatioCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (pollutantID,processID,engTechID,fuelSubtypeID,nrHPCategory)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


The nratratio is used by these modules:

  • Nonroad Air toxics Calculator

nrBaseYearEquipPopulation table

CREATE TABLE nrbaseyearequippopulation (
  sourceTypeID smallint(6) NOT NULL,
  stateID smallint(6) NOT NULL,
  population double NOT NULL,
  NRBaseYearID smallint(6) NOT NULL,
  PRIMARY KEY (sourceTypeID,stateID),
  UNIQUE KEY XPKNRBaseYearEquipPopulation (sourceTypeID,stateID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrCrankcaseEmissionRate table

CREATE TABLE nrcrankcaseemissionrate (
  polProcessID int(11) NOT NULL,
  SCC char(10) NOT NULL,
  hpMin smallint(6) NOT NULL,
  hpMax smallint(6) NOT NULL,
  modelYearID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  meanBaseRate float DEFAULT NULL,
  units varchar(12) DEFAULT NULL,
  dataSourceID smallint(6) NOT NULL,
  PRIMARY KEY (polProcessID,SCC,hpMin,hpMax,modelYearID,engTechID),
  UNIQUE KEY XPKnrCrankCaseEmissionRatio (polProcessID,SCC,hpMin,hpMax,modelYearID,engTechID),
  KEY INDEX1 (polProcessID),
  KEY XPFnrCrankCaseEmissionRatio (polProcessID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrDayAllocation table

CREATE TABLE nrdayallocation (
  scc char(10) NOT NULL,
  dayID smallint(6) NOT NULL,
  dayFraction float NOT NULL,
  PRIMARY KEY (scc,dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrDeterioration table

CREATE TABLE nrdeterioration (
  polProcessID int(11) NOT NULL,
  engTechID smallint(6) NOT NULL,
  DFCoefficient float DEFAULT NULL,
  DFAgeExponent float DEFAULT NULL,
  emissionCap smallint(6) NOT NULL,
  PRIMARY KEY (polProcessID,engTechID),
  UNIQUE KEY XPKNRDeterioration (polProcessID,engTechID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrdioxinemissionrate table

CREATE TABLE nrdioxinemissionrate (
  pollutantID smallint(6) NOT NULL,
  processID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  engtechID smallint(6) NOT NULL,
  nrHPCategory char(1) NOT NULL,
  units char(30) DEFAULT NULL,
  meanBaseRate double DEFAULT NULL,
  meanBaseRateCV double DEFAULT NULL,
  dataSourceID smallint(6) DEFAULT NULL,
  PRIMARY KEY (pollutantID,processID,fuelTypeID,engtechID,nrHPCategory)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


The nrdioxinemissionrate is used by these modules:

  • Nonroad Air toxics Calculator

nrEmissionRate table

CREATE TABLE nremissionrate (
  polProcessID int(11) NOT NULL,
  SCC char(10) NOT NULL,
  hpMin smallint(6) NOT NULL,
  hpMax smallint(6) NOT NULL,
  modelYearID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  meanBaseRate float DEFAULT NULL,
  units varchar(12) DEFAULT NULL,
  dataSourceID smallint(6) NOT NULL,
  PRIMARY KEY (polProcessID,SCC,hpMin,hpMax,modelYearID,engTechID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrEngtechFraction table

CREATE TABLE nrengtechfraction (
  SCC char(10) NOT NULL,
  hpMin smallint(6) NOT NULL,
  hpMax smallint(6) NOT NULL,
  modelYearID smallint(6) NOT NULL,
  processGroupID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  NREngTechFraction float DEFAULT NULL,
  PRIMARY KEY (SCC,hpMin,hpMax,modelYearID,processGroupID,engTechID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrEquipmentType table

CREATE TABLE nrequipmenttype (
  NREquipTypeID smallint(6) NOT NULL,
  description char(40) DEFAULT NULL,
  sectorID smallint(6) NOT NULL,
  useDefaultScrappage char(1) DEFAULT NULL,
  surrogateID smallint(6) DEFAULT NULL,
  PRIMARY KEY (NREquipTypeID),
  UNIQUE KEY XPKNREquipmentType (NREquipTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrEvapEmissionRate table

CREATE TABLE nrevapemissionrate (
  polProcessID int(11) NOT NULL,
  SCC char(10) NOT NULL,
  hpMin smallint(6) NOT NULL,
  hpMax smallint(6) NOT NULL,
  modelYearID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  meanBaseRate float DEFAULT NULL,
  units varchar(12) DEFAULT NULL,
  dataSourceID smallint(6) NOT NULL,
  PRIMARY KEY (polProcessID,SCC,hpMin,hpMax,modelYearID,engTechID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrFuelSubtype table

CREATE TABLE nrfuelsubtype (
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelSubtypeDesc char(50) DEFAULT NULL,
  fuelSubtypePetroleumFraction float DEFAULT NULL,
  fuelSubtypePetroleumFractionCV float DEFAULT NULL,
  fuelSubtypeFossilFraction float DEFAULT NULL,
  fuelSubtypeFossilFractionCV float DEFAULT NULL,
  carbonContent float DEFAULT NULL,
  oxidationFraction float DEFAULT NULL,
  carbonContentCV float DEFAULT NULL,
  oxidationFractionCV float DEFAULT NULL,
  energyContent float DEFAULT NULL,
  PRIMARY KEY (fuelSubtypeID),
  KEY fuelTypeID (fuelTypeID,fuelSubtypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrFuelSupply table

CREATE TABLE nrfuelsupply (
  fuelRegionID int(11) NOT NULL DEFAULT '0',
  fuelYearID int(11) NOT NULL DEFAULT '0',
  monthGroupID smallint(6) NOT NULL DEFAULT '0',
  fuelFormulationID smallint(6) NOT NULL DEFAULT '0',
  marketShare float DEFAULT NULL,
  marketShareCV float DEFAULT NULL,
  PRIMARY KEY (fuelRegionID,fuelFormulationID,monthGroupID,fuelYearID),
  KEY countyID (fuelRegionID),
  KEY yearID (fuelYearID),
  KEY monthGroupID (monthGroupID),
  KEY fuelSubtypeID (fuelFormulationID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrFuelType table

CREATE TABLE nrfueltype (
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  defaultFormulationID smallint(6) NOT NULL DEFAULT '0',
  fuelTypeDesc char(50) DEFAULT NULL,
  humidityCorrectionCoeff float DEFAULT NULL,
  humidityCorrectionCoeffCV float DEFAULT NULL,
  fuelDensity float DEFAULT NULL,
  subjectToEvapCalculations char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (fuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrGrowthIndex table

CREATE TABLE nrgrowthindex (
  growthPatternID smallint(6) NOT NULL,
  yearID smallint(6) NOT NULL,
  growthIndex smallint(6) DEFAULT NULL,
  PRIMARY KEY (growthPatternID,yearID),
  UNIQUE KEY XPKNRGrowthIndex (growthPatternID,yearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrGrowthPattern table

CREATE TABLE nrgrowthpattern (
  growthPatternID smallint(6) NOT NULL,
  description char(80) DEFAULT NULL,
  PRIMARY KEY (growthPatternID),
  UNIQUE KEY XPKNRGrowthPattern (growthPatternID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrGrowthPatternFinder table

CREATE TABLE nrgrowthpatternfinder (
  SCC char(10) NOT NULL,
  stateID smallint(6) NOT NULL,
  growthPatternID smallint(6) NOT NULL,
  PRIMARY KEY (SCC,stateID),
  UNIQUE KEY XPKNRGrowthPatternFinder (SCC,stateID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrhcspeciation table

CREATE TABLE nrhcspeciation (
  pollutantID smallint(6) NOT NULL,
  processID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  fuelSubtypeID smallint(6) NOT NULL,
  nrHPCategory char(1) NOT NULL,
  speciationConstant double DEFAULT NULL,
  speciationConstantCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (pollutantID,processID,engTechID,fuelSubtypeID,nrHPCategory)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


The nrhcspeciation is used by these modules:

  • Nonroad HC Speciation Calculator

nrHourAllocation table

CREATE TABLE nrhourallocation (
  NRHourAllocPatternID smallint(6) NOT NULL,
  hourID smallint(6) NOT NULL,
  hourFraction float NOT NULL,
  PRIMARY KEY (NRHourAllocPatternID,hourID),
  UNIQUE KEY XPKNRHourAllocation (NRHourAllocPatternID,hourID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrHourAllocPattern table

CREATE TABLE nrhourallocpattern (
  NRHourAllocPatternID smallint(6) NOT NULL,
  description char(255) NOT NULL,
  PRIMARY KEY (NRHourAllocPatternID),
  UNIQUE KEY XPKNRHourAllocPattern (NRHourAllocPatternID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrHourPatternFinder table

CREATE TABLE nrhourpatternfinder (
  NREquipTypeID smallint(6) NOT NULL,
  NRHourAllocPatternID smallint(6) DEFAULT NULL,
  PRIMARY KEY (NREquipTypeID),
  UNIQUE KEY XPKNRHourPatternFinder (NREquipTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrhpcategory table

CREATE TABLE nrhpcategory (
  nrhprangebinid smallint(6) NOT NULL,
  engtechid smallint(6) NOT NULL,
  nrhpcategory char(1) DEFAULT NULL,
  PRIMARY KEY (nrhprangebinid,engtechid)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


The nrhpcategory is used by these modules:

  • Nonroad Air toxics Calculator
  • Nonroad HC Speciation Calculator

nrHPRangeBin table

CREATE TABLE nrhprangebin (
  NRHPRangeBinID smallint(6) NOT NULL,
  binName char(20) DEFAULT NULL,
  hpMin smallint(6) DEFAULT NULL,
  hpMax smallint(6) DEFAULT NULL,
  engSizeID smallint(6) NOT NULL,
  PRIMARY KEY (NRHPRangeBinID),
  UNIQUE KEY XPKNRHPRangeBin (NRHPRangeBinID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrintegratedspecies table

CREATE TABLE nrintegratedspecies (
  pollutantID smallint(6) NOT NULL,
  PRIMARY KEY (pollutantID)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


The nrintegratedspecies is used by these modules:

  • Nonroad Air toxics Calculator

nrmetalemissionrate table

CREATE TABLE nrmetalemissionrate (
  pollutantID smallint(6) NOT NULL,
  processID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  nrHPCategory char(1) NOT NULL,
  units char(12) DEFAULT NULL,
  meanBaseRate double DEFAULT NULL,
  meanBaseRateCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (pollutantID,processID,fuelTypeID,engTechID,nrHPCategory)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


The nrmetalemissionrate is used by these modules:

  • Nonroad Air toxics Calculator

nrmethanethcratio table

CREATE TABLE nrmethanethcratio (
  processID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  fuelSubtypeID smallint(6) NOT NULL,
  nrHPCategory char(1) NOT NULL,
  CH4THCRatio double DEFAULT NULL,
  CH4THCRatioCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (processID,fuelSubtypeID,engTechID,nrHPCategory)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


The nrmethanethcratio is used by these modules:

  • Nonroad HC Speciation Calculator

nrMonthAllocation table

CREATE TABLE nrmonthallocation (
  SCC char(10) NOT NULL,
  stateID smallint(6) NOT NULL,
  monthID smallint(6) NOT NULL,
  monthFraction float NOT NULL,
  PRIMARY KEY (SCC,stateID,monthID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrpahgasratio table

CREATE TABLE nrpahgasratio (
  pollutantID smallint(6) NOT NULL,
  processid smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  nrHPCategory char(1) NOT NULL,
  atratio double DEFAULT NULL,
  atratioCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (pollutantID,processid,fuelTypeID,engTechID,nrHPCategory)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


The nrpahgasratio is used by these modules:

  • Nonroad Air toxics Calculator

nrpahparticleratio table

CREATE TABLE nrpahparticleratio (
  pollutantID smallint(6) NOT NULL,
  processid smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  nrHPCategory char(1) NOT NULL,
  atratio double DEFAULT NULL,
  atratioCV double DEFAULT NULL,
  datasourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (pollutantID,processid,fuelTypeID,engTechID,nrHPCategory)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


The nrpahparticleratio is used by these modules:

  • Nonroad Air toxics Calculator

nrRetrofitFactors table

CREATE TABLE nrretrofitfactors (
  retrofitStartYear smallint(6) NOT NULL,
  retrofitEndYear smallint(6) NOT NULL,
  StartModelYear smallint(6) NOT NULL,
  EndModelYear smallint(6) NOT NULL,
  SCC char(10) NOT NULL,
  engTechID smallint(6) NOT NULL,
  hpMin smallint(6) NOT NULL,
  hpMax smallint(6) NOT NULL,
  pollutantID smallint(6) NOT NULL,
  retrofitID smallint(6) NOT NULL,
  annualFractionRetrofit float DEFAULT NULL,
  retrofitEffectiveFraction float DEFAULT NULL,
  PRIMARY KEY (SCC,engTechID,hpMin,hpMax,pollutantID,retrofitID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrSCC table

CREATE TABLE nrscc (
  SCC char(10) NOT NULL,
  NREquipTypeID smallint(6) NOT NULL,
  description char(40) DEFAULT NULL,
  fuelTypeID smallint(6) NOT NULL,
  PRIMARY KEY (SCC),
  UNIQUE KEY XPKNRSCC (SCC)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrScrappageCurve table

CREATE TABLE nrscrappagecurve (
  NREquipTypeID smallint(6) NOT NULL,
  fractionLifeused float NOT NULL,
  percentageScrapped float DEFAULT NULL,
  PRIMARY KEY (NREquipTypeID,fractionLifeused),
  UNIQUE KEY XPKNRScrappageCurve (NREquipTypeID,fractionLifeused)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrSourceUseType table

CREATE TABLE nrsourceusetype (
  sourceTypeID smallint(6) NOT NULL,
  SCC char(10) NOT NULL,
  NRHPRangeBinID smallint(6) NOT NULL,
  medianLifeFullLoad float DEFAULT NULL,
  hoursUsedPerYear float DEFAULT NULL,
  loadFactor float DEFAULT NULL,
  hpAvg float DEFAULT NULL,
  isPumpFilled char(1) DEFAULT NULL,
  tankUnits char(7) DEFAULT NULL,
  tankSize float DEFAULT NULL,
  tankFillFrac float DEFAULT NULL,
  tankMetalFrac float DEFAULT NULL,
  hoseLength float DEFAULT NULL,
  hoseDiameter float DEFAULT NULL,
  hoseMetalFrac float DEFAULT NULL,
  marineFillNeckHoseLength float DEFAULT NULL,
  marineFillNeckHoseDiameter float DEFAULT NULL,
  marineSupplyHoseLength float DEFAULT NULL,
  marineSupplyHoseDiameter float DEFAULT NULL,
  marineVentHoseLength float DEFAULT NULL,
  marineVentHoseDiameter float DEFAULT NULL,
  hotSoaksPerSHO float DEFAULT NULL,
  nonInstMarineTankFrac float DEFAULT NULL,
  marineInstPlasticTankTrailFrac float NOT NULL,
  marineInstPlasticTankWaterFrac float DEFAULT NULL,
  marineInstMetalTankTrailerFrac float DEFAULT NULL,
  marineInstMetalTankWaterFrac float DEFAULT NULL,
  e10TankPermeationAdjFac float DEFAULT NULL,
  e10HosePermeationAdjFac float DEFAULT NULL,
  e10MarineFillNeckPermAdjFac float DEFAULT NULL,
  e10MarineSupplyHosePermAdjFac float DEFAULT NULL,
  e10MarineVentHosePermAdjFac float DEFAULT NULL,
  PRIMARY KEY (sourceTypeID),
  UNIQUE KEY XPKNRSourceUseType (sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrStateSurrogate table

CREATE TABLE nrstatesurrogate (
  surrogateID smallint(6) NOT NULL DEFAULT '0',
  stateID smallint(6) NOT NULL DEFAULT '0',
  countyID int(11) NOT NULL DEFAULT '0',
  surrogatequant double NOT NULL,
  surrogateYearID smallint(6) NOT NULL DEFAULT '2002',
  PRIMARY KEY (surrogateID,stateID,countyID,surrogateYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrSulfurAdjustment table

CREATE TABLE nrsulfuradjustment (
  fuelTypeID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  PMBaseSulfur float NOT NULL,
  sulfatePMConversionFactor float NOT NULL,
  PRIMARY KEY (fuelTypeID,engTechID),
  UNIQUE KEY XPKNRSulfurAdjustment (fuelTypeID,engTechID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrSurrogate table

CREATE TABLE nrsurrogate (
  surrogateID smallint(6) NOT NULL,
  description char(255) DEFAULT NULL,
  surrogateAbbr char(3) DEFAULT NULL,
  PRIMARY KEY (surrogateID),
  UNIQUE KEY XPKNRSurrogate (surrogateID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

nrUSMonthAllocation table

CREATE TABLE nrusmonthallocation (
  SCC char(10) NOT NULL,
  stateID smallint(6) NOT NULL,
  monthID smallint(6) NOT NULL,
  monthFraction float NOT NULL,
  PRIMARY KEY (SCC,stateID,monthID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

offNetworkLink table

CREATE TABLE offnetworklink (
  sourceTypeID smallint(6) NOT NULL,
  zoneID int(11) NOT NULL DEFAULT '0',
  vehiclePopulation float DEFAULT NULL,
  startFraction float DEFAULT NULL,
  extendedIdleFraction float DEFAULT NULL,
  parkedVehicleFraction float DEFAULT NULL,
  PRIMARY KEY (zoneID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID,zoneID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The offNetworkLink is used by these modules:

  • Activity Calculator

OMDGPolProcessRepresented table

CREATE TABLE omdgpolprocessrepresented (
  polProcessID int(11) NOT NULL,
  representingPolProcessID int(11) NOT NULL,
  PRIMARY KEY (polProcessID),
  KEY representingPolProcessID (representingPolProcessID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The OMDGPolProcessRepresented is used by these modules:

  • Rates Operating Mode Distribution Generator

onRoadRetrofit table

CREATE TABLE onroadretrofit (
  pollutantID smallint(6) NOT NULL,
  processID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  retrofitYearID smallint(6) NOT NULL,
  beginModelYearID smallint(6) NOT NULL,
  endModelYearID smallint(6) NOT NULL,
  cumFractionRetrofit double NOT NULL DEFAULT '0',
  retrofitEffectiveFraction double NOT NULL DEFAULT '0',
  PRIMARY KEY (pollutantID,processID,fuelTypeID,sourceTypeID,retrofitYearID,beginModelYearID,endModelYearID),
  KEY retrofitYearID (retrofitYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

OperatingMode table

CREATE TABLE operatingmode (
  opModeID smallint(6) NOT NULL DEFAULT '0',
  opModeName char(50) DEFAULT NULL,
  VSPLower float DEFAULT NULL,
  VSPUpper float DEFAULT NULL,
  speedLower float DEFAULT NULL,
  speedUpper float DEFAULT NULL,
  brakeRate1Sec float DEFAULT NULL,
  brakeRate3Sec float DEFAULT NULL,
  minSoakTime smallint(6) DEFAULT NULL,
  maxSoakTime smallint(6) DEFAULT NULL,
  PRIMARY KEY (opModeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The OperatingMode is used by these modules:

  • Average Speed Operating Mode Distribution Generator
  • Rates Operating Mode Distribution Generator
  • Start Operating Mode Distribution Generator

OpModeDistribution table

CREATE TABLE opmodedistribution (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  linkID int(11) NOT NULL DEFAULT '0',
  polProcessID int(11) NOT NULL DEFAULT '0',
  opModeID smallint(6) NOT NULL DEFAULT '0',
  opModeFraction float DEFAULT NULL,
  opModeFractionCV float DEFAULT NULL,
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (hourDayID,linkID,opModeID,polProcessID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY hourDayID (hourDayID),
  KEY linkID (linkID),
  KEY polProcessID (polProcessID),
  KEY opModeID (opModeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The OpModeDistribution is used by these modules:

  • Evaporative Emissions Operating Mode Distribution Generator
  • Evaporative Permeation Calculator
  • Link Operating Mode Distribution Generator
  • Liquid Leaking Calculator
  • Start Operating Mode Distribution Generator
  • Tank Vapor Venting Calculator

OpModePolProcAssoc table

CREATE TABLE opmodepolprocassoc (
  polProcessID int(11) NOT NULL DEFAULT '0',
  opModeID smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (opModeID,polProcessID),
  KEY polProcessID (polProcessID),
  KEY opModeID (opModeID),
  KEY opModeID_2 (opModeID,polProcessID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The OpModePolProcAssoc is used by these modules:

  • Evaporative Emissions Operating Mode Distribution Generator
  • Link Operating Mode Distribution Generator
  • Rates Operating Mode Distribution Generator
  • Start Operating Mode Distribution Generator

OxyThreshName table

CREATE TABLE oxythreshname (
  oxyThreshID smallint(6) NOT NULL DEFAULT '0',
  oxyThreshName char(100) DEFAULT NULL,
  PRIMARY KEY (oxyThreshID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

pahGasRatio table

CREATE TABLE pahgasratio (
  polProcessID int(11) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  atRatio double DEFAULT NULL,
  atRatioCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,fuelTypeID,modelYearGroupID),
  UNIQUE KEY XPKPAHGasRatio (polProcessID,fuelTypeID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The pahGasRatio is used by these modules:

  • Air toxics Calculator
  • Fuel Effects Generator

pahParticleRatio table

CREATE TABLE pahparticleratio (
  polProcessID int(11) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  atRatio double DEFAULT NULL,
  atRatioCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,fuelTypeID,modelYearGroupID),
  UNIQUE KEY XPKPAHParticleRatio (polProcessID,fuelTypeID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The pahParticleRatio is used by these modules:

  • Air toxics Calculator
  • Fuel Effects Generator

PM10EmissionRatio table

CREATE TABLE pm10emissionratio (
  polProcessID int(11) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  PM10PM25Ratio float NOT NULL,
  PM10PM25RatioCV float DEFAULT NULL,
  minModelYearID smallint(6) NOT NULL DEFAULT '1940',
  maxModelYearID smallint(6) NOT NULL DEFAULT '2050',
  PRIMARY KEY (polProcessID,sourceTypeID,fuelTypeID,minModelYearID,maxModelYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The PM10EmissionRatio is used by these modules:

  • PM10 Brake Tire Calculator
  • PM10 Emission Calculator

PMSpeciation table

CREATE TABLE pmspeciation (
  processID smallint(6) NOT NULL,
  inputPollutantID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  minModelYearID smallint(6) NOT NULL,
  maxModelYearID smallint(6) NOT NULL,
  outputPollutantID smallint(6) NOT NULL,
  pmSpeciationFraction double NOT NULL,
  PRIMARY KEY (processID,inputPollutantID,sourceTypeID,fuelTypeID,minModelYearID,maxModelYearID,outputPollutantID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The PMSpeciation is used by these modules:

  • Sulfate PM Calculator

Pollutant table

CREATE TABLE pollutant (
  pollutantID smallint(6) NOT NULL DEFAULT '0',
  pollutantName char(50) DEFAULT NULL,
  energyOrMass char(6) NOT NULL DEFAULT '',
  globalWarmingPotential smallint(6) DEFAULT NULL,
  NEIPollutantCode char(10) DEFAULT NULL,
  pollutantDisplayGroupID smallint(6) DEFAULT NULL,
  shortName varchar(50) DEFAULT NULL,
  isAffectedByOnroad tinyint(1) DEFAULT '1',
  isAffectedByNonroad tinyint(1) DEFAULT '0',
  PRIMARY KEY (pollutantID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The Pollutant is used by these modules:

  • CO2AERunningStartExtendedIdleCalculator
  • Refueling Loss Calculator

PollutantProcessAssoc table

CREATE TABLE pollutantprocessassoc (
  polProcessID int(11) NOT NULL DEFAULT '0',
  processID smallint(6) NOT NULL DEFAULT '0',
  pollutantID smallint(6) NOT NULL DEFAULT '0',
  isAffectedByExhaustIM char(1) NOT NULL DEFAULT 'N',
  isAffectedByEvapIM char(1) NOT NULL DEFAULT 'N',
  chainedto1 int(11) DEFAULT NULL,
  chainedto2 int(11) DEFAULT NULL,
  isAffectedByOnroad tinyint(1) DEFAULT '1',
  isAffectedByNonroad tinyint(1) DEFAULT '0',
  nrChainedTo1 int(11) DEFAULT NULL,
  nrChainedTo2 int(11) DEFAULT NULL,
  PRIMARY KEY (polProcessID),
  KEY processID (processID),
  KEY pollutantID (pollutantID),
  KEY processID_2 (processID,pollutantID,polProcessID),
  KEY pollutantID_2 (pollutantID,processID,polProcessID),
  KEY polProcessID (polProcessID,processID,pollutantID),
  KEY polProcessID_2 (polProcessID,pollutantID,processID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The PollutantProcessAssoc is used by these modules:

  • Air toxics Calculator
  • Base Rate Generator
  • BaseRateCalculator
  • Crankcase Emission Calculator
  • Evaporative Emissions Operating Mode Distribution Generator
  • Evaporative Permeation Calculator
  • Liquid Leaking Calculator
  • NO Calculator
  • NO2 Calculator
  • PM10 Brake Tire Calculator
  • PM10 Emission Calculator
  • Rates Operating Mode Distribution Generator
  • SO2 Calculator
  • SourceBin Distribution Generator
  • Tank Vapor Venting Calculator

PollutantProcessModelYear table

CREATE TABLE pollutantprocessmodelyear (
  polProcessID int(11) NOT NULL DEFAULT '0',
  modelYearID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  fuelMYGroupID int(11) DEFAULT NULL,
  IMModelYearGroupID int(11) DEFAULT NULL,
  PRIMARY KEY (modelYearID,polProcessID),
  KEY polProcessID (modelYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The PollutantProcessModelYear is used by these modules:

  • Air toxics Calculator
  • Base Rate Generator
  • Evaporative Permeation Calculator
  • HC Speciation Calculator
  • Liquid Leaking Calculator
  • SourceBin Distribution Generator
  • Tank Vapor Venting Calculator

processDisplayGroup table

CREATE TABLE processdisplaygroup (
  processDisplayGroupID smallint(6) NOT NULL,
  processDisplayGroupName char(50) NOT NULL,
  disPlayAsGroup char(1) NOT NULL,
  PRIMARY KEY (processDisplayGroupID),
  UNIQUE KEY XPKProcessDisplayGroup (processDisplayGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

processGroupID table

CREATE TABLE processgroupid (
  processGroupID smallint(6) NOT NULL,
  processGroupName char(15) NOT NULL,
  PRIMARY KEY (processGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

RefuelingFactors table

CREATE TABLE refuelingfactors (
  fuelTypeID smallint(6) NOT NULL,
  defaultFormulationID smallint(6) DEFAULT NULL,
  vaporTermA float NOT NULL DEFAULT '0',
  vaporTermB float NOT NULL DEFAULT '0',
  vaporTermC float NOT NULL DEFAULT '0',
  vaporTermD float NOT NULL DEFAULT '0',
  vaporTermE float NOT NULL DEFAULT '0',
  vaporTermF float NOT NULL DEFAULT '0',
  vaporLowTLimit float NOT NULL DEFAULT '0',
  vaporHighTLimit float NOT NULL DEFAULT '0',
  tankTDiffLimit float NOT NULL DEFAULT '0',
  minimumRefuelingVaporLoss float NOT NULL DEFAULT '0',
  refuelingSpillRate float NOT NULL DEFAULT '0',
  refuelingSpillRateCV float NOT NULL DEFAULT '0',
  displacedVaporRateCV float NOT NULL DEFAULT '0',
  PRIMARY KEY (fuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The RefuelingFactors is used by these modules:

  • Refueling Loss Calculator

region table

CREATE TABLE region (
  regionID int(11) NOT NULL,
  VV smallint(6) DEFAULT NULL,
  WW smallint(6) DEFAULT NULL,
  XX smallint(6) DEFAULT NULL,
  YY smallint(6) DEFAULT NULL,
  ZZ smallint(6) DEFAULT NULL,
  description varchar(150) DEFAULT NULL,
  PRIMARY KEY (regionID),
  KEY index1 (regionID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

regionCode table

CREATE TABLE regioncode (
  regionCodeID int(11) NOT NULL,
  regionCodeDescription varchar(200) NOT NULL DEFAULT '',
  PRIMARY KEY (regionCodeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

regionCounty table

CREATE TABLE regioncounty (
  regionID int(11) NOT NULL,
  countyID int(11) NOT NULL,
  regionCodeID int(11) NOT NULL,
  fuelYearID int(11) NOT NULL,
  PRIMARY KEY (regionID,countyID,regionCodeID,fuelYearID),
  KEY countyID (countyID,fuelYearID,regionCodeID,regionID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

RegulatoryClass table

CREATE TABLE regulatoryclass (
  regClassID smallint(6) NOT NULL DEFAULT '0',
  regClassName char(25) DEFAULT NULL,
  regClassDesc char(100) DEFAULT NULL,
  PRIMARY KEY (regClassID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The RegulatoryClass is used by these modules:


RetrofitInputAssociations table

CREATE TABLE retrofitinputassociations (
  listName varchar(20) NOT NULL,
  commonName varchar(50) NOT NULL,
  idealName varchar(50) NOT NULL,
  PRIMARY KEY (listName,commonName)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

RoadOpmodeDistribution table

CREATE TABLE roadopmodedistribution (
  sourceTypeID smallint(6) NOT NULL,
  opModeID smallint(6) NOT NULL,
  roadTypeID smallint(6) NOT NULL,
  isRamp char(1) NOT NULL DEFAULT 'Y',
  avgSpeedBinID smallint(6) NOT NULL,
  opModeFraction float NOT NULL DEFAULT '0',
  opModeFractionCV float DEFAULT NULL,
  PRIMARY KEY (sourceTypeID,opModeID,roadTypeID,isRamp,avgSpeedBinID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The RoadOpmodeDistribution is used by these modules:

  • Rates Operating Mode Distribution Generator

RoadType table

CREATE TABLE roadtype (
  roadTypeID smallint(6) NOT NULL DEFAULT '0',
  roadDesc char(50) DEFAULT NULL,
  rampFraction float DEFAULT NULL,
  isAffectedByOnroad tinyint(1) DEFAULT '1',
  isAffectedByNonroad tinyint(1) DEFAULT '0',
  shouldDisplay tinyint(1) DEFAULT '1',
  PRIMARY KEY (roadTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The RoadType is used by these modules:

  • Rates Operating Mode Distribution Generator
  • Total Activity Generator

RoadTypeDistribution table

CREATE TABLE roadtypedistribution (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  roadTypeID smallint(6) NOT NULL DEFAULT '0',
  roadTypeVMTFraction float DEFAULT NULL,
  PRIMARY KEY (roadTypeID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY roadTypeID (roadTypeID),
  KEY roadTypeID_2 (roadTypeID,sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The RoadTypeDistribution is used by these modules:

  • Activity Calculator
  • Total Activity Generator

SampleVehicleDay table

CREATE TABLE samplevehicleday (
  vehID int(11) NOT NULL DEFAULT '0',
  dayID smallint(6) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (vehID,dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SampleVehicleDay is used by these modules:

  • Start Operating Mode Distribution Generator
  • Tank Temperature Generator
  • Tank Vapor Venting Calculator
  • Total Activity Generator

sampleVehiclePopulation table

CREATE TABLE samplevehiclepopulation (
  sourceTypeModelYearID int(10) unsigned NOT NULL,
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearID smallint(6) NOT NULL DEFAULT '0',
  fuelTypeID smallint(5) unsigned NOT NULL,
  engTechID smallint(6) NOT NULL,
  regClassID smallint(5) unsigned NOT NULL,
  stmyFuelEngFraction double NOT NULL,
  stmyFraction double NOT NULL,
  PRIMARY KEY (sourceTypeModelYearID,fuelTypeID,engTechID,regClassID),
  KEY stmyft (sourceTypeID,modelYearID,fuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DELAY_KEY_WRITE=1


The sampleVehiclePopulation is used by these modules:

  • Activity Calculator
  • SourceBin Distribution Generator
  • Tank Vapor Venting Calculator

sampleVehicleSoaking table

CREATE TABLE samplevehiclesoaking (
  soakDayID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  dayID smallint(6) NOT NULL,
  hourID smallint(6) NOT NULL,
  soakFraction double DEFAULT NULL,
  PRIMARY KEY (soakDayID,sourceTypeID,dayID,hourID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The sampleVehicleSoaking is used by these modules:

  • Tank Vapor Venting Calculator

sampleVehicleSoakingDay table

CREATE TABLE samplevehiclesoakingday (
  soakDayID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  dayID smallint(6) NOT NULL,
  F double DEFAULT NULL,
  PRIMARY KEY (soakDayID,sourceTypeID,dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The sampleVehicleSoakingDay is used by these modules:

  • Tank Vapor Venting Calculator

sampleVehicleSoakingDayBasis table

CREATE TABLE samplevehiclesoakingdaybasis (
  soakDayID smallint(6) NOT NULL,
  dayID smallint(6) NOT NULL,
  F double DEFAULT NULL,
  PRIMARY KEY (soakDayID,dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The sampleVehicleSoakingDayBasis is used by these modules:

  • Tank Vapor Venting Calculator

sampleVehicleSoakingDayBasisUsed table

CREATE TABLE samplevehiclesoakingdaybasisused (
  soakDayID smallint(6) NOT NULL,
  dayID smallint(6) NOT NULL,
  F double DEFAULT NULL,
  PRIMARY KEY (soakDayID,dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

sampleVehicleSoakingDayUsed table

CREATE TABLE samplevehiclesoakingdayused (
  soakDayID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  dayID smallint(6) NOT NULL,
  F double DEFAULT NULL,
  PRIMARY KEY (soakDayID,sourceTypeID,dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

SampleVehicleTrip table

CREATE TABLE samplevehicletrip (
  vehID int(11) NOT NULL DEFAULT '0',
  dayID smallint(6) NOT NULL DEFAULT '0',
  tripID smallint(6) NOT NULL DEFAULT '0',
  hourID smallint(6) DEFAULT NULL,
  priorTripID smallint(6) DEFAULT NULL,
  keyontime int(11) DEFAULT NULL,
  keyOffTime int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (vehID,dayID,tripID),
  KEY vehID (vehID),
  KEY tripID (tripID),
  KEY idxPriorTripID (priorTripID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SampleVehicleTrip is used by these modules:

  • Start Operating Mode Distribution Generator
  • Tank Temperature Generator
  • Tank Vapor Venting Calculator
  • Total Activity Generator

scc table

CREATE TABLE scc (
  SCC char(10) NOT NULL DEFAULT '',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  roadTypeID smallint(6) NOT NULL DEFAULT '0',
  processID smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (SCC),
  KEY fuelTypeID (fuelTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY roadTypeID (roadTypeID),
  KEY processID (processID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Sector table

CREATE TABLE sector (
  sectorID smallint(6) NOT NULL,
  description char(40) DEFAULT NULL,
  PRIMARY KEY (sectorID),
  UNIQUE KEY XPKSector (sectorID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

SHO table

CREATE TABLE sho (
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  yearID smallint(6) NOT NULL DEFAULT '0',
  ageID smallint(6) NOT NULL DEFAULT '0',
  linkID int(11) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  SHO float DEFAULT NULL,
  SHOCV float DEFAULT NULL,
  distance float DEFAULT NULL,
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (ageID,hourDayID,linkID,monthID,sourceTypeID,yearID),
  KEY hourDayID (hourDayID),
  KEY monthID (monthID),
  KEY yearID (yearID),
  KEY ageID (ageID),
  KEY linkID (linkID),
  KEY sourceTypeID (sourceTypeID),
  KEY linkID_2 (linkID,yearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SHO is used by these modules:

  • Activity Calculator
  • BaseRateCalculator
  • Distance Calculator
  • Evaporative Emissions Operating Mode Distribution Generator
  • Total Activity Generator

SizeWeightFraction table

CREATE TABLE sizeweightfraction (
  sourceTypeModelYearID int(11) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  engTechID smallint(6) NOT NULL DEFAULT '0',
  engSizeID smallint(6) NOT NULL DEFAULT '0',
  weightClassID smallint(6) NOT NULL DEFAULT '0',
  sizeWeightFraction float DEFAULT NULL,
  PRIMARY KEY (engSizeID,engTechID,fuelTypeID,sourceTypeModelYearID,weightClassID),
  KEY yearFuelTech (sourceTypeModelYearID,engTechID,fuelTypeID),
  KEY engTechID (engTechID),
  KEY engSizeID (engSizeID),
  KEY weightClassID (weightClassID),
  KEY sourceTypeModelYearID (sourceTypeModelYearID),
  KEY fuelTypeID (fuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

SoakActivityFraction table

CREATE TABLE soakactivityfraction (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  zoneID int(11) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  opModeID smallint(6) NOT NULL DEFAULT '0',
  soakActivityFraction float DEFAULT NULL,
  soakActivityFractionCV float DEFAULT NULL,
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (sourceTypeID,zoneID,monthID,hourDayID,opModeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SoakActivityFraction is used by these modules:

  • Evaporative Emissions Operating Mode Distribution Generator
  • Tank Temperature Generator

SourceBin table

CREATE TABLE sourcebin (
  sourceBinID bigint(20) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  engTechID smallint(6) NOT NULL DEFAULT '0',
  regClassID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  engSizeID smallint(6) NOT NULL DEFAULT '0',
  weightClassID smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (sourceBinID),
  KEY fuelTypeID (fuelTypeID),
  KEY modelYearGroupID (modelYearGroupID),
  KEY sourceBinID (sourceBinID,fuelTypeID,modelYearGroupID),
  KEY sourceBinID_2 (sourceBinID,modelYearGroupID,fuelTypeID),
  KEY fuelTypeID_2 (fuelTypeID,modelYearGroupID,sourceBinID),
  KEY fuelTypeID_3 (fuelTypeID,sourceBinID,modelYearGroupID),
  KEY modelYearGroupID_2 (modelYearGroupID,fuelTypeID,sourceBinID),
  KEY modelYearGroupID_3 (modelYearGroupID,sourceBinID,fuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceBin is used by these modules:

  • Base Rate Generator
  • BaseRateCalculator
  • Distance Calculator
  • Evaporative Permeation Calculator
  • Liquid Leaking Calculator
  • SourceBin Distribution Generator
  • Tank Vapor Venting Calculator

SourceBinDistribution table

CREATE TABLE sourcebindistribution (
  sourceTypeModelYearID int(11) NOT NULL DEFAULT '0',
  polProcessID int(11) NOT NULL DEFAULT '0',
  sourceBinID bigint(20) NOT NULL DEFAULT '0',
  sourceBinActivityFraction float DEFAULT NULL,
  sourceBinActivityFractionCV float DEFAULT NULL,
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (polProcessID,sourceBinID,sourceTypeModelYearID),
  KEY sourceTypeModelYearID (sourceTypeModelYearID),
  KEY polProcessID (polProcessID),
  KEY sourceBinID (sourceBinID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceBinDistribution is used by these modules:

  • Base Rate Generator
  • Distance Calculator
  • Evaporative Permeation Calculator
  • Liquid Leaking Calculator
  • SourceBin Distribution Generator
  • Tank Vapor Venting Calculator

SourceHours table

CREATE TABLE sourcehours (
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  yearID smallint(6) NOT NULL DEFAULT '0',
  ageID smallint(6) NOT NULL DEFAULT '0',
  linkID int(11) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  sourceHours float DEFAULT NULL,
  sourceHoursCV float DEFAULT NULL,
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (hourDayID,monthID,yearID,ageID,linkID,sourceTypeID),
  KEY hourDayID (hourDayID),
  KEY monthID (monthID),
  KEY yearID (yearID),
  KEY ageID (ageID),
  KEY linkID (linkID),
  KEY sourceTypeID (sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceHours is used by these modules:

  • Activity Calculator
  • Evaporative Emissions Operating Mode Distribution Generator
  • Evaporative Permeation Calculator
  • Liquid Leaking Calculator
  • Tank Vapor Venting Calculator
  • Total Activity Generator

SourceTypeAge table

CREATE TABLE sourcetypeage (
  ageID smallint(6) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  survivalRate double DEFAULT NULL,
  relativeMAR double DEFAULT NULL,
  functioningACFraction double DEFAULT NULL,
  functioningACFractionCV double DEFAULT NULL,
  PRIMARY KEY (ageID,sourceTypeID),
  KEY ageID (ageID),
  KEY sourceTypeID (sourceTypeID),
  KEY sourceTypeID_2 (sourceTypeID,ageID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceTypeAge is used by these modules:

  • BaseRateCalculator
  • Total Activity Generator

SourceTypeAgeDistribution table

CREATE TABLE sourcetypeagedistribution (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  yearID smallint(6) NOT NULL DEFAULT '0',
  ageID smallint(6) NOT NULL DEFAULT '0',
  ageFraction double DEFAULT NULL,
  PRIMARY KEY (ageID,sourceTypeID,yearID),
  KEY sourceTypeID (sourceTypeID),
  KEY yearID (yearID),
  KEY ageID (ageID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceTypeAgeDistribution is used by these modules:

  • Activity Calculator
  • Total Activity Generator

SourceTypeDayVMT table

CREATE TABLE sourcetypedayvmt (
  yearID smallint(6) NOT NULL,
  monthID smallint(6) NOT NULL,
  dayID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  VMT double NOT NULL,
  PRIMARY KEY (yearID,monthID,dayID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID,yearID,monthID,dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceTypeDayVMT is used by these modules:

  • Total Activity Generator

SourceTypeHour table

CREATE TABLE sourcetypehour (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  idleSHOFactor float DEFAULT NULL,
  hotellingdist double DEFAULT NULL,
  PRIMARY KEY (hourDayID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY hourDayID (hourDayID),
  KEY hourDayID_2 (hourDayID,sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceTypeHour is used by these modules:

  • Total Activity Generator

SourceTypeModelYear table

CREATE TABLE sourcetypemodelyear (
  sourceTypeModelYearID int(11) NOT NULL DEFAULT '0',
  modelYearID smallint(6) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  ACPenetrationFraction float DEFAULT NULL,
  ACPenetrationFractionCV float DEFAULT NULL,
  PRIMARY KEY (sourceTypeModelYearID),
  KEY modelYearID (modelYearID),
  KEY sourceTypeID (sourceTypeID),
  KEY sourceTypeModelYearID (sourceTypeModelYearID,modelYearID,sourceTypeID),
  KEY sourceTypeModelYearID_2 (sourceTypeModelYearID,sourceTypeID,modelYearID),
  KEY sourceTypeID_2 (sourceTypeID,modelYearID,sourceTypeModelYearID),
  KEY modelYearID_2 (modelYearID,sourceTypeID,sourceTypeModelYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceTypeModelYear is used by these modules:

  • Activity Calculator
  • Base Rate Generator
  • BaseRateCalculator
  • Distance Calculator
  • Evaporative Permeation Calculator
  • Liquid Leaking Calculator
  • SourceBin Distribution Generator
  • Tank Vapor Venting Calculator

SourceTypeModelYearGroup table

CREATE TABLE sourcetypemodelyeargroup (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  tankTemperatureGroupID smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (sourceTypeID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceTypeModelYearGroup is used by these modules:

  • Evaporative Permeation Calculator
  • Tank Temperature Generator
  • Tank Vapor Venting Calculator

SourceTypePolProcess table

CREATE TABLE sourcetypepolprocess (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  polProcessID int(11) NOT NULL DEFAULT '0',
  isSizeWeightReqd char(1) DEFAULT NULL,
  isRegClassReqd char(1) DEFAULT NULL,
  isMYGroupReqd char(1) DEFAULT NULL,
  PRIMARY KEY (polProcessID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY polProcessID (polProcessID),
  KEY polProcessID_2 (polProcessID,sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceTypePolProcess is used by these modules:

  • Rates Operating Mode Distribution Generator
  • SourceBin Distribution Generator
  • Start Operating Mode Distribution Generator

SourceTypeTechAdjustment table

CREATE TABLE sourcetypetechadjustment (
  processID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  modelYearID smallint(6) NOT NULL,
  refuelingTechAdjustment float NOT NULL DEFAULT '0',
  PRIMARY KEY (processID,sourceTypeID,modelYearID),
  KEY processID (processID),
  KEY sourceTypeID (sourceTypeID),
  KEY modelYearID (modelYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceTypeTechAdjustment is used by these modules:

  • Refueling Loss Calculator

SourceTypeYear table

CREATE TABLE sourcetypeyear (
  yearID smallint(6) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  salesGrowthFactor double DEFAULT NULL,
  sourceTypePopulation double DEFAULT NULL,
  migrationrate double DEFAULT NULL,
  PRIMARY KEY (sourceTypeID,yearID),
  KEY yearID (yearID),
  KEY sourceTypeID (sourceTypeID),
  KEY sourceTypeID_2 (sourceTypeID,yearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceTypeYear is used by these modules:

  • Total Activity Generator

SourceTypeYearVMT table

CREATE TABLE sourcetypeyearvmt (
  yearID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  VMT double NOT NULL,
  PRIMARY KEY (yearID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID,yearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceTypeYearVMT is used by these modules:

  • Total Activity Generator

SourceUseType table

CREATE TABLE sourceusetype (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  HPMSVtypeID smallint(6) NOT NULL DEFAULT '0',
  sourceTypeName char(50) DEFAULT NULL,
  PRIMARY KEY (sourceTypeID),
  KEY HPMSVtypeID (HPMSVtypeID),
  KEY sourceTypeID (sourceTypeID,HPMSVtypeID),
  KEY HPMSVtypeID_2 (HPMSVtypeID,sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SourceUseType is used by these modules:

  • Activity Calculator
  • NO Calculator
  • NO2 Calculator
  • Total Activity Generator

sourceUseTypePhysics table

CREATE TABLE sourceusetypephysics (
  sourceTypeID smallint(6) NOT NULL,
  beginModelYearID smallint(6) NOT NULL,
  endModelYearID smallint(6) NOT NULL,
  rollingTermA float DEFAULT NULL,
  rotatingTermB float DEFAULT NULL,
  dragTermC float DEFAULT NULL,
  sourceMass float DEFAULT NULL,
  fixedMassFactor float DEFAULT NULL,
  PRIMARY KEY (sourceTypeID,beginModelYearID,endModelYearID),
  KEY beginModelYearID (beginModelYearID,endModelYearID,sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Starts table

CREATE TABLE starts (
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  yearID smallint(6) NOT NULL DEFAULT '0',
  ageID smallint(6) NOT NULL DEFAULT '0',
  zoneID int(11) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  starts float DEFAULT NULL,
  StartsCV float DEFAULT NULL,
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (ageID,hourDayID,monthID,sourceTypeID,yearID,zoneID),
  KEY hourDayID (hourDayID),
  KEY monthID (monthID),
  KEY yearID (yearID),
  KEY ageID (ageID),
  KEY zoneID (zoneID),
  KEY sourceTypeID (sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The Starts is used by these modules:

  • Activity Calculator
  • BaseRateCalculator
  • Total Activity Generator

startsHourFraction table

CREATE TABLE startshourfraction (
  zoneID int(11) NOT NULL,
  dayID smallint(6) NOT NULL,
  hourID smallint(6) NOT NULL,
  allocationFraction double NOT NULL,
  PRIMARY KEY (zoneID,dayID,hourID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

startsMonthAdjust table

CREATE TABLE startsmonthadjust (
  monthID smallint(6) NOT NULL,
  monthAdjustment double NOT NULL,
  PRIMARY KEY (monthID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

startsPerDay table

CREATE TABLE startsperday (
  zoneID int(11) NOT NULL,
  dayID smallint(6) NOT NULL,
  yearID smallint(6) NOT NULL,
  startsPerDay double NOT NULL,
  PRIMARY KEY (zoneID,dayID,yearID),
  KEY yearID (yearID,zoneID,dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

StartsPerVehicle table

CREATE TABLE startspervehicle (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  startsPerVehicle float DEFAULT NULL,
  startsPerVehicleCV float DEFAULT NULL,
  PRIMARY KEY (sourceTypeID,hourDayID),
  KEY sourceTypeID (sourceTypeID),
  KEY hourDayID (hourDayID),
  KEY hourDayID_2 (hourDayID,sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The StartsPerVehicle is used by these modules:

  • Total Activity Generator

startsSourceTypeFraction table

CREATE TABLE startssourcetypefraction (
  sourceTypeID smallint(6) NOT NULL,
  allocationFraction double NOT NULL,
  PRIMARY KEY (sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

StartTempAdjustment table

CREATE TABLE starttempadjustment (
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  polProcessID int(11) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  opModeID smallint(6) NOT NULL DEFAULT '0',
  tempAdjustTermA float DEFAULT NULL,
  tempAdjustTermACV float DEFAULT NULL,
  tempAdjustTermB float DEFAULT NULL,
  tempAdjustTermBCV float DEFAULT NULL,
  tempAdjustTermC float DEFAULT NULL,
  tempAdjustTermCCV float DEFAULT NULL,
  startTempEquationType varchar(4) DEFAULT '',
  PRIMARY KEY (fuelTypeID,polProcessID,modelYearGroupID,opModeID),
  KEY fuelTypeID (fuelTypeID),
  KEY polProcessID (polProcessID),
  KEY modelYearGroupID (modelYearGroupID),
  KEY opModeID (opModeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The StartTempAdjustment is used by these modules:

  • BaseRateCalculator

State table

CREATE TABLE state (
  stateID smallint(6) NOT NULL DEFAULT '0',
  stateName char(25) DEFAULT NULL,
  stateAbbr char(2) DEFAULT NULL,
  PRIMARY KEY (stateID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

SulfateEmissionRate table

CREATE TABLE sulfateemissionrate (
  polProcessID int(11) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  meanBaseRate float DEFAULT NULL,
  meanBaseRateCV float DEFAULT NULL,
  dataSourceID smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,fuelTypeID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SulfateEmissionRate is used by these modules:

  • SO2 Calculator

SulfateFractions table

CREATE TABLE sulfatefractions (
  processID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  minModelYearID smallint(6) NOT NULL,
  maxModelYearID smallint(6) NOT NULL,
  SulfatenonECPMFraction double NOT NULL,
  H2OnonECPMFraction double NOT NULL,
  BaseFuelSulfurLevel double NOT NULL,
  BaseFuelSulfateFraction double NOT NULL,
  DataSourceId smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (processID,fuelTypeID,sourceTypeID,minModelYearID,maxModelYearID),
  KEY processID (processID,sourceTypeID,fuelTypeID,minModelYearID,maxModelYearID),
  KEY processID_2 (processID,minModelYearID,maxModelYearID,fuelTypeID,sourceTypeID),
  KEY processID_3 (processID,minModelYearID,maxModelYearID,sourceTypeID,fuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The SulfateFractions is used by these modules:

  • Sulfate PM Calculator

SulfurBase table

CREATE TABLE sulfurbase (
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  sulfurBase float DEFAULT NULL,
  sulfurBasis float DEFAULT '30',
  sulfurGPAMax float DEFAULT '330',
  PRIMARY KEY (modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

sulfurCapAmount table

CREATE TABLE sulfurcapamount (
  fuelTypeID smallint(6) NOT NULL,
  sulfurCap double DEFAULT NULL,
  PRIMARY KEY (fuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

SulfurModelCoeff table

CREATE TABLE sulfurmodelcoeff (
  processID smallint(6) NOT NULL,
  pollutantID smallint(6) NOT NULL,
  M6emitterID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  fuelMYGroupID int(8) NOT NULL,
  sulfurFunctionID smallint(6) NOT NULL,
  sulfurCoeff float DEFAULT NULL,
  lowSulfurCoeff double DEFAULT NULL,
  PRIMARY KEY (processID,pollutantID,M6emitterID,sourceTypeID,fuelMYGroupID,sulfurFunctionID),
  KEY processID (processID,pollutantID,M6emitterID,sourceTypeID,fuelMYGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

SulfurModelName table

CREATE TABLE sulfurmodelname (
  M6EmitterID smallint(6) NOT NULL DEFAULT '0',
  sulfurFunctionID smallint(6) NOT NULL DEFAULT '0',
  M6emitterName char(10) DEFAULT NULL,
  sulfurFunctionName char(10) DEFAULT NULL,
  PRIMARY KEY (M6EmitterID,sulfurFunctionID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

TankTemperatureGroup table

CREATE TABLE tanktemperaturegroup (
  tankTemperatureGroupID smallint(6) NOT NULL DEFAULT '0',
  tankTemperatureGroupName char(50) NOT NULL DEFAULT '',
  PRIMARY KEY (tankTemperatureGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

TankTemperatureRise table

CREATE TABLE tanktemperaturerise (
  tankTemperatureGroupID smallint(6) NOT NULL DEFAULT '0',
  tankTemperatureRiseTermA float DEFAULT NULL,
  tankTemperatureRiseTermACV float DEFAULT NULL,
  tankTemperatureRiseTermB float DEFAULT NULL,
  tankTemperatureRiseTermBCV float DEFAULT NULL,
  PRIMARY KEY (tankTemperatureGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The TankTemperatureRise is used by these modules:

  • Tank Temperature Generator

TankVaporGenCoeffs table

CREATE TABLE tankvaporgencoeffs (
  ethanolLevelID smallint(6) NOT NULL DEFAULT '0',
  altitude char(1) NOT NULL DEFAULT '',
  tvgTermA float DEFAULT NULL,
  tvgTermB float DEFAULT NULL,
  tvgTermC float DEFAULT NULL,
  PRIMARY KEY (ethanolLevelID,altitude)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The TankVaporGenCoeffs is used by these modules:

  • Tank Vapor Venting Calculator

TemperatureAdjustment table

CREATE TABLE temperatureadjustment (
  polProcessID int(11) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  tempAdjustTermA float DEFAULT NULL,
  tempAdjustTermACV float DEFAULT NULL,
  tempAdjustTermB float DEFAULT NULL,
  tempAdjustTermBCV float DEFAULT NULL,
  tempAdjustTermC float DEFAULT NULL,
  tempAdjustTermCCV float DEFAULT NULL,
  minModelYearID smallint(6) NOT NULL DEFAULT '1960',
  maxModelYearID smallint(6) NOT NULL DEFAULT '2050',
  PRIMARY KEY (polProcessID,fuelTypeID,minModelYearID,maxModelYearID),
  KEY polProcessID (polProcessID),
  KEY fuelTypeID (fuelTypeID),
  KEY polProcessID_2 (polProcessID),
  KEY fuelTypeID_2 (fuelTypeID),
  KEY fuelTypeID_3 (fuelTypeID,polProcessID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The TemperatureAdjustment is used by these modules:

  • BaseRateCalculator
  • Evaporative Permeation Calculator

temperatureFactorExpression table

CREATE TABLE temperaturefactorexpression (
  processID smallint(6) NOT NULL,
  pollutantID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  minModelYearID smallint(6) NOT NULL,
  maxModelYearID smallint(6) NOT NULL,
  tempCorrectionExpression varchar(5000) DEFAULT NULL,
  PRIMARY KEY (processID,pollutantID,fuelTypeID,sourceTypeID,minModelYearID,maxModelYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The temperatureFactorExpression is used by these modules:

  • Sulfate PM Calculator

TemperatureProfileID table

CREATE TABLE temperatureprofileid (
  temperatureProfileID bigint(20) NOT NULL,
  zoneID int(11) NOT NULL,
  monthID smallint(6) NOT NULL,
  PRIMARY KEY (temperatureProfileID),
  KEY zoneID (zoneID,monthID,temperatureProfileID),
  KEY monthID (monthID,zoneID,temperatureProfileID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

togSpeciation table

CREATE TABLE togspeciation (
  fuelSubtypeID smallint(6) NOT NULL,
  regClassID smallint(6) NOT NULL,
  processID smallint(6) NOT NULL,
  modelYearGroupID int(11) NOT NULL,
  togSpeciationProfileID varchar(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (fuelSubtypeID,regClassID,processID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The togSpeciation is used by these modules:

  • TOG Speciation Calculator

TOGSpeciationProfile table

CREATE TABLE togspeciationprofile (
  mechanismID smallint(6) NOT NULL,
  togSpeciationProfileID varchar(10) NOT NULL DEFAULT '0',
  integratedSpeciesSetID smallint(6) NOT NULL,
  pollutantID smallint(6) NOT NULL,
  lumpedSpeciesName varchar(20) NOT NULL,
  TOGSpeciationDivisor double DEFAULT NULL,
  TOGSpeciationMassFraction double DEFAULT NULL,
  PRIMARY KEY (mechanismID,togSpeciationProfileID,integratedSpeciesSetID,pollutantID,lumpedSpeciesName)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The TOGSpeciationProfile is used by these modules:

  • TOG Speciation Calculator

TOGSpeciationProfileName table

CREATE TABLE togspeciationprofilename (
  togSpeciationProfileID varchar(10) NOT NULL DEFAULT '0',
  TOGSpeciationProfileName varchar(100) DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (togSpeciationProfileID),
  KEY TOGSpeciationProfileName (TOGSpeciationProfileName)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

WeightClass table

CREATE TABLE weightclass (
  weightClassID smallint(6) NOT NULL DEFAULT '0',
  weightClassName char(50) DEFAULT NULL,
  midpointWeight float DEFAULT NULL,
  PRIMARY KEY (weightClassID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Year table

CREATE TABLE year (
  yearID smallint(6) NOT NULL DEFAULT '0',
  isBaseYear char(1) DEFAULT NULL,
  fuelYearID int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (yearID),
  KEY isBaseYear (isBaseYear)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The Year is used by these modules:

  • Air toxics Calculator
  • BaseRateCalculator
  • CO2AERunningStartExtendedIdleCalculator
  • Evaporative Permeation Calculator
  • Liquid Leaking Calculator
  • Refueling Loss Calculator
  • SO2 Calculator
  • Sulfate PM Calculator
  • Tank Fuel Generator
  • Tank Vapor Venting Calculator
  • TOG Speciation Calculator
  • Total Activity Generator

Zone table

CREATE TABLE zone (
  zoneID int(11) NOT NULL DEFAULT '0',
  countyID int(11) NOT NULL DEFAULT '0',
  startAllocFactor double DEFAULT NULL,
  idleAllocFactor double DEFAULT NULL,
  SHPAllocFactor double DEFAULT NULL,
  PRIMARY KEY (zoneID),
  KEY countyID (countyID),
  KEY zoneID (zoneID,countyID),
  KEY countyID_2 (countyID,zoneID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The Zone is used by these modules:

  • Liquid Leaking Calculator
  • Meteorology Generator
  • Tank Fuel Generator
  • Tank Vapor Venting Calculator
  • Total Activity Generator

ZoneMonthHour table

CREATE TABLE zonemonthhour (
  monthID smallint(6) NOT NULL DEFAULT '0',
  zoneID int(11) NOT NULL DEFAULT '0',
  hourID smallint(6) NOT NULL DEFAULT '0',
  temperature float DEFAULT NULL,
  temperatureCV float DEFAULT NULL,
  relHumidity float DEFAULT NULL,
  heatIndex float DEFAULT NULL,
  specificHumidity float DEFAULT NULL,
  relativeHumidityCV float DEFAULT NULL,
  PRIMARY KEY (hourID,monthID,zoneID),
  KEY monthID (monthID),
  KEY zoneID (zoneID),
  KEY hourID (hourID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ZoneMonthHour is used by these modules:

  • BaseRateCalculator
  • Meteorology Generator
  • Refueling Loss Calculator
  • Sulfate PM Calculator
  • Tank Fuel Generator
  • Tank Temperature Generator
  • Tank Vapor Venting Calculator

ZoneRoadType table

CREATE TABLE zoneroadtype (
  zoneID int(11) NOT NULL DEFAULT '0',
  roadTypeID smallint(6) NOT NULL DEFAULT '0',
  SHOAllocFactor double DEFAULT NULL,
  PRIMARY KEY (roadTypeID,zoneID),
  KEY roadTypeID (roadTypeID,zoneID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ZoneRoadType is used by these modules:

  • Activity Calculator
  • Total Activity Generator

Pollutants and Modules Cross Reference

Pollutant Process Module
Benzene (20) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Benzene (20) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Benzene (20) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
Benzene (20) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
Benzene (20) Evap Tank Permeation (20) Nonroad Air toxics Calculator
Benzene (20) Evap Hose Permeation (21) Nonroad Air toxics Calculator
Benzene (20) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
Benzene (20) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
Benzene (20) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
Benzene (20) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
Benzene (20) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
Benzene (20) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
Ethanol (21) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Ethanol (21) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Ethanol (21) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
Ethanol (21) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
Ethanol (21) Evap Tank Permeation (20) Nonroad Air toxics Calculator
Ethanol (21) Evap Hose Permeation (21) Nonroad Air toxics Calculator
Ethanol (21) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
Ethanol (21) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
Ethanol (21) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
Ethanol (21) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
Ethanol (21) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
Ethanol (21) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
MTBE (22) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
MTBE (22) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
MTBE (22) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
MTBE (22) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
MTBE (22) Evap Tank Permeation (20) Nonroad Air toxics Calculator
MTBE (22) Evap Hose Permeation (21) Nonroad Air toxics Calculator
MTBE (22) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
MTBE (22) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
MTBE (22) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
MTBE (22) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
MTBE (22) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
MTBE (22) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
Naphthalene particle (23) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Naphthalene particle (23) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
1,3-Butadiene (24) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
1,3-Butadiene (24) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Formaldehyde (25) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Formaldehyde (25) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Acetaldehyde (26) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Acetaldehyde (26) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Acrolein (27) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Acrolein (27) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
2,2,4-Trimethylpentane (40) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
2,2,4-Trimethylpentane (40) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
2,2,4-Trimethylpentane (40) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
2,2,4-Trimethylpentane (40) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
2,2,4-Trimethylpentane (40) Evap Tank Permeation (20) Nonroad Air toxics Calculator
2,2,4-Trimethylpentane (40) Evap Hose Permeation (21) Nonroad Air toxics Calculator
2,2,4-Trimethylpentane (40) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
2,2,4-Trimethylpentane (40) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
2,2,4-Trimethylpentane (40) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
2,2,4-Trimethylpentane (40) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
2,2,4-Trimethylpentane (40) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
2,2,4-Trimethylpentane (40) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
Ethyl Benzene (41) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Ethyl Benzene (41) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Ethyl Benzene (41) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
Ethyl Benzene (41) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
Ethyl Benzene (41) Evap Tank Permeation (20) Nonroad Air toxics Calculator
Ethyl Benzene (41) Evap Hose Permeation (21) Nonroad Air toxics Calculator
Ethyl Benzene (41) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
Ethyl Benzene (41) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
Ethyl Benzene (41) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
Ethyl Benzene (41) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
Ethyl Benzene (41) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
Ethyl Benzene (41) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
Hexane (42) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Hexane (42) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Hexane (42) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
Hexane (42) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
Hexane (42) Evap Tank Permeation (20) Nonroad Air toxics Calculator
Hexane (42) Evap Hose Permeation (21) Nonroad Air toxics Calculator
Hexane (42) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
Hexane (42) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
Hexane (42) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
Hexane (42) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
Hexane (42) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
Hexane (42) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
Propionaldehyde (43) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Propionaldehyde (43) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Styrene (44) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Styrene (44) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Toluene (45) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Toluene (45) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Toluene (45) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
Toluene (45) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
Toluene (45) Evap Tank Permeation (20) Nonroad Air toxics Calculator
Toluene (45) Evap Hose Permeation (21) Nonroad Air toxics Calculator
Toluene (45) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
Toluene (45) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
Toluene (45) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
Toluene (45) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
Toluene (45) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
Toluene (45) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
Xylene (46) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Xylene (46) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Xylene (46) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
Xylene (46) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
Xylene (46) Evap Tank Permeation (20) Nonroad Air toxics Calculator
Xylene (46) Evap Hose Permeation (21) Nonroad Air toxics Calculator
Xylene (46) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
Xylene (46) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
Xylene (46) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
Xylene (46) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
Xylene (46) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
Xylene (46) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
Mercury Elemental Gaseous (60) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
Mercury Divalent Gaseous (61) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
Mercury Particulate (62) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
Arsenic Compounds (63) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
Chromium 6+ (65) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
Manganese Compounds (66) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
Nickel Compounds (67) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
Dibenzo(a,h)anthracene particle (68) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Dibenzo(a,h)anthracene particle (68) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Fluoranthene particle (69) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Fluoranthene particle (69) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Acenaphthene particle (70) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Acenaphthene particle (70) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Acenaphthylene particle (71) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Acenaphthylene particle (71) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Anthracene particle (72) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Anthracene particle (72) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Benz(a)anthracene particle (73) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Benz(a)anthracene particle (73) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Benzo(a)pyrene particle (74) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Benzo(a)pyrene particle (74) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Benzo(b)fluoranthene particle (75) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Benzo(b)fluoranthene particle (75) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Benzo(g,h,i)perylene particle (76) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Benzo(g,h,i)perylene particle (76) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Benzo(k)fluoranthene particle (77) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Benzo(k)fluoranthene particle (77) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Chrysene particle (78) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Chrysene particle (78) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Fluorene particle (81) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Fluorene particle (81) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Indeno(1,2,3,c,d)pyrene particle (82) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Indeno(1,2,3,c,d)pyrene particle (82) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Phenanthrene particle (83) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Phenanthrene particle (83) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Pyrene particle (84) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Pyrene particle (84) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
NonHAPTOG (88) Running Exhaust (1) Nonroad Air toxics Calculator TOG Speciation Calculator
NonHAPTOG (88) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator TOG Speciation Calculator
NonHAPTOG (88) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator TOG Speciation Calculator
NonHAPTOG (88) Refueling Spillage Loss (19) Nonroad Air toxics Calculator TOG Speciation Calculator
NonHAPTOG (88) Evap Tank Permeation (20) Nonroad Air toxics Calculator
NonHAPTOG (88) Evap Hose Permeation (21) Nonroad Air toxics Calculator
NonHAPTOG (88) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
NonHAPTOG (88) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
NonHAPTOG (88) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
1,2,3,7,8,9-Hexachlorodibenzo-p-Dioxin (130) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
Octachlorodibenzo-p-dioxin (131) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
1,2,3,4,6,7,8-Heptachlorodibenzo-p-Dioxin (132) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
Octachlorodibenzofuran (133) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
1,2,3,4,7,8-Hexachlorodibenzo-p-Dioxin (134) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
1,2,3,7,8-Pentachlorodibenzo-p-Dioxin (135) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
2,3,7,8-Tetrachlorodibenzofuran (136) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
1,2,3,4,7,8,9-Heptachlorodibenzofuran (137) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
2,3,4,7,8-Pentachlorodibenzofuran (138) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
1,2,3,7,8-Pentachlorodibenzofuran (139) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
1,2,3,6,7,8-Hexachlorodibenzofuran (140) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
1,2,3,6,7,8-Hexachlorodibenzo-p-Dioxin (141) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
2,3,7,8-Tetrachlorodibenzo-p-Dioxin (142) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
2,3,4,6,7,8-Hexachlorodibenzofuran (143) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
1,2,3,4,6,7,8-Heptachlorodibenzofuran (144) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
1,2,3,4,7,8-Hexachlorodibenzofuran (145) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
1,2,3,7,8,9-Hexachlorodibenzofuran (146) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
Dibenzo(a,h)anthracene gas (168) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Dibenzo(a,h)anthracene gas (168) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Fluoranthene gas (169) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Fluoranthene gas (169) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Acenaphthene gas (170) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Acenaphthene gas (170) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Acenaphthylene gas (171) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Acenaphthylene gas (171) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Anthracene gas (172) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Anthracene gas (172) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Benz(a)anthracene gas (173) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Benz(a)anthracene gas (173) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Benzo(a)pyrene gas (174) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Benzo(a)pyrene gas (174) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Benzo(b)fluoranthene gas (175) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Benzo(b)fluoranthene gas (175) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Benzo(g,h,i)perylene gas (176) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Benzo(g,h,i)perylene gas (176) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Benzo(k)fluoranthene gas (177) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Benzo(k)fluoranthene gas (177) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Chrysene gas (178) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Chrysene gas (178) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Fluorene gas (181) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Fluorene gas (181) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Indeno(1,2,3,c,d)pyrene gas (182) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Indeno(1,2,3,c,d)pyrene gas (182) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Phenanthrene gas (183) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Phenanthrene gas (183) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Pyrene gas (184) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Pyrene gas (184) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Naphthalene gas (185) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
Naphthalene gas (185) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
Methane (CH4) (5) Running Exhaust (1) Nonroad HC Speciation Calculator HC Speciation Calculator
Methane (CH4) (5) Crankcase Running Exhaust (15) Nonroad HC Speciation Calculator Crankcase Emission Calculator
Methane (CH4) (5) Refueling Displacement Vapor Loss (18) Nonroad HC Speciation Calculator
Methane (CH4) (5) Refueling Spillage Loss (19) Nonroad HC Speciation Calculator
Methane (CH4) (5) Evap Tank Permeation (20) Nonroad HC Speciation Calculator
Methane (CH4) (5) Evap Hose Permeation (21) Nonroad HC Speciation Calculator
Methane (CH4) (5) Diurnal Fuel Vapor Venting (30) Nonroad HC Speciation Calculator
Methane (CH4) (5) HotSoak Fuel Vapor Venting (31) Nonroad HC Speciation Calculator
Methane (CH4) (5) RunningLoss Fuel Vapor Venting (32) Nonroad HC Speciation Calculator
Non-Methane Hydrocarbons (79) Running Exhaust (1) Nonroad HC Speciation Calculator HC Speciation Calculator
Non-Methane Hydrocarbons (79) Crankcase Running Exhaust (15) Nonroad HC Speciation Calculator Crankcase Emission Calculator
Non-Methane Hydrocarbons (79) Refueling Displacement Vapor Loss (18) Nonroad HC Speciation Calculator HC Speciation Calculator
Non-Methane Hydrocarbons (79) Refueling Spillage Loss (19) Nonroad HC Speciation Calculator HC Speciation Calculator
Non-Methane Hydrocarbons (79) Evap Tank Permeation (20) Nonroad HC Speciation Calculator
Non-Methane Hydrocarbons (79) Evap Hose Permeation (21) Nonroad HC Speciation Calculator
Non-Methane Hydrocarbons (79) Diurnal Fuel Vapor Venting (30) Nonroad HC Speciation Calculator
Non-Methane Hydrocarbons (79) HotSoak Fuel Vapor Venting (31) Nonroad HC Speciation Calculator
Non-Methane Hydrocarbons (79) RunningLoss Fuel Vapor Venting (32) Nonroad HC Speciation Calculator
Non-Methane Organic Gases (80) Running Exhaust (1) Nonroad HC Speciation Calculator HC Speciation Calculator
Non-Methane Organic Gases (80) Crankcase Running Exhaust (15) Nonroad HC Speciation Calculator Crankcase Emission Calculator
Non-Methane Organic Gases (80) Refueling Displacement Vapor Loss (18) Nonroad HC Speciation Calculator HC Speciation Calculator
Non-Methane Organic Gases (80) Refueling Spillage Loss (19) Nonroad HC Speciation Calculator HC Speciation Calculator
Non-Methane Organic Gases (80) Evap Tank Permeation (20) Nonroad HC Speciation Calculator
Non-Methane Organic Gases (80) Evap Hose Permeation (21) Nonroad HC Speciation Calculator
Non-Methane Organic Gases (80) Diurnal Fuel Vapor Venting (30) Nonroad HC Speciation Calculator
Non-Methane Organic Gases (80) HotSoak Fuel Vapor Venting (31) Nonroad HC Speciation Calculator
Non-Methane Organic Gases (80) RunningLoss Fuel Vapor Venting (32) Nonroad HC Speciation Calculator
Total Organic Gases (86) Running Exhaust (1) Nonroad HC Speciation Calculator HC Speciation Calculator
Total Organic Gases (86) Crankcase Running Exhaust (15) Nonroad HC Speciation Calculator Crankcase Emission Calculator
Total Organic Gases (86) Refueling Displacement Vapor Loss (18) Nonroad HC Speciation Calculator HC Speciation Calculator
Total Organic Gases (86) Refueling Spillage Loss (19) Nonroad HC Speciation Calculator HC Speciation Calculator
Total Organic Gases (86) Evap Tank Permeation (20) Nonroad HC Speciation Calculator
Total Organic Gases (86) Evap Hose Permeation (21) Nonroad HC Speciation Calculator
Total Organic Gases (86) Diurnal Fuel Vapor Venting (30) Nonroad HC Speciation Calculator
Total Organic Gases (86) HotSoak Fuel Vapor Venting (31) Nonroad HC Speciation Calculator
Total Organic Gases (86) RunningLoss Fuel Vapor Venting (32) Nonroad HC Speciation Calculator
Volatile Organic Compounds (87) Running Exhaust (1) Nonroad HC Speciation Calculator HC Speciation Calculator
Volatile Organic Compounds (87) Crankcase Running Exhaust (15) Nonroad HC Speciation Calculator Crankcase Emission Calculator
Volatile Organic Compounds (87) Refueling Displacement Vapor Loss (18) Nonroad HC Speciation Calculator HC Speciation Calculator
Volatile Organic Compounds (87) Refueling Spillage Loss (19) Nonroad HC Speciation Calculator HC Speciation Calculator
Volatile Organic Compounds (87) Evap Tank Permeation (20) Nonroad HC Speciation Calculator
Volatile Organic Compounds (87) Evap Hose Permeation (21) Nonroad HC Speciation Calculator
Volatile Organic Compounds (87) Diurnal Fuel Vapor Venting (30) Nonroad HC Speciation Calculator
Volatile Organic Compounds (87) HotSoak Fuel Vapor Venting (31) Nonroad HC Speciation Calculator
Volatile Organic Compounds (87) RunningLoss Fuel Vapor Venting (32) Nonroad HC Speciation Calculator
Total Gaseous Hydrocarbons (1) HotSoak Fuel Vapor Venting (31) Nonroad Calculator
Total Gaseous Hydrocarbons (1) Diurnal Fuel Vapor Venting (30) Nonroad Calculator
Total Gaseous Hydrocarbons (1) Refueling Displacement Vapor Loss (18) Nonroad Calculator Refueling Loss Calculator
Total Gaseous Hydrocarbons (1) Refueling Spillage Loss (19) Nonroad Calculator Refueling Loss Calculator
Total Gaseous Hydrocarbons (1) RunningLoss Fuel Vapor Venting (32) Nonroad Calculator
Total Gaseous Hydrocarbons (1) Evap Tank Permeation (20) Nonroad Calculator
Total Gaseous Hydrocarbons (1) Evap Hose Permeation (21) Nonroad Calculator
Atmospheric CO2 (90) Running Exhaust (1) Nonroad Calculator CO2AERunningStartExtendedIdleCalculator
Total Energy Consumption (91) Running Exhaust (1) Nonroad Calculator BaseRateCalculator
Brake Specific Fuel Consumption (BSFC) (99) Running Exhaust (1) Nonroad Calculator
Total Gaseous Hydrocarbons (1) Running Exhaust (1) Nonroad Calculator BaseRateCalculator
Carbon Monoxide (CO) (2) Running Exhaust (1) Nonroad Calculator BaseRateCalculator
Oxides of Nitrogen (NOx) (3) Running Exhaust (1) Nonroad Calculator BaseRateCalculator
Ammonia (NH3) (30) Running Exhaust (1) Nonroad Calculator BaseRateCalculator
Sulfur Dioxide (SO2) (31) Running Exhaust (1) Nonroad Calculator SO2 Calculator
Primary Exhaust PM10 - Total (100) Running Exhaust (1) Nonroad Calculator PM10 Emission Calculator
Primary Exhaust PM2.5 - Total (110) Running Exhaust (1) Nonroad Calculator Sulfate PM Calculator
Total Gaseous Hydrocarbons (1) Crankcase Running Exhaust (15) Nonroad Calculator Crankcase Emission Calculator
Benzene (20) Start Exhaust (2) Air toxics Calculator
Benzene (20) Evap Permeation (11) Air toxics Calculator
Benzene (20) Evap Fuel Vapor Venting (12) Air toxics Calculator
Benzene (20) Evap Fuel Leaks (13) Air toxics Calculator
Benzene (20) Extended Idle Exhaust (90) Air toxics Calculator
Benzene (20) Auxiliary Power Exhaust (91) Air toxics Calculator
Ethanol (21) Start Exhaust (2) Air toxics Calculator
Ethanol (21) Evap Permeation (11) Air toxics Calculator
Ethanol (21) Evap Fuel Vapor Venting (12) Air toxics Calculator
Ethanol (21) Evap Fuel Leaks (13) Air toxics Calculator
MTBE (22) Start Exhaust (2) Air toxics Calculator
MTBE (22) Evap Permeation (11) Air toxics Calculator
MTBE (22) Evap Fuel Vapor Venting (12) Air toxics Calculator
MTBE (22) Evap Fuel Leaks (13) Air toxics Calculator
Naphthalene particle (23) Start Exhaust (2) Air toxics Calculator
Naphthalene particle (23) Extended Idle Exhaust (90) Air toxics Calculator
Naphthalene particle (23) Auxiliary Power Exhaust (91) Air toxics Calculator
1,3-Butadiene (24) Start Exhaust (2) Air toxics Calculator
1,3-Butadiene (24) Extended Idle Exhaust (90) Air toxics Calculator
1,3-Butadiene (24) Auxiliary Power Exhaust (91) Air toxics Calculator
Formaldehyde (25) Start Exhaust (2) Air toxics Calculator
Formaldehyde (25) Extended Idle Exhaust (90) Air toxics Calculator
Formaldehyde (25) Auxiliary Power Exhaust (91) Air toxics Calculator
Acetaldehyde (26) Start Exhaust (2) Air toxics Calculator
Acetaldehyde (26) Extended Idle Exhaust (90) Air toxics Calculator
Acetaldehyde (26) Auxiliary Power Exhaust (91) Air toxics Calculator
Acrolein (27) Start Exhaust (2) Air toxics Calculator
Acrolein (27) Extended Idle Exhaust (90) Air toxics Calculator
Acrolein (27) Auxiliary Power Exhaust (91) Air toxics Calculator
2,2,4-Trimethylpentane (40) Start Exhaust (2) Air toxics Calculator
2,2,4-Trimethylpentane (40) Evap Permeation (11) Air toxics Calculator
2,2,4-Trimethylpentane (40) Evap Fuel Vapor Venting (12) Air toxics Calculator
2,2,4-Trimethylpentane (40) Evap Fuel Leaks (13) Air toxics Calculator
2,2,4-Trimethylpentane (40) Extended Idle Exhaust (90) Air toxics Calculator
2,2,4-Trimethylpentane (40) Auxiliary Power Exhaust (91) Air toxics Calculator
Ethyl Benzene (41) Start Exhaust (2) Air toxics Calculator
Ethyl Benzene (41) Evap Permeation (11) Air toxics Calculator
Ethyl Benzene (41) Evap Fuel Vapor Venting (12) Air toxics Calculator
Ethyl Benzene (41) Evap Fuel Leaks (13) Air toxics Calculator
Ethyl Benzene (41) Extended Idle Exhaust (90) Air toxics Calculator
Ethyl Benzene (41) Auxiliary Power Exhaust (91) Air toxics Calculator
Hexane (42) Start Exhaust (2) Air toxics Calculator
Hexane (42) Evap Permeation (11) Air toxics Calculator
Hexane (42) Evap Fuel Vapor Venting (12) Air toxics Calculator
Hexane (42) Evap Fuel Leaks (13) Air toxics Calculator
Hexane (42) Extended Idle Exhaust (90) Air toxics Calculator
Hexane (42) Auxiliary Power Exhaust (91) Air toxics Calculator
Propionaldehyde (43) Start Exhaust (2) Air toxics Calculator
Propionaldehyde (43) Extended Idle Exhaust (90) Air toxics Calculator
Propionaldehyde (43) Auxiliary Power Exhaust (91) Air toxics Calculator
Styrene (44) Start Exhaust (2) Air toxics Calculator
Styrene (44) Extended Idle Exhaust (90) Air toxics Calculator
Styrene (44) Auxiliary Power Exhaust (91) Air toxics Calculator
Toluene (45) Start Exhaust (2) Air toxics Calculator
Toluene (45) Evap Permeation (11) Air toxics Calculator
Toluene (45) Evap Fuel Vapor Venting (12) Air toxics Calculator
Toluene (45) Evap Fuel Leaks (13) Air toxics Calculator
Toluene (45) Extended Idle Exhaust (90) Air toxics Calculator
Toluene (45) Auxiliary Power Exhaust (91) Air toxics Calculator
Xylene (46) Start Exhaust (2) Air toxics Calculator
Xylene (46) Evap Permeation (11) Air toxics Calculator
Xylene (46) Evap Fuel Vapor Venting (12) Air toxics Calculator
Xylene (46) Evap Fuel Leaks (13) Air toxics Calculator
Xylene (46) Extended Idle Exhaust (90) Air toxics Calculator
Xylene (46) Auxiliary Power Exhaust (91) Air toxics Calculator
Dibenzo(a,h)anthracene particle (68) Start Exhaust (2) Air toxics Calculator
Fluoranthene particle (69) Start Exhaust (2) Air toxics Calculator
Acenaphthene particle (70) Start Exhaust (2) Air toxics Calculator
Acenaphthylene particle (71) Start Exhaust (2) Air toxics Calculator
Anthracene particle (72) Start Exhaust (2) Air toxics Calculator
Benz(a)anthracene particle (73) Start Exhaust (2) Air toxics Calculator
Benzo(a)pyrene particle (74) Start Exhaust (2) Air toxics Calculator
Benzo(b)fluoranthene particle (75) Start Exhaust (2) Air toxics Calculator
Benzo(g,h,i)perylene particle (76) Start Exhaust (2) Air toxics Calculator
Benzo(k)fluoranthene particle (77) Start Exhaust (2) Air toxics Calculator
Chrysene particle (78) Start Exhaust (2) Air toxics Calculator
Fluorene particle (81) Start Exhaust (2) Air toxics Calculator
Indeno(1,2,3,c,d)pyrene particle (82) Start Exhaust (2) Air toxics Calculator
Phenanthrene particle (83) Start Exhaust (2) Air toxics Calculator
Pyrene particle (84) Start Exhaust (2) Air toxics Calculator
Dibenzo(a,h)anthracene gas (168) Start Exhaust (2) Air toxics Calculator
Dibenzo(a,h)anthracene gas (168) Extended Idle Exhaust (90) Air toxics Calculator
Dibenzo(a,h)anthracene gas (168) Auxiliary Power Exhaust (91) Air toxics Calculator
Fluoranthene gas (169) Start Exhaust (2) Air toxics Calculator
Fluoranthene gas (169) Extended Idle Exhaust (90) Air toxics Calculator
Fluoranthene gas (169) Auxiliary Power Exhaust (91) Air toxics Calculator
Acenaphthene gas (170) Start Exhaust (2) Air toxics Calculator
Acenaphthene gas (170) Extended Idle Exhaust (90) Air toxics Calculator
Acenaphthene gas (170) Auxiliary Power Exhaust (91) Air toxics Calculator
Acenaphthylene gas (171) Start Exhaust (2) Air toxics Calculator
Acenaphthylene gas (171) Extended Idle Exhaust (90) Air toxics Calculator
Acenaphthylene gas (171) Auxiliary Power Exhaust (91) Air toxics Calculator
Anthracene gas (172) Start Exhaust (2) Air toxics Calculator
Anthracene gas (172) Extended Idle Exhaust (90) Air toxics Calculator
Anthracene gas (172) Auxiliary Power Exhaust (91) Air toxics Calculator
Benz(a)anthracene gas (173) Start Exhaust (2) Air toxics Calculator
Benz(a)anthracene gas (173) Extended Idle Exhaust (90) Air toxics Calculator
Benz(a)anthracene gas (173) Auxiliary Power Exhaust (91) Air toxics Calculator
Benzo(a)pyrene gas (174) Start Exhaust (2) Air toxics Calculator
Benzo(a)pyrene gas (174) Extended Idle Exhaust (90) Air toxics Calculator
Benzo(a)pyrene gas (174) Auxiliary Power Exhaust (91) Air toxics Calculator
Benzo(b)fluoranthene gas (175) Start Exhaust (2) Air toxics Calculator
Benzo(b)fluoranthene gas (175) Extended Idle Exhaust (90) Air toxics Calculator
Benzo(b)fluoranthene gas (175) Auxiliary Power Exhaust (91) Air toxics Calculator
Benzo(g,h,i)perylene gas (176) Start Exhaust (2) Air toxics Calculator
Benzo(g,h,i)perylene gas (176) Extended Idle Exhaust (90) Air toxics Calculator
Benzo(g,h,i)perylene gas (176) Auxiliary Power Exhaust (91) Air toxics Calculator
Benzo(k)fluoranthene gas (177) Start Exhaust (2) Air toxics Calculator
Benzo(k)fluoranthene gas (177) Extended Idle Exhaust (90) Air toxics Calculator
Benzo(k)fluoranthene gas (177) Auxiliary Power Exhaust (91) Air toxics Calculator
Chrysene gas (178) Start Exhaust (2) Air toxics Calculator
Chrysene gas (178) Extended Idle Exhaust (90) Air toxics Calculator
Chrysene gas (178) Auxiliary Power Exhaust (91) Air toxics Calculator
Fluorene gas (181) Start Exhaust (2) Air toxics Calculator
Fluorene gas (181) Extended Idle Exhaust (90) Air toxics Calculator
Fluorene gas (181) Auxiliary Power Exhaust (91) Air toxics Calculator
Indeno(1,2,3,c,d)pyrene gas (182) Start Exhaust (2) Air toxics Calculator
Indeno(1,2,3,c,d)pyrene gas (182) Extended Idle Exhaust (90) Air toxics Calculator
Indeno(1,2,3,c,d)pyrene gas (182) Auxiliary Power Exhaust (91) Air toxics Calculator
Phenanthrene gas (183) Start Exhaust (2) Air toxics Calculator
Phenanthrene gas (183) Extended Idle Exhaust (90) Air toxics Calculator
Phenanthrene gas (183) Auxiliary Power Exhaust (91) Air toxics Calculator
Pyrene gas (184) Start Exhaust (2) Air toxics Calculator
Pyrene gas (184) Extended Idle Exhaust (90) Air toxics Calculator
Pyrene gas (184) Auxiliary Power Exhaust (91) Air toxics Calculator
Naphthalene gas (185) Start Exhaust (2) Air toxics Calculator
Naphthalene gas (185) Evap Permeation (11) Air toxics Calculator
Naphthalene gas (185) Evap Fuel Vapor Venting (12) Air toxics Calculator
Naphthalene gas (185) Evap Fuel Leaks (13) Air toxics Calculator
Naphthalene gas (185) Refueling Displacement Vapor Loss (18) Air toxics Calculator
Naphthalene gas (185) Refueling Spillage Loss (19) Air toxics Calculator
Naphthalene gas (185) Extended Idle Exhaust (90) Air toxics Calculator
Naphthalene gas (185) Auxiliary Power Exhaust (91) Air toxics Calculator
Total Gaseous Hydrocarbons (1) Start Exhaust (2) BaseRateCalculator
Total Gaseous Hydrocarbons (1) Brakewear (9) BaseRateCalculator
Total Gaseous Hydrocarbons (1) Tirewear (10) BaseRateCalculator
Total Gaseous Hydrocarbons (1) Extended Idle Exhaust (90) BaseRateCalculator
Total Gaseous Hydrocarbons (1) Auxiliary Power Exhaust (91) BaseRateCalculator
Carbon Monoxide (CO) (2) Start Exhaust (2) BaseRateCalculator
Carbon Monoxide (CO) (2) Brakewear (9) BaseRateCalculator
Carbon Monoxide (CO) (2) Tirewear (10) BaseRateCalculator
Carbon Monoxide (CO) (2) Extended Idle Exhaust (90) BaseRateCalculator
Carbon Monoxide (CO) (2) Auxiliary Power Exhaust (91) BaseRateCalculator
Oxides of Nitrogen (NOx) (3) Start Exhaust (2) BaseRateCalculator
Oxides of Nitrogen (NOx) (3) Brakewear (9) BaseRateCalculator
Oxides of Nitrogen (NOx) (3) Tirewear (10) BaseRateCalculator
Oxides of Nitrogen (NOx) (3) Extended Idle Exhaust (90) BaseRateCalculator
Oxides of Nitrogen (NOx) (3) Auxiliary Power Exhaust (91) BaseRateCalculator
Nitrous Oxide (N2O) (6) Running Exhaust (1) BaseRateCalculator
Nitrous Oxide (N2O) (6) Start Exhaust (2) BaseRateCalculator
Nitrous Oxide (N2O) (6) Brakewear (9) BaseRateCalculator
Nitrous Oxide (N2O) (6) Tirewear (10) BaseRateCalculator
Nitrous Oxide (N2O) (6) Extended Idle Exhaust (90) BaseRateCalculator
Nitrous Oxide (N2O) (6) Auxiliary Power Exhaust (91) BaseRateCalculator
Ammonia (NH3) (30) Start Exhaust (2) BaseRateCalculator
Ammonia (NH3) (30) Brakewear (9) BaseRateCalculator
Ammonia (NH3) (30) Tirewear (10) BaseRateCalculator
Ammonia (NH3) (30) Extended Idle Exhaust (90) BaseRateCalculator
Ammonia (NH3) (30) Auxiliary Power Exhaust (91) BaseRateCalculator
Total Energy Consumption (91) Start Exhaust (2) BaseRateCalculator
Total Energy Consumption (91) Brakewear (9) BaseRateCalculator
Total Energy Consumption (91) Tirewear (10) BaseRateCalculator
Total Energy Consumption (91) Extended Idle Exhaust (90) BaseRateCalculator
Total Energy Consumption (91) Auxiliary Power Exhaust (91) BaseRateCalculator
Composite - NonECPM (118) Running Exhaust (1) BaseRateCalculator Sulfate PM Calculator
Composite - NonECPM (118) Start Exhaust (2) BaseRateCalculator Sulfate PM Calculator
Composite - NonECPM (118) Brakewear (9) BaseRateCalculator
Composite - NonECPM (118) Tirewear (10) BaseRateCalculator
Composite - NonECPM (118) Extended Idle Exhaust (90) BaseRateCalculator Sulfate PM Calculator
Composite - NonECPM (118) Auxiliary Power Exhaust (91) BaseRateCalculator Sulfate PM Calculator
Elemental Carbon (112) Running Exhaust (1) BaseRateCalculator Sulfate PM Calculator
Elemental Carbon (112) Start Exhaust (2) BaseRateCalculator Sulfate PM Calculator
Elemental Carbon (112) Brakewear (9) BaseRateCalculator
Elemental Carbon (112) Tirewear (10) BaseRateCalculator
Elemental Carbon (112) Extended Idle Exhaust (90) BaseRateCalculator Sulfate PM Calculator
Elemental Carbon (112) Auxiliary Power Exhaust (91) BaseRateCalculator Sulfate PM Calculator
Primary PM2.5 - Brakewear Particulate (116) Running Exhaust (1) BaseRateCalculator
Primary PM2.5 - Brakewear Particulate (116) Start Exhaust (2) BaseRateCalculator
Primary PM2.5 - Brakewear Particulate (116) Brakewear (9) BaseRateCalculator
Primary PM2.5 - Brakewear Particulate (116) Tirewear (10) BaseRateCalculator
Primary PM2.5 - Brakewear Particulate (116) Extended Idle Exhaust (90) BaseRateCalculator
Primary PM2.5 - Brakewear Particulate (116) Auxiliary Power Exhaust (91) BaseRateCalculator
Primary PM2.5 - Tirewear Particulate (117) Running Exhaust (1) BaseRateCalculator
Primary PM2.5 - Tirewear Particulate (117) Start Exhaust (2) BaseRateCalculator
Primary PM2.5 - Tirewear Particulate (117) Brakewear (9) BaseRateCalculator
Primary PM2.5 - Tirewear Particulate (117) Tirewear (10) BaseRateCalculator
Primary PM2.5 - Tirewear Particulate (117) Extended Idle Exhaust (90) BaseRateCalculator
Primary PM2.5 - Tirewear Particulate (117) Auxiliary Power Exhaust (91) BaseRateCalculator
Petroleum Energy Consumption (92) Running Exhaust (1) BaseRateCalculator
Petroleum Energy Consumption (92) Start Exhaust (2) BaseRateCalculator
Petroleum Energy Consumption (92) Brakewear (9) BaseRateCalculator
Petroleum Energy Consumption (92) Tirewear (10) BaseRateCalculator
Petroleum Energy Consumption (92) Extended Idle Exhaust (90) BaseRateCalculator
Petroleum Energy Consumption (92) Auxiliary Power Exhaust (91) BaseRateCalculator
Fossil Fuel Energy Consumption (93) Running Exhaust (1) BaseRateCalculator
Fossil Fuel Energy Consumption (93) Start Exhaust (2) BaseRateCalculator
Fossil Fuel Energy Consumption (93) Brakewear (9) BaseRateCalculator
Fossil Fuel Energy Consumption (93) Tirewear (10) BaseRateCalculator
Fossil Fuel Energy Consumption (93) Extended Idle Exhaust (90) BaseRateCalculator
Fossil Fuel Energy Consumption (93) Auxiliary Power Exhaust (91) BaseRateCalculator
CO2 Equivalent (98) Running Exhaust (1) CO2AERunningStartExtendedIdleCalculator
Atmospheric CO2 (90) Start Exhaust (2) CO2AERunningStartExtendedIdleCalculator
CO2 Equivalent (98) Start Exhaust (2) CO2AERunningStartExtendedIdleCalculator
Atmospheric CO2 (90) Extended Idle Exhaust (90) CO2AERunningStartExtendedIdleCalculator
CO2 Equivalent (98) Extended Idle Exhaust (90) CO2AERunningStartExtendedIdleCalculator
Atmospheric CO2 (90) Auxiliary Power Exhaust (91) CO2AERunningStartExtendedIdleCalculator
CO2 Equivalent (98) Auxiliary Power Exhaust (91) CO2AERunningStartExtendedIdleCalculator
Carbon Monoxide (CO) (2) Crankcase Running Exhaust (15) Crankcase Emission Calculator
Oxides of Nitrogen (NOx) (3) Crankcase Running Exhaust (15) Crankcase Emission Calculator
Nitrous Oxide (N2O) (6) Crankcase Running Exhaust (15) Crankcase Emission Calculator
Ammonia (NH3) (30) Crankcase Running Exhaust (15) Crankcase Emission Calculator
Sulfur Dioxide (SO2) (31) Crankcase Running Exhaust (15) Crankcase Emission Calculator
Nitrogen Oxide (NO) (32) Crankcase Running Exhaust (15) Crankcase Emission Calculator
Nitrogen Dioxide (NO2) (33) Crankcase Running Exhaust (15) Crankcase Emission Calculator
Nitrous Acid (HONO) (34) Crankcase Running Exhaust (15) Crankcase Emission Calculator
Total Gaseous Hydrocarbons (1) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Carbon Monoxide (CO) (2) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Oxides of Nitrogen (NOx) (3) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Methane (CH4) (5) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Nitrous Oxide (N2O) (6) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Benzene (20) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Ethanol (21) Crankcase Start Exhaust (16) Crankcase Emission Calculator
MTBE (22) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Naphthalene particle (23) Crankcase Start Exhaust (16) Crankcase Emission Calculator
1,3-Butadiene (24) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Formaldehyde (25) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Acetaldehyde (26) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Acrolein (27) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Ammonia (NH3) (30) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Sulfur Dioxide (SO2) (31) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Nitrogen Oxide (NO) (32) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Nitrogen Dioxide (NO2) (33) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Nitrous Acid (HONO) (34) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Non-Methane Hydrocarbons (79) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Non-Methane Organic Gases (80) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Total Organic Gases (86) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Volatile Organic Compounds (87) Crankcase Start Exhaust (16) Crankcase Emission Calculator
2,2,4-Trimethylpentane (40) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Ethyl Benzene (41) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Hexane (42) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Propionaldehyde (43) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Styrene (44) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Toluene (45) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Xylene (46) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Dibenzo(a,h)anthracene particle (68) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Fluoranthene particle (69) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Acenaphthene particle (70) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Acenaphthylene particle (71) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Anthracene particle (72) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Benz(a)anthracene particle (73) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Benzo(a)pyrene particle (74) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Benzo(b)fluoranthene particle (75) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Benzo(g,h,i)perylene particle (76) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Benzo(k)fluoranthene particle (77) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Chrysene particle (78) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Fluorene particle (81) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Indeno(1,2,3,c,d)pyrene particle (82) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Phenanthrene particle (83) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Pyrene particle (84) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Dibenzo(a,h)anthracene gas (168) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Fluoranthene gas (169) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Acenaphthene gas (170) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Acenaphthylene gas (171) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Anthracene gas (172) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Benz(a)anthracene gas (173) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Benzo(a)pyrene gas (174) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Benzo(b)fluoranthene gas (175) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Benzo(g,h,i)perylene gas (176) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Benzo(k)fluoranthene gas (177) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Chrysene gas (178) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Fluorene gas (181) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Indeno(1,2,3,c,d)pyrene gas (182) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Phenanthrene gas (183) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Pyrene gas (184) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Naphthalene gas (185) Crankcase Start Exhaust (16) Crankcase Emission Calculator
Total Gaseous Hydrocarbons (1) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Carbon Monoxide (CO) (2) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Oxides of Nitrogen (NOx) (3) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Methane (CH4) (5) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Nitrous Oxide (N2O) (6) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Benzene (20) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Ethanol (21) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
MTBE (22) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Naphthalene particle (23) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
1,3-Butadiene (24) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Formaldehyde (25) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Acetaldehyde (26) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Acrolein (27) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Ammonia (NH3) (30) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Sulfur Dioxide (SO2) (31) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Nitrogen Oxide (NO) (32) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Nitrogen Dioxide (NO2) (33) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Nitrous Acid (HONO) (34) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Non-Methane Hydrocarbons (79) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Non-Methane Organic Gases (80) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Total Organic Gases (86) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Volatile Organic Compounds (87) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
2,2,4-Trimethylpentane (40) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Ethyl Benzene (41) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Hexane (42) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Propionaldehyde (43) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Styrene (44) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Toluene (45) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Xylene (46) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Dibenzo(a,h)anthracene particle (68) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Fluoranthene particle (69) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Acenaphthene particle (70) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Acenaphthylene particle (71) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Anthracene particle (72) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Benz(a)anthracene particle (73) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Benzo(a)pyrene particle (74) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Benzo(b)fluoranthene particle (75) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Benzo(g,h,i)perylene particle (76) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Benzo(k)fluoranthene particle (77) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Chrysene particle (78) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Fluorene particle (81) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Indeno(1,2,3,c,d)pyrene particle (82) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Phenanthrene particle (83) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Pyrene particle (84) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Dibenzo(a,h)anthracene gas (168) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Fluoranthene gas (169) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Acenaphthene gas (170) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Acenaphthylene gas (171) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Anthracene gas (172) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Benz(a)anthracene gas (173) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Benzo(a)pyrene gas (174) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Benzo(b)fluoranthene gas (175) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Benzo(g,h,i)perylene gas (176) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Benzo(k)fluoranthene gas (177) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Chrysene gas (178) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Fluorene gas (181) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Indeno(1,2,3,c,d)pyrene gas (182) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Phenanthrene gas (183) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Pyrene gas (184) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Naphthalene gas (185) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
Total Gaseous Hydrocarbons (1) Evap Permeation (11) Evaporative Permeation Calculator
Methane (CH4) (5) Start Exhaust (2) HC Speciation Calculator
Non-Methane Hydrocarbons (79) Start Exhaust (2) HC Speciation Calculator
Non-Methane Organic Gases (80) Start Exhaust (2) HC Speciation Calculator
Total Organic Gases (86) Start Exhaust (2) HC Speciation Calculator
Volatile Organic Compounds (87) Start Exhaust (2) HC Speciation Calculator
Non-Methane Hydrocarbons (79) Evap Permeation (11) HC Speciation Calculator
Non-Methane Organic Gases (80) Evap Permeation (11) HC Speciation Calculator
Total Organic Gases (86) Evap Permeation (11) HC Speciation Calculator
Volatile Organic Compounds (87) Evap Permeation (11) HC Speciation Calculator
Non-Methane Hydrocarbons (79) Evap Fuel Vapor Venting (12) HC Speciation Calculator
Non-Methane Organic Gases (80) Evap Fuel Vapor Venting (12) HC Speciation Calculator
Total Organic Gases (86) Evap Fuel Vapor Venting (12) HC Speciation Calculator
Volatile Organic Compounds (87) Evap Fuel Vapor Venting (12) HC Speciation Calculator
Non-Methane Hydrocarbons (79) Evap Fuel Leaks (13) HC Speciation Calculator
Non-Methane Organic Gases (80) Evap Fuel Leaks (13) HC Speciation Calculator
Total Organic Gases (86) Evap Fuel Leaks (13) HC Speciation Calculator
Volatile Organic Compounds (87) Evap Fuel Leaks (13) HC Speciation Calculator
Methane (CH4) (5) Extended Idle Exhaust (90) HC Speciation Calculator
Non-Methane Hydrocarbons (79) Extended Idle Exhaust (90) HC Speciation Calculator
Non-Methane Organic Gases (80) Extended Idle Exhaust (90) HC Speciation Calculator
Total Organic Gases (86) Extended Idle Exhaust (90) HC Speciation Calculator
Volatile Organic Compounds (87) Extended Idle Exhaust (90) HC Speciation Calculator
Methane (CH4) (5) Auxiliary Power Exhaust (91) HC Speciation Calculator
Non-Methane Hydrocarbons (79) Auxiliary Power Exhaust (91) HC Speciation Calculator
Non-Methane Organic Gases (80) Auxiliary Power Exhaust (91) HC Speciation Calculator
Total Organic Gases (86) Auxiliary Power Exhaust (91) HC Speciation Calculator
Volatile Organic Compounds (87) Auxiliary Power Exhaust (91) HC Speciation Calculator
Total Gaseous Hydrocarbons (1) Evap Fuel Leaks (13) Liquid Leaking Calculator
Nitrogen Dioxide (NO2) (33) Running Exhaust (1) NO2 Calculator
Nitrogen Dioxide (NO2) (33) Start Exhaust (2) NO2 Calculator
Nitrogen Dioxide (NO2) (33) Extended Idle Exhaust (90) NO2 Calculator
Nitrogen Dioxide (NO2) (33) Auxiliary Power Exhaust (91) NO2 Calculator
Nitrogen Oxide (NO) (32) Running Exhaust (1) NO Calculator
Nitrogen Oxide (NO) (32) Start Exhaust (2) NO Calculator
Nitrogen Oxide (NO) (32) Extended Idle Exhaust (90) NO Calculator
Nitrogen Oxide (NO) (32) Auxiliary Power Exhaust (91) NO Calculator
Nitrous Acid (HONO) (34) Running Exhaust (1) NO Calculator
Nitrous Acid (HONO) (34) Start Exhaust (2) NO Calculator
Nitrous Acid (HONO) (34) Extended Idle Exhaust (90) NO Calculator
Nitrous Acid (HONO) (34) Auxiliary Power Exhaust (91) NO Calculator
Primary PM10 - Brakewear Particulate (106) Brakewear (9) PM10 Brake Tire Calculator
Primary PM10 - Tirewear Particulate (107) Tirewear (10) PM10 Brake Tire Calculator
Primary Exhaust PM10 - Total (100) Start Exhaust (2) PM10 Emission Calculator
Primary Exhaust PM10 - Total (100) Extended Idle Exhaust (90) PM10 Emission Calculator
Primary Exhaust PM10 - Total (100) Auxiliary Power Exhaust (91) PM10 Emission Calculator
Primary Exhaust PM10 - Total (100) Crankcase Running Exhaust (15) PM10 Emission Calculator
Primary Exhaust PM10 - Total (100) Crankcase Start Exhaust (16) PM10 Emission Calculator
Primary Exhaust PM10 - Total (100) Crankcase Extended Idle Exhaust (17) PM10 Emission Calculator
Sulfur Dioxide (SO2) (31) Start Exhaust (2) SO2 Calculator
Sulfur Dioxide (SO2) (31) Extended Idle Exhaust (90) SO2 Calculator
Sulfur Dioxide (SO2) (31) Auxiliary Power Exhaust (91) SO2 Calculator
Nitrate (NO3) (35) Running Exhaust (1) Sulfate PM Calculator
Nitrate (NO3) (35) Start Exhaust (2) Sulfate PM Calculator
Nitrate (NO3) (35) Extended Idle Exhaust (90) Sulfate PM Calculator
Nitrate (NO3) (35) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Nitrate (NO3) (35) Crankcase Running Exhaust (15) Sulfate PM Calculator
Nitrate (NO3) (35) Crankcase Start Exhaust (16) Sulfate PM Calculator
Nitrate (NO3) (35) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Ammonium (NH4) (36) Running Exhaust (1) Sulfate PM Calculator
Ammonium (NH4) (36) Start Exhaust (2) Sulfate PM Calculator
Ammonium (NH4) (36) Extended Idle Exhaust (90) Sulfate PM Calculator
Ammonium (NH4) (36) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Ammonium (NH4) (36) Crankcase Running Exhaust (15) Sulfate PM Calculator
Ammonium (NH4) (36) Crankcase Start Exhaust (16) Sulfate PM Calculator
Ammonium (NH4) (36) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Chloride (51) Running Exhaust (1) Sulfate PM Calculator
Chloride (51) Start Exhaust (2) Sulfate PM Calculator
Chloride (51) Extended Idle Exhaust (90) Sulfate PM Calculator
Chloride (51) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Chloride (51) Crankcase Running Exhaust (15) Sulfate PM Calculator
Chloride (51) Crankcase Start Exhaust (16) Sulfate PM Calculator
Chloride (51) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Sodium (52) Running Exhaust (1) Sulfate PM Calculator
Sodium (52) Start Exhaust (2) Sulfate PM Calculator
Sodium (52) Extended Idle Exhaust (90) Sulfate PM Calculator
Sodium (52) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Sodium (52) Crankcase Running Exhaust (15) Sulfate PM Calculator
Sodium (52) Crankcase Start Exhaust (16) Sulfate PM Calculator
Sodium (52) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Potassium (53) Running Exhaust (1) Sulfate PM Calculator
Potassium (53) Start Exhaust (2) Sulfate PM Calculator
Potassium (53) Extended Idle Exhaust (90) Sulfate PM Calculator
Potassium (53) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Potassium (53) Crankcase Running Exhaust (15) Sulfate PM Calculator
Potassium (53) Crankcase Start Exhaust (16) Sulfate PM Calculator
Potassium (53) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Magnesium (54) Running Exhaust (1) Sulfate PM Calculator
Magnesium (54) Start Exhaust (2) Sulfate PM Calculator
Magnesium (54) Extended Idle Exhaust (90) Sulfate PM Calculator
Magnesium (54) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Magnesium (54) Crankcase Running Exhaust (15) Sulfate PM Calculator
Magnesium (54) Crankcase Start Exhaust (16) Sulfate PM Calculator
Magnesium (54) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Calcium (55) Running Exhaust (1) Sulfate PM Calculator
Calcium (55) Start Exhaust (2) Sulfate PM Calculator
Calcium (55) Extended Idle Exhaust (90) Sulfate PM Calculator
Calcium (55) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Calcium (55) Crankcase Running Exhaust (15) Sulfate PM Calculator
Calcium (55) Crankcase Start Exhaust (16) Sulfate PM Calculator
Calcium (55) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Titanium (56) Running Exhaust (1) Sulfate PM Calculator
Titanium (56) Start Exhaust (2) Sulfate PM Calculator
Titanium (56) Extended Idle Exhaust (90) Sulfate PM Calculator
Titanium (56) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Titanium (56) Crankcase Running Exhaust (15) Sulfate PM Calculator
Titanium (56) Crankcase Start Exhaust (16) Sulfate PM Calculator
Titanium (56) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Silicon (57) Running Exhaust (1) Sulfate PM Calculator
Silicon (57) Start Exhaust (2) Sulfate PM Calculator
Silicon (57) Extended Idle Exhaust (90) Sulfate PM Calculator
Silicon (57) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Silicon (57) Crankcase Running Exhaust (15) Sulfate PM Calculator
Silicon (57) Crankcase Start Exhaust (16) Sulfate PM Calculator
Silicon (57) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Aluminum (58) Running Exhaust (1) Sulfate PM Calculator
Aluminum (58) Start Exhaust (2) Sulfate PM Calculator
Aluminum (58) Extended Idle Exhaust (90) Sulfate PM Calculator
Aluminum (58) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Aluminum (58) Crankcase Running Exhaust (15) Sulfate PM Calculator
Aluminum (58) Crankcase Start Exhaust (16) Sulfate PM Calculator
Aluminum (58) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Iron (59) Running Exhaust (1) Sulfate PM Calculator
Iron (59) Start Exhaust (2) Sulfate PM Calculator
Iron (59) Extended Idle Exhaust (90) Sulfate PM Calculator
Iron (59) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Iron (59) Crankcase Running Exhaust (15) Sulfate PM Calculator
Iron (59) Crankcase Start Exhaust (16) Sulfate PM Calculator
Iron (59) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Primary Exhaust PM2.5 - Total (110) Start Exhaust (2) Sulfate PM Calculator
Primary Exhaust PM2.5 - Total (110) Extended Idle Exhaust (90) Sulfate PM Calculator
Primary Exhaust PM2.5 - Total (110) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Primary Exhaust PM2.5 - Total (110) Crankcase Running Exhaust (15) Sulfate PM Calculator
Primary Exhaust PM2.5 - Total (110) Crankcase Start Exhaust (16) Sulfate PM Calculator
Primary Exhaust PM2.5 - Total (110) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Organic Carbon (111) Running Exhaust (1) Sulfate PM Calculator
Organic Carbon (111) Start Exhaust (2) Sulfate PM Calculator
Organic Carbon (111) Extended Idle Exhaust (90) Sulfate PM Calculator
Organic Carbon (111) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Organic Carbon (111) Crankcase Running Exhaust (15) Sulfate PM Calculator
Organic Carbon (111) Crankcase Start Exhaust (16) Sulfate PM Calculator
Organic Carbon (111) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Elemental Carbon (112) Crankcase Running Exhaust (15) Sulfate PM Calculator
Elemental Carbon (112) Crankcase Start Exhaust (16) Sulfate PM Calculator
Elemental Carbon (112) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Sulfate Particulate (115) Running Exhaust (1) Sulfate PM Calculator
Sulfate Particulate (115) Start Exhaust (2) Sulfate PM Calculator
Sulfate Particulate (115) Extended Idle Exhaust (90) Sulfate PM Calculator
Sulfate Particulate (115) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Sulfate Particulate (115) Crankcase Running Exhaust (15) Sulfate PM Calculator
Sulfate Particulate (115) Crankcase Start Exhaust (16) Sulfate PM Calculator
Sulfate Particulate (115) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Composite - NonECPM (118) Crankcase Running Exhaust (15) Sulfate PM Calculator
Composite - NonECPM (118) Crankcase Start Exhaust (16) Sulfate PM Calculator
Composite - NonECPM (118) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
H2O (aerosol) (119) Running Exhaust (1) Sulfate PM Calculator
H2O (aerosol) (119) Start Exhaust (2) Sulfate PM Calculator
H2O (aerosol) (119) Extended Idle Exhaust (90) Sulfate PM Calculator
H2O (aerosol) (119) Auxiliary Power Exhaust (91) Sulfate PM Calculator
H2O (aerosol) (119) Crankcase Running Exhaust (15) Sulfate PM Calculator
H2O (aerosol) (119) Crankcase Start Exhaust (16) Sulfate PM Calculator
H2O (aerosol) (119) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
CMAQ5.0 Unspeciated (PMOTHR) (121) Running Exhaust (1) Sulfate PM Calculator
CMAQ5.0 Unspeciated (PMOTHR) (121) Start Exhaust (2) Sulfate PM Calculator
CMAQ5.0 Unspeciated (PMOTHR) (121) Extended Idle Exhaust (90) Sulfate PM Calculator
CMAQ5.0 Unspeciated (PMOTHR) (121) Auxiliary Power Exhaust (91) Sulfate PM Calculator
CMAQ5.0 Unspeciated (PMOTHR) (121) Crankcase Running Exhaust (15) Sulfate PM Calculator
CMAQ5.0 Unspeciated (PMOTHR) (121) Crankcase Start Exhaust (16) Sulfate PM Calculator
CMAQ5.0 Unspeciated (PMOTHR) (121) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
Non-carbon Organic Matter (NCOM) (122) Running Exhaust (1) Sulfate PM Calculator
Non-carbon Organic Matter (NCOM) (122) Start Exhaust (2) Sulfate PM Calculator
Non-carbon Organic Matter (NCOM) (122) Extended Idle Exhaust (90) Sulfate PM Calculator
Non-carbon Organic Matter (NCOM) (122) Auxiliary Power Exhaust (91) Sulfate PM Calculator
Non-carbon Organic Matter (NCOM) (122) Crankcase Running Exhaust (15) Sulfate PM Calculator
Non-carbon Organic Matter (NCOM) (122) Crankcase Start Exhaust (16) Sulfate PM Calculator
Non-carbon Organic Matter (NCOM) (122) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
CB05 Mechanism (1000) Running Exhaust (1) TOG Speciation Calculator
CB05_ALD2 (1001) Running Exhaust (1) TOG Speciation Calculator
CB05_ALDX (1002) Running Exhaust (1) TOG Speciation Calculator
CB05_ETH (1005) Running Exhaust (1) TOG Speciation Calculator
CB05_ETHA (1006) Running Exhaust (1) TOG Speciation Calculator
CB05_FORM (1008) Running Exhaust (1) TOG Speciation Calculator
CB05_IOLE (1009) Running Exhaust (1) TOG Speciation Calculator
CB05_OLE (1012) Running Exhaust (1) TOG Speciation Calculator
CB05_PAR (1013) Running Exhaust (1) TOG Speciation Calculator
CB05_TOL (1015) Running Exhaust (1) TOG Speciation Calculator
CB05_UNR (1017) Running Exhaust (1) TOG Speciation Calculator
CB05_XYL (1018) Running Exhaust (1) TOG Speciation Calculator
CB05_ISOP (1010) Running Exhaust (1) TOG Speciation Calculator
CB05_MEOH (1011) Running Exhaust (1) TOG Speciation Calculator
CB05_TERP (1014) Running Exhaust (1) TOG Speciation Calculator
CB05_UNK (1016) Running Exhaust (1) TOG Speciation Calculator
CB05 Mechanism (1000) Start Exhaust (2) TOG Speciation Calculator
NonHAPTOG (88) Start Exhaust (2) TOG Speciation Calculator
CB05_ALD2 (1001) Start Exhaust (2) TOG Speciation Calculator
CB05_ALDX (1002) Start Exhaust (2) TOG Speciation Calculator
CB05_ETH (1005) Start Exhaust (2) TOG Speciation Calculator
CB05_ETHA (1006) Start Exhaust (2) TOG Speciation Calculator
CB05_FORM (1008) Start Exhaust (2) TOG Speciation Calculator
CB05_IOLE (1009) Start Exhaust (2) TOG Speciation Calculator
CB05_OLE (1012) Start Exhaust (2) TOG Speciation Calculator
CB05_PAR (1013) Start Exhaust (2) TOG Speciation Calculator
CB05_TOL (1015) Start Exhaust (2) TOG Speciation Calculator
CB05_UNR (1017) Start Exhaust (2) TOG Speciation Calculator
CB05_XYL (1018) Start Exhaust (2) TOG Speciation Calculator
CB05_ISOP (1010) Start Exhaust (2) TOG Speciation Calculator
CB05_MEOH (1011) Start Exhaust (2) TOG Speciation Calculator
CB05_TERP (1014) Start Exhaust (2) TOG Speciation Calculator
CB05_UNK (1016) Start Exhaust (2) TOG Speciation Calculator
CB05 Mechanism (1000) Evap Permeation (11) TOG Speciation Calculator
NonHAPTOG (88) Evap Permeation (11) TOG Speciation Calculator
CB05_ALD2 (1001) Evap Permeation (11) TOG Speciation Calculator
CB05_ALDX (1002) Evap Permeation (11) TOG Speciation Calculator
CB05_ETH (1005) Evap Permeation (11) TOG Speciation Calculator
CB05_FORM (1008) Evap Permeation (11) TOG Speciation Calculator
CB05_IOLE (1009) Evap Permeation (11) TOG Speciation Calculator
CB05_ISOP (1010) Evap Permeation (11) TOG Speciation Calculator
CB05_MEOH (1011) Evap Permeation (11) TOG Speciation Calculator
CB05_OLE (1012) Evap Permeation (11) TOG Speciation Calculator
CB05_PAR (1013) Evap Permeation (11) TOG Speciation Calculator
CB05_TERP (1014) Evap Permeation (11) TOG Speciation Calculator
CB05_TOL (1015) Evap Permeation (11) TOG Speciation Calculator
CB05_UNR (1017) Evap Permeation (11) TOG Speciation Calculator
CB05_XYL (1018) Evap Permeation (11) TOG Speciation Calculator
CB05_ETHA (1006) Evap Permeation (11) TOG Speciation Calculator
CB05 Mechanism (1000) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
NonHAPTOG (88) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
CB05_ALD2 (1001) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
CB05_ALDX (1002) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
CB05_FORM (1008) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
CB05_IOLE (1009) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
CB05_ISOP (1010) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
CB05_OLE (1012) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
CB05_PAR (1013) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
CB05_TOL (1015) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
CB05_UNR (1017) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
CB05_XYL (1018) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
CB05_TERP (1014) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
CB05 Mechanism (1000) Evap Fuel Leaks (13) TOG Speciation Calculator
NonHAPTOG (88) Evap Fuel Leaks (13) TOG Speciation Calculator
CB05_ALD2 (1001) Evap Fuel Leaks (13) TOG Speciation Calculator
CB05_ALDX (1002) Evap Fuel Leaks (13) TOG Speciation Calculator
CB05_FORM (1008) Evap Fuel Leaks (13) TOG Speciation Calculator
CB05_IOLE (1009) Evap Fuel Leaks (13) TOG Speciation Calculator
CB05_ISOP (1010) Evap Fuel Leaks (13) TOG Speciation Calculator
CB05_OLE (1012) Evap Fuel Leaks (13) TOG Speciation Calculator
CB05_PAR (1013) Evap Fuel Leaks (13) TOG Speciation Calculator
CB05_TOL (1015) Evap Fuel Leaks (13) TOG Speciation Calculator
CB05_UNR (1017) Evap Fuel Leaks (13) TOG Speciation Calculator
CB05_XYL (1018) Evap Fuel Leaks (13) TOG Speciation Calculator
CB05_TERP (1014) Evap Fuel Leaks (13) TOG Speciation Calculator
CB05 Mechanism (1000) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_ALD2 (1001) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_ALDX (1002) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_ETH (1005) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_ETHA (1006) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_FORM (1008) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_IOLE (1009) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_OLE (1012) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_PAR (1013) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_TOL (1015) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_UNR (1017) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_XYL (1018) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_ISOP (1010) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_MEOH (1011) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_TERP (1014) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05_UNK (1016) Crankcase Running Exhaust (15) TOG Speciation Calculator
CB05 Mechanism (1000) Crankcase Start Exhaust (16) TOG Speciation Calculator
NonHAPTOG (88) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_ALD2 (1001) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_ALDX (1002) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_ETH (1005) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_ETHA (1006) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_FORM (1008) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_IOLE (1009) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_OLE (1012) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_PAR (1013) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_TOL (1015) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_UNR (1017) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_XYL (1018) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_ISOP (1010) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_MEOH (1011) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_TERP (1014) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05_UNK (1016) Crankcase Start Exhaust (16) TOG Speciation Calculator
CB05 Mechanism (1000) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
NonHAPTOG (88) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_ALD2 (1001) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_ALDX (1002) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_ETH (1005) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_ETHA (1006) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_FORM (1008) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_IOLE (1009) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_ISOP (1010) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_OLE (1012) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_PAR (1013) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_TERP (1014) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_TOL (1015) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_UNK (1016) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_UNR (1017) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05_XYL (1018) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
CB05 Mechanism (1000) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
CB05_ALD2 (1001) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
CB05_ALDX (1002) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
CB05_FORM (1008) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
CB05_IOLE (1009) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
CB05_ISOP (1010) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
CB05_OLE (1012) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
CB05_PAR (1013) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
CB05_TERP (1014) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
CB05_TOL (1015) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
CB05_UNR (1017) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
CB05_XYL (1018) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
CB05 Mechanism (1000) Refueling Spillage Loss (19) TOG Speciation Calculator
CB05_ALD2 (1001) Refueling Spillage Loss (19) TOG Speciation Calculator
CB05_ALDX (1002) Refueling Spillage Loss (19) TOG Speciation Calculator
CB05_FORM (1008) Refueling Spillage Loss (19) TOG Speciation Calculator
CB05_IOLE (1009) Refueling Spillage Loss (19) TOG Speciation Calculator
CB05_ISOP (1010) Refueling Spillage Loss (19) TOG Speciation Calculator
CB05_OLE (1012) Refueling Spillage Loss (19) TOG Speciation Calculator
CB05_PAR (1013) Refueling Spillage Loss (19) TOG Speciation Calculator
CB05_TOL (1015) Refueling Spillage Loss (19) TOG Speciation Calculator
CB05_UNR (1017) Refueling Spillage Loss (19) TOG Speciation Calculator
CB05_XYL (1018) Refueling Spillage Loss (19) TOG Speciation Calculator
CB05_TERP (1014) Refueling Spillage Loss (19) TOG Speciation Calculator
CB05 Mechanism (1000) Extended Idle Exhaust (90) TOG Speciation Calculator
NonHAPTOG (88) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_ALD2 (1001) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_ALDX (1002) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_ETH (1005) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_ETHA (1006) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_FORM (1008) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_IOLE (1009) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_ISOP (1010) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_OLE (1012) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_PAR (1013) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_TERP (1014) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_TOL (1015) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_UNK (1016) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_UNR (1017) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05_XYL (1018) Extended Idle Exhaust (90) TOG Speciation Calculator
CB05 Mechanism (1000) Auxiliary Power Exhaust (91) TOG Speciation Calculator
NonHAPTOG (88) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_ALD2 (1001) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_ALDX (1002) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_ETH (1005) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_ETHA (1006) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_FORM (1008) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_IOLE (1009) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_ISOP (1010) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_OLE (1012) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_PAR (1013) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_TERP (1014) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_TOL (1015) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_UNK (1016) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_UNR (1017) Auxiliary Power Exhaust (91) TOG Speciation Calculator
CB05_XYL (1018) Auxiliary Power Exhaust (91) TOG Speciation Calculator
Total Gaseous Hydrocarbons (1) Evap Fuel Vapor Venting (12) Tank Vapor Venting Calculator

MOVES and Related Models

  • Latest MOVES Model
  • MOVES Limited Use Models
  • Tools for MOVES
  • MOVES Training
  • Methods to Produce Emission Inventories
  • MOVES Onroad Technical Reports
  • MOVES Nonroad Technical Reports
  • MOVES Model Review Work Group
  • Mobile Source Emission Factors Research
  • Fuel Effects Analysis
  • Previous MOVES Versions
  • MOVES Frequent Questions
  • MOBILENEWS Listserv
Contact Us About MOVES and Related Models
Contact Us to ask a question, provide feedback, or report a problem.
Last updated on March 7, 2025
  • Assistance
  • Spanish
  • Arabic
  • Chinese (simplified)
  • Chinese (traditional)
  • French
  • Haitian Creole
  • Korean
  • Portuguese
  • Russian
  • Tagalog
  • Vietnamese
United States Environmental Protection Agency

Discover.

  • Accessibility Statement
  • Budget & Performance
  • Contracting
  • EPA www Web Snapshot
  • Grants
  • No FEAR Act Data
  • Plain Writing
  • Privacy
  • Privacy and Security Notice

Connect.

  • Data
  • Inspector General
  • Jobs
  • Newsroom
  • Regulations.gov
  • Subscribe
  • USA.gov
  • White House

Ask.

  • Contact EPA
  • EPA Disclaimers
  • Hotlines
  • FOIA Requests
  • Frequent Questions
  • Site Feedback

Follow.