Objective

Previously when we tried perturbing only the carbon storage pool as we expected to mimic girdling treatments there was little response to the treatment. And little to no difference between the different treatments. Now let’s try a sustained disturbance to the carbon storage pool for 1 month.

library(magrittr)
library(ggplot2)
library(ed4forte)
source(file.path(here::here('C.analysis', 'packages.R')))
INPUT_DIR <- here::here('ED-outputs', 'disturbanceII')
source(file.path(here::here('C.analysis', 'functions.R')))
THEME <- theme_bw()
files <- list.files(INPUT_DIR, '.rds', full.names = TRUE)
objs  <- lapply(files, readRDS)
names(objs) <- gsub(pattern = '.rds', replacement = '', x = basename(files))
NPP_data <- dplyr::bind_rows(mapply(function(obj, scn){
  process_NPP(ed_object = obj, scn_name = scn)
  }, obj = objs, scn = names(objs), SIMPLIFY = FALSE))
AGB_data <- dplyr::bind_rows(mapply(function(obj, scn){
  process_ABG(ed_object = obj, scn_name = scn)
  }, obj = objs, scn = names(objs), SIMPLIFY = FALSE))
nplant_data <- dplyr::bind_rows(mapply(function(obj, scn){
  
  process_nplant <- function(ed_object = obj, scn_name = scn){
    
    as.data.table(ed_object$df_pft[[1]])[  ,list(datetime, NPLANT_PY, pft)] %>%  
      .[ , list(value = mean(NPLANT_PY)), by=c("datetime")] %>% 
      .[ , scn := scn_name]
  }
    process_nplant(ed_object = obj, scn_name = scn)
  
  
}, obj = objs, scn = names(objs), SIMPLIFY = FALSE))
# mort_data <- dplyr::bind_rows(mapply(function(obj, scn){
#   
#   process_nplant <- function(ed_object = obj, scn_name = scn){
#     
#     as.data.table(ed_object$df_cohort[[1]])[  ,list(datetime, NPLANT_PY, pft)] %>%  
#       .[ , list(value = mean(NPLANT_PY)), by=c("datetime")] %>% 
#       .[ , scn := scn_name]
# 
#   }
#     process_nplant(ed_object = obj, scn_name = scn)
#   
#   
# }, obj = objs, scn = names(objs), SIMPLIFY = FALSE))

What about mortality?

Can we tell anything about tree morality based on the plant density? Is this something that is useful to look at?

nplant_data_baseline <- nplant_data[scn == 'baseline', ]
nplant_data <- nplant_data[scn != 'baseline', ]
nplant_data$type <- gsub(pattern = 'harvest-45_|harvest-85_', replacement = '', x = nplant_data$scn)
nplant_data$scn <- gsub(pattern = paste(unique(nplant_data$type), collapse = '|'), 
                        replacement = '', x = nplant_data$scn)
ggplot() + 
  geom_line(data = nplant_data_baseline, aes(datetime, value), color = 'grey') + 
  geom_line(data = nplant_data, aes(datetime, value, color = scn)) + 
  THEME + 
  facet_wrap('type') + 
  labs(title = 'Plant Density', caption = 'baseline = grey', y = "Nplants/m2")

Above Ground Biomass

AGB <- AGB_data[ scn != 'baseline',  sum(value), by=c("datetime","scn")]
names(AGB) <- c('datetime', 'scn', 'value')
AGB$type <- gsub(pattern = 'harvest-45_|harvest-85_', replacement = '', x = AGB$scn)
AGB$scn <- gsub(pattern = paste(unique(AGB$type), collapse = '|'), replacement = '', x = AGB$scn)
ABG_baseline <- AGB_data[ scn == 'baseline',  sum(value), by=c("datetime","scn")]
names(ABG_baseline) <- c('datetime', 'scn', 'value')
ggplot() + 
  geom_line(data = ABG_baseline, aes(datetime, value), color = 'grey') + 
  geom_line(data = AGB, aes(datetime, value, color = scn)) + 
  THEME + 
  facet_wrap('type') + 
  labs(title = 'Above Ground Biomass', caption = 'baseline = grey', y = "kgC/m2")

NPP

NPP <- NPP_data[ scn != 'baseline',  sum(value), by=c("year","scn")]
names(NPP) <- c('year', 'scn', 'value')
NPP$type <- gsub(pattern = 'harvest-45_|harvest-85_', replacement = '', x = NPP$scn)
NPP$scn <- gsub(pattern = paste(unique(NPP$type), collapse = '|'), replacement = '', x = NPP$scn)
NPP_baseline <- NPP_data[ scn == 'baseline',  sum(value), by=c("year","scn")]
names(NPP_baseline) <- c('year', 'scn', 'value')
ggplot() + 
  geom_line(data = NPP_baseline, aes(year, value), color = 'grey') + 
  geom_line(data = NPP, aes(year, value, color = scn)) + 
  THEME + 
  facet_wrap('type') + 
  labs(title = 'Net Primary Production', caption = 'baseline = grey', y = "kgC/m2/yr")

# What is the difference the NPP of the different treatments? 
names(NPP) <- c('year', 'scn', 'treatment_value', 'type')
names(NPP_baseline) <- c('year', 'scn', 'baseline_value')
NPP_difference <- NPP[NPP_baseline[, list(year, baseline_value)], on = 'year']
NPP_difference$diff <- NPP_difference$treatment_value - NPP_difference$baseline_value
ggplot() + 
  geom_line(data = NPP_difference, aes(year, diff, color = scn)) + 
  THEME + 
  facet_wrap('type') + 
  labs(title = 'Net Primary Production', y = "kgC/m2/yr")

LS0tCnRpdGxlOiAiUmV2aXN0aW5nIERpc3R1cmJhbmNlIFRyZWF0bWVudHMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCiMjIE9iamVjdGl2ZQoKUHJldmlvdXNseSB3aGVuIHdlIHRyaWVkIHBlcnR1cmJpbmcgb25seSB0aGUgY2FyYm9uIHN0b3JhZ2UgcG9vbCBhcyB3ZSBleHBlY3RlZCB0byBtaW1pYyBnaXJkbGluZyB0cmVhdG1lbnRzIHRoZXJlIHdhcyBsaXR0bGUgcmVzcG9uc2UgdG8gdGhlIHRyZWF0bWVudC4gQW5kIGxpdHRsZSB0byBubyBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGRpZmZlcmVudCB0cmVhdG1lbnRzLiBOb3cgbGV0J3MgdHJ5IGEgc3VzdGFpbmVkIGRpc3R1cmJhbmNlIHRvIHRoZSBjYXJib24gc3RvcmFnZSBwb29sIGZvciAxIG1vbnRoLiAKCmBgYHtyfQpsaWJyYXJ5KG1hZ3JpdHRyKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoZWQ0Zm9ydGUpCnNvdXJjZShmaWxlLnBhdGgoaGVyZTo6aGVyZSgnQy5hbmFseXNpcycsICdwYWNrYWdlcy5SJykpKQoKCklOUFVUX0RJUiA8LSBoZXJlOjpoZXJlKCdFRC1vdXRwdXRzJywgJ2Rpc3R1cmJhbmNlSUknKQpzb3VyY2UoZmlsZS5wYXRoKGhlcmU6OmhlcmUoJ0MuYW5hbHlzaXMnLCAnZnVuY3Rpb25zLlInKSkpCgoKVEhFTUUgPC0gdGhlbWVfYncoKQpgYGAKCmBgYHtyfQpmaWxlcyA8LSBsaXN0LmZpbGVzKElOUFVUX0RJUiwgJy5yZHMnLCBmdWxsLm5hbWVzID0gVFJVRSkKb2JqcyAgPC0gbGFwcGx5KGZpbGVzLCByZWFkUkRTKQpuYW1lcyhvYmpzKSA8LSBnc3ViKHBhdHRlcm4gPSAnLnJkcycsIHJlcGxhY2VtZW50ID0gJycsIHggPSBiYXNlbmFtZShmaWxlcykpCgpOUFBfZGF0YSA8LSBkcGx5cjo6YmluZF9yb3dzKG1hcHBseShmdW5jdGlvbihvYmosIHNjbil7CiAgcHJvY2Vzc19OUFAoZWRfb2JqZWN0ID0gb2JqLCBzY25fbmFtZSA9IHNjbikKICB9LCBvYmogPSBvYmpzLCBzY24gPSBuYW1lcyhvYmpzKSwgU0lNUExJRlkgPSBGQUxTRSkpCgpBR0JfZGF0YSA8LSBkcGx5cjo6YmluZF9yb3dzKG1hcHBseShmdW5jdGlvbihvYmosIHNjbil7CiAgcHJvY2Vzc19BQkcoZWRfb2JqZWN0ID0gb2JqLCBzY25fbmFtZSA9IHNjbikKICB9LCBvYmogPSBvYmpzLCBzY24gPSBuYW1lcyhvYmpzKSwgU0lNUExJRlkgPSBGQUxTRSkpCgpucGxhbnRfZGF0YSA8LSBkcGx5cjo6YmluZF9yb3dzKG1hcHBseShmdW5jdGlvbihvYmosIHNjbil7CiAgCiAgcHJvY2Vzc19ucGxhbnQgPC0gZnVuY3Rpb24oZWRfb2JqZWN0ID0gb2JqLCBzY25fbmFtZSA9IHNjbil7CiAgICAKICAgIGFzLmRhdGEudGFibGUoZWRfb2JqZWN0JGRmX3BmdFtbMV1dKVsgICxsaXN0KGRhdGV0aW1lLCBOUExBTlRfUFksIHBmdCldICU+JSAgCiAgICAgIC5bICwgbGlzdCh2YWx1ZSA9IG1lYW4oTlBMQU5UX1BZKSksIGJ5PWMoImRhdGV0aW1lIildICU+JSAKICAgICAgLlsgLCBzY24gOj0gc2NuX25hbWVdCgogIH0KICAgIHByb2Nlc3NfbnBsYW50KGVkX29iamVjdCA9IG9iaiwgc2NuX25hbWUgPSBzY24pCiAgCiAgCn0sIG9iaiA9IG9ianMsIHNjbiA9IG5hbWVzKG9ianMpLCBTSU1QTElGWSA9IEZBTFNFKSkKCgoKCiMgbW9ydF9kYXRhIDwtIGRwbHlyOjpiaW5kX3Jvd3MobWFwcGx5KGZ1bmN0aW9uKG9iaiwgc2NuKXsKIyAgIAojICAgcHJvY2Vzc19ucGxhbnQgPC0gZnVuY3Rpb24oZWRfb2JqZWN0ID0gb2JqLCBzY25fbmFtZSA9IHNjbil7CiMgICAgIAojICAgICBhcy5kYXRhLnRhYmxlKGVkX29iamVjdCRkZl9jb2hvcnRbWzFdXSlbICAsbGlzdChkYXRldGltZSwgTlBMQU5UX1BZLCBwZnQpXSAlPiUgIAojICAgICAgIC5bICwgbGlzdCh2YWx1ZSA9IG1lYW4oTlBMQU5UX1BZKSksIGJ5PWMoImRhdGV0aW1lIildICU+JSAKIyAgICAgICAuWyAsIHNjbiA6PSBzY25fbmFtZV0KIyAKIyAgIH0KIyAgICAgcHJvY2Vzc19ucGxhbnQoZWRfb2JqZWN0ID0gb2JqLCBzY25fbmFtZSA9IHNjbikKIyAgIAojICAgCiMgfSwgb2JqID0gb2Jqcywgc2NuID0gbmFtZXMob2JqcyksIFNJTVBMSUZZID0gRkFMU0UpKQoKCgoKCmBgYAoKCiMjIFdoYXQgYWJvdXQgbW9ydGFsaXR5PyAKCkNhbiB3ZSB0ZWxsIGFueXRoaW5nIGFib3V0IHRyZWUgbW9yYWxpdHkgYmFzZWQgb24gdGhlIHBsYW50IGRlbnNpdHk/IElzIHRoaXMgc29tZXRoaW5nIHRoYXQgaXMgdXNlZnVsIHRvIGxvb2sgYXQ/IAoKYGBge3J9CgpucGxhbnRfZGF0YV9iYXNlbGluZSA8LSBucGxhbnRfZGF0YVtzY24gPT0gJ2Jhc2VsaW5lJywgXQpucGxhbnRfZGF0YSA8LSBucGxhbnRfZGF0YVtzY24gIT0gJ2Jhc2VsaW5lJywgXQpucGxhbnRfZGF0YSR0eXBlIDwtIGdzdWIocGF0dGVybiA9ICdoYXJ2ZXN0LTQ1X3xoYXJ2ZXN0LTg1XycsIHJlcGxhY2VtZW50ID0gJycsIHggPSBucGxhbnRfZGF0YSRzY24pCm5wbGFudF9kYXRhJHNjbiA8LSBnc3ViKHBhdHRlcm4gPSBwYXN0ZSh1bmlxdWUobnBsYW50X2RhdGEkdHlwZSksIGNvbGxhcHNlID0gJ3wnKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gJycsIHggPSBucGxhbnRfZGF0YSRzY24pCgpnZ3Bsb3QoKSArIAogIGdlb21fbGluZShkYXRhID0gbnBsYW50X2RhdGFfYmFzZWxpbmUsIGFlcyhkYXRldGltZSwgdmFsdWUpLCBjb2xvciA9ICdncmV5JykgKyAKICBnZW9tX2xpbmUoZGF0YSA9IG5wbGFudF9kYXRhLCBhZXMoZGF0ZXRpbWUsIHZhbHVlLCBjb2xvciA9IHNjbikpICsgCiAgVEhFTUUgKyAKICBmYWNldF93cmFwKCd0eXBlJykgKyAKICBsYWJzKHRpdGxlID0gJ1BsYW50IERlbnNpdHknLCBjYXB0aW9uID0gJ2Jhc2VsaW5lID0gZ3JleScsIHkgPSAiTnBsYW50cy9tMiIpCmBgYAoKCgoKIyMgQWJvdmUgR3JvdW5kIEJpb21hc3MgCgoKYGBge3J9CkFHQiA8LSBBR0JfZGF0YVsgc2NuICE9ICdiYXNlbGluZScsICBzdW0odmFsdWUpLCBieT1jKCJkYXRldGltZSIsInNjbiIpXQpuYW1lcyhBR0IpIDwtIGMoJ2RhdGV0aW1lJywgJ3NjbicsICd2YWx1ZScpCkFHQiR0eXBlIDwtIGdzdWIocGF0dGVybiA9ICdoYXJ2ZXN0LTQ1X3xoYXJ2ZXN0LTg1XycsIHJlcGxhY2VtZW50ID0gJycsIHggPSBBR0Ikc2NuKQpBR0Ikc2NuIDwtIGdzdWIocGF0dGVybiA9IHBhc3RlKHVuaXF1ZShBR0IkdHlwZSksIGNvbGxhcHNlID0gJ3wnKSwgcmVwbGFjZW1lbnQgPSAnJywgeCA9IEFHQiRzY24pCgpBQkdfYmFzZWxpbmUgPC0gQUdCX2RhdGFbIHNjbiA9PSAnYmFzZWxpbmUnLCAgc3VtKHZhbHVlKSwgYnk9YygiZGF0ZXRpbWUiLCJzY24iKV0KbmFtZXMoQUJHX2Jhc2VsaW5lKSA8LSBjKCdkYXRldGltZScsICdzY24nLCAndmFsdWUnKQoKZ2dwbG90KCkgKyAKICBnZW9tX2xpbmUoZGF0YSA9IEFCR19iYXNlbGluZSwgYWVzKGRhdGV0aW1lLCB2YWx1ZSksIGNvbG9yID0gJ2dyZXknKSArIAogIGdlb21fbGluZShkYXRhID0gQUdCLCBhZXMoZGF0ZXRpbWUsIHZhbHVlLCBjb2xvciA9IHNjbikpICsgCiAgVEhFTUUgKyAKICBmYWNldF93cmFwKCd0eXBlJykgKyAKICBsYWJzKHRpdGxlID0gJ0Fib3ZlIEdyb3VuZCBCaW9tYXNzJywgY2FwdGlvbiA9ICdiYXNlbGluZSA9IGdyZXknLCB5ID0gImtnQy9tMiIpCmBgYAoKCiMgTlBQCgpgYGB7cn0KTlBQIDwtIE5QUF9kYXRhWyBzY24gIT0gJ2Jhc2VsaW5lJywgIHN1bSh2YWx1ZSksIGJ5PWMoInllYXIiLCJzY24iKV0KbmFtZXMoTlBQKSA8LSBjKCd5ZWFyJywgJ3NjbicsICd2YWx1ZScpCk5QUCR0eXBlIDwtIGdzdWIocGF0dGVybiA9ICdoYXJ2ZXN0LTQ1X3xoYXJ2ZXN0LTg1XycsIHJlcGxhY2VtZW50ID0gJycsIHggPSBOUFAkc2NuKQpOUFAkc2NuIDwtIGdzdWIocGF0dGVybiA9IHBhc3RlKHVuaXF1ZShOUFAkdHlwZSksIGNvbGxhcHNlID0gJ3wnKSwgcmVwbGFjZW1lbnQgPSAnJywgeCA9IE5QUCRzY24pCgpOUFBfYmFzZWxpbmUgPC0gTlBQX2RhdGFbIHNjbiA9PSAnYmFzZWxpbmUnLCAgc3VtKHZhbHVlKSwgYnk9YygieWVhciIsInNjbiIpXQpuYW1lcyhOUFBfYmFzZWxpbmUpIDwtIGMoJ3llYXInLCAnc2NuJywgJ3ZhbHVlJykKCmdncGxvdCgpICsgCiAgZ2VvbV9saW5lKGRhdGEgPSBOUFBfYmFzZWxpbmUsIGFlcyh5ZWFyLCB2YWx1ZSksIGNvbG9yID0gJ2dyZXknKSArIAogIGdlb21fbGluZShkYXRhID0gTlBQLCBhZXMoeWVhciwgdmFsdWUsIGNvbG9yID0gc2NuKSkgKyAKICBUSEVNRSArIAogIGZhY2V0X3dyYXAoJ3R5cGUnKSArIAogIGxhYnModGl0bGUgPSAnTmV0IFByaW1hcnkgUHJvZHVjdGlvbicsIGNhcHRpb24gPSAnYmFzZWxpbmUgPSBncmV5JywgeSA9ICJrZ0MvbTIveXIiKQpgYGAKCmBgYHtyfQojIFdoYXQgaXMgdGhlIGRpZmZlcmVuY2UgdGhlIE5QUCBvZiB0aGUgZGlmZmVyZW50IHRyZWF0bWVudHM/IApuYW1lcyhOUFApIDwtIGMoJ3llYXInLCAnc2NuJywgJ3RyZWF0bWVudF92YWx1ZScsICd0eXBlJykKbmFtZXMoTlBQX2Jhc2VsaW5lKSA8LSBjKCd5ZWFyJywgJ3NjbicsICdiYXNlbGluZV92YWx1ZScpCk5QUF9kaWZmZXJlbmNlIDwtIE5QUFtOUFBfYmFzZWxpbmVbLCBsaXN0KHllYXIsIGJhc2VsaW5lX3ZhbHVlKV0sIG9uID0gJ3llYXInXQpOUFBfZGlmZmVyZW5jZSRkaWZmIDwtIE5QUF9kaWZmZXJlbmNlJHRyZWF0bWVudF92YWx1ZSAtIE5QUF9kaWZmZXJlbmNlJGJhc2VsaW5lX3ZhbHVlCmBgYAoKYGBge3J9CmdncGxvdCgpICsgCiAgZ2VvbV9saW5lKGRhdGEgPSBOUFBfZGlmZmVyZW5jZSwgYWVzKHllYXIsIGRpZmYsIGNvbG9yID0gc2NuKSkgKyAKICBUSEVNRSArIAogIGZhY2V0X3dyYXAoJ3R5cGUnKSArIAogIGxhYnModGl0bGUgPSAnTmV0IFByaW1hcnkgUHJvZHVjdGlvbicsIHkgPSAia2dDL20yL3lyIikKYGBgCg==