1 Set Up

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

BASE_DIR <- here::here()

theme_set(theme_bw())

1.1 Objective

Here we want to compare the concentrations from RCMIP & the AR6 driven Hector runs. Does using the historical AR6 concentrations improve how Hector RF compares with with the the AR6 RF?

2 Run Hector

Run historical with RCMIP inputs.

GHG_cmip5_ini <- "/Users/dorh012/Documents/2021/2021-hector-ar6rf/input/hector_ssp585-GHG.ini"
core <- newcore(GHG_cmip5_ini)  
run(core, runtodate = 2015)  
Hector core:    Unnamed Hector core
Start date: 1745
End date:   2300
Current date:   2015
Input file: /Users/dorh012/Documents/2021/2021-hector-ar6rf/input/hector_ssp585-GHG.ini
ghg_rcmip_out <- fetchvars(core, 1850:2015, vars = c(GLOBAL_TEMP(), RF_CO2(), RF_N2O(), RF_CH4(), RF_TOTAL(),
                                    ATMOSPHERIC_CO2(), ATMOSPHERIC_N2O(), ATMOSPHERIC_CH4()))  
ghg_rcmip_out$scenario <- "conc hector rcmip"
  

emiss_cmip5_ini <- "/Users/dorh012/Documents/2021/2021-hector-ar6rf/input/hector_ssp585.ini"
core <- newcore(emiss_cmip5_ini)  
run(core, runtodate = 2015)  
Hector core:    Unnamed Hector core
Start date: 1745
End date:   2300
Current date:   2015
Input file: /Users/dorh012/Documents/2021/2021-hector-ar6rf/input/hector_ssp585.ini
emiss_rcmip_out <- fetchvars(core, 1850:2015, vars = c(GLOBAL_TEMP(), RF_CO2(), RF_N2O(), RF_CH4(), RF_TOTAL(), 
                                    ATMOSPHERIC_CO2(), ATMOSPHERIC_N2O(), ATMOSPHERIC_CH4()))  
emiss_rcmip_out$scenario <- "emiss hector rcmip"

Ru historical with AR6 inputs.

emiss_ini <- "/Users/dorh012/Documents/2021/2021-hector-ar6rf/input/hector_ssp585.ini"
core <- newcore(emiss_ini)  
ar6_conc <- read.csv(here::here("ar6", "ar6-table_A3.1_historical_abundances.csv"), skip = 1)
setvar(core, ar6_conc$YYYY, var = CO2_CONSTRAIN(), values = ar6_conc$CO2, unit =  getunits(CO2_CONSTRAIN()))
setvar(core, ar6_conc$YYYY, var = CH4_CONSTRAIN(), values = ar6_conc$CH4, unit =  getunits(CH4_CONSTRAIN()))
setvar(core, ar6_conc$YYYY, var = N2O_CONSTRAIN(), values = ar6_conc$N2O, unit =  getunits(N2O_CONSTRAIN()))
reset(core)
Hector core:    Unnamed Hector core
Start date: 1745
End date:   2300
Current date:   1745
Input file: /Users/dorh012/Documents/2021/2021-hector-ar6rf/input/hector_ssp585.ini
run(core, runtodate = 2015)  
Hector core:    Unnamed Hector core
Start date: 1745
End date:   2300
Current date:   2015
Input file: /Users/dorh012/Documents/2021/2021-hector-ar6rf/input/hector_ssp585.ini
ar6_out <- fetchvars(core, 1850:2015, vars = c(GLOBAL_TEMP(), RF_CO2(), RF_N2O(), RF_CH4(), RF_TOTAL(),
                                    ATMOSPHERIC_CO2(), ATMOSPHERIC_N2O(), ATMOSPHERIC_CH4()))  
ar6_out$scenario <- "ar6 hector"

2.1 Import the effective radiative forcing

ERF_data <- read.csv(here::here("SSPs", "ERF_ssp434_1750-2500.csv"))
ERF_data %>% 
  select(year, FN2O = n2o, FCO2 = co2, FCH4 = ch4, Ftot = total) %>% 
  as.data.table() %>% 
  melt(id.vars = "year") %>% 
  mutate(scenario = "ar6 results") %>% 
  filter(year %in% ar6_out$year) -> 
  ar6_rf
hector_out <- bind_rows(ghg_rcmip_out, emiss_rcmip_out, ar6_out, ar6_rf)

3 Compare Results

3.1 CO2

How different is the CO2 RF form one another? What does that mean for the CO2 RF?

hector_out %>%  
  filter(grepl(pattern = "CO2|Ca", x = variable)) %>% 
  ggplot(aes(year, value, color = scenario, linetype = scenario)) + 
  geom_line(size = 1.5, alpha = 0.5) + 
  facet_wrap("variable", scales = "free") + 
  labs(y = NULL, x = NULL) 

3.2 N2O

hector_out %>%  
  filter(grepl(pattern = "N2O", x = variable)) %>% 
  ggplot(aes(year, value, color = scenario, linetype = scenario)) + 
  geom_line(size = 1.5, alpha = 0.5) + 
  facet_wrap("variable", scales = "free") + 
  labs(y = NULL, x = NULL) 

3.3 CH4

hector_out %>%  
  filter(grepl(pattern = "CH4", x = variable)) %>% 
  ggplot(aes(year, value, color = scenario, linetype = scenario)) + 
  geom_line(size = 1.5, alpha = 0.5) + 
  facet_wrap("variable", scales = "free") + 
  labs(y = NULL, x = NULL) 

3.4 Global Meann Temp

hector_out %>%  
  filter(variable %in% c(GLOBAL_TEMP(), RF_TOTAL())) %>% 
  ggplot(aes(year, value, color = scenario, linetype = scenario)) + 
  geom_line(size = 1.5, alpha = 0.5) + 
  facet_wrap("variable", scales = "free") + 
  labs(y = NULL, x = NULL) 

What is the difference between the ar6 hector and the conc hector rcmip temperature? Does this make a difference in the long term?

hector_out %>%  
  filter(variable %in% c(GLOBAL_TEMP(), RF_TOTAL())) %>% 
  select(-units) %>% 
  as.data.table %>% 
  dcast(year + variable  ~ scenario) %>%  
  mutate(diff = 100 * (`conc hector rcmip` - `ar6 hector`) / `ar6 hector`) %>%  
  ggplot(aes(year, diff)) + 
  geom_hline(yintercept = -5, size = 1, color = "red", linetype = 2, alpha = 0.5) + 
  geom_hline(yintercept = 5, size = 1, color = "red", linetype = 2, alpha = 0.5) + 
  geom_line(size = 1.5, alpha = 0.5) + 
  facet_wrap("variable", scales = "free") + 
  labs(y = NULL, x = NULL, title = "% Difference between conc hector rcmip & ar6 hector", 
       caption = "red lines at +/- 5%") + 
  coord_cartesian(ylim = c(-50, 50))

4 Take

LS0tCnRpdGxlOiAiQ29tcGFyZSBSQ01JUCAmIEFSNiBoaXN0b3JpY2FsIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6ICc0JwogICAgdG9jX2Zsb2F0OiB5ZXMKICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQpkYXRlOiAiYHIgZm9ybWF0KFN5cy50aW1lKCksICclZCAlQiwgJVknKWAiCi0tLQoKIyBTZXQgVXAgCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIGVycm9yID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFKQojIHNlZSBodHRwczovL2Jvb2tkb3duLm9yZy95aWh1aS9ybWFya2Rvd24tY29va2Jvb2svIGZvciBtb3JlIGluZm8gb24gbWFya2Rvd25zCmBgYAoKYGBge3J9CmxpYnJhcnkoZGF0YS50YWJsZSkKbGlicmFyeShkcGx5cikKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KGhlY3RvcikKbGlicmFyeSh0aWR5cikKCkJBU0VfRElSIDwtIGhlcmU6OmhlcmUoKQoKdGhlbWVfc2V0KHRoZW1lX2J3KCkpCmBgYAoKIyMgT2JqZWN0aXZlIAoKSGVyZSB3ZSB3YW50IHRvIGNvbXBhcmUgdGhlIGNvbmNlbnRyYXRpb25zIGZyb20gUkNNSVAgJiB0aGUgQVI2IGRyaXZlbiBIZWN0b3IgcnVucy4gRG9lcyB1c2luZyB0aGUgaGlzdG9yaWNhbCBBUjYgY29uY2VudHJhdGlvbnMgaW1wcm92ZSBob3cgSGVjdG9yIFJGIGNvbXBhcmVzIHdpdGggd2l0aCB0aGUgdGhlIEFSNiBSRj8gCgoKIyBSdW4gSGVjdG9yIAoKUnVuIGhpc3RvcmljYWwgd2l0aCBSQ01JUCBpbnB1dHMuIAoKYGBge3J9CkdIR19jbWlwNV9pbmkgPC0gIi9Vc2Vycy9kb3JoMDEyL0RvY3VtZW50cy8yMDIxLzIwMjEtaGVjdG9yLWFyNnJmL2lucHV0L2hlY3Rvcl9zc3A1ODUtR0hHLmluaSIKY29yZSA8LSBuZXdjb3JlKEdIR19jbWlwNV9pbmkpICAKcnVuKGNvcmUsIHJ1bnRvZGF0ZSA9IDIwMTUpICAKZ2hnX3JjbWlwX291dCA8LSBmZXRjaHZhcnMoY29yZSwgMTg1MDoyMDE1LCB2YXJzID0gYyhHTE9CQUxfVEVNUCgpLCBSRl9DTzIoKSwgUkZfTjJPKCksIFJGX0NINCgpLCBSRl9UT1RBTCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1PU1BIRVJJQ19DTzIoKSwgQVRNT1NQSEVSSUNfTjJPKCksIEFUTU9TUEhFUklDX0NINCgpKSkgIApnaGdfcmNtaXBfb3V0JHNjZW5hcmlvIDwtICJjb25jIGhlY3RvciByY21pcCIKICAKCmVtaXNzX2NtaXA1X2luaSA8LSAiL1VzZXJzL2RvcmgwMTIvRG9jdW1lbnRzLzIwMjEvMjAyMS1oZWN0b3ItYXI2cmYvaW5wdXQvaGVjdG9yX3NzcDU4NS5pbmkiCmNvcmUgPC0gbmV3Y29yZShlbWlzc19jbWlwNV9pbmkpICAKcnVuKGNvcmUsIHJ1bnRvZGF0ZSA9IDIwMTUpICAKZW1pc3NfcmNtaXBfb3V0IDwtIGZldGNodmFycyhjb3JlLCAxODUwOjIwMTUsIHZhcnMgPSBjKEdMT0JBTF9URU1QKCksIFJGX0NPMigpLCBSRl9OMk8oKSwgUkZfQ0g0KCksIFJGX1RPVEFMKCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1PU1BIRVJJQ19DTzIoKSwgQVRNT1NQSEVSSUNfTjJPKCksIEFUTU9TUEhFUklDX0NINCgpKSkgIAplbWlzc19yY21pcF9vdXQkc2NlbmFyaW8gPC0gImVtaXNzIGhlY3RvciByY21pcCIKYGBgCgoKUnUgaGlzdG9yaWNhbCB3aXRoIEFSNiBpbnB1dHMuIApgYGB7cn0KZW1pc3NfaW5pIDwtICIvVXNlcnMvZG9yaDAxMi9Eb2N1bWVudHMvMjAyMS8yMDIxLWhlY3Rvci1hcjZyZi9pbnB1dC9oZWN0b3Jfc3NwNTg1LmluaSIKY29yZSA8LSBuZXdjb3JlKGVtaXNzX2luaSkgIAphcjZfY29uYyA8LSByZWFkLmNzdihoZXJlOjpoZXJlKCJhcjYiLCAiYXI2LXRhYmxlX0EzLjFfaGlzdG9yaWNhbF9hYnVuZGFuY2VzLmNzdiIpLCBza2lwID0gMSkKc2V0dmFyKGNvcmUsIGFyNl9jb25jJFlZWVksIHZhciA9IENPMl9DT05TVFJBSU4oKSwgdmFsdWVzID0gYXI2X2NvbmMkQ08yLCB1bml0ID0gIGdldHVuaXRzKENPMl9DT05TVFJBSU4oKSkpCnNldHZhcihjb3JlLCBhcjZfY29uYyRZWVlZLCB2YXIgPSBDSDRfQ09OU1RSQUlOKCksIHZhbHVlcyA9IGFyNl9jb25jJENINCwgdW5pdCA9ICBnZXR1bml0cyhDSDRfQ09OU1RSQUlOKCkpKQpzZXR2YXIoY29yZSwgYXI2X2NvbmMkWVlZWSwgdmFyID0gTjJPX0NPTlNUUkFJTigpLCB2YWx1ZXMgPSBhcjZfY29uYyROMk8sIHVuaXQgPSAgZ2V0dW5pdHMoTjJPX0NPTlNUUkFJTigpKSkKcmVzZXQoY29yZSkKcnVuKGNvcmUsIHJ1bnRvZGF0ZSA9IDIwMTUpICAKYXI2X291dCA8LSBmZXRjaHZhcnMoY29yZSwgMTg1MDoyMDE1LCB2YXJzID0gYyhHTE9CQUxfVEVNUCgpLCBSRl9DTzIoKSwgUkZfTjJPKCksIFJGX0NINCgpLCBSRl9UT1RBTCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1PU1BIRVJJQ19DTzIoKSwgQVRNT1NQSEVSSUNfTjJPKCksIEFUTU9TUEhFUklDX0NINCgpKSkgIAphcjZfb3V0JHNjZW5hcmlvIDwtICJhcjYgaGVjdG9yIgpgYGAKCgojIyBJbXBvcnQgdGhlIGVmZmVjdGl2ZSByYWRpYXRpdmUgZm9yY2luZwoKYGBge3J9CkVSRl9kYXRhIDwtIHJlYWQuY3N2KGhlcmU6OmhlcmUoIlNTUHMiLCAiRVJGX3NzcDQzNF8xNzUwLTI1MDAuY3N2IikpCkVSRl9kYXRhICU+JSAKICBzZWxlY3QoeWVhciwgRk4yTyA9IG4ybywgRkNPMiA9IGNvMiwgRkNINCA9IGNoNCwgRnRvdCA9IHRvdGFsKSAlPiUgCiAgYXMuZGF0YS50YWJsZSgpICU+JSAKICBtZWx0KGlkLnZhcnMgPSAieWVhciIpICU+JSAKICBtdXRhdGUoc2NlbmFyaW8gPSAiYXI2IHJlc3VsdHMiKSAlPiUgCiAgZmlsdGVyKHllYXIgJWluJSBhcjZfb3V0JHllYXIpIC0+IAogIGFyNl9yZgpgYGAKCgpgYGB7cn0KaGVjdG9yX291dCA8LSBiaW5kX3Jvd3MoZ2hnX3JjbWlwX291dCwgZW1pc3NfcmNtaXBfb3V0LCBhcjZfb3V0LCBhcjZfcmYpCmBgYAoKCiMgQ29tcGFyZSBSZXN1bHRzIAoKIyMgQ08yIAoKSG93IGRpZmZlcmVudCBpcyB0aGUgQ08yIFJGIGZvcm0gb25lIGFub3RoZXI/IFdoYXQgZG9lcyB0aGF0IG1lYW4gZm9yIHRoZSBDTzIgUkY/IAoKYGBge3J9CmhlY3Rvcl9vdXQgJT4lICAKICBmaWx0ZXIoZ3JlcGwocGF0dGVybiA9ICJDTzJ8Q2EiLCB4ID0gdmFyaWFibGUpKSAlPiUgCiAgZ2dwbG90KGFlcyh5ZWFyLCB2YWx1ZSwgY29sb3IgPSBzY2VuYXJpbywgbGluZXR5cGUgPSBzY2VuYXJpbykpICsgCiAgZ2VvbV9saW5lKHNpemUgPSAxLjUsIGFscGhhID0gMC41KSArIAogIGZhY2V0X3dyYXAoInZhcmlhYmxlIiwgc2NhbGVzID0gImZyZWUiKSArIAogIGxhYnMoeSA9IE5VTEwsIHggPSBOVUxMKSAKYGBgCgoKIyMgTjJPIAoKCmBgYHtyfQpoZWN0b3Jfb3V0ICU+JSAgCiAgZmlsdGVyKGdyZXBsKHBhdHRlcm4gPSAiTjJPIiwgeCA9IHZhcmlhYmxlKSkgJT4lIAogIGdncGxvdChhZXMoeWVhciwgdmFsdWUsIGNvbG9yID0gc2NlbmFyaW8sIGxpbmV0eXBlID0gc2NlbmFyaW8pKSArIAogIGdlb21fbGluZShzaXplID0gMS41LCBhbHBoYSA9IDAuNSkgKyAKICBmYWNldF93cmFwKCJ2YXJpYWJsZSIsIHNjYWxlcyA9ICJmcmVlIikgKyAKICBsYWJzKHkgPSBOVUxMLCB4ID0gTlVMTCkgCmBgYAoKIyMgQ0g0IAoKCmBgYHtyfQpoZWN0b3Jfb3V0ICU+JSAgCiAgZmlsdGVyKGdyZXBsKHBhdHRlcm4gPSAiQ0g0IiwgeCA9IHZhcmlhYmxlKSkgJT4lIAogIGdncGxvdChhZXMoeWVhciwgdmFsdWUsIGNvbG9yID0gc2NlbmFyaW8sIGxpbmV0eXBlID0gc2NlbmFyaW8pKSArIAogIGdlb21fbGluZShzaXplID0gMS41LCBhbHBoYSA9IDAuNSkgKyAKICBmYWNldF93cmFwKCJ2YXJpYWJsZSIsIHNjYWxlcyA9ICJmcmVlIikgKyAKICBsYWJzKHkgPSBOVUxMLCB4ID0gTlVMTCkgCmBgYAoKCgojIyBHbG9iYWwgTWVhbm4gVGVtcCAKCmBgYHtyfQpoZWN0b3Jfb3V0ICU+JSAgCiAgZmlsdGVyKHZhcmlhYmxlICVpbiUgYyhHTE9CQUxfVEVNUCgpLCBSRl9UT1RBTCgpKSkgJT4lIAogIGdncGxvdChhZXMoeWVhciwgdmFsdWUsIGNvbG9yID0gc2NlbmFyaW8sIGxpbmV0eXBlID0gc2NlbmFyaW8pKSArIAogIGdlb21fbGluZShzaXplID0gMS41LCBhbHBoYSA9IDAuNSkgKyAKICBmYWNldF93cmFwKCJ2YXJpYWJsZSIsIHNjYWxlcyA9ICJmcmVlIikgKyAKICBsYWJzKHkgPSBOVUxMLCB4ID0gTlVMTCkgCmBgYAoKCldoYXQgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgYXI2IGhlY3RvciBhbmQgdGhlIGNvbmMgaGVjdG9yIHJjbWlwIHRlbXBlcmF0dXJlPyBEb2VzIHRoaXMgbWFrZSBhIGRpZmZlcmVuY2UgaW4gdGhlIGxvbmcgdGVybT8gCgoKYGBge3J9CmhlY3Rvcl9vdXQgJT4lICAKICBmaWx0ZXIodmFyaWFibGUgJWluJSBjKEdMT0JBTF9URU1QKCksIFJGX1RPVEFMKCkpKSAlPiUgCiAgc2VsZWN0KC11bml0cykgJT4lIAogIGFzLmRhdGEudGFibGUgJT4lIAogIGRjYXN0KHllYXIgKyB2YXJpYWJsZSAgfiBzY2VuYXJpbykgJT4lICAKICBtdXRhdGUoZGlmZiA9IDEwMCAqIChgY29uYyBoZWN0b3IgcmNtaXBgIC0gYGFyNiBoZWN0b3JgKSAvIGBhcjYgaGVjdG9yYCkgJT4lICAKICBnZ3Bsb3QoYWVzKHllYXIsIGRpZmYpKSArIAogIGdlb21faGxpbmUoeWludGVyY2VwdCA9IC01LCBzaXplID0gMSwgY29sb3IgPSAicmVkIiwgbGluZXR5cGUgPSAyLCBhbHBoYSA9IDAuNSkgKyAKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSA1LCBzaXplID0gMSwgY29sb3IgPSAicmVkIiwgbGluZXR5cGUgPSAyLCBhbHBoYSA9IDAuNSkgKyAKICBnZW9tX2xpbmUoc2l6ZSA9IDEuNSwgYWxwaGEgPSAwLjUpICsgCiAgZmFjZXRfd3JhcCgidmFyaWFibGUiLCBzY2FsZXMgPSAiZnJlZSIpICsgCiAgbGFicyh5ID0gTlVMTCwgeCA9IE5VTEwsIHRpdGxlID0gIiUgRGlmZmVyZW5jZSBiZXR3ZWVuIGNvbmMgaGVjdG9yIHJjbWlwICYgYXI2IGhlY3RvciIsIAogICAgICAgY2FwdGlvbiA9ICJyZWQgbGluZXMgYXQgKy8tIDUlIikgKyAKICBjb29yZF9jYXJ0ZXNpYW4oeWxpbSA9IGMoLTUwLCA1MCkpCmBgYAoKIyBUYWtlIA==