#######################################################################################
################## Seguimento da avifauna nun parque eologico #########################
#######################################################################################
## 1. Desenho de mostraxe: 
#install.packages(dssd)
library(dssd)
##ler un shapefile delimitando a area de estudo e os dous habitats de interese
shapefile.name <- system.file("extdata", "Strata.shp", package = "dssd")
region <- make.region(region.name = "Area de estudo", 
                      strata.name = c("Matos", "Bosque"),
                      shape = shapefile.name)
plot(region)

##crear 100 puntos aleatorios
cover <- make.coverage(region,
                       n.grid.points = 100)
plot(region, cover)

##crear 200 Estacions de escoita 
#aleatoriamente distribuidas
default.design <- make.design(region = region,
                              transect.type = "point",
                              design = "random",
                              samplers = 200,
                              design.angle = c(155, 90),
                              edge.protocol = "minus",
                              truncation = 500, 
                              coverage.grid = cover)
EEs_random <- generate.transects(default.design)
plot(region, EEs_random, lwd = 1.5, col = 4)

#sistematicamente distribuidas
default.design <- make.design(region = region,
                              transect.type = "point",
                              design = "systematic",
                              samplers = 200,
                              design.angle = c(155, 90),
                              edge.protocol = "minus",
                              truncation = 500, 
                              coverage.grid = cover)
EEs_system <- generate.transects(default.design)
plot(region, EEs_system, lwd = 1.5, col = 4)

EEs_system
## 
##    Strata Matos:
##    ______________
## Design:  systematically spaced transects
## Spacing:  10246.14
## Number of samplers:  90
## Design angle:  155
## Edge protocol:  minus
## Covered area:  70297238
## Strata coverage: 0.76%
## Strata area:  9280648398
## 
##    Strata Bosque:
##    _______________
## Design:  systematically spaced transects
## Spacing:  10246.14
## Number of samplers:  122
## Design angle:  90
## Edge protocol:  minus
## Covered area:  95672891
## Strata coverage: 0.82%
## Strata area:  11716012130
## 
##    Study Area Totals:
##    _________________
## Number of samplers:  212
## Covered area:  165970129
## Average coverage: 0.79%
##porcentaxe de cobertura do noso desenho nun grid de puntos
design <- run.coverage(default.design, reps = 100)
## 1% complete 2% complete 3% complete 4% complete 5% complete 6% complete 7%
## complete 8% complete 9% complete 10% complete 11% complete 12% complete 13%
## complete 14% complete 15% complete 16% complete 17% complete 18% complete 19%
## complete 20% complete 21% complete 22% complete 23% complete 24% complete 25%
## complete 26% complete 27% complete 28% complete 29% complete 30% complete 31%
## complete 32% complete 33% complete 34% complete 35% complete 36% complete 37%
## complete 38% complete 39% complete 40% complete 41% complete 42% complete 43%
## complete 44% complete 45% complete 46% complete 47% complete 48% complete 49%
## complete 50% complete 51% complete 52% complete 53% complete 54% complete 55%
## complete 56% complete 57% complete 58% complete 59% complete 60% complete 61%
## complete 62% complete 63% complete 64% complete 65% complete 66% complete 67%
## complete 68% complete 69% complete 70% complete 71% complete 72% complete 73%
## complete 74% complete 75% complete 76% complete 77% complete 78% complete 79%
## complete 80% complete 81% complete 82% complete 83% complete 84% complete 85%
## complete 86% complete 87% complete 88% complete 89% complete 90% complete 91%
## complete 92% complete 93% complete 94% complete 95% complete 96% complete 97%
## complete 98% complete 99% complete 100% complete
plot(design)

design
## 
##    Strata Matos:
##    ______________
## Design:  systematically spaced transects
## Spacing:  NA
## Number of samplers:  200  (shared across strata)
## Design angle:  155
## Edge protocol:  minus
## 
##    Strata Bosque:
##    _______________
## Design:  systematically spaced transects
## Spacing:  NA
## Number of samplers:  200  (shared across strata)
## Design angle:  90
## Edge protocol:  minus
## 
## Strata areas:  9280648398, 11716012130
## Region units:  m
## Coverage Simulation repetitions:  100
## 
##     Number of samplers:
##     
##         Matos Bosque Total
## Minimum  85.0  100.0 185.0
## Mean     88.2  110.9 199.1
## Median   88.0  110.5 199.0
## Maximum  93.0  122.0 214.0
## sd        1.8    5.8   6.2
## 
##     Covered area:
##     
##            Matos   Bosque     Total
## Minimum 66380427 78503934 145197614
## Mean    68912435 86782835 155695269
## Median  68883214 86074314 155215111
## Maximum 72504619 95192020 167494380
## sd       1342976  4591051   4848828
## 
##     % of region covered:
##     
##         Matos Bosque Total
## Minimum  0.72   0.67  0.69
## Mean     0.74   0.74  0.74
## Median   0.74   0.73  0.74
## Maximum  0.78   0.81  0.80
## sd       0.01   0.04  0.02
## 
##     Coverage Score Summary:
##     
##               Matos      Bosque       Total
## Minimum 0.000000000 0.000000000 0.000000000
## Mean    0.007954545 0.007017544 0.007425743
## Median  0.010000000 0.000000000 0.010000000
## Maximum 0.040000000 0.030000000 0.040000000
## sd      0.008234794 0.008444126 0.008325078
##crear 20 trasectos lineais de 500 metros 
#aleatoriamente
default.design <- make.design(region = region,
                              transect.type = "line",
                              design = "random",
                              samplers = 20,
                              design.angle = c(155, 90),
                              edge.protocol = "minus",
                              truncation = 500, 
                              coverage.grid = cover)
transects_random <- generate.transects(default.design)
plot(region, transects_random, lwd = 1.5, col = 4)

#sistematicamente
default.design <- make.design(region = region,
                              transect.type = "line",
                              design = "systematic",
                              samplers = 20,
                              design.angle = c(155, 90),
                              edge.protocol = "minus",
                              truncation = 500, 
                              coverage.grid = cover)
transects_system <- generate.transects(default.design)
plot(region, transects_system, lwd = 1.5, col = 4)

##crear 20 transectos lineais de 1 km en zizag
design <- make.design(region = region,
                      transect.type = "line",
                      design = c("eszigzag", "systematic"),
                      line.length = 1200000,
                      design.angle = c(65, 90),
                      bounding.shape = c("convex.hull", NA),
                      edge.protocol = "minus",
                      truncation = 1000,
                      coverage.grid = cover)

transects_zigzag <- generate.transects(design)
plot(region, transects_zigzag, lwd = 1.5, col = 4)

##porcentaxe de cobertura do noso deseño nun grid de puntos
design <- run.coverage(design, reps = 100)
## 1% complete 2% complete 3% complete 4% complete 5% complete 6% complete 7%
## complete 8% complete 9% complete 10% complete 11% complete 12% complete 13%
## complete 14% complete 15% complete 16% complete 17% complete 18% complete 19%
## complete 20% complete 21% complete 22% complete 23% complete 24% complete 25%
## complete 26% complete 27% complete 28% complete 29% complete 30% complete 31%
## complete 32% complete 33% complete 34% complete 35% complete 36% complete 37%
## complete 38% complete 39% complete 40% complete 41% complete 42% complete 43%
## complete 44% complete 45% complete 46% complete 47% complete 48% complete 49%
## complete 50% complete 51% complete 52% complete 53% complete 54% complete 55%
## complete 56% complete 57% complete 58% complete 59% complete 60% complete 61%
## complete 62% complete 63% complete 64% complete 65% complete 66% complete 67%
## complete 68% complete 69% complete 70% complete 71% complete 72% complete 73%
## complete 74% complete 75% complete 76% complete 77% complete 78% complete 79%
## complete 80% complete 81% complete 82% complete 83% complete 84% complete 85%
## complete 86% complete 87% complete 88% complete 89% complete 90% complete 91%
## complete 92% complete 93% complete 94% complete 95% complete 96% complete 97%
## complete 98% complete 99% complete 100% complete
plot(design)

#######################################################################################
###### 2. Calcular abundacias relativas e absolutas a partir das EEs virtuais ######
#######################################################################################

#### Abundancia relativa a partir de Estacions de escoita
## leer taboa cos datos das estacions
library(readxl)
EE <- read_excel("/Users/adrianregossanz/Downloads/OneDrive_1_16-4-2020/EE.xlsx")
## como calcular media e erro tipico para unha especie
x <- EE$`Turdus merula`
mean(x)
## [1] 1.25
sd(x)/sqrt(length(x))
## [1] 0.6291529
####### e para todas as especies a un tempo
#creo unha funcion que calcula o erro tipico   
mi.SE.funcion <- function(x) {
  sd(x)/sqrt(length(x))
}
spp.names <- names(EE)## nomes das especies
#creo unha taboa
my.ab <- as.data.frame(spp.names)
my.ab$media <- apply(EE, 2, mean)##calculo a media
my.ab$erro <- apply(EE, 2, mi.SE.funcion)## e o erro tipico 
head(my.ab)
##            spp.names media      erro
## 1      Turdus merula  1.25 0.6291529
## 2 Erithacus rubecula  1.50 0.2886751
## 3      Corvus corone  0.75 0.4787136
##gardo a taboa coas abundancias relativas
write.csv2(my.ab, "/Users/adrianregossanz/Downloads/Ab_relativa.csv")

##representar valores medios
names(my.ab) <- c("especies", "media", "error")

library(ggplot2)
ggplot(my.ab, aes(x=especies, y=media, fill=especies)) + theme_light() +
  geom_bar(position=position_dodge(), stat="identity") + 
  scale_fill_brewer(palette = "Reds") + 
  geom_errorbar(aes(ymin=media-error, ymax=media+error),
                width=.2,                    # Width of the error bars
                position=position_dodge(.9))

########### Densidade absoluta a partir de transecto lineal
Tran <- read_excel("/Users/adrianregossanz/Downloads/Transecto.xlsx")

abundancia.funcion <- function (data, long, banda){
  ConBanda <- colSums(data)[c(TRUE, FALSE)]
  ConTotal <- colSums(data)[c(TRUE, FALSE)] + colSums(Tran)[c(FALSE, TRUE)]
  nT <- nrow(data)##numero de transectos na taboa equivale o numero de filas
  L <- (long*nT)# n e o numero de transecto de 500 m
  w <- banda## banda de reconto de 25
  K <- (1-sqrt(1-ConBanda/ConTotal))/w
  D <- as.data.frame(ConTotal*K/L)*100000
  rownames(D) <- sub('*Banda principal', '', row.names(D))
  colnames(D) <- "Abundancia"
  return(D)
}

## calculamos para transecto de 500 m, e banda de 25 metros
T_ab <- abundancia.funcion(Tran, 500, 25)
##gardo a taboa coas abundancias relativas
write.csv2(T_ab, "/Users/adrianregossanz/Downloads/Ab_absoluta.csv")

########### 3. simulamos cambios nas abundancias
T_ab$Ano2 <- T_ab$Abundancia*c(1.3, 0.3, 0.8)
T_ab$Ano3 <- T_ab$Ano2*c(0.3, 0.8, 1.3)
T_ab$Ano4 <- T_ab$Ano3*c(0.3, 0.8, 1.3)
T_ab$Ano5 <- T_ab$Ano4*c(0.3, 0.8, 1.3)
T_ab$Ano6 <- T_ab$Ano5*c(0.3, 0.8, 1.3)

T_ab$spp <- rownames(T_ab)

## representamos graficamente as tendencias
library(reshape2)
my.tb <- melt(T_ab, id.vars=c("spp"))
my.tb$Ano <- rep(c(2009:2014),each=3)
head(my.tb)
##                   spp   variable    value  Ano
## 1      Turdus merula  Abundancia 6.516685 2009
## 2 Erithacus rubecula  Abundancia 7.607695 2009
## 3      Corvus corone  Abundancia 3.514719 2009
## 4      Turdus merula        Ano2 8.471691 2010
## 5 Erithacus rubecula        Ano2 2.282309 2010
## 6      Corvus corone        Ano2 2.811775 2010
library(ggplot2)
my.ggplot <- ggplot(my.tb, aes(y=value, x=Ano, shape=spp, color=spp)) +
  theme_light() +
  geom_line(aes(x=Ano, y=value, group=spp)) +
  geom_point(aes(x=Ano, y=value, group=spp)) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) + 
  scale_color_brewer(palette = "Greys") + geom_vline(xintercept = 2010, linetype="dotted", 
                                                     color = "blue", size=1) +
  labs(title = "Tendencias nas abundancias") + ylab("Abundancia (Aves/10 ha)")

my.ggplot 

## representar a tendencia asumindo un modelo lineal
my.ggplot + geom_smooth(method = "lm") + scale_color_brewer(palette = "Reds")
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
## `geom_smooth()` using formula 'y ~ x'

#rmarkdown::render("/Users/adrianregossanz/Downloads/Taller_Aves.R", "pdf_document")