ef_china returns emission factors as vector or data.frames. The emission factors comes from the chinese emission guidelines (v3) from the Chinese Ministry of Ecology and Environment http://www.mee.gov.cn/gkml/hbb/bgth/201407/W020140708387895271474.pdf

ef_china(
  v = "PV",
  t = "Small",
  f = "G",
  standard,
  p,
  k = 1,
  ta = celsius(15),
  humidity = 0.5,
  altitude = 1000,
  speed = Speed(30),
  baseyear_det = 2016,
  sulphur = 50,
  load_factor = 0.5,
  details = FALSE,
  correction_only = FALSE
)

Arguments

v

Character; category vehicle: "PV" for Passenger Vehicles or 'Trucks"

t

Character; sub-category of of vehicle: PV Gasoline: "Mini", "Small","Medium", "Large", "Taxi", "Motorcycles", "Moped", PV Diesel: "Mediumbus", "Largebus", "3-Wheel". Trucks: "Mini", "Light" , "Medium", "Heavy"

f

Character;fuel: "G", "D", "CNG", "ALL"

standard

Character or data.frame; "PRE", "I", "II", "III", "IV", "V". When it is a data.frame, it each row is a different region and ta, humidity, altitud, speed, sulphur and load_factor lengths have the same as the number of rows.

p

Character; pollutant: "CO", "NOx","HC", "PM", "Evaporative_driving" or "Evaporative_parking"

k

Numeric; multiplication factor

ta

Numeric; temperature of ambient in celcius degrees. When standard is a data.frame, the length must be equal to the number of rows of standard.

humidity

Numeric; relative humidity. When standard is a data.frame, the length must be equal to the number of rows of standard.

altitude

Numeric; altitude in meters. When standard is a data.frame, the length must be equal to the number of rows of standard.

speed

Numeric; altitude in km/h When standard is a data.frame, the length must be equal to the number of rows of standard.

baseyear_det

Integer; any of 2014, 2015, 2016, 2017, 2018

sulphur

Numeric; sulphur in ppm. When standard is a data.frame, the length must be equal to the number of rows of standard.

load_factor

Numeric; When standard is a data.frame, the length must be equal to the number of rows of standard.

details

Logical; When TRUE, it shows a description of the vehicle in chinese and english. Only when length standard is 1.

correction_only

Logical; When TRUE, return only correction factors.

Value

An emission factor

Note

Combination of vehicles:

vtf
PVMiniG HY
PVBusD HY D
PVMiniCNG
PVBusCNG
PVMiniG
PVSmallG
PVMediumG
PVLargeG
PVTaxiG
PVBusG
PVMotorcyclesG
PVMopedG
PVMiniD
PVSmallD
PVMediumbusD
PVMediumD
PVLargebusD
PVBusD
PV3-WheelD
PVSmallALL
PVMediumbusALL
PVLargebusALL
PVTaxiALL
PVBusALL
TrucksBusG
TrucksLightG
TrucksMediumG
TrucksHeavyG
TrucksLightD
TrucksMediumD
TrucksHeavyD
TrucksLow SpeedD
TrucksMiniD

standard VI is assumed as V

Examples

if (FALSE) {
# when standard is 'character'
# Checking
df_st <- rev(c(as.character(as.roman(5:1)), "PRE"))
ef_china(t = "Mini", f = "G", standard = df_st, p = "CO")
ef_china(t = "Mini", f = "G", standard = df_st, p = "HC")
ef_china(t = "Mini", f = "G", standard = df_st, p = "NOx")
ef_china(t = "Mini", f = "G", standard = df_st, p = "PM2.5")
ef_china(t = "Mini", f = "G", standard = df_st, p = "PM10")

ef_china(t = "Small", f = "G", standard = df_st, p = "CO")
ef_china(t = "Small", f = "G", standard = df_st, p = "HC")
ef_china(t = "Small", f = "G", standard = df_st, p = "NOx")
ef_china(t = "Small", f = "G", standard = df_st, p = "PM2.5")
ef_china(t = "Small", f = "G", standard = df_st, p = "PM10")


ef_china(t = "Mini",
        standard = c("PRE"),
        p = "CO",
        k = 1,
        ta = celsius(15),
        humidity = 0.5,
        altitude = 1000,
        speed = Speed(30),
        baseyear_det = 2014,
        sulphur = 50,
        load_factor = 0.5,
        details = FALSE)
ef_china(standard = c("PRE", "I"), p = "CO", correction_only = TRUE)

# when standard is 'data.frame'
df_st <- matrix(c("V", "IV", "III", "III", "II", "I", "PRE"), nrow = 2, ncol = 7, byrow = TRUE)
df_st <- as.data.frame(df_st)
a <- ef_china(standard = df_st,
              p = "PM10",
              ta = rep(celsius(15), 2),
              altitude = rep(1000, 2),
              speed = rep(Speed(30), 2),
              sulphur = rep(50, 2))
dim(a)
dim(df_st)
ef_china(standard = df_st, p = "PM2.5", ta = rep(celsius(20), 2),
altitude = rep(1501, 2), speed = rep(Speed(29), 2), sulphur = rep(50, 2))
a

# when standard, temperature and humidity are data.frames
# assuming 10 regions
df_st <- matrix(c("V", "IV", "III", "III", "II", "I", "PRE"), nrow = 10, ncol = 7, byrow = TRUE)
df_st <- as.data.frame(df_st)
df_t <- matrix(21:30, nrow = 10, ncol = 12, byrow = TRUE)
df_t <- as.data.frame(df_t)
for(i in 1:12) df_t[, i] <- celsius(df_t[, i])

# assuming 10 regions
df_h <- matrix(seq(0.4, 0.5, 0.05), nrow = 10, ncol = 12, byrow = TRUE)
df_h <- as.data.frame(df_h)
a <- ef_china(standard = df_st, p = "CO", ta = df_t, humidity = df_h,
altitude = rep(1501, 10), speed = rep(Speed(29), 10), sulphur = rep(50, 10))
a
a <- ef_china(standard = df_st, p = "PM2.5", ta = df_t, humidity = df_h,
altitude = rep(1501, 10), speed = rep(Speed(29), 10), sulphur = rep(50, 10))
a
a <- ef_china(standard = df_st, p = "PM10", ta = df_t, humidity = df_h,
altitude = rep(1501, 10), speed = rep(Speed(29), 10), sulphur = rep(50, 10))
a
dim(a)
}