projects/brazil_td_chem/scripts/post.R

# grade
g <- st_transform(g, crs)
# df
years <- 2018
df <- rbind(
        fread("emi/exhaust.csv"),
        fread("emi/evaporatives.csv")
)
df$emissions <- units::set_units(df$emissions, "g")
df$t <- units::set_units(df$emissions, "t")

# streets  ####
suppressWarnings(file.remove("post/emi_street.rds"))
switch(language,
        "portuguese" = cat("Distribuindo as emissões nas ruas\n"),
        "english" = cat("Distributing emissions on streets\n"),
        "spanish" = cat("Distribuyendo las emisiones en las calles\n")
)

dt <- df[pollutant != "NMHC",
        sum(emissions, na.rm = T),
        by = .(month, pollutant)
]

dt$fuel <- "all"
dt$type_emi <- "Exhaust"

dtev <- df[pollutant == "NMHC",
        sum(emissions, na.rm = T),
        by = .(month, pollutant, fuel, type_emi)
]
dtev
DT <- data.table(
        month = c(dt$month, dtev$month),
        pollutant = c(dt$pollutant, dtev$pollutant),
        fuel = c(dt$fuel, dtev$fuel),
        type_emi = c(dt$type_emi, dtev$type_emi),
        g = c(dt$V1, dtev$V1)
)
DT
DT <- DT[month %in% months_subset]
DT$month <- as.character(ifelse(nchar(DT$month) < 2,
        paste0("0", DT$month),
        DT$month
))
DT$TY <- ifelse(DT$type_emi == "Exhaust", "EXH", "EVA")
DT$PFTM <- paste(DT$pollutant, DT$fuel, DT$TY, DT$month, sep = "_")

roads$length <- st_length(roads)
roads$lengthHDV <- ifelse(roads[[osm_name]] %in% c(
        "tertiary",
        "secondary",
        "primary"
), 0,
roads$length
)



for (i in seq_along(DT$PFTM)) {
        roads[[DT$PFTM[i]]] <- DT[PFTM == DT$PFTM[i]]$g * roads$length / sum(roads$length)
}
# By default distributing NO,NO2, NOx only one trunks and motorway
names_nox <- c(
        grep("NO_", DT$PFTM, value = T),
        grep("NO2_", DT$PFTM, value = T),
        grep("NOx_", DT$PFTM, value = T)
)
for (i in seq_along(names_nox)) {
        roads[[names_nox[i]]] <- DT[PFTM == names_nox[i]]$g * roads$lengthHDV / sum(roads$lengthHDV)
}

saveRDS(roads, "post/emi_street.rds")


# grids ####
suppressWarnings(file.remove("post/emi_grid.rds"))

x <- roads[, DT$PFTM]

switch(language,
        "portuguese" = cat("Cortando as ruas para grade\n"),
        "english" = cat("Cropping streets for grid extent\n"),
        "spanish" = cat("Cortando las calles para grilla\n")
)
x <- st_crop(x, st_as_sfc(st_bbox(g)))

switch(language,
        "portuguese" = cat("Distribuindo as emissões na grade\n"),
        "english" = cat("Gridding emissions\n"),
        "spanish" = cat("Distribuyendo las emisiones en las grilla\n")
)

gx <- emis_grid(spobj = x, g = g)
saveRDS(gx, paste0("post/emi_grid.rds"))

# datatable ####
suppressWarnings(file.remove("post/emi_table.rds"))
switch(language,
        "portuguese" = cat("Salvando emissões\n"),
        "english" = cat("Saving emissions\n"),
        "spanish" = cat("Guardando emisiones\n")
)

saveRDS(df, "post/emi_table.rds")

dt0 <- df[, round(sum(t), 2), by = .(pollutant)]
print(dt0)

suppressWarnings(
        rm(
                "df1", "df2", "df3", "dt", "dt0", "dt1", "dt2", "dt3", "factor_emi",
                "g", "gx", "i", "lf", "na", "net", "pol", "pols", "x", "crs"
        )
)
ibarraespinosa/vein documentation built on April 13, 2024, 8:51 p.m.