Creates a data table of emission factors (g/kWh) for the given parameters.

calcEF(
  engineType,
  tier,
  location,
  loadFactor = NULL,
  ECAfuelSulfurPercentage = 0.1,
  GlobalfuelSulfurPercentage = 0.5,
  pollutants = "ALL",
  loadBasedBSFC = "N",
  output = "EF_LLAF",
  main_aux_boiler = "main",
  inputTableLocation = NULL
)

Arguments

engineType

Engine type (vector of strings) (see calcEngineType). Valid values are:

  • "SSD"

  • "MSD"

  • "MSD-ED"

  • "GT"

  • "GT-ED"

  • "ST"

  • "LNG"

  • "HSD" (auxiliary only)

  • "Boiler" (boiler only)

tier

NOx engine tier (vector of strings) (see calcTier). Valid values are:

  • "Tier 0"

  • "Tier 1"

  • "Tier 2"

  • "Tier 3"

location

Location of vessel (vector of strings). Valid values are:

  • "ECA"

  • "OutsideECA"

  • "GreatLakes"

loadFactor

Fractional percentage (between 0 and 1) of main engine required to propel vessel at given speed (vector of numericals) (see ShipPowerModel library). This parameter is necessary when output = "EF_LLAF" (default) so that the correct low load adjustments are applied. It is also necessary when loadBasedBSFC = "Y". However, if output = "EF" loadBasedBSFC = "N", this argument will not be used and the resulting emission factor is independent of engine load.

ECAfuelSulfurPercentage

Fuel sulfur cap (percentage by weight) for the Emissions Control Area (ECA). Default = 0.1% (in effect Jan. 1, 2015)

GlobalfuelSulfurPercentage

Fuel sulfur cap (percentage by weight) for outside the Emissions Control Area (ECA). Default = 0.5% (in effect Jan. 1, 2020)

pollutants

Select pollutants (default = "ALL"). Options:

  • "co"

  • "hc"

  • "co2"

  • "so2"

  • "pm10"

  • "pm2.5"

  • "nox"

loadBasedBSFC

Determines if baseline BSFC values should be altered according to main engine load (see calcLoadBSFC)

  • "Y"

  • "N" (Default)

  • "lower load factor bound , upper load factor bound" (see Details)

output

What output table should be produced? Options:

  • "EF": table of corresponding emission factors

  • "EF_LLAF" (Default): table of emission factors multiplied by low load adjustment factors

main_aux_boiler

Is this calculation for a propulsive (main), auxiliary (aux), or boiler engine? Options:

  • "main" (Default)

  • "aux"

  • "boiler"

inputTableLocation

File path (optional). Used to specify a user-supplied set of low load adjustment factors. See details for formatting requirements

Value

a data.table of emission factors or low load adjusted emission factors (depending on the output argument) for the given parameters. Each pollutant selected in the pollutants argument will be a column in the table.

Details

Location is important for determining the fuel being used, as type of fuel typically used varies by location.

For more information about marine emission factors, see Section 3.5 of the Port Emissions Inventory Guidance.

If user-supplied djustment factors are used, the file should be in .csv format with a header row. The headers should be "load" and one or more pollutants listed in the pollutants argument. The load column should contain numerical values in percentage space (i.e., it can range between 0 and 100). The pollutant columns should contain the specific adjustment factors for that pollutant, corresponding to the load values. Note: The function will linearly interpolate between the nearest values for any given load factor, and will return an adjustment factor of 1 for load factors outside the range of the table (i.e., it will not extrapolate).

Note: If it is desired that baseline BSFC values should be altered according to main engine load only within a specified set of bounds, and the baseline value should be used outside of those bounds, pass the bounds as a string using the loadBasedBSFC argument. The bounds should be formatted as such: the lower bound first, then a comma, then the upper bound.

References

EPA. 2020. "Ports Emissions Inventory Guidance: Methodologies for Estimating Port-Related and Goods Movement Mobile Source Emissions." Ann Arbor, MI: Office of Transportation and Air Quality. US Environmental Protection Agency.

Examples

calcEF(engineType=c("SSD","MSD","MSD-ED","GT"), location=c("ECA","OutsideECA","GreatLakes","ECA"), loadFactor=c(0.8,0.5,0.14,0.03), loadBasedBSFC="0.2,1", output="EF_LLAF", pollutants="co2", tier=c("Tier 3","Tier 2","Tier 1", "Tier 0"))
#> co2 #> 1: 595.0080 #> 2: 695.4535 #> 3: 657.2300 #> 4: 2344.5742
calcEF(engineType=c("SSD","MSD","MSD-ED","GT"), location=c("ECA","OutsideECA","GreatLakes","ECA"), loadFactor=c(0.8,0.5,0.14,0.03), loadBasedBSFC="Y", output="EF_LLAF", main_aux_boiler="main", tier=c("Tier 3","Tier 2","Tier 1", "Tier 0"))
#> hc co2 co nox pm2.5 so2 pm10 #> 1: 0.600000 595.0080 1.400000 3.4000 0.16899642 0.3628435 0.18369177 #> 2: 0.500000 695.4535 1.100000 11.2000 0.69159975 2.1831300 0.75173886 #> 3: 0.500000 781.7869 1.100000 12.2000 0.17742693 0.4767437 0.19285535 #> 4: 1.168433 2952.0757 1.292945 16.6402 0.03984598 1.8156153 0.04331085
calcEF(engineType=c("SSD","SSD"), location=c("ECA","ECA"), loadFactor=c(0.8,0.03), output="EF", main_aux_boiler="main", tier=c("Tier 3","Tier 2"))
#> hc co2 co nox pm2.5 so2 pm10 #> 1: 0.6 593.11 1.4 3.4 0.1689108 0.3616861 0.1835987 #> 2: 0.6 593.11 1.4 14.4 0.1689108 0.3616861 0.1835987
calcEF(engineType=c("SSD","SSD"), location=c("ECA","ECA"), output="EF", main_aux_boiler="main", tier=c("Tier 3","Tier 2"))
#> hc co2 co nox pm2.5 so2 pm10 #> 1: 0.6 593.11 1.4 3.4 0.1689108 0.3616861 0.1835987 #> 2: 0.6 593.11 1.4 14.4 0.1689108 0.3616861 0.1835987
calcEF(engineType=c("HSD","MSD","LNG"), location=c("ECA","OutsideECA","ECA"), loadFactor=c(0.8,0.5,0.14), ECAfuelSulfurPercentage=0.1, GlobalfuelSulfurPercentage=2.7, pollutants="ALL", output="EF", main_aux_boiler="aux", tier=c("Tier 3","Tier 2", "Tier 0"))
#> hc co2 co nox pm2.5 so2 pm10 #> 1: 0.4 695.702 0.9 2.6 0.1735414 0.424248 0.1886319 #> 2: 0.4 706.878 1.1 11.2 1.4169200 11.982563 1.5401304 #> 3: 0.0 456.500 1.3 1.3 0.0276000 0.033200 0.0300000
calcEF(engineType=c("MSD","SSD"), location=c("ECA","OutsideECA"), loadFactor=c(0.8,0.5), ECAfuelSulfurPercentage=0.1, GlobalfuelSulfurPercentage=2.7, pollutants="ALL", output="EF", main_aux_boiler="boiler", tier=c("Tier 0", "Tier 0"))
#> hc co2 co nox pm2.5 so2 pm10 #> 1: 0.1 961.80 0.2 2.0 0.185552 0.586518 0.201687 #> 2: 0.1 949.77 0.2 2.1 1.721672 16.099919 1.871383