1 Set Up

library(data.table)
library(dplyr)
library(tidyr)
library(ggplot2)

BASE_DIR <- here::here()

theme_set(theme_bw())

1.1 Objective

Here we are comparing the difference between total halocarbon RF from Hector and also from AR6.

ar6_data <- read.csv(file.path(BASE_DIR, "ar6_results.csv"))
hector_data <- read.csv(file.path(BASE_DIR, "hector_results.csv"))


rbind(ar6_data, hector_data) %>% 
    as.data.table() %>% 
    .[year <= 2100 & year >= 1850, ] %>% 
    .[scenario %in% hector_data$scenario] -> 
    data

2 Compare

ggplot(data) + 
    geom_line(aes(year, value, color = source, groupby = scenario)) + 
    facet_wrap("scenario", scales = "free") + 
    labs(y = NULL)
Warning: Ignoring unknown aesthetics: groupby

Mean difference between halocarbon RF

dcast(data, year + scenario + variable ~ source, value.var = "value") %>% 
    .[ , dif := ((AR6 - Hector))] %>%
    .[ , .(value = mean(dif)), by = .(scenario)] %>% 
    knitr::kable()
scenario value
ssp119 0.0068486
ssp126 0.0065934
ssp245 0.0075620
ssp370 0.0082600
ssp434 0.0075293
ssp460 0.0099985
ssp534-over 0.0065813
ssp585 0.0071673
library(hector)
system.file("input", package = "hector") %>% 
    list.files(pattern = "ini", full.names = TRUE) %>% 
    lapply(function(f){
        name <- gsub(x = basename(f), pattern = "hector_|.ini", replacement = "")
        core <- newcore(f, name = name)
        run(core)
        fetchvars(core, dates = 1850:2100, vars = RF_TOTAL()) 
    }) %>% 
    do.call(what = "rbind") %>%  
    as.data.table() %>% 
    .[ , .(value = mean(value)), by = .(scenario)] %>% 
    knitr::kable()
scenario value
ssp119 1.055222
ssp126 1.242896
ssp245 1.438486
ssp370 1.834509
ssp434 1.342277
ssp460 1.660491
ssp534-over 1.478971
ssp585 2.175404
NA
NA
NA
NA
NA
NA
LS0tCnRpdGxlOiAiQ29tcGFyaW5nIEhlY3RvciAmIEFSNiB0b3RhbCBSRiIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0b2M6IHllcwogICAgdG9jX2RlcHRoOiAnNCcKICAgIHRvY19mbG9hdDogeWVzCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUKZGF0ZTogImByIGZvcm1hdChTeXMudGltZSgpLCAnJWQgJUIsICVZJylgIgotLS0KCiMgU2V0IFVwIApgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFLCBlcnJvciA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UpCiMgc2VlIGh0dHBzOi8vYm9va2Rvd24ub3JnL3lpaHVpL3JtYXJrZG93bi1jb29rYm9vay8gZm9yIG1vcmUgaW5mbyBvbiBtYXJrZG93bnMKYGBgCgpgYGB7cn0KbGlicmFyeShkYXRhLnRhYmxlKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KHRpZHlyKQpsaWJyYXJ5KGdncGxvdDIpCgpCQVNFX0RJUiA8LSBoZXJlOjpoZXJlKCkKCnRoZW1lX3NldCh0aGVtZV9idygpKQpgYGAKCiMjIE9iamVjdGl2ZSAKCkhlcmUgd2UgYXJlIGNvbXBhcmluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRvdGFsIGhhbG9jYXJib24gUkYgZnJvbSBIZWN0b3IgYW5kIGFsc28gZnJvbSBBUjYuIAoKYGBge3J9CmFyNl9kYXRhIDwtIHJlYWQuY3N2KGZpbGUucGF0aChCQVNFX0RJUiwgImFyNl9yZXN1bHRzLmNzdiIpKQpoZWN0b3JfZGF0YSA8LSByZWFkLmNzdihmaWxlLnBhdGgoQkFTRV9ESVIsICJoZWN0b3JfcmVzdWx0cy5jc3YiKSkKCgpyYmluZChhcjZfZGF0YSwgaGVjdG9yX2RhdGEpICU+JSAKICAgIGFzLmRhdGEudGFibGUoKSAlPiUgCiAgICAuW3llYXIgPD0gMjEwMCAmIHllYXIgPj0gMTg1MCwgXSAlPiUgCiAgICAuW3NjZW5hcmlvICVpbiUgaGVjdG9yX2RhdGEkc2NlbmFyaW9dIC0+IAogICAgZGF0YQpgYGAKCiMgQ29tcGFyZSAKCmBgYHtyfQpnZ3Bsb3QoZGF0YSkgKyAKICAgIGdlb21fbGluZShhZXMoeWVhciwgdmFsdWUsIGNvbG9yID0gc291cmNlLCBncm91cGJ5ID0gc2NlbmFyaW8pKSArIAogICAgZmFjZXRfd3JhcCgic2NlbmFyaW8iLCBzY2FsZXMgPSAiZnJlZSIpICsgCiAgICBsYWJzKHkgPSBOVUxMKQpgYGAKTWVhbiBkaWZmZXJlbmNlIGJldHdlZW4gaGFsb2NhcmJvbiBSRgoKYGBge3J9CmRjYXN0KGRhdGEsIHllYXIgKyBzY2VuYXJpbyArIHZhcmlhYmxlIH4gc291cmNlLCB2YWx1ZS52YXIgPSAidmFsdWUiKSAlPiUgCiAgICAuWyAsIGRpZiA6PSAoKEFSNiAtIEhlY3RvcikpXSAlPiUKICAgIC5bICwgLih2YWx1ZSA9IG1lYW4oZGlmKSksIGJ5ID0gLihzY2VuYXJpbyldICU+JSAKICAgIGtuaXRyOjprYWJsZSgpCmBgYAoKYGBge3J9CmxpYnJhcnkoaGVjdG9yKQpzeXN0ZW0uZmlsZSgiaW5wdXQiLCBwYWNrYWdlID0gImhlY3RvciIpICU+JSAKICAgIGxpc3QuZmlsZXMocGF0dGVybiA9ICJpbmkiLCBmdWxsLm5hbWVzID0gVFJVRSkgJT4lIAogICAgbGFwcGx5KGZ1bmN0aW9uKGYpewogICAgICAgIG5hbWUgPC0gZ3N1Yih4ID0gYmFzZW5hbWUoZiksIHBhdHRlcm4gPSAiaGVjdG9yX3wuaW5pIiwgcmVwbGFjZW1lbnQgPSAiIikKICAgICAgICBjb3JlIDwtIG5ld2NvcmUoZiwgbmFtZSA9IG5hbWUpCiAgICAgICAgcnVuKGNvcmUpCiAgICAgICAgZmV0Y2h2YXJzKGNvcmUsIGRhdGVzID0gMTg1MDoyMTAwLCB2YXJzID0gUkZfVE9UQUwoKSkgCiAgICB9KSAlPiUgCiAgICBkby5jYWxsKHdoYXQgPSAicmJpbmQiKSAlPiUgIAogICAgYXMuZGF0YS50YWJsZSgpICU+JSAKICAgIC5bICwgLih2YWx1ZSA9IG1lYW4odmFsdWUpKSwgYnkgPSAuKHNjZW5hcmlvKV0gJT4lIAogICAga25pdHI6OmthYmxlKCkKCiAgICAKICAgIAoKCgpgYGAK