file.remove("emi/evaporatives.csv")
# temperature
te <- met$Temperature
bb <- (0 + 15) / 2
cc <- (10 + 25) / 2
dd <- (20 + 35) / 2
tem <- ifelse(
te <= bb, "0_15",
ifelse(
te > bb & te <= cc, "10_25",
"20_35"
)
)
nmonth <- ifelse(nchar(seq_along(te)) < 2,
paste0(0, seq_along(te)),
seq_along(te)
)
# filtrando veiculos otto
meta_ev <- metadata[metadata$fuel != "D", ]
veh_ev <- meta_ev$vehicles
# checks name
type_emis <- c("Diurnal", "Running Losses", "Hot Soak")
name_file_evap <- c("/DIURNAL_", "/RUNNING_LOSSES_", "/HOT_SOAK_")
ef_d <- paste0("D_", tem)
ef_rl <- paste0("R_", tem)
ef_hs <- paste0("S_", tem)
# plot
n_PC <- metadata[metadata$family == "PC", ]$vehicles
n_LCV <- metadata[metadata$family == "LCV", ]$vehicles[1:4]
n_MC <- metadata[metadata$family == "MC", ]$vehicles
ns <- c(
"PC", "LCV", "MC",
"PC", "LCV", "MC",
"PC", "LCV", "MC"
)
ln <- list(
n_PC, n_LCV, n_MC,
n_PC, n_LCV, n_MC,
n_PC, n_LCV, n_MC
)
laby <- c(
"g/day", "g/day", "g/day",
"g/trip", "g/trip", "g/trip",
"g/trip", "g/trip", "g/trip"
)
ev <- c(
"DIURNAL", "DIURNAL", "DIURNAL",
"RUNNING_LOSSES", "RUNNING_LOSSES", "RUNNING_LOSSES",
"HOT_SOAK", "HOT_SOAK", "HOT_SOAK"
)
# plotting
switch(language,
"portuguese" = cat("Plotando EF\n"),
"english" = cat("Plotting EF\n"),
"spanish" = cat("Plotando EF\n")
)
for (i in seq_along(ns)) {
dl <- lapply(
seq_along(ef_d), function(j) {
data.frame(
ef_cetesb(
p = ef_d[j],
veh = ln[[i]],
year = year,
scale = scale,
agemax = 40,
verbose = verbose
),
month = nmonth[j]
)
}
)
dl <- rbindlist(dl)
df <- wide_to_long(
df = dl,
column_with_data = ln[[i]],
column_fixed = "month"
)
df$age <- 1:40
setDT(df)
names(df) <- c("ef", "month", "veh", "age")
p <- ggplot(
df[df$ef > 0, ],
aes(x = age, y = ef, colour = veh)
) +
geom_line() +
facet_wrap(~month) +
ylim(0, NA) +
labs(y = laby[i], title = ev[i]) +
# scale_y_log10() +
theme_bw()
png(
filename = paste0("images/EF_", ev[i], "_", ns[i], ".png"),
width = 2100, height = 1500, units = "px", pointsize = 12,
bg = "white", res = 300
)
print(p)
dev.off()
}
switch(language,
"portuguese" = message("\nFiguras em /images\n"),
"english" = message("\nFigures in /image\n"),
"spanish" = message("\nFiguras en /images\n")
)
# Diurnal ####
switch(language,
"portuguese" = cat("\nEmissões evaporativas diurnal\n"),
"english" = cat("\nEvaporative diurnal emissions\n"),
"spanish" = cat("\nEmisiones evaporativas diurnal\n")
)
for (i in seq_along(veh_ev)) {
cat(
"\n", veh_ev[i],
rep("", max(nchar(veh_ev) + 1) - nchar(veh_ev[i]))
)
x <- readRDS(paste0("veh/", veh_ev[i], ".rds"))
lef <- lapply(seq_along(te), function(j) {
cat(nmonth[j], " ")
ef_cetesb(
p = ef_d[j],
veh = veh_ev[i],
year = year,
scale = scale,
agemax = ncol(x),
# diurnal: g/day* day/km= g/km
verbose = verbose
) / (mileage[[veh_ev[i]]] / 365) # mean daily mileage
})
lef <- EmissionFactors(as.data.frame(do.call("rbind", lef)))
# muda NaNaN para 0
lef[is.na(lef)] <- 0
array_x <- emis_hot_td(
veh = x,
lkm = mileage[[veh_ev[i]]],
ef = lef,
pro_month = pmonth[[veh_ev[i]]],
fortran = TRUE,
nt = check_nt() / 2,
verbose = verbose,
params = list(
veh = veh_ev[i],
size = meta_ev$size[i],
fuel = meta_ev$fuel[i],
pollutant = "NMHC",
type_emi = "Evaporatives",
subtype_emi = "Diurnal",
baseyear = year
)
)
fwrite(array_x, "emi/evaporatives.csv", append = TRUE)
}
cat("\n")
# Running Losses ####
switch(language,
"portuguese" = cat("\nEmissões evaporativas running-losses\n"),
"english" = cat("\nEvaporative running-losses emissions\n"),
"spanish" = cat("\nEmisiones evaporativas running-loses\n")
)
for (i in seq_along(veh_ev)) {
cat(
"\n", veh_ev[i],
rep("", max(nchar(veh_ev) + 1) - nchar(veh_ev[i]))
)
x <- readRDS(paste0("veh/", veh_ev[i], ".rds"))
lef <- lapply(seq_along(te), function(j) {
cat(nmonth[j], " ")
ef_cetesb(
p = ef_rl[j],
veh = veh_ev[i],
year = year,
scale = scale,
agemax = ncol(x),
# g/trip * trip/day * day/km = g/km
verbose = verbose
) * meta_ev$trips_day[i] / (mileage[[veh_ev[i]]] / 365)
})
lef <- EmissionFactors(as.data.frame(do.call("rbind", lef)))
# muda NaNaN para 0
lef[is.na(lef)] <- 0
array_x <- emis_hot_td(
veh = x,
lkm = mileage[[veh_ev[i]]],
ef = lef,
pro_month = pmonth[[veh_ev[i]]],
fortran = TRUE,
nt = check_nt() / 2,
verbose = verbose,
params = list(
veh = veh_ev[i],
size = meta_ev$size[i],
fuel = meta_ev$fuel[i],
pollutant = "NMHC",
type_emi = "Evaporatives",
subtype_emi = "Running Losses",
baseyear = year
)
)
fwrite(array_x, "emi/evaporatives.csv", append = TRUE)
}
cat("\n")
# Hot Soak ####
switch(language,
"portuguese" = cat("\nEmissões evaporativas hot-soak\n"),
"english" = cat("\nEvaporative hot-soak emissions\n"),
"spanish" = cat("\nEmisiones evaporativas hot-soak\n")
)
for (i in seq_along(veh_ev)) {
cat(
"\n", veh_ev[i],
rep("", max(nchar(veh_ev) + 1) - nchar(veh_ev[i]))
)
x <- readRDS(paste0("veh/", veh_ev[i], ".rds"))
lef <- lapply(seq_along(te), function(j) {
cat(nmonth[j], " ")
ef_cetesb(
p = ef_hs[j],
veh = veh_ev[i],
year = year,
agemax = ncol(x),
verbose = verbose
) * meta_ev$trips_day[i] / (mileage[[veh_ev[i]]] / 365) # quilometragem medio diario
})
lef <- EmissionFactors(as.data.frame(do.call("rbind", lef)))
# muda NaNaN para 0
lef[is.na(lef)] <- 0
array_x <- emis_hot_td(
veh = x,
lkm = mileage[[veh_ev[i]]],
ef = lef,
pro_month = pmonth[[veh_ev[i]]],
fortran = TRUE,
nt = check_nt() / 2,
verbose = verbose,
params = list(
veh = veh_ev[i],
size = meta_ev$size[i],
fuel = meta_ev$fuel[i],
pollutant = "NMHC",
type_emi = "Evaporatives",
subtype_emi = "Hot Soak",
baseyear = year
)
)
fwrite(array_x, "emi/evaporatives.csv", append = TRUE)
}
cat("\n")
switch(language,
"portuguese" = message("\n\nArquivos em: /emi/evaporatives.csv:"),
"english" = message("\n\nFiles in: /emi/evaporatives.csv"),
"spanish" = message("\n\nArchivos en: /emi/evaporatives.csv")
)
switch(language,
"portuguese" = message("Limpando..."),
"english" = message("Cleaning..."),
"spanish" = message("Limpiando...")
)
suppressWarnings(
rm(
i, mileage, meta_ev, veh_ev, year,
diurnal_ef, hot_soak_ef, running_losses_ef
)
)
# deberiamos ter al menos: "composition" "net" "veh" "year"
ls()
invisible(gc())
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.