#shannon_index_functions
Seascape_shannon = function(data1, group, daterange){ 
  
  #data$seascape_variable <- factor(data$seascape_variable, levels = c("33","1", "2","3","4","5","6","7","8"," 9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32"))
  maxDate = daterange[2]
  startDate = daterange[1]
  
  data1 = data1 %>% 
    filter(mpa_id %in% group,
           date.time>=startDate & date.time<=maxDate) 
  
  # convert seascape to factor
  data1$seascape_variable <- as.factor(data1$seascape_variable)
  
  # calculate frequency of each seascape variable for each MPA
  data2 <- summarize(data1, freq_33 =sum(seascape_variable=="33", na.rm=T),freq_7 =sum(seascape_variable=="7", na.rm=T),
                          freq_11 =sum(seascape_variable=="11", na.rm=T),freq_12 =sum(seascape_variable=="12", na.rm=T),
                          freq_14 =sum(seascape_variable=="14", na.rm=T),freq_15 =sum(seascape_variable=="15", na.rm=T),
                          freq_17 =sum(seascape_variable=="17", na.rm=T),freq_19 =sum(seascape_variable=="19", na.rm=T),
                          freq_20 =sum(seascape_variable=="20", na.rm=T),freq_21 =sum(seascape_variable=="21", na.rm=T),
                          freq_22 =sum(seascape_variable=="22", na.rm=T),freq_23 =sum(seascape_variable=="23", na.rm=T),
                          freq_27 =sum(seascape_variable=="27", na.rm=T))
  
  data2 <-as.data.frame(data2)
  
  data2$freq_33 <- as.numeric(data2$freq_33)
  data2$freq_7 <- as.numeric(data2$freq_7)
  data2$freq_11 <- as.numeric(data2$freq_11)
  data2$freq_12 <- as.numeric(data2$freq_12)
  data2$freq_14 <- as.numeric(data2$freq_14)
  data2$freq_15 <- as.numeric(data2$freq_15)
  data2$freq_17 <- as.numeric(data2$freq_17)
  data2$freq_19 <- as.numeric(data2$freq_19)
  data2$freq_20 <- as.numeric(data2$freq_20)
  data2$freq_21 <- as.numeric(data2$freq_21)
  data2$freq_22 <- as.numeric(data2$freq_22)
  data2$freq_23 <- as.numeric(data2$freq_23)
  data2$freq_27 <- as.numeric(data2$freq_27)
  
  data2$sum <- sum(data2$freq_33, data2$freq_7, data2$freq_11, data2$freq_12, data2$freq_14, data2$freq_15, data2$freq_17, data2$freq_19, data2$freq_20, data2$freq_21, data2$freq_22, data2$freq_23, data2$freq_27)
  
  shannon_in <- summarize(data2, plnp33 = (freq_33/sum) * log(freq_33/sum), plnp7 = (freq_7/sum) * log(freq_7/sum),
                          plnp11 = (freq_11/sum) * log(freq_11/sum), plnp12 = (freq_12/sum) * log(freq_12/sum),
                          plnp14 = (freq_14/sum) * log(freq_14/sum), plnp15 = (freq_15/sum) * log(freq_15/sum),
                          plnp17 = (freq_17/sum) * log(freq_17/sum), plnp19 = (freq_19/sum) * log(freq_19/sum),
                          plnp20 = (freq_20/sum) * log(freq_20/sum), plnp21 = (freq_21/sum) * log(freq_21/sum),
                          plnp22 = (freq_22/sum) * log(freq_22/sum), plnp23 = (freq_23/sum) * log(freq_23/sum),
                          plnp27 = (freq_27/sum) * log(freq_27/sum))
  
  is.nan.data.frame <- function(x)
       do.call(cbind, lapply(x, is.nan))
     shannon_in[is.nan(shannon_in)] <- 0
     
  shannon <- (-1*sum(shannon_in$plnp33, shannon_in$plnp7, shannon_in$plnp11, shannon_in$plnp12,
                     shannon_in$plnp14, shannon_in$plnp15, shannon_in$plnp17, shannon_in$plnp19,
                     shannon_in$plnp20, shannon_in$plnp21, shannon_in$plnp22, shannon_in$plnp23,
                     shannon_in$plnp27))
  
  #print(shannon)
}




# 
# data1 = mpa_sea %>%
#   filter(mpa_id %in% "Pyramid Point SMCA",
#          date.time>=date.time[500] & date.time<=date.time[1000])
# 
# # convert seascape to factor
# data1$seascape_variable <- as.factor(data1$seascape_variable)
# 
# # calculate frequency of each seascape variable for each MPA
# #mpa_index <- group_by(data1, mpa_id)
# data2 <- summarize(data1, freq_33 =sum(seascape_variable=="33", na.rm=T),freq_7 =sum(seascape_variable=="7", na.rm=T),
#                         freq_11 =sum(seascape_variable=="11", na.rm=T),freq_12 =sum(seascape_variable=="12", na.rm=T),
#                         freq_14 =sum(seascape_variable=="14", na.rm=T),freq_15 =sum(seascape_variable=="15", na.rm=T),
#                         freq_17 =sum(seascape_variable=="17", na.rm=T),freq_19 =sum(seascape_variable=="19", na.rm=T),
#                         freq_20 =sum(seascape_variable=="20", na.rm=T),freq_21 =sum(seascape_variable=="21", na.rm=T),
#                         freq_22 =sum(seascape_variable=="22", na.rm=T),freq_23 =sum(seascape_variable=="23", na.rm=T),
#                         freq_27 =sum(seascape_variable=="27", na.rm=T))
# 
# data2 <-as.data.frame(data2)
# 
# data2$freq_33 <- as.numeric(data2$freq_33)
# data2$freq_7 <- as.numeric(data2$freq_7)
# data2$freq_11 <- as.numeric(data2$freq_11)
# data2$freq_12 <- as.numeric(data2$freq_12)
# data2$freq_14 <- as.numeric(data2$freq_14)
# data2$freq_15 <- as.numeric(data2$freq_15)
# data2$freq_17 <- as.numeric(data2$freq_17)
# data2$freq_19 <- as.numeric(data2$freq_19)
# data2$freq_20 <- as.numeric(data2$freq_20)
# data2$freq_21 <- as.numeric(data2$freq_21)
# data2$freq_22 <- as.numeric(data2$freq_22)
# data2$freq_23 <- as.numeric(data2$freq_23)
# data2$freq_27 <- as.numeric(data2$freq_27)
# 
# data2$sum <- sum(data2$freq_33, data2$freq_7, data2$freq_11, data2$freq_12, data2$freq_14, data2$freq_15, data2$freq_17, data2$freq_19, data2$freq_20, data2$freq_21, data2$freq_22, data2$freq_23, data2$freq_27)
# head(data2$sum)  
# 
# 
# 
# shannon_in <- summarize(data2, plnp33 = (freq_33/sum) * log(freq_33/sum), plnp7 = (freq_7/sum) * log(freq_7/sum),
#                         plnp11 = (freq_11/sum) * log(freq_11/sum), plnp12 = (freq_12/sum) * log(freq_12/sum),
#                         plnp14 = (freq_14/sum) * log(freq_14/sum), plnp15 = (freq_15/sum) * log(freq_15/sum),
#                         plnp17 = (freq_17/sum) * log(freq_17/sum), plnp19 = (freq_19/sum) * log(freq_19/sum),
#                         plnp20 = (freq_20/sum) * log(freq_20/sum), plnp21 = (freq_21/sum) * log(freq_21/sum),
#                         plnp22 = (freq_22/sum) * log(freq_22/sum), plnp23 = (freq_23/sum) * log(freq_23/sum),
#                         plnp27 = (freq_27/sum) * log(freq_27/sum))
# 
# is.nan.data.frame <- function(x)
#   do.call(cbind, lapply(x, is.nan))
# shannon_in[is.nan(shannon_in)] <- 0
# 
# shannon <- (-1*sum(shannon_in$plnp33, shannon_in$plnp7, shannon_in$plnp11, shannon_in$plnp12,
#                    shannon_in$plnp14, shannon_in$plnp15, shannon_in$plnp17, shannon_in$plnp19,
#                    shannon_in$plnp20, shannon_in$plnp21, shannon_in$plnp22, shannon_in$plnp23,
#                    shannon_in$plnp27))
# print(shannon)
# 
# 
# # #create new dataframe 
# # mpa_index3 <- data.frame(mpa_index2)
# # 
# # #### read new csv with removed MPAs (with only NAs)
# # mpa_shannon = read.csv('data/shannon_index.csv')
# # 
# # # relative abundance of species times natural log of relative abundance
# # shannon_in <- group_by(mpa_shannon, mpa_id)
# # shannon_in2 <- summarize(mpa_shannon, plnp33 = (freq_33/sum) * log(freq_33/sum), plnp7 = (freq_7/sum) * log(freq_7/sum), 
# #                          plnp11 = (freq_11/sum) * log(freq_11/sum), plnp12 = (freq_12/sum) * log(freq_12/sum),
# #                          plnp14 = (freq_14/sum) * log(freq_14/sum), plnp15 = (freq_15/sum) * log(freq_15/sum),
# #                          plnp17 = (freq_17/sum) * log(freq_17/sum), plnp19 = (freq_19/sum) * log(freq_19/sum),
# #                          plnp20 = (freq_20/sum) * log(freq_20/sum), plnp21 = (freq_21/sum) * log(freq_21/sum),
# #                          plnp22 = (freq_22/sum) * log(freq_22/sum), plnp23 = (freq_23/sum) * log(freq_23/sum),
# #                          plnp27 = (freq_27/sum) * log(freq_27/sum))
# # 
# # shannon_in2 <- cbind(mpa_shannon, shannon_in2)
# # head(shannon_in2)
# # 
# # is.nan.data.frame <- function(x)
# #   do.call(cbind, lapply(x, is.nan))
# # shannon_in2[is.nan(shannon_in2)] <- 0
# # 
# # shannon_in2$shannon <- 0
# # head(shannon_in2)
# # 
# # for (i in 1:length(shannon_in2$shannon)) {
# #   shannon_in2$shannon[i] <- (-1*sum(shannon_in2$plnp33[i], shannon_in2$plnp7[i], shannon_in2$plnp11[i], shannon_in2$plnp12[i],
# #                                     shannon_in2$plnp14[i], shannon_in2$plnp15[i], shannon_in2$plnp17[i], shannon_in2$plnp19[i],
# #                                     shannon_in2$plnp20[i], shannon_in2$plnp21[i], shannon_in2$plnp22[i], shannon_in2$plnp23[i],
# #                                     shannon_in2$plnp27[i]))
# # }
# # head(shannon_in2)
# # tail(shannon_in2)
# # 
