library(readr)
library(readxl)
library(dplyr)
library(tidyr)
library(ggplot2)
library(gridExtra)
library(car)
library(caret)
library(gstat)
library(sp)
library(stringr)
library(corrplot)
library(nlme)
library(randomForest)
library(caTools)
library(scales)
library(MASS)
library(ggpubr)
library(viridis)
library(tidymodels)
library(grid)
#set working directory
dir = 'D:/Research/Global_Urban_River_Emission'
GHG<-read.csv(paste0(dir,'/urban_river_GHG.csv'),skip=0)
#join monthly precipitation and temperature
prectemp<-read.csv(paste0(dir,'/tempPrep.csv'),skip=0)
GHG<-left_join(GHG,prectemp,by='COMID')
GHG<-
  GHG%>%mutate(
    Temp=case_when(Mon%in%c('Jan')~tavg_01, #degree celcius
                   Mon%in%c('Feb')~tavg_02,
                   Mon%in%c('Mar')~tavg_03,
                   Mon%in%c('Apr')~tavg_04,
                   Mon%in%c('May')~tavg_05,
                   Mon%in%c('Jun')~tavg_06,
                   Mon%in%c('Jul')~tavg_07,
                   Mon%in%c('Aug')~tavg_08,
                   Mon%in%c('Sep')~tavg_09,
                   Mon%in%c('Oct')~tavg_10,
                   Mon%in%c('Nov')~tavg_11,
                   Mon%in%c('Dec')~tavg_12,
                   Mon%in%c('Feb/Apr/Jun/Aug/Oct/Dec')~(tavg_02+tavg_04+tavg_06+tavg_08+tavg_10+tavg_12)/6,
                   Mon%in%c('Jun/Jul/Aug/Sep')~(tavg_06+tavg_07+tavg_08+tavg_09)/4,
                   Mon%in%c('Sep/Dec/Mar/Jun')~(tavg_06+tavg_12+tavg_03+tavg_09)/4,
                   Mon%in%c('Mar/Apr')~(tavg_03+tavg_04)/2,
                   Mon%in%c('Apr/May')~(tavg_05+tavg_04)/2,
                   Mon%in%c('Mar/Apr/May')~(tavg_03+tavg_04+tavg_05)/3,
                   Mon%in%c('Jun/Jul/Aug')~(tavg_06+tavg_07+tavg_08)/3,
                   Mon%in%c('Sep/Oct/Nov')~(tavg_09+tavg_10+tavg_11)/3,
                   Mon%in%c('Dec/Jan/Feb')~(tavg_12+tavg_01+tavg_02)/3,
                   Mon%in%c('Oct/Feb/Aug')~(tavg_10+tavg_02+tavg_08)/3,
                   Mon%in%c('Jun/Sep/Apr')~(tavg_06+tavg_09+tavg_04)/3,
                   Mon%in%c('Jul/Aug')~(tavg_07+tavg_08)/2,
                   Mon%in%c('Sep/Oct')~(tavg_09+tavg_10)/2,
                   Mon%in%c('Feb/Mar')~(tavg_02+tavg_03)/2,
                   Mon%in%c('May/Jun/Jul/Aug/Sep/Oct')~(tavg_05+tavg_06+tavg_07+tavg_08+tavg_09+tavg_10)/6,
                   Mon%in%c('Dec/Mar/Jul/Oct')~(tavg_12+tavg_03+tavg_07+tavg_10)/4,
                   Mon%in%c('Dec/Apr/Jul/Sep')~(tavg_12+tavg_04+tavg_07+tavg_09)/4,
                   Mon%in%c('Dec/Jun')~(tavg_12+tavg_06)/2,
                   Mon%in%c('Jul/Jan')~(tavg_07+tavg_01)/2,
                   Mon%in%c('Jan/Feb/May/Jun/Aug/Sep')~(tavg_01+tavg_02+tavg_05+tavg_06+tavg_08+tavg_09)/6,
                   Mon%in%c('Feb/Mar/Apr/May')~(tavg_02+tavg_03+tavg_04+tavg_05)/4,
                   Mon%in%c('Oct/Nov/Dec/Jan')~(tavg_10+tavg_11+tavg_12+tavg_01)/4,
                   Mon%in%c('Sep/Jun')~(tavg_09+tavg_06)/2,
                   Mon%in%c('Jul/Oct/Jan/Apr')~(tavg_07+tavg_10+tavg_01+tavg_04)/4,
                   Mon%in%c('Jan/Jul')~(tavg_07+tavg_01)/2,
                   Mon%in%c('Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep')~(tavg_01+tavg_02+tavg_03+tavg_04+tavg_05+tavg_06+tavg_07+tavg_08+tavg_09)/9,
                   Mon%in%c('Jul/Aug/Sep')~(tavg_07+tavg_08+tavg_09)/3,
                   Mon%in%c('Jun/Jul/Aug/Oct')~(tavg_07+tavg_08+tavg_06+tavg_10)/4,
                   Mon%in%c('May/Sep')~(tavg_05+tavg_09)/2,
                   Mon%in%c('Jul/Sep')~(tavg_07+tavg_09)/2,
                   Mon%in%c('Dec/Jan/Feb/Mar/Apr/May')~(tavg_12+tavg_01+tavg_02+tavg_03+tavg_04+tavg_05)/6,
                   Mon%in%c('Ann')~tavg_ann),
    Prec=case_when(Mon%in%c('Jan')~prec_01/31*365, #mm/mon
                   Mon%in%c('Feb')~prec_02/28*365,
                   Mon%in%c('Mar')~prec_03/31*365,
                   Mon%in%c('Apr')~prec_04/30*365,
                   Mon%in%c('May')~prec_05/31*365,
                   Mon%in%c('Jun')~prec_06/30*365,
                   Mon%in%c('Jul')~prec_07/31*365,
                   Mon%in%c('Aug')~prec_08/31*365,
                   Mon%in%c('Sep')~prec_09/30*365,
                   Mon%in%c('Oct')~prec_10/31*365,
                   Mon%in%c('Nov')~prec_11/30*365,
                   Mon%in%c('Dec')~prec_12/31*365,
                   Mon%in%c('Feb/Apr/Jun/Aug/Oct/Dec')~(prec_02/28*365+prec_04/30*365+prec_06/30*365+prec_08/31*365+prec_10/31*365+prec_12/31*365)/6,
                   Mon%in%c('Jun/Jul/Aug/Sep')~(prec_06/30*365+prec_07/31*365+prec_08/31*365+prec_09/30*365)/4,
                   Mon%in%c('Sep/Dec/Mar/Jun')~(prec_06/30*365+prec_12/31*365+prec_03/31*365+prec_09/30*365)/4,
                   Mon%in%c('Mar/Apr')~(prec_03/31*365+prec_04/30*365)/2,
                   Mon%in%c('Apr/May')~(prec_04/30*365+prec_05/31*365)/2,
                   Mon%in%c('Mar/Apr/May')~(prec_03/31*365+prec_04/30*365+prec_05/31*365)/3,
                   Mon%in%c('Jun/Jul/Aug')~(prec_06/30*365+prec_07/31*365+prec_08/31*365)/3,
                   Mon%in%c('Sep/Oct/Nov')~(prec_09/30*365+prec_10/31*365+prec_11/30*365)/3,
                   Mon%in%c('Dec/Jan/Feb')~(prec_12/31*365+prec_01/31*365+prec_02/28*365)/3,
                   Mon%in%c('Oct/Feb/Aug')~(prec_10/31*365+prec_02/28*365+prec_08/31*365)/3,
                   Mon%in%c('Jun/Sep/Apr')~(prec_06/30*365+prec_09/30*365+prec_04/30*365)/3,
                   Mon%in%c('Jul/Aug')~(prec_07/31*365+prec_08/31*365)/2,
                   Mon%in%c('Sep/Oct')~(prec_09/30*365+prec_10/31*365)/2,
                   Mon%in%c('Feb/Mar')~(prec_02/28*365+prec_03/31*365)/2,
                   Mon%in%c('May/Jun/Jul/Aug/Sep/Oct')~(prec_05/31*365+prec_06/30*365+prec_07/31*365+prec_08/31*365+prec_09/30*365+prec_10/31*365)/6,
                   Mon%in%c('Dec/Mar/Jul/Oct')~(prec_12/31*365+prec_03/31*365+prec_07/31*365+prec_10/31*365)/4,
                   Mon%in%c('Dec/Apr/Jul/Sep')~(prec_12/31*365+prec_04/30*365+prec_07/31*365+prec_09/30*365)/4,
                   Mon%in%c('Dec/Jun')~(prec_12/31*365+prec_06/30*365)/2,
                   Mon%in%c('Jul/Jan')~(prec_07/31*365+prec_01/31*365)/2,
                   Mon%in%c('Jan/Feb/May/Jun/Aug/Sep')~(prec_01/31*365+prec_02/28*365+prec_05/31*365+prec_06/30*365+prec_08/31*365+prec_09/30*365)/6,
                   Mon%in%c('Feb/Mar/Apr/May')~(prec_02/28*365+prec_03/31*365+prec_04/30*365+prec_05/31*365)/4,
                   Mon%in%c('Oct/Nov/Dec/Jan')~(prec_10/31*365+prec_11/30*365+prec_12/31*365+prec_01/31*365)/4,
                   Mon%in%c('Sep/Jun')~(prec_09/30*365+prec_06/30*365)/2,
                   Mon%in%c('Jul/Oct/Jan/Apr')~(prec_07/31*365+prec_10/31*365+prec_01/31*365+prec_04/30*365)/4,
                   Mon%in%c('Jan/Jul')~(prec_07/31*365+prec_01/31*365)/2,
                   Mon%in%c('Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep')~(prec_01/31*365+prec_02/28*365+prec_03/31*365+prec_04/30*365+prec_05/31*365+prec_06/30*365+prec_07/31*365+prec_08/31*365+prec_09/30*365)/9,
                   Mon%in%c('Jul/Aug/Sep')~(prec_07/31*365+prec_08/31*365+prec_09/30*365)/3,
                   Mon%in%c('Jun/Jul/Aug/Oct')~(prec_07/31*365+prec_08/31*365+prec_06/30*365+prec_10/31*365)/4,
                   Mon%in%c('May/Sep')~(prec_05/31*365+prec_09/30*365)/2,
                   Mon%in%c('Jul/Sep')~(prec_07/31*365+prec_09/30*365)/2,
                   Mon%in%c('Dec/Jan/Feb/Mar/Apr/May')~(prec_12/31*365+prec_01/31*365+prec_02/28*365+prec_03/31*365+prec_04/30*365+prec_05/31*365)/6,
                   Mon%in%c('Ann')~prec_ann)) #mm/year
GHG<-GHG[,-which(names(GHG)%in%paste0('tavg_',str_pad(c(1:12),2,pad=0)))]
GHG<-GHG[,-which(names(GHG)%in%paste0('prec_',str_pad(c(1:12),2,pad=0)))]
#join monthly GPP and NPP
mongppnpp<-read.csv(paste0(dir,'/monthly_gpp_npp.csv'),skip=0)
GHG<-left_join(GHG,mongppnpp,by='COMID')
GHG<-
  GHG%>%mutate(
    GPP=case_when(Mon%in%c('Jan')~gpp_01,
                  Mon%in%c('Feb')~gpp_02,
                  Mon%in%c('Mar')~gpp_03,
                  Mon%in%c('Apr')~gpp_04,
                  Mon%in%c('May')~gpp_05,
                  Mon%in%c('Jun')~gpp_06,
                  Mon%in%c('Jul')~gpp_07,
                  Mon%in%c('Aug')~gpp_08,
                  Mon%in%c('Sep')~gpp_09,
                  Mon%in%c('Oct')~gpp_10,
                  Mon%in%c('Nov')~gpp_11,
                  Mon%in%c('Dec')~gpp_12,
                  Mon%in%c('Feb/Apr/Jun/Aug/Oct/Dec')~(gpp_02+gpp_04+gpp_06+gpp_08+gpp_10+gpp_12)/6,
                  Mon%in%c('Jun/Jul/Aug/Sep')~(gpp_06+gpp_07+gpp_08+gpp_09)/4,
                  Mon%in%c('Sep/Dec/Mar/Jun')~(gpp_06+gpp_12+gpp_03+gpp_09)/4,
                  Mon%in%c('Mar/Apr')~(gpp_03+gpp_04)/2,
                  Mon%in%c('Apr/May')~(gpp_05+gpp_04)/2,
                  Mon%in%c('Mar/Apr/May')~(gpp_03+gpp_04+gpp_05)/3,
                  Mon%in%c('Jun/Jul/Aug')~(gpp_06+gpp_07+gpp_08)/3,
                  Mon%in%c('Sep/Oct/Nov')~(gpp_09+gpp_10+gpp_11)/3,
                  Mon%in%c('Dec/Jan/Feb')~(gpp_12+gpp_01+gpp_02)/3,
                  Mon%in%c('Oct/Feb/Aug')~(gpp_10+gpp_02+gpp_08)/3,
                  Mon%in%c('Jun/Sep/Apr')~(gpp_06+gpp_09+gpp_04)/3,
                  Mon%in%c('Jul/Aug')~(gpp_07+gpp_08)/2,
                  Mon%in%c('Sep/Oct')~(gpp_09+gpp_10)/2,
                  Mon%in%c('Feb/Mar')~(gpp_02+gpp_03)/2,
                  Mon%in%c('May/Jun/Jul/Aug/Sep/Oct')~(gpp_05+gpp_06+gpp_07+gpp_08+gpp_09+gpp_10)/6,
                  Mon%in%c('Dec/Mar/Jul/Oct')~(gpp_12+gpp_03+gpp_07+gpp_10)/4,
                  Mon%in%c('Dec/Apr/Jul/Sep')~(gpp_12+gpp_04+gpp_07+gpp_09)/4,
                  Mon%in%c('Dec/Jun')~(gpp_12+gpp_06)/2,
                  Mon%in%c('Jul/Jan')~(gpp_07+gpp_01)/2,
                  Mon%in%c('Jan/Feb/May/Jun/Aug/Sep')~(gpp_01+gpp_02+gpp_05+gpp_06+gpp_08+gpp_09)/6,
                  Mon%in%c('Feb/Mar/Apr/May')~(gpp_02+gpp_03+gpp_04+gpp_05)/4,
                  Mon%in%c('Oct/Nov/Dec/Jan')~(gpp_10+gpp_11+gpp_12+gpp_01)/4,
                  Mon%in%c('Sep/Jun')~(gpp_09+gpp_06)/2,
                  Mon%in%c('Jul/Oct/Jan/Apr')~(gpp_07+gpp_10+gpp_01+gpp_04)/4,
                  Mon%in%c('Jan/Jul')~(gpp_07+gpp_01)/2,
                  Mon%in%c('Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep')~(gpp_01+gpp_02+gpp_03+gpp_04+gpp_05+gpp_06+gpp_07+gpp_08+gpp_09)/9,
                  Mon%in%c('Jul/Aug/Sep')~(gpp_07+gpp_08+gpp_09)/3,
                  Mon%in%c('Jun/Jul/Aug/Oct')~(gpp_07+gpp_08+gpp_06+gpp_10)/4,
                  Mon%in%c('May/Sep')~(gpp_05+gpp_09)/2,
                  Mon%in%c('Jul/Sep')~(gpp_07+gpp_09)/2,
                  Mon%in%c('Dec/Jan/Feb/Mar/Apr/May')~(gpp_12+gpp_01+gpp_02+gpp_03+gpp_04+gpp_05)/6,
                  Mon%in%c('Ann')~GPP),
    NPP=case_when(Mon%in%c('Jan')~npp_01,
                  Mon%in%c('Feb')~npp_02,
                  Mon%in%c('Mar')~npp_03,
                  Mon%in%c('Apr')~npp_04,
                  Mon%in%c('May')~npp_05,
                  Mon%in%c('Jun')~npp_06,
                  Mon%in%c('Jul')~npp_07,
                  Mon%in%c('Aug')~npp_08,
                  Mon%in%c('Sep')~npp_09,
                  Mon%in%c('Oct')~npp_10,
                  Mon%in%c('Nov')~npp_11,
                  Mon%in%c('Dec')~npp_12,
                  Mon%in%c('Feb/Apr/Jun/Aug/Oct/Dec')~(npp_02+npp_04+npp_06+npp_08+npp_10+npp_12)/6,
                  Mon%in%c('Jun/Jul/Aug/Sep')~(npp_06+npp_07+npp_08+npp_09)/4,
                  Mon%in%c('Sep/Dec/Mar/Jun')~(npp_06+npp_12+npp_03+npp_09)/4,
                  Mon%in%c('Mar/Apr')~(npp_03+npp_04)/2,
                  Mon%in%c('Apr/May')~(npp_05+npp_04)/2,
                  Mon%in%c('Mar/Apr/May')~(npp_03+npp_04+npp_05)/3,
                  Mon%in%c('Jun/Jul/Aug')~(npp_06+npp_07+npp_08)/3,
                  Mon%in%c('Sep/Oct/Nov')~(npp_09+npp_10+npp_11)/3,
                  Mon%in%c('Dec/Jan/Feb')~(npp_12+npp_01+npp_02)/3,
                  Mon%in%c('Oct/Feb/Aug')~(npp_10+npp_02+npp_08)/3,
                  Mon%in%c('Jun/Sep/Apr')~(npp_06+npp_09+npp_04)/3,
                  Mon%in%c('Jul/Aug')~(npp_07+npp_08)/2,
                  Mon%in%c('Sep/Oct')~(npp_09+npp_10)/2,
                  Mon%in%c('Feb/Mar')~(npp_02+npp_03)/2,
                  Mon%in%c('May/Jun/Jul/Aug/Sep/Oct')~(npp_05+npp_06+npp_07+npp_08+npp_09+npp_10)/6,
                  Mon%in%c('Dec/Mar/Jul/Oct')~(npp_12+npp_03+npp_07+npp_10)/4,
                  Mon%in%c('Dec/Apr/Jul/Sep')~(npp_12+npp_04+npp_07+npp_09)/4,
                  Mon%in%c('Dec/Jun')~(npp_12+npp_06)/2,
                  Mon%in%c('Jul/Jan')~(npp_07+npp_01)/2,
                  Mon%in%c('Jan/Feb/May/Jun/Aug/Sep')~(npp_01+npp_02+npp_05+npp_06+npp_08+npp_09)/6,
                  Mon%in%c('Feb/Mar/Apr/May')~(npp_02+npp_03+npp_04+npp_05)/4,
                  Mon%in%c('Oct/Nov/Dec/Jan')~(npp_10+npp_11+npp_12+npp_01)/4,
                  Mon%in%c('Sep/Jun')~(npp_09+npp_06)/2,
                  Mon%in%c('Jul/Oct/Jan/Apr')~(npp_07+npp_10+npp_01+npp_04)/4,
                  Mon%in%c('Jan/Jul')~(npp_07+npp_01)/2,
                  Mon%in%c('Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep')~(npp_01+npp_02+npp_03+npp_04+npp_05+npp_06+npp_07+npp_08+npp_09)/9,
                  Mon%in%c('Jul/Aug/Sep')~(npp_07+npp_08+npp_09)/3,
                  Mon%in%c('Jun/Jul/Aug/Oct')~(npp_07+npp_08+npp_06+npp_10)/4,
                  Mon%in%c('May/Sep')~(npp_05+npp_09)/2,
                  Mon%in%c('Jul/Sep')~(npp_07+npp_09)/2,
                  Mon%in%c('Dec/Jan/Feb/Mar/Apr/May')~(npp_12+npp_01+npp_02+npp_03+npp_04+npp_05)/6,
                  Mon%in%c('Ann')~NPP))
GHG<-GHG[,-which(names(GHG) %in% paste0('gpp_',str_pad(c(1:12),2,pad=0)))]
GHG<-GHG[,-which(names(GHG) %in% paste0('npp_',str_pad(c(1:12),2,pad=0)))]
#join monthly soil respiration
soilResp<-read.csv(paste0(dir,'/soilResp.csv'),skip=0)
GHG<-left_join(GHG,soilResp,by='COMID')
GHG<-
  GHG%>%mutate(
    Soil_Resp=case_when(Mon%in%c('Jan')~SR_01*365, #g C m-2 d-1
                    Mon%in%c('Feb')~SR_02*365,
                    Mon%in%c('Mar')~SR_03*365,
                    Mon%in%c('Apr')~SR_04*365,
                    Mon%in%c('May')~SR_05*365,
                    Mon%in%c('Jun')~SR_06*365,
                    Mon%in%c('Jul')~SR_07*365,
                    Mon%in%c('Aug')~SR_08*365,
                    Mon%in%c('Sep')~SR_09*365,
                    Mon%in%c('Oct')~SR_10*365,
                    Mon%in%c('Nov')~SR_11*365,
                    Mon%in%c('Dec')~SR_12*365,
                    Mon%in%c('Feb/Apr/Jun/Aug/Oct/Dec')~(SR_02*365+SR_04*365+SR_06*365+SR_08*365+SR_10*365+SR_12*365)/6,
                    Mon%in%c('Jun/Jul/Aug/Sep')~(SR_06*365+SR_07*365+SR_08*365+SR_09*365)/4,
                    Mon%in%c('Sep/Dec/Mar/Jun')~(SR_06*365+SR_12*365+SR_03*365+SR_09*365)/4,
                    Mon%in%c('Mar/Apr')~(SR_03*365+SR_04*365)/2,
                    Mon%in%c('Apr/May')~(SR_05*365+SR_04*365)/2,
                    Mon%in%c('Mar/Apr/May')~(SR_03*365+SR_04*365+SR_05*365)/3,
                    Mon%in%c('Jun/Jul/Aug')~(SR_06*365+SR_07*365+SR_08*365)/3,
                    Mon%in%c('Sep/Oct/Nov')~(SR_09*365+SR_10*365+SR_11*365)/3,
                    Mon%in%c('Dec/Jan/Feb')~(SR_12*365+SR_01*365+SR_02*365)/3,
                    Mon%in%c('Oct/Feb/Aug')~(SR_10*365+SR_02*365+SR_08*365)/3,
                    Mon%in%c('Jun/Sep/Apr')~(SR_06*365+SR_09*365+SR_04*365)/3,
                    Mon%in%c('Jul/Aug')~(SR_07*365+SR_08*365)/2,
                    Mon%in%c('Sep/Oct')~(SR_09*365+SR_10*365)/2,
                    Mon%in%c('Feb/Mar')~(SR_02*365+SR_03*365)/2,
                    Mon%in%c('May/Jun/Jul/Aug/Sep/Oct')~(SR_05*365+SR_06*365+SR_07*365+SR_08*365+SR_09*365+SR_10*365)/6,
                    Mon%in%c('Dec/Mar/Jul/Oct')~(SR_12*365+SR_03*365+SR_07*365+SR_10*365)/4,
                    Mon%in%c('Dec/Apr/Jul/Sep')~(SR_12*365+SR_04*365+SR_07*365+SR_09*365)/4,
                    Mon%in%c('Dec/Jun')~(SR_12*365+SR_06*365)/2,
                    Mon%in%c('Jul/Jan')~(SR_07*365+SR_01*365)/2,
                    Mon%in%c('Jan/Feb/May/Jun/Aug/Sep')~(SR_01*365+SR_02*365+SR_05*365+SR_06*365+SR_08*365+SR_09*365)/6,
                    Mon%in%c('Feb/Mar/Apr/May')~(SR_02*365+SR_03*365+SR_04*365+SR_05*365)/4,
                    Mon%in%c('Oct/Nov/Dec/Jan')~(SR_10*365+SR_11*365+SR_12*365+SR_01*365)/4,
                    Mon%in%c('Sep/Jun')~(SR_09*365+SR_06*365)/2,
                    Mon%in%c('Jul/Oct/Jan/Apr')~(SR_07*365+SR_10*365+SR_01*365+SR_04*365)/4,
                    Mon%in%c('Jan/Jul')~(SR_07*365+SR_01*365)/2,
                    Mon%in%c('Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep')~(SR_01*365+SR_02*365+SR_03*365+SR_04*365+SR_05*365+SR_06*365+SR_07*365+SR_08*365+SR_09*365)/9,
                    Mon%in%c('Jul/Aug/Sep')~(SR_07*365+SR_08*365+SR_09*365)/3,
                    Mon%in%c('Jun/Jul/Aug/Oct')~(SR_07*365+SR_08*365+SR_06*365+SR_10*365)/4,
                    Mon%in%c('May/Sep')~(SR_05*365+SR_09*365)/2,
                    Mon%in%c('Jul/Sep')~(SR_07*365+SR_09*365)/2,
                    Mon%in%c('Dec/Jan/Feb/Mar/Apr/May')~(SR_12*365+SR_01*365+SR_02*365+SR_03*365+SR_04*365+SR_05*365)/6,
                    Mon%in%c('Ann')~SR_ann)) # g C m-2 yr-1
GHG<-GHG[,-which(names(GHG)%in%paste0('SR_',str_pad(c(1:12),2,pad=0)))]
#join yearly GDP
gdp<-read.csv(paste0(dir,'/GDP.csv'),skip=0)
GHG<-left_join(GHG,gdp,by='COMID')
GHG<-
  GHG%>%mutate(
    GDP=case_when(Year%in%c('1994')~gdp_1994,
                  Year%in%c('1999')~gdp_1999,
                  Year%in%c('2000')~gdp_2000,
                  Year%in%c('2003')~gdp_2003,
                  Year%in%c('2004')~gdp_2004,
                  Year%in%c('2005')~gdp_2005,
                  Year%in%c('2006')~gdp_2006,
                  Year%in%c('2007')~gdp_2007,
                  Year%in%c('2008')~gdp_2008,
                  Year%in%c('2009')~gdp_2009,
                  Year%in%c('2010')~gdp_2010,
                  Year%in%c('2011')~gdp_2011,
                  Year%in%c('2012')~gdp_2012,
                  Year%in%c('2013')~gdp_2013,
                  Year%in%c('2014')~gdp_2014,
                  Year%in%c('2015')~gdp_2015,
                  Year%in%c('2016')~gdp_2015,
                  Year%in%c('2017')~gdp_2015,
                  Year%in%c('2018')~gdp_2015,
                  Year%in%c('2019')~gdp_2015,
                  Year%in%c('2020')~gdp_2015,
                  Year%in%c('2021')~gdp_2015,
                  Year%in%c('2022')~gdp_2015,
                  Year%in%c('1994/1995')~(gdp_1994+gdp_1995)/2,
                  Year%in%c('2006/2007')~(gdp_2006+gdp_2007)/2,
                  Year%in%c('2006/2007/2008/2009')~(gdp_2006+gdp_2007+gdp_2008+gdp_2009)/4,
                  Year%in%c('2007/2009')~(gdp_2007+gdp_2009)/2,
                  Year%in%c('2010/2011')~(gdp_2010+gdp_2011)/2,
                  Year%in%c('2009/2010/2011')~(gdp_2009+gdp_2010+gdp_2011)/3,
                  Year%in%c('2010/2011/2012/2013/2014')~(gdp_2010+gdp_2011+gdp_2012+gdp_2013+gdp_2014)/5,
                  Year%in%c('2011/2012')~(gdp_2011+gdp_2012)/2,
                  Year%in%c('2011/2014')~(gdp_2011+gdp_2014)/2,
                  Year%in%c('2013/2014')~(gdp_2013+gdp_2014)/2,
                  Year%in%c('2014/2015')~(gdp_2014+gdp_2015)/2,
                  Year%in%c('2015/2016')~(gdp_2015+gdp_2015)/2,
                  Year%in%c('2016/2017')~(gdp_2015+gdp_2015)/2,
                  Year%in%c('2016/2017/2018/2019')~(gdp_2015+gdp_2015+gdp_2015+gdp_2015)/4,
                  Year%in%c('2017/2018')~(gdp_2015+gdp_2015)/2,
                  Year%in%c('2017/2018/2019')~(gdp_2015+gdp_2015+gdp_2015)/3,
                  Year%in%c('2018/2019')~(gdp_2015+gdp_2015)/2,
                  Year%in%c('2020/2021')~(gdp_2015+gdp_2015)/2,
                  Year%in%c('2021/2022')~(gdp_2015+gdp_2015)/2,
                  Year%in%c('2018/2019/2020')~(gdp_2015+gdp_2015+gdp_2015)/3))
#join yearly GDP_per_capita
gdp_per_capita<-read.csv(paste0(dir,'/GDP_per_capita.csv'),skip=0)
GHG<-left_join(GHG,gdp_per_capita,by='COMID')
GHG<-
  GHG%>%mutate(
    GDP_per_capita=case_when(
                     Year%in%c('1994')~gdp_per_capita_1994,
                     Year%in%c('1999')~gdp_per_capita_1999,
                     Year%in%c('2000')~gdp_per_capita_2000,
                     Year%in%c('2003')~gdp_per_capita_2003,
                     Year%in%c('2004')~gdp_per_capita_2004,
                     Year%in%c('2005')~gdp_per_capita_2005,
                     Year%in%c('2006')~gdp_per_capita_2006,
                     Year%in%c('2007')~gdp_per_capita_2007,
                     Year%in%c('2008')~gdp_per_capita_2008,
                     Year%in%c('2009')~gdp_per_capita_2009,
                     Year%in%c('2010')~gdp_per_capita_2010,
                     Year%in%c('2011')~gdp_per_capita_2011,
                     Year%in%c('2012')~gdp_per_capita_2012,
                     Year%in%c('2013')~gdp_per_capita_2013,
                     Year%in%c('2014')~gdp_per_capita_2014,
                     Year%in%c('2015')~gdp_per_capita_2015,
                     Year%in%c('2016')~gdp_per_capita_2015,
                     Year%in%c('2017')~gdp_per_capita_2015,
                     Year%in%c('2018')~gdp_per_capita_2015,
                     Year%in%c('2019')~gdp_per_capita_2015,
                     Year%in%c('2020')~gdp_per_capita_2015,
                     Year%in%c('2021')~gdp_per_capita_2015,
                     Year%in%c('2022')~gdp_per_capita_2015,
                     Year%in%c('1994/1995')~(gdp_per_capita_1994+gdp_per_capita_1995)/2,
                     Year%in%c('2006/2007')~(gdp_per_capita_2006+gdp_per_capita_2007)/2,
                     Year%in%c('2006/2007/2008/2009')~(gdp_per_capita_2006+gdp_per_capita_2007+gdp_per_capita_2008+gdp_per_capita_2009)/4,
                     Year%in%c('2007/2009')~(gdp_per_capita_2007+gdp_per_capita_2009)/2,
                     Year%in%c('2010/2011')~(gdp_per_capita_2010+gdp_per_capita_2011)/2,
                     Year%in%c('2009/2010/2011')~(gdp_per_capita_2009+gdp_per_capita_2010+gdp_per_capita_2011)/3,
                     Year%in%c('2010/2011/2012/2013/2014')~(gdp_per_capita_2010+gdp_per_capita_2011+gdp_per_capita_2012+gdp_per_capita_2013+gdp_per_capita_2014)/5,
                     Year%in%c('2011/2012')~(gdp_per_capita_2011+gdp_per_capita_2012)/2,
                     Year%in%c('2011/2014')~(gdp_per_capita_2011+gdp_per_capita_2014)/2,
                     Year%in%c('2013/2014')~(gdp_per_capita_2013+gdp_per_capita_2014)/2,
                     Year%in%c('2014/2015')~(gdp_per_capita_2014+gdp_per_capita_2015)/2,
                     Year%in%c('2015/2016')~(gdp_per_capita_2015+gdp_per_capita_2015)/2,
                     Year%in%c('2016/2017')~(gdp_per_capita_2015+gdp_per_capita_2015)/2,
                     Year%in%c('2016/2017/2018/2019')~(gdp_per_capita_2015+gdp_per_capita_2015+gdp_per_capita_2015+gdp_per_capita_2015)/4,
                     Year%in%c('2017/2018')~(gdp_per_capita_2015+gdp_per_capita_2015)/2,
                     Year%in%c('2017/2018/2019')~(gdp_per_capita_2015+gdp_per_capita_2015+gdp_per_capita_2015)/3,
                     Year%in%c('2018/2019')~(gdp_per_capita_2015+gdp_per_capita_2015)/2,
                     Year%in%c('2020/2021')~(gdp_per_capita_2015+gdp_per_capita_2015)/2,
                     Year%in%c('2021/2022')~(gdp_per_capita_2015+gdp_per_capita_2015)/2,
                     Year%in%c('2018/2019/2020')~(gdp_per_capita_2015+gdp_per_capita_2015+gdp_per_capita_2015)/3))
#join yearly pop density, persons per km2
popdens<-read.csv(paste0(dir,'/popdens.csv'),skip=0)
GHG<-left_join(GHG,popdens,by='COMID')
GHG<-
  GHG%>%mutate(
    PopDen=case_when(Year%in%c('1994')~popdens_2000,
                     Year%in%c('1999')~popdens_2000,
                     Year%in%c('2000')~popdens_2000,
                     Year%in%c('2003')~popdens_2000,
                     Year%in%c('2004')~popdens_2000,
                     Year%in%c('2005')~popdens_2005,
                     Year%in%c('2006')~popdens_2005,
                     Year%in%c('2007')~popdens_2005,
                     Year%in%c('2008')~popdens_2005,
                     Year%in%c('2009')~popdens_2005,
                     Year%in%c('2010')~popdens_2010,
                     Year%in%c('2011')~popdens_2010,
                     Year%in%c('2012')~popdens_2010,
                     Year%in%c('2013')~popdens_2010,
                     Year%in%c('2014')~popdens_2010,
                     Year%in%c('2015')~popdens_2015,
                     Year%in%c('2016')~popdens_2015,
                     Year%in%c('2017')~popdens_2015,
                     Year%in%c('2018')~popdens_2015,
                     Year%in%c('2019')~popdens_2015,
                     Year%in%c('2020')~popdens_2015,
                     Year%in%c('2021')~popdens_2015,
                     Year%in%c('2022')~popdens_2015,
                     Year%in%c('1994/1995')~(popdens_2000+popdens_2000)/2,
                     Year%in%c('2006/2007')~(popdens_2005+popdens_2005)/2,
                     Year%in%c('2006/2007/2008/2009')~(popdens_2005+popdens_2005+popdens_2005+popdens_2005)/4,
                     Year%in%c('2007/2009')~(popdens_2005+popdens_2005)/2,
                     Year%in%c('2010/2011')~(popdens_2010+popdens_2010)/2,
                     Year%in%c('2009/2010/2011')~(popdens_2005+popdens_2010+popdens_2010)/3,
                     Year%in%c('2010/2011/2012/2013/2014')~(popdens_2010+popdens_2010+popdens_2010+popdens_2010+popdens_2010)/5,
                     Year%in%c('2011/2012')~(popdens_2010+popdens_2010)/2,
                     Year%in%c('2011/2014')~(popdens_2010+popdens_2010)/2,
                     Year%in%c('2013/2014')~(popdens_2010+popdens_2010)/2,
                     Year%in%c('2014/2015')~(popdens_2010+popdens_2015)/2,
                     Year%in%c('2015/2016')~(popdens_2015+popdens_2015)/2,
                     Year%in%c('2016/2017')~(popdens_2015+popdens_2015)/2,
                     Year%in%c('2016/2017/2018/2019')~(popdens_2015+popdens_2015+popdens_2015+popdens_2015)/4,
                     Year%in%c('2017/2018')~(popdens_2015+popdens_2015)/2,
                     Year%in%c('2017/2018/2019')~(popdens_2015+popdens_2015+popdens_2015)/3,
                     Year%in%c('2018/2019')~(popdens_2015+popdens_2015)/2,
                     Year%in%c('2020/2021')~(popdens_2015+popdens_2015)/2,
                     Year%in%c('2021/2022')~(popdens_2015+popdens_2015)/2,
                     Year%in%c('2018/2019/2020')~(popdens_2015+popdens_2015+popdens_2015)/3))
#join flow slope and Q
flslopeQ<-read.csv(paste0(dir,'/FLslopeQ.csv'),skip=0)
flslopeQ$V<-exp(-1.06+0.12*log(flslopeQ$annQ))
flslopeQ$k600<-2841*flslopeQ$Slope*flslopeQ$V+2.02
GHG<-left_join(GHG,flslopeQ[c('COMID','k600')],by='COMID')
#join elevation (m) and slope (degree)
elevSlope<-read.csv(paste0(dir,'/elevSlope.csv'),skip=0)
elevSlope$slope<-tan(elevSlope$slope*pi/180) #m/m
GHG<-left_join(GHG,elevSlope,by='COMID')
#join watershed area
basinarea=read.csv(paste0(dir,'/basinArea.csv')) #km2
GHG<-left_join(GHG,basinarea,by='COMID')
#Variable completion
GHG <-
  GHG %>%
  recipe(~.) %>%
  update_role(COMID,new_role = 'outcome') %>%
  add_role(GPP,NPP,Soil_Resp,new_role = 'terrestrial carbon flux')%>%
  add_role(GDP,GDP_per_capita,Pop,PopDen,new_role = 'economic')%>%
  step_impute_bag(GDP,GDP_per_capita,Pop,PopDen,impute_with = im_vars(has_role(match='economic')))%>%
  step_impute_bag(GPP,NPP,Soil_Resp,impute_with = imp_vars(has_role(match='terrestrial carbon flux')))
GHG
juice(prep(GHG)) %>%view()
mds<-GHG
#CO2con_RFmodel
CO2c<-data.frame(mds$CO2_con,mds$Temp,mds$Prec,mds$GDP,mds$GDP_per_capita,mds$Pop,
                 mds$PopDen,mds$GPP,mds$NPP,mds$watershed_area,mds$Soil_Resp,
                 mds$elevation,mds$slope)
names(CO2c)<-c('CO2_con','Temp','Prec','GDP','GDP_per_capita','Pop','PopDen','GPP','NPP','watershed_area',
               'Soil_Resp','elevation','slope')
set.seed(0)
sa<-sample(nrow(CO2c), nrow(CO2c)*0.85)
train_CO2c<-CO2c[sa,]
test_CO2c<-CO2c[-sa,]
rfmodCO2c<-randomForest(CO2_con~Temp+Prec+GDP+GDP_per_capita+Pop+PopDen+GPP+NPP+watershed_area+
                          Soil_Resp+elevation+slope,
                        data=train_CO2c,importance=TRUE,na.action=na.omit,mtry=5,ntree=500)
pred_rf_CO2c<-predict(rfmodCO2c,newdata=test_CO2c[,c('Temp','Prec','GDP','GDP_per_capita','Pop','PopDen','GPP','NPP','watershed_area',
                                           'Soil_Resp','elevation','slope')])
for(mon in month.abb){
  print(mon)
  filename = paste0(dir, '/', mon, '.csv')
  csv=read.csv(filename)
  csv['CO2_con']<-predict(rfmodCO2c,newdata=csv[,c('Temp','Prec','GDP','Pop','GDP_per_capita','PopDen','GPP','NPP','watershed_area',
                                                   'Soil_Resp','elevation','slope')])
  River<-read.csv(paste0(dir,'/River.csv'),skip=0)
  duplicates_river <- duplicated(River$COMID, fromLast = TRUE)
  River <- River[!duplicates_river, ]
  csv<-left_join(csv,River,by='COMID')
  duplicates_csv <- duplicated(csv$COMID, fromLast = TRUE)
  csv <- csv[!duplicates_csv, ]
  write.csv(csv, paste0(dir,'/', mon, '_CO2con_result.csv'))
}
months <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun",
            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")  
for (mon in months) {  
  assign(mon, read.csv(paste0(dir, '/', mon, '_CO2con_result.csv'), skip=0))  
}
#annual CO2con
Dec$annC=(31*Jan$CO2_con+
          28*Feb$CO2_con+
          31*Mar$CO2_con+
          30*Apr$CO2_con+
          31*May$CO2_con+
          30*Jun$CO2_con+
          31*Jul$CO2_con+
          31*Aug$CO2_con+
          30*Sep$CO2_con+
          31*Oct$CO2_con+
          30*Nov$CO2_con+
          31*Dec$CO2_con)/365
city_CO2con<-data.frame(Dec$annC,Dec$OBJECTID)
names(city_CO2con)<-c('annC','OBJECTID')
result_CO2con <- city_CO2con %>%
  group_by(OBJECTID) %>%
  summarise(avg = mean(annC))
write.csv(result_CO2con, paste0(dir,'/city_CO2con.csv'))
#CO2flux_RF model
CO2f<-data.frame(mds$CO2_flux,mds$Temp,mds$Prec,mds$GDP,mds$GDP_per_capita,mds$Pop,
                 mds$PopDen,mds$GPP,mds$NPP,mds$watershed_area,mds$Soil_Resp,
                 mds$elevation,mds$slope)
names(CO2f)<-c('CO2_flux','Temp','Prec','GDP','GDP_per_capita','Pop','PopDen','GPP','NPP','watershed_area',
               'Soil_Resp','elevation','slope')
CO2f$CO2_flux<-CO2f$CO2_flux+250
set.seed(0)
sa<-sample(nrow(CO2f), nrow(CO2f)*0.85)
train_CO2f<-CO2f[sa,]
test_CO2f<-CO2f[-sa,]
rfmodCO2f<-randomForest(CO2_flux~Temp+Prec+GDP+Pop+GDP_per_capita+PopDen+GPP+NPP+watershed_area+
                          Soil_Resp+elevation+slope,
                        data=train_CO2f,importance=TRUE,na.action=na.omit,mtry=5,ntree=500)
pred_rf_CO2f<-predict(rfmodCO2f,newdata=test_CO2f[,c('Temp','Prec','GDP','Pop','GDP_per_capita','PopDen','GPP','NPP','watershed_area',
                                           'Soil_Resp','elevation','slope')])
for(mon in month.abb){
  print(mon)
  filename = paste0(dir, '/', mon, '.csv')
  csv=read.csv(filename)
  csv['CO2_flux']<-predict(rfmodCO2f,newdata=csv[,c('Temp','Prec','GDP','Pop','GDP_per_capita','PopDen','GPP','NPP','watershed_area',
                                                    'Soil_Resp','elevation','slope')])
  River<-read.csv(paste0(dir,'/River.csv'),skip=0)
  duplicates_river <- duplicated(River$COMID, fromLast = TRUE)
  River <- River[!duplicates_river, ]
  River_area<-read.csv(paste0(dir,'/urban_riv_monthly_area.csv'),skip=0)
  River<-left_join(River,River_area,by='COMID')
  csv$CO2_flux<-csv$CO2_flux-250
  csv<-left_join(csv,River,by='COMID')
  duplicates_csv <- duplicated(csv$COMID, fromLast = TRUE)
  csv <- csv[!duplicates_csv, ]
  csv[csv$Temp < -2,]$CO2_flux<- 0
  write.csv(csv, paste0(dir,'/', mon, '_CO2flux_result.csv'))
}
months <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun",
            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")  
for (mon in months) {  
  assign(mon, read.csv(paste0(dir, '/', mon, '_CO2flux_result.csv'), skip=0))  
}
all_CO2f<-data.frame(Jan$OBJECTID,Jan$Temp,Feb$Temp,Mar$Temp,Apr$Temp,May$Temp,Jun$Temp,
                Jul$Temp,Aug$Temp,Sep$Temp,Oct$Temp,Nov$Temp,Dec$Temp,
                Jan$CO2_flux,Feb$CO2_flux,Mar$CO2_flux,Apr$CO2_flux,May$CO2_flux,Jun$CO2_flux,
                Jul$CO2_flux,Aug$CO2_flux,Sep$CO2_flux,Oct$CO2_flux,Nov$CO2_flux,Dec$CO2_flux,
                Jan$Jan_area,Feb$Feb_area,Mar$Mar_area,Apr$Apr_area,May$May_area,Jun$Jun_area,
                Jul$Jul_area,Aug$Aug_area,Sep$Sep_area,Oct$Oct_area,Nov$Nov_area,Dec$Dec_area)
names(all_CO2f)<-c('OBJECTID','temp','temp','temp','temp','temp','temp',
              'temp','temp','temp','temp','temp','temp',
              'Jan_CO2_flux','Feb_CO2_flux','Mar_CO2_flux','Apr_CO2_flux','May_CO2_flux','Jun_CO2_flux',
              'Jul_CO2_flux','Aug_CO2_flux','Sep_CO2_flux','Oct_CO2_flux','Nov_CO2_flux','Dec_CO2_flux',
              'Jan_area','Feb_area','Mar_area','Apr_area','May_area','Jun_area',
              'Jul_area','Aug_area','Sep_area','Oct_area','Nov_area','Dec_area')
#annual CO2flux
all_CO2f$annF=(31*all_CO2f$Jan_CO2_flux+
               28*all_CO2f$Feb_CO2_flux+
               31*all_CO2f$Mar_CO2_flux+
               30*all_CO2f$Apr_CO2_flux+
               31*all_CO2f$May_CO2_flux+
               30*all_CO2f$Jun_CO2_flux+
               31*all_CO2f$Jul_CO2_flux+
               31*all_CO2f$Aug_CO2_flux+   
               30*all_CO2f$Sep_CO2_flux+
               31*all_CO2f$Oct_CO2_flux+
               30*all_CO2f$Nov_CO2_flux+
               31*all_CO2f$Dec_CO2_flux)/365
city_CO2flux<-data.frame(all_CO2f$annF,all_CO2f$OBJECTID)
names(city_CO2flux)<-c('annF','OBJECTID')
result_CO2flux <- city_CO2flux %>%  
  group_by(OBJECTID) %>%  
  summarise(avg = mean(annF))
write.csv(result_CO2flux, paste0(dir,'/city_CO2flux.csv'))
#ice + ice-melt correction emission
all_CO2f$annEE <- 0
annEE<-(31*all_CO2f$Jan_CO2_flux*all_CO2f$Jan_area*44*10^-12+
        28*all_CO2f$Feb_CO2_flux*all_CO2f$Feb_area*44*10^-12+
        31*all_CO2f$Mar_CO2_flux*all_CO2f$Mar_area*44*10^-12+
        30*all_CO2f$Apr_CO2_flux*all_CO2f$Apr_area*44*10^-12+
        31*all_CO2f$May_CO2_flux*all_CO2f$May_area*44*10^-12+
        30*all_CO2f$Jun_CO2_flux*all_CO2f$Jun_area*44*10^-12+
        31*all_CO2f$Jul_CO2_flux*all_CO2f$Jul_area*44*10^-12+
        31*all_CO2f$Aug_CO2_flux*all_CO2f$Aug_area*44*10^-12+   
        30*all_CO2f$Sep_CO2_flux*all_CO2f$Sep_area*44*10^-12+
        31*all_CO2f$Oct_CO2_flux*all_CO2f$Oct_area*44*10^-12+
        30*all_CO2f$Nov_CO2_flux*all_CO2f$Nov_area*44*10^-12+
        31*all_CO2f$Dec_CO2_flux*all_CO2f$Dec_area*44*10^-12)
for (i in 1:nrow(all_CO2f)) {  
  if (any(all_CO2f$temp[i] < -2)) {  
    all_CO2f$annEE[i] <- 1.17 * all_CO2f$annEE[i]  
  } else {  
    all_CO2f$annEE[i] <- all_CO2f$annEE[i]  
  }  
}
city_CO2emission<-data.frame(all_CO2f$annEE,all_CO2f$OBJECTID)
names(city_CO2emission)<-c('annEE','OBJECTID')
result_CO2emission <- city_CO2emission %>%  
  group_by(OBJECTID) %>%  
  summarise(cityEE = sum(annEE))
write.csv(result_CO2emission, paste0(dir,'/city_CO2emission.csv'))
#CH4con_RFmodel
CH4c<-data.frame(mds$CH4_con,mds$Temp,mds$Prec,mds$GDP,mds$GDP_per_capita,mds$Pop,
                 mds$PopDen,mds$GPP,mds$NPP,mds$watershed_area,mds$Soil_Resp,
                 mds$elevation,mds$slope)
names(CH4c)<-c('CH4_con','Temp','Prec','GDP','GDP_per_capita','Pop','PopDen','GPP','NPP','watershed_area',
               'Soil_Resp','elevation','slope')
set.seed(0)
sa<-sample(nrow(CH4c), nrow(CH4c)*0.85)
train_CH4c<-CO2c[sa,]
test_CH4c<-CO2c[-sa,]
rfmodCH4c<-randomForest(CH4_con~Temp+Prec+GDP+Pop+GDP_per_capita+PopDen+GPP+NPP+watershed_area+
                          Soil_Resp+elevation+slope,
                        data=train_CH4c,importance=TRUE,na.action=na.omit,mtry=5,ntree=500)
pred_rf_CH4c<-predict(rfmodCH4c,newdata=test_CH4c[,c('Temp','Prec','GDP','Pop','GDP_per_capita','PopDen','GPP','NPP','watershed_area',
                                           'Soil_Resp','elevation','slope')])
for(mon in month.abb){
  print(mon)
  filename = paste0(dir, '/', mon, '.csv')
  csv=read.csv(filename)
  csv['CH4_con']<-predict(rfmodCH4c,newdata=csv[,c('Temp','Prec','GDP','Pop','GDP_per_capita','PopDen','GPP','NPP','watershed_area',
                                                   'Soil_Resp','elevation','slope')])
  River<-read.csv(paste0(dir,'/River.csv'),skip=0)
  duplicates_river <- duplicated(River$COMID, fromLast = TRUE)
  River <- River[!duplicates_river, ]
  csv<-left_join(csv,River,by='COMID')
  duplicates_csv <- duplicated(csv$COMID, fromLast = TRUE)
  csv <- csv[!duplicates_csv, ]
  write.csv(csv, paste0(dir,'/', mon, '_CH4con_result.csv'))
}
months <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun",
            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")  
for (mon in months) {  
  assign(mon, read.csv(paste0(dir, '/', mon, '_CH4con_result.csv'), skip=0))  
}
#annual CH4con
Dec$annC=(31*Jan$CH4_con+
          28*Feb$CH4_con+
          31*Mar$CH4_con+
          30*Apr$CH4_con+
          31*May$CH4_con+
          30*Jun$CH4_con+
          31*Jul$CH4_con+
          31*Aug$CH4_con+   
          30*Sep$CH4_con+
          31*Oct$CH4_con+
          30*Nov$CH4_con+
          31*Dec$CH4_con)/365
city_CH4con<-data.frame(Dec$annC,Dec$OBJECTID)
names(city_CH4con)<-c('annC','OBJECTID')
result_CH4con <- city_CH4con %>%  
  group_by(OBJECTID) %>%  
  summarise(avg = mean(annC))
write.csv(result_CH4con, paste0(dir,'/city_CH4con.csv'))
##########Diffusive CH4flux_RF model##########
dCH4f<-data.frame(mds$dCH4_flux,mds$Temp,mds$Prec,mds$GDP,mds$GDP_per_capita,mds$Pop,
                  mds$PopDen,mds$GPP,mds$NPP,mds$watershed_area,mds$Soil_Resp,
                  mds$elevation,mds$slope)
names(dCH4f)<-c('dCH4_flux','Temp','Prec','GDP','GDP_per_capita','Pop','PopDen','GPP','NPP','watershed_area',
                'Soil_Resp','elevation','slope')
set.seed(0)
sa<-sample(nrow(dCH4f), nrow(dCH4f)*0.85)
train_dCH4f<-dCH4f[sa,]
test_dCH4f<-dCH4f[-sa,]
rfmoddCH4f<-randomForest(dCH4_flux~Temp+Prec+GDP+Pop+GDP_per_capita+PopDen+GPP+NPP+watershed_area+
                           Soil_Resp+elevation+slope
                         data=train_dCH4f,importance=TRUE,na.action=na.omit,mtry=5,ntree=500)
pred_rf_dCH4f<-predict(rfmoddCH4f,newdata=test_dCH4f[,c('Temp','Prec','GDP','Pop','GDP_per_capita','PopDen','GPP','NPP','watershed_area',
                                            'Soil_Resp','elevation','slope')])
for(mon in month.abb){
  print(mon)
  filename = paste0(dir, '/', mon, '.csv')
  csv=read_csv(filename)
  csv['dCH4_flux']<-predict(rfmoddCH4f,newdata=csv[,c('Temp','Prec','GDP','Pop','GDP_per_capita','PopDen','GPP','NPP','watershed_area',
                                                      'Soil_Resp','elevation','slope')])
  River<-read.csv(paste0(dir,'/River.csv'),skip=0)
  duplicates_river <- duplicated(River$COMID, fromLast = TRUE)
  River <- River[!duplicates_river, ]
  River_area<-read.csv(paste0(dir,'/urban_riv_monthly_area.csv'),skip=0)
  River<-left_join(River,River_area,by='COMID')
  csv<-left_join(csv,River,by='COMID')
  duplicates_csv <- duplicated(csv$COMID, fromLast = TRUE)
  csv <- csv[!duplicates_csv, ]
  csv[csv$Temp < -2,]$dCH4_flux<- 0
  write.csv(csv, paste0(dir,'/', mon, '_dCH4flux_result.csv'))
}
months <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun",
            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")  
for (mon in months) {  
  assign(mon, read.csv(paste0(dir, '/', mon, '_dCH4flux_result.csv'), skip=0))  
}
all_dCH4f<-data.frame(Jan$OBJECTID,Jan$Temp,Feb$Temp,Mar$Temp,Apr$Temp,May$Temp,Jun$Temp,
                Jul$Temp,Aug$Temp,Sep$Temp,Oct$Temp,Nov$Temp,Dec$Temp,
                Jan$dCH4_flux,Feb$dCH4_flux,Mar$dCH4_flux,Apr$dCH4_flux,May$dCH4_flux,Jun$dCH4_flux,
                Jul$dCH4_flux,Aug$dCH4_flux,Sep$dCH4_flux,Oct$dCH4_flux,Nov$dCH4_flux,Dec$dCH4_flux,
                Jan$Jan_area,Feb$Feb_area,Mar$Mar_area,Apr$Apr_area,May$May_area,Jun$Jun_area,
                Jul$Jul_area,Aug$Aug_area,Sep$Sep_area,Oct$Oct_area,Nov$Nov_area,Dec$Dec_area)
names(all_dCH4f)<-c('OBJECTID','temp','temp','temp','temp','temp','temp',
                    'temp','temp','temp','temp','temp','temp',
                    'Jan_dCH4_flux','Feb_dCH4_flux','Mar_dCH4_flux','Apr_dCH4_flux','May_dCH4_flux','Jun_dCH4_flux',
                    'Jul_dCH4_flux','Aug_dCH4_flux','Sep_dCH4_flux','Oct_dCH4_flux','Nov_dCH4_flux','Dec_dCH4_flux',
                    'Jan_area','Feb_area','Mar_area','Apr_area','May_area','Jun_area',
                    'Jul_area','Aug_area','Sep_area','Oct_area','Nov_area','Dec_area')
#annual tCH4flux
all_dCH4f$anntF=
  (31*(all_dCH4f$Jan_dCH4_flux+10^(0.089+1.1*all_dCH4f$Jan_dCH4_flux))+
   28*(all_dCH4f$Feb_dCH4_flux+10^(0.089+2.1*all_dCH4f$Feb_dCH4_flux))+
   31*(all_dCH4f$Mar_dCH4_flux+10^(0.089+2.1*all_dCH4f$Mar_dCH4_flux))+
   30*(all_dCH4f$Apr_dCH4_flux+10^(0.089+2.1*all_dCH4f$Apr_dCH4_flux))+
   31*(all_dCH4f$May_dCH4_flux+10^(0.089+2.1*all_dCH4f$May_dCH4_flux))+
   30*(all_dCH4f$Jun_dCH4_flux+10^(0.089+2.1*all_dCH4f$Jun_dCH4_flux))+
   31*(all_dCH4f$Jul_dCH4_flux+10^(0.089+2.1*all_dCH4f$Jul_dCH4_flux))+
   31*(all_dCH4f$Aug_dCH4_flux+10^(0.089+2.1*all_dCH4f$Aug_dCH4_flux))+
   30*(all_dCH4f$Sep_dCH4_flux+10^(0.089+2.1*all_dCH4f$Sep_dCH4_flux))+
   31*(all_dCH4f$Oct_dCH4_flux+10^(0.089+2.1*all_dCH4f$Oct_dCH4_flux))+
   30*(all_dCH4f$Nov_dCH4_flux+10^(0.089+2.1*all_dCH4f$Nov_dCH4_flux))+
   31*(all_dCH4f$Dec_dCH4_flux+10^(0.089+2.1*all_dCH4f$Dec_dCH4_flux)))/365
city_CH4flux<-data.frame(all_dCH4f$anntF,all_dCH4f$OBJECTID)
names(city_CH4flux)<-c('anntF','OBJECTID')
result_CH4flux <- city_CH4flux %>%  
  group_by(OBJECTID) %>%  
  summarise(avg = mean(anntF))
write.csv(result_CH4flux, paste0(dir,'/city_CH4flux.csv'))
#ice + ice-melt correction emission
all_dCH4f$annEE <- 0
annEE<-(31*(0.089+2.1*all_dCH4f$Jan_dCH4_flux)*all_dCH4f$Jan_area*16*10^-12+
        28*(0.089+2.1*all_dCH4f$Feb_dCH4_flux)*all_dCH4f$Feb_area*16*10^-12+
        31*(0.089+2.1*all_dCH4f$Mar_dCH4_flux)*all_dCH4f$Mar_area*16*10^-12+
        30*(0.089+2.1*all_dCH4f$Apr_dCH4_flux)*all_dCH4f$Apr_area*16*10^-12+
        31*(0.089+2.1*all_dCH4f$May_dCH4_flux)*all_dCH4f$May_area*16*10^-12+
        30*(0.089+2.1*all_dCH4f$Jun_dCH4_flux)*all_dCH4f$Jun_area*16*10^-12+
        31*(0.089+2.1*all_dCH4f$Jul_dCH4_flux)*all_dCH4f$Jul_area*16*10^-12+
        31*(0.089+2.1*all_dCH4f$Aug_dCH4_flux)*all_dCH4f$Aug_area*16*10^-12+
        30*(0.089+2.1*all_dCH4f$Sep_dCH4_flux)*all_dCH4f$Sep_area*16*10^-12+
        31*(0.089+2.1*all_dCH4f$Oct_dCH4_flux)*all_dCH4f$Oct_area*16*10^-12+
        30*(0.089+2.1*all_dCH4f$Nov_dCH4_flux)*all_dCH4f$Nov_area*16*10^-12+
        31*(0.089+2.1*all_dCH4f$Dec_dCH4_flux)*all_dCH4f$Dec_area*16*10^-12)
for (i in 1:nrow(all_dCH4f)) {  
  if (any(all_dCH4f$temp[i] < -2)) {  
    all_dCH4f$annEE[i] <- 1.27 * all_dCH4f$annEE[i]  
  } else {  
    all_dCH4f$annEE[i] <- all_dCH4f$annEE[i]  
  }  
}
city_CH4emission<-data.frame(all_dCH4f$annEE,all$OBJECTID)
names(city_CH4emission)<-c('annEE','OBJECTID')
result_CH4emission <- city_CH4emission %>%  
  group_by(OBJECTID) %>%  
  summarise(cityEE=sum(annEE))
write.csv(result_CH4emission, paste0(dir,'/city_CH4emission.csv'))
##########N2Ocon_RF model##########
N2Oc<-data.frame(mds$N2O_con,mds$Temp,mds$Prec,mds$GDP,mds$GDP_per_capita,mds$Pop,
                 mds$PopDen,mds$GPP,mds$NPP,mds$watershed_area,mds$Soil_Resp,
                 mds$elevation,mds$slope)
names(N2Oc)<-c('N2O_con','Temp','Prec','GDP','GDP_per_capita','Pop','PopDen','GPP','NPP','watershed_area',
               'Soil_Resp','elevation','slope')
set.seed(0)
sa<-sample(nrow(N2Oc), nrow(N2Oc)*0.85)
train_N2Oc<-N2Oc[sa,]
test_N2Oc<-N2Oc[-sa,]
rfmodN2Oc<-randomForest(N2O_con~Temp+Prec+GDP+Pop+GDP_per_capita+PopDen+GPP+NPP+watershed_area+
                          Soil_Resp+elevation+slope
                        data=train_N2Oc,importance=TRUE,na.action=na.omit,mtry=5,ntree=500)
pred_rf_N2Oc<-predict(rfmodN2Oc,newdata=test_N2Oc[,c('Temp','Prec','GDP','Pop','GDP_per_capita','PopDen','GPP','NPP','watershed_area',
                                           'Soil_Resp','elevation','slope')])
for(mon in month.abb){
  print(mon)
  filename = paste0(dir, '/', mon, '.csv')
  csv=read.csv(filename)
  csv['N2O_con']<-predict(rfmodN2Oc,newdata=csv[,c('Temp','Prec','GDP','Pop','GDP_per_capita','PopDen','GPP','NPP','watershed_area',
                                                   'Soil_Resp','elevation','slope')])
  River<-read.csv(paste0(dir,'/River.csv'),skip=0)
  duplicates_river <- duplicated(River$COMID, fromLast = TRUE)
  River <- River[!duplicates_river, ]
  csv<-left_join(csv,River,by='COMID')
  duplicates_csv <- duplicated(csv$COMID, fromLast = TRUE)
  csv <- csv[!duplicates_csv, ]
  write.csv(csv, paste0(dir,'/', mon, '_N2Ocon_result.csv'))
}
months <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun",
            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")  
for (mon in months) {  
  assign(mon, read.csv(paste0(dir, '/', mon, '_N2Ocon_result.csv'), skip=0))  
}
#annual N2Ocon
Dec$annC=
    (31*Jan$N2O_con+
     28*Feb$N2O_con+
     31*Mar$N2O_con+
     30*Apr$N2O_con+
     31*May$N2O_con+
     30*Jun$N2O_con+
     31*Jul$N2O_con+
     31*Aug$N2O_con+   
     30*Sep$N2O_con+
     31*Oct$N2O_con+
     30*Nov$N2O_con+
     31*Dec$N2O_con)/365
city_N2Ocon<-data.frame(Dec$annC,Dec$OBJECTID)
names(city_N2Ocon)<-c('annC','OBJECTID')
resultN2Ocon <- city_N2Ocon %>%  
  group_by(OBJECTID) %>%  
  summarise(avg = mean(annC))
write.csv(resultN2Ocon, paste0(dir,'/city_N2Ocon.csv'))
#N2Oflux_RF model
N2Of<-data.frame(mds$N2O_flux,mds$Temp,mds$Prec,mds$GDP,mds$GDP_per_capita,mds$Pop,
                 mds$PopDen,mds$GPP,mds$NPP,mds$watershed_area,mds$Soil_Resp,
                 mds$elevation,mds$slope)
names(N2Of)<-c('N2O_flux','Temp','Prec','GDP','GDP_per_capita','Pop','PopDen','GPP','NPP','watershed_area',
               'Soil_Resp','elevation','slope')
N2Of$N2O_flux<-N2Of$N2O_flux+35
set.seed(0)
sa<-sample(nrow(N2Of), nrow(N2Of)*0.85)
train_N2Of<-N2Of[sa,]
test_N2Of<-N2Of[-sa,]
rfmodN2Of<-randomForest(N2O_flux~Temp+Prec+GDP+Pop+GDP_per_capita+PopDen+GPP+NPP+watershed_area+
                          Soil_Resp+elevation+slope
                        data=train_N2Of,importance=TRUE,na.action=na.omit,mtry=5,ntree=500)
pred_rf_N2Of<-predict(rfmodN2Of,newdata=test_N2Of[,c('Temp','Prec','GDP','Pop','GDP_per_capita','PopDen','GPP','NPP','watershed_area',
                                           'Soil_Resp','elevation','slope')])
for(mon in month.abb){
  print(mon)
  filename = paste0(dir, '/', mon, '.csv')
  csv=read_csv(filename)
  csv['N2O_flux']<-predict(rfmodN2Of,newdata=csv[,c('Temp','Prec','GDP','Pop','GDP_per_capita','PopDen','GPP','NPP','watershed_area',
                                                    'Soil_Resp','elevation','slope')])
  River<-read.csv(paste0(dir,'/River.csv'),skip=0)
  duplicates_river <- duplicated(River$COMID, fromLast = TRUE)
  River <- River[!duplicates_river, ]
  River_area<-read.csv(paste0(dir,'/urban_riv_monthly_area.csv'),skip=0)
  River<-left_join(River,River_area,by='COMID')
  csv$N2O_flux<-csv$N2O_flux-35
  csv<-left_join(csv,River,by='COMID')
  duplicates_csv <- duplicated(csv$COMID, fromLast = TRUE)
  csv <- csv[!duplicates_csv, ]
  csv[csv$Temp < -2,]$N2O_flux<- 0
  write.csv(csv, paste0(dir,'/', mon,'_N2Oflux_result.csv'))
}
months <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun",
            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")  
for (mon in months) {  
  assign(mon, read.csv(paste0(dir, '/', mon, '_N2Oflux_result.csv'), skip=0))  
}
all_N2Of<-data.frame(Jan$OBJECTID,Jan$Temp,Feb$Temp,Mar$Temp,Apr$Temp,May$Temp,Jun$Temp,
                Jul$Temp,Aug$Temp,Sep$Temp,Oct$Temp,Nov$Temp,Dec$Temp,
                Jan$N2O_flux,Feb$N2O_flux,Mar$N2O_flux,Apr$N2O_flux,May$N2O_flux,Jun$N2O_flux,
                Jul$N2O_flux,Aug$N2O_flux,Sep$N2O_flux,Oct$N2O_flux,Nov$N2O_flux,Dec$N2O_flux,
                Jan$Jan_area,Feb$Feb_area,Mar$Mar_area,Apr$Apr_area,May$May_area,Jun$Jun_area,
                Jul$Jul_area,Aug$Aug_area,Sep$Sep_area,Oct$Oct_area,Nov$Nov_area,Dec$Dec_area)
names(all_N2Of)<-c('OBJECTID','temp','temp','temp','temp','temp','temp',
              'temp','temp','temp','temp','temp','temp',
              'Jan_N2O_flux','Feb_N2O_flux','Mar_N2O_flux','Apr_N2O_flux','May_N2O_flux','Jun_N2O_flux',
              'Jul_N2O_flux','Aug_N2O_flux','Sep_N2O_flux','Oct_N2O_flux','Nov_N2O_flux','Dec_N2O_flux',
              'Jan_area','Feb_area','Mar_area','Apr_area','May_area','Jun_area',
              'Jul_area','Aug_area','Sep_area','Oct_area','Nov_area','Dec_area')
#annual N2Oflux
all_N2Of$annF=
    (31*all_N2Of$Jan_N2O_flux+
     28*all_N2Of$Feb_N2O_flux+
     31*all_N2Of$Mar_N2O_flux+
     30*all_N2Of$Apr_N2O_flux+
     31*all_N2Of$May_N2O_flux+
     30*all_N2Of$Jun_N2O_flux+
     31*all_N2Of$Jul_N2O_flux+
     31*all_N2Of$Aug_N2O_flux+   
     30*all_N2Of$Sep_N2O_flux+
     31*all_N2Of$Oct_N2O_flux+
     30*all_N2Of$Nov_N2O_flux+
     31*all_N2Of$Dec_N2O_flux)/365
city_N2Oflux<-data.frame(all_N2Of$annF,all_N2Of$OBJECTID)
names(city_N2Oflux)<-c('annF','OBJECTID')
result_N2Oflux <- city_N2Oflux %>%  
  group_by(OBJECTID) %>%  
  summarise(avg = mean(annF))
write.csv(result_N2Oflux, paste0(dir,'/city_N2Oflux.csv'))
#ice + ice-melt correction
all_N2Of$annEE <- 0
annEE<-
    (31*all_N2Of$Jan_N2O_flux*all_N2Of$Jan_area*44*10^-15+
     28*all_N2Of$Feb_N2O_flux*all_N2Of$Feb_area*44*10^-15+
     31*all_N2Of$Mar_N2O_flux*all_N2Of$Mar_area*44*10^-15+
     30*all_N2Of$Apr_N2O_flux*all_N2Of$Apr_area*44*10^-15+
     31*all_N2Of$May_N2O_flux*all_N2Of$May_area*44*10^-15+
     30*all_N2Of$Jun_N2O_flux*all_N2Of$Jun_area*44*10^-15+
     31*all_N2Of$Jul_N2O_flux*all_N2Of$Jul_area*44*10^-15+
     31*all_N2Of$Aug_N2O_flux*all_N2Of$Aug_area*44*10^-15+   
     30*all_N2Of$Sep_N2O_flux*all_N2Of$Sep_area*44*10^-15+
     31*all_N2Of$Oct_N2O_flux*all_N2Of$Oct_area*44*10^-15+
     30*all_N2Of$Nov_N2O_flux*all_N2Of$Nov_area*44*10^-15+
     31*all_N2Of$Dec_N2O_flux*all_N2Of$Dec_area*44*10^-15)
for (i in 1:nrow(all_N2Of)) {  
  if (any(all_N2Of$temp[i] < -2)) {  
    all_N2Of$annEE[i] <- 1.17 * all_N2Of$annEE[i]  
  } else {  
    all_N2Of$annEE[i] <- all_N2Of$annEE[i]  
  }  
}
city_N2Oemission<-data.frame(all_N2Of$annEE,all_N2Of$OBJECTID)
names(city_N2Oemission)<-c('annEE','OBJECTID')
result_N2Oemission <- city_N2Oemission %>%  
  group_by(OBJECTID) %>%  
  summarise(cityEE = sum(annEE))
write.csv(result_N2Oemission, paste0(dir,'/city_N2Oemission.csv'))
#Uncertainty
#Uncertainty of CO2 emissions##
all_log_CO2f<all_CO2f
for (col in 14:37) {  
  all_log_CO2f[, col] <- log10(all_CO2f[, col])  
}
all_log_CO2f$annEE<-0
mcdf_CO2<-data.frame(matrix(NA,nrow=1000,ncol=2))
names(mcdf_CO2)<-c('No','annEE')
for(u in 1:1000){
  #CO2_error
  CO2_error<-rnorm(n = 18256, mean = -0.05, sd = 0.17)
  CO2_error<-data.frame(CO2_error)
  #area_error
  area_error<-rnorm(n = 18256, mean = -0.24, sd = 0.35)
  area_error<-data.frame(area_error)
  all_log_CO2f$annEE=
    31*10^(all_log_CO2f$Jan_CO2_flux+CO2_error$CO2_error)*10^(all_log_CO2f$Jan_area+area_error$area_error)*44*10^-12+
    28*10^(all_log_CO2f$Feb_CO2_flux+CO2_error$CO2_error)*10^(all_log_CO2f$Feb_area+area_error$area_error)*44*10^-12+
    31*10^(all_log_CO2f$Mar_CO2_flux+CO2_error$CO2_error)*10^(all_log_CO2f$Mar_area+area_error$area_error)*44*10^-12+
    30*10^(all_log_CO2f$Apr_CO2_flux+CO2_error$CO2_error)*10^(all_log_CO2f$Apr_area+area_error$area_error)*44*10^-12+
    31*10^(all_log_CO2f$May_CO2_flux+CO2_error$CO2_error)*10^(all_log_CO2f$May_area+area_error$area_error)*44*10^-12+
    30*10^(all_log_CO2f$Jun_CO2_flux+CO2_error$CO2_error)*10^(all_log_CO2f$Jun_area+area_error$area_error)*44*10^-12+
    31*10^(all_log_CO2f$Jul_CO2_flux+CO2_error$CO2_error)*10^(all_log_CO2f$Jul_area+area_error$area_error)*44*10^-12+
    31*10^(all_log_CO2f$Aug_CO2_flux+CO2_error$CO2_error)*10^(all_log_CO2f$Aug_area+area_error$area_error)*44*10^-12+
    30*10^(all_log_CO2f$Sep_CO2_flux+CO2_error$CO2_error)*10^(all_log_CO2f$Sep_area+area_error$area_error)*44*10^-12+
    31*10^(all_log_CO2f$Oct_CO2_flux+CO2_error$CO2_error)*10^(all_log_CO2f$Oct_area+area_error$area_error)*44*10^-12+
    30*10^(all_log_CO2f$Nov_CO2_flux+CO2_error$CO2_error)*10^(all_log_CO2f$Nov_area+area_error$area_error)*44*10^-12+
    31*10^(all_log_CO2f$Dec_CO2_flux+CO2_error$CO2_error)*10^(all_log_CO2f$Dec_area+area_error$area_error)*44*10^-12
  for (i in 1:nrow(all_log_CO2f)) {  
    if (any(all_log_CO2f$temp[i] < -2)) {  
      all_log_CO2f$annEE[i] <- 1.17 * all_log_CO2f$annEE[i]  
    } else {  
      all_log_CO2f$annEE[i] <- all_log_CO2f$annEE[i]  
    }  
  }
  mcdf_CO2[u,'No']<-u
  mcdf_CO2[u,'annEE']<-sum(all_log_CO2f$annEE)
}
#Uncertainty of CH4 emissions
all_log_dCH4f<all_dCH4f
for (col in 14:37) {  
  all_log_dCH4f[, col] <- log10(all_dCH4f[, col])  
}
all_log_dCH4f$annEE<-0
mcdf_CH4<-data.frame(matrix(NA,nrow=1000,ncol=2))
names(mcdf_CH4)<-c('No','annEE')
for(u in 1:1000){
  #CH4_error
  CH4_error<-rnorm(n = 18256, mean = -0.17, sd = 0.46)
  CH4_error<-data.frame(CH4_error)
  #area_error
  area_error<-rnorm(n = 18256, mean = -0.24, sd = 0.35)
  area_error<-data.frame(area_error)
  all_log_dCH4$annEE=
    31*(2.1*10^(all_log_dCH4$Jan_dCH4_flux+CH4_error$CH4_error)+0.089)*10^(all_log_dCH4$Jan_area+area_error$area_error)*16*10^-12+
    28*(2.1*10^(all_log_dCH4$Feb_dCH4_flux+CH4_error$CH4_error)+0.089)*10^(all_log_dCH4$Feb_area+area_error$area_error)*16*10^-12+
    31*(2.1*10^(all_log_dCH4$Mar_dCH4_flux+CH4_error$CH4_error)+0.089)*10^(all_log_dCH4$Mar_area+area_error$area_error)*16*10^-12+
    30*(2.1*10^(all_log_dCH4$Apr_dCH4_flux+CH4_error$CH4_error)+0.089)*10^(all_log_dCH4$Apr_area+area_error$area_error)*16*10^-12+
    31*(2.1*10^(all_log_dCH4$May_dCH4_flux+CH4_error$CH4_error)+0.089)*10^(all_log_dCH4$May_area+area_error$area_error)*16*10^-12+
    30*(2.1*10^(all_log_dCH4$Jun_dCH4_flux+CH4_error$CH4_error)+0.089)*10^(all_log_dCH4$Jun_area+area_error$area_error)*16*10^-12+
    31*(2.1*10^(all_log_dCH4$Jul_dCH4_flux+CH4_error$CH4_error)+0.089)*10^(all_log_dCH4$Jul_area+area_error$area_error)*16*10^-12+
    31*(2.1*10^(all_log_dCH4$Aug_dCH4_flux+CH4_error$CH4_error)+0.089)*10^(all_log_dCH4$Aug_area+area_error$area_error)*16*10^-12+
    30*(2.1*10^(all_log_dCH4$Sep_dCH4_flux+CH4_error$CH4_error)+0.089)*10^(all_log_dCH4$Sep_area+area_error$area_error)*16*10^-12+
    31*(2.1*10^(all_log_dCH4$Oct_dCH4_flux+CH4_error$CH4_error)+0.089)*10^(all_log_dCH4$Oct_area+area_error$area_error)*16*10^-12+
    30*(2.1*10^(all_log_dCH4$Nov_dCH4_flux+CH4_error$CH4_error)+0.089)*10^(all_log_dCH4$Nov_area+area_error$area_error)*16*10^-12+
    31*(2.1*10^(all_log_dCH4$Dec_dCH4_flux+CH4_error$CH4_error)+0.089)*10^(all_log_dCH4$Dec_area+area_error$area_error)*16*10^-12
  for (i in 1:nrow(all_log_dCH4)) {  
    if (any(all_log_dCH4$temp[i] < -2)) { 
      all_log_dCH4$annEE[i] <- 1.27 * all_log_dCH4$annEE[i]  
    } else {
      all_log_dCH4$annEE[i] <- all_log_dCH4$annEE[i]  
    }  
  }
  mcdf_CH4[u,'No']<-u
  mcdf_CH4[u,'annEE']<-sum(all_log_dCH4$annEE)
}
##Uncertainty of N2O emissions##
all_log_N2O <- all_N2Of
for (col in 14:37) {  
  all_log_N2O[, col] <- log10(all_N2Of[, col])  
}
all_log_N2O$annEE<-0
mcdf_N2O<-data.frame(matrix(NA,nrow=1000,ncol=2))
names(mcdf_N2O)<-c('No','annEE')
for(u in 1:1000){
  #N2O_error
  N2O_error<-rnorm(n = 18256, mean = -0.17, sd = 0.30)
  N2O_error<-data.frame(N2O_error)
  #area_error
  area_error<-rnorm(n = 18256, mean = -0.24, sd = 0.35)
  area_error<-data.frame(area_error)
  all_log_N2O$annEE=
    31*10^(all_log_N2O$Jan_N2O_flux+N2O_error$N2O_error)*10^(all_log_N2O$Jan_area+area_error$area_error)*44*10^-15+
    28*10^(all_log_N2O$Feb_N2O_flux+N2O_error$N2O_error)*10^(all_log_N2O$Feb_area+area_error$area_error)*44*10^-15+
    31*10^(all_log_N2O$Mar_N2O_flux+N2O_error$N2O_error)*10^(all_log_N2O$Mar_area+area_error$area_error)*44*10^-15+
    30*10^(all_log_N2O$Apr_N2O_flux+N2O_error$N2O_error)*10^(all_log_N2O$Apr_area+area_error$area_error)*44*10^-15+
    31*10^(all_log_N2O$May_N2O_flux+N2O_error$N2O_error)*10^(all_log_N2O$May_area+area_error$area_error)*44*10^-15+
    30*10^(all_log_N2O$Jun_N2O_flux+N2O_error$N2O_error)*10^(all_log_N2O$Jun_area+area_error$area_error)*44*10^-15+
    31*10^(all_log_N2O$Jul_N2O_flux+N2O_error$N2O_error)*10^(all_log_N2O$Jul_area+area_error$area_error)*44*10^-15+
    31*10^(all_log_N2O$Aug_N2O_flux+N2O_error$N2O_error)*10^(all_log_N2O$Aug_area+area_error$area_error)*44*10^-15+
    30*10^(all_log_N2O$Sep_N2O_flux+N2O_error$N2O_error)*10^(all_log_N2O$Sep_area+area_error$area_error)*44*10^-15+
    31*10^(all_log_N2O$Oct_N2O_flux+N2O_error$N2O_error)*10^(all_log_N2O$Oct_area+area_error$area_error)*44*10^-15+
    30*10^(all_log_N2O$Nov_N2O_flux+N2O_error$N2O_error)*10^(all_log_N2O$Nov_area+area_error$area_error)*44*10^-15+
    31*10^(all_log_N2O$Dec_N2O_flux+N2O_error$N2O_error)*10^(all_log_N2O$Dec_area+area_error$area_error)*44*10^-15
  for (i in 1:nrow(all_log_N2O)) {
    if (any(all_log_N2O$temp[i] < -2)) {  
      all_log_N2O$annEE[i] <- 1.17 * all_log_N2O$annEE[i]  
    } else {
      all_log_N2O$annEE[i] <- all_log_N2O$annEE[i]  
    }  
  }
  mcdf_N2O[u,'No']<-u
  mcdf_N2O[u,'annEE']<-sum(all_log_N2O$annEE)
}
mcdf_GHG<-data.frame(matrix(NA,nrow=1000,ncol=2))
names(mcdf_GHG)<-c('No','annGHG')
mcdf_GHG$annGHG<-mcdf_CO2$annEE+mcdf_CH4$annEE*27+mcdf_N2O$annEE*273
uncertainty_GHG<-data.frame(mcdf_CO2$No,mcdf_CO2$annEE,mcdf_CH4$annEE,mcdf_N2O$annEE,mcdf_GHG$annGHG)
names(uncertainty_GHG)<-c('No','CO2annE','CH4annE','N2OannE','GHGannE')
write.csv(uncertainty_GHG, paste0(dir,'/GHG_uncertainty.csv'))