library('hector')
library('dplyr')
Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
library('ggplot2')
library('ggthemes')
Test 1: RCP45 unconstrained
hc <- newcore('../inst/input/hector_rcp45.ini')
run(hc)
Hector core: unnamed hector core
Start date: 1745
End date: 2300
Current date: 2300
Input file: ../inst/input/hector_rcp45.ini
fetchvars(hc, NA, PREINDUSTRIAL_CO2())
fetchvars(hc, 1745:1750, ATMOSPHERIC_CO2())
spinup_constrain <- fetchvars(hc, 1745:2300, c(ATMOSPHERIC_CO2(), GLOBAL_TEMP()),
'spinup-constrain')
core_hector <- read.csv('sample_outputstream_rcp45.csv',
stringsAsFactors = F,
comment.char = '#')
core_hector$scenario <- 'core-hector'
core_hector <-
filter(core_hector, variable %in% c(ATMOSPHERIC_CO2(), GLOBAL_TEMP()),
year >= 1745) %>%
select(scenario, year, variable, value, units)
pltdata <- bind_rows(spinup_constrain, core_hector)
ggplot(data=pltdata, aes(x=year, y=value, color=scenario)) +
geom_line(size=1) +
facet_grid(variable~., scales='free_y') +
ggtitle('RCP 4.5 with carbon cycle') +
scale_color_solarized() +
theme_solarized_2(light=F)

Test 2: RCP60 with CO2 concentration constrained
hc <- newcore('../inst/input/hector_rcp60_constrained.ini')
run(hc)
Hector core: unnamed hector core
Start date: 1745
End date: 2300
Current date: 2300
Input file: ../inst/input/hector_rcp60_constrained.ini
fetchvars(hc, NA, PREINDUSTRIAL_CO2())
fetchvars(hc, 1745:1750, ATMOSPHERIC_CO2())
spinup_constrain60 <- fetchvars(hc, 1745:2300, c(ATMOSPHERIC_CO2(), GLOBAL_TEMP()),
'spinup-constrain')
core_hector60 <- read.csv('outputstream_rcp60_co2constrain.csv',
stringsAsFactors = F,
comment.char = '#')
core_hector60$scenario <- 'core-hector'
core_hector60 <-
filter(core_hector60, variable %in% c(ATMOSPHERIC_CO2(), GLOBAL_TEMP()),
year >= 1745) %>%
select(scenario, year, variable, value, units)
pltdata60 <- bind_rows(spinup_constrain60, core_hector60)
ggplot(data=pltdata60, aes(x=year, y=value, color=scenario)) +
geom_line(size=1) +
facet_grid(variable~., scales='free_y') +
ggtitle('RCP 4.5 with constrained CO2 concentration') +
scale_color_solarized() +
theme_solarized_2(light=F)

LS0tCnRpdGxlOiAiVGVzdGluZyBDb25zdHJhaW5lZCBTcGludXAiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCgpgYGB7ciBzZXR1cH0KbGlicmFyeSgnaGVjdG9yJykKbGlicmFyeSgnZHBseXInKQpsaWJyYXJ5KCdnZ3Bsb3QyJykKbGlicmFyeSgnZ2d0aGVtZXMnKQpgYGAKCiMjIFRlc3QgMTogUkNQNDUgdW5jb25zdHJhaW5lZApgYGB7cn0KaGMgPC0gbmV3Y29yZSgnLi4vaW5zdC9pbnB1dC9oZWN0b3JfcmNwNDUuaW5pJykKcnVuKGhjKQpmZXRjaHZhcnMoaGMsIE5BLCBQUkVJTkRVU1RSSUFMX0NPMigpKQpmZXRjaHZhcnMoaGMsIDE3NDU6MTc1MCwgQVRNT1NQSEVSSUNfQ08yKCkpCnNwaW51cF9jb25zdHJhaW4gPC0gZmV0Y2h2YXJzKGhjLCAxNzQ1OjIzMDAsIGMoQVRNT1NQSEVSSUNfQ08yKCksIEdMT0JBTF9URU1QKCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BpbnVwLWNvbnN0cmFpbicpCmBgYAoKYGBge3J9CmNvcmVfaGVjdG9yIDwtIHJlYWQuY3N2KCdzYW1wbGVfb3V0cHV0c3RyZWFtX3JjcDQ1LmNzdicsIAogICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdzQXNGYWN0b3JzID0gRiwKICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudC5jaGFyID0gJyMnKQpjb3JlX2hlY3RvciRzY2VuYXJpbyA8LSAnY29yZS1oZWN0b3InCmNvcmVfaGVjdG9yIDwtIAogICAgZmlsdGVyKGNvcmVfaGVjdG9yLCB2YXJpYWJsZSAlaW4lIGMoQVRNT1NQSEVSSUNfQ08yKCksIEdMT0JBTF9URU1QKCkpLAogICAgICAgICAgIHllYXIgPj0gMTc0NSkgJT4lCiAgICBzZWxlY3Qoc2NlbmFyaW8sIHllYXIsIHZhcmlhYmxlLCB2YWx1ZSwgdW5pdHMpCmBgYAoKYGBge3J9CnBsdGRhdGEgPC0gYmluZF9yb3dzKHNwaW51cF9jb25zdHJhaW4sIGNvcmVfaGVjdG9yKQpnZ3Bsb3QoZGF0YT1wbHRkYXRhLCBhZXMoeD15ZWFyLCB5PXZhbHVlLCBjb2xvcj1zY2VuYXJpbykpICsgCiAgICBnZW9tX2xpbmUoc2l6ZT0xKSArCiAgICBmYWNldF9ncmlkKHZhcmlhYmxlfi4sIHNjYWxlcz0nZnJlZV95JykgKwogICAgZ2d0aXRsZSgnUkNQIDQuNSB3aXRoIGNhcmJvbiBjeWNsZScpICsKICAgIHNjYWxlX2NvbG9yX3NvbGFyaXplZCgpICsgCiAgICB0aGVtZV9zb2xhcml6ZWRfMihsaWdodD1GKQpgYGAKCiMjIFRlc3QgMjogUkNQNjAgd2l0aCBDTzIgY29uY2VudHJhdGlvbiBjb25zdHJhaW5lZApgYGB7cn0KaGMgPC0gbmV3Y29yZSgnLi4vaW5zdC9pbnB1dC9oZWN0b3JfcmNwNjBfY29uc3RyYWluZWQuaW5pJykKcnVuKGhjKQpmZXRjaHZhcnMoaGMsIE5BLCBQUkVJTkRVU1RSSUFMX0NPMigpKQpmZXRjaHZhcnMoaGMsIDE3NDU6MTc1MCwgQVRNT1NQSEVSSUNfQ08yKCkpCnNwaW51cF9jb25zdHJhaW42MCA8LSBmZXRjaHZhcnMoaGMsIDE3NDU6MjMwMCwgYyhBVE1PU1BIRVJJQ19DTzIoKSwgR0xPQkFMX1RFTVAoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcGludXAtY29uc3RyYWluJykKYGBgCgpgYGB7cn0KY29yZV9oZWN0b3I2MCA8LSByZWFkLmNzdignb3V0cHV0c3RyZWFtX3JjcDYwX2NvMmNvbnN0cmFpbi5jc3YnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nc0FzRmFjdG9ycyA9IEYsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQuY2hhciA9ICcjJykKY29yZV9oZWN0b3I2MCRzY2VuYXJpbyA8LSAnY29yZS1oZWN0b3InCmNvcmVfaGVjdG9yNjAgPC0gCiAgICBmaWx0ZXIoY29yZV9oZWN0b3I2MCwgdmFyaWFibGUgJWluJSBjKEFUTU9TUEhFUklDX0NPMigpLCBHTE9CQUxfVEVNUCgpKSwKICAgICAgICAgICB5ZWFyID49IDE3NDUpICU+JQogICAgc2VsZWN0KHNjZW5hcmlvLCB5ZWFyLCB2YXJpYWJsZSwgdmFsdWUsIHVuaXRzKQpgYGAKCmBgYHtyfQpwbHRkYXRhNjAgPC0gYmluZF9yb3dzKHNwaW51cF9jb25zdHJhaW42MCwgY29yZV9oZWN0b3I2MCkKZ2dwbG90KGRhdGE9cGx0ZGF0YTYwLCBhZXMoeD15ZWFyLCB5PXZhbHVlLCBjb2xvcj1zY2VuYXJpbykpICsgCiAgICBnZW9tX2xpbmUoc2l6ZT0xKSArCiAgICBmYWNldF9ncmlkKHZhcmlhYmxlfi4sIHNjYWxlcz0nZnJlZV95JykgKwogICAgZ2d0aXRsZSgnUkNQIDQuNSB3aXRoIGNvbnN0cmFpbmVkIENPMiBjb25jZW50cmF0aW9uJykgKwogICAgc2NhbGVfY29sb3Jfc29sYXJpemVkKCkgKyAKICAgIHRoZW1lX3NvbGFyaXplZF8yKGxpZ2h0PUYpCmBgYAo=