Hitos

Column

chart1

260

Chart 2

27

Chart 3

167

Chart 3

526.332

Chart 3

217

Column

Anfitriones subiendo información a la plataforma

Participación de mujeres

Chart 3

42

Chart 3

18

Column

Resumen de metodos y resultados

Capacitaciones

  • Realizamos talleres presenciales con los anfitriones en Choco, Cauca, Putumayo Valle del Cauca, Meta, y Casanare.

  • Realizamos capacitaciones virtuales con los anfitriones para resolver dudas y hacer sueguimiento al proceso de programación, configuración y subida de informacion a la plataforma Arbimon.

  • Visitas de campo a los 27 anfitriones.

Grabadoras

  • Instalamos 100 grabadoras del tipo Audiomoth, de la mano de 27 anfitriones de Awake.

  • Las grabadoras capturaron mas de medio millon de archivos de audio que corresponden a 1.5 Teras de información.

  • Se desarrolló e implementó un protocolo de monitoreo, que puede ser replicado en cualquier otro proyecto de turismo de naturaleza.

Detalles adicionales

Mapa

Column

Localizacion de especies identificadas

Column

Metodología

Grabaciones

  • Instalamos 100 grabadoras del tipo Audiomoth, de la mano de 27 anfitriones de Awake.

  • Cada anfitrión instaló de una a cuatro grabadoras en su reserva.

  • Las grabadoras estuvieron activas de una semana a un mes en cada sitio de instalación.

  • En cada región un especialista identifico acústicamente algunas especies.

  • Las especies identificadas se usaron para construir patrones de reconocimiento con algoritmos de inteligencia artificial.

  • El tamaño del circulo en el mapa representa el número de grabaciones de cada reserva que se lograron identificar hasta especie.

Detalles adicionales

Especies y anfitriones

Column

Red de especies y anfitriones

Column

Metodología

  • Se seleccionaron 18 especies con muy buenos patrones de reconocimiento en Arbimon y se buscaron con algoritmos de inteligencia artificial en todas las grabaciones.

  • En la grafica se muestra cuales especies se encuentran en la reserva de cual anfitrion.

  • El ancho de la banda gris representa el número de grabaciones de esa especie en la reserva.

Detalles adicionales

Taxonomia

Column

Especies monitoreadas y sus cantos en porcentajes

Column

Nombres de las especies

Nombre comun Nombre cientifico familia orden cantos
Yellow-throated Toucan Ramphastos ambiguus Ramphastidae Piciformes 909
Breñero garganta pálida Automolus ochrolaemus Furnariidae Passeriformes 513
Andean Solitaire Myadestes ralloides Turdidae Passeriformes 510
Yellow-rumped Cacique Cacicus cela Icteridae Passeriformes 510
Chestnut-backed Antbird Myrmeciza exsul Thamnophilidae Passeriformes 505
Black-crested Antshrike Sakesphorus canadensis Thamnophilidae Passeriformes 504
Scrub Greenlet Hylophilus flavipes Vireonidae Passeriformes 504
Undulated Tinamou Crypturellus undulatus Tinamidae Tinamiformes 504
Sharp-tailed Ibis Cercibis oxycerca Threskiornithidae Pelecaniformes 503
Chotacabras pauraque Nyctidromus albicollis Caprimulgidae Caprimulgiformes 502
Blue-crowned Motmot Momotus momota Momotidae Coraciiformes 501
Buff-breasted Wren Cantorchilus leucotis Troglodytidae Passeriformes 501
Great Kiskadee Pitangus sulphuratus Tyrannidae Passeriformes 501
Thamnophilus atrinucha Thamnophilus atrinucha Thamnophilidae Passeriformes 501
Violaceous Jay Cyanocorax violaceus Corvidae Passeriformes 500
Tucan silvador Ramphastos tucanus Ramphastidae Piciformes 279
Roadside Hawk Rupornis magnirostris Accipitridae Accipitriformes 213
Grey-crowned Flatbill Tolmomyias poliocephalus Tyrannidae Passeriformes 184
---
title: "Resultados del Monitoreo Acústico Awake"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
#    storyboard: true
    social: menu
    source: embed
---

```{r setup, include=FALSE}
library(flexdashboard)
```

Hitos
=======================================================================

Column {data-width=300}
-----------------------------------------------------------------------


### chart1

```{r}
valueBox(260, caption = "Horas de capacitación", icon="fa-graduation-cap")


```


### Chart 2

```{r}
valueBox(27, caption = "Anfitriones participando", 
         icon="fa-users", color= "warning")


```


### Chart 3

```{r}
valueBox(167, caption = "Sitios instalados", 
         icon="fa-map-marker", color= "info")


```


### Chart 3

```{r}
valueBox(526.332, caption = "Archivos de Audio", 
         icon="fa-file-audio-o", color= "success")


```

### Chart 3

```{r}
valueBox(217, caption = "Especies validadas", 
         icon="fa-check-square-o", color= "info")


```


Column {data-width=300}
-----------------------------------------------------------------------


### Anfitriones subiendo información a la plataforma

```{r}
gauge(95, min = 0, max = 100, symbol = '%',
      #label="Anfitriones subiendo información a la plataforma",
      gaugeSectors(
  success = c(70, 100), warning = c(40, 69), danger = c(0, 39)
  ))

```

### Participación de mujeres

```{r}
gauge(45, min = 0, max = 100, symbol = '%',
      #label="Anfitriones subiendo información a la plataforma",
      gaugeSectors(
  success = c(70, 100), warning = c(40, 69), danger = c(0, 39)
  ))

```

### Chart 3

```{r}
valueBox(42, caption = "Patrones de reconocimiento", 
         icon="fa fa-cog fa-spin fa-3x fa-fw", color= "success")


```

### Chart 3

```{r}
valueBox(18, caption = "Especies priorizadas", 
         icon="fa-list-alt", color= "success")


```



Column {data-width=400}
-----------------------------------------------------------------------

### Resumen de metodos y resultados

Capacitaciones

- Realizamos talleres presenciales con los anfitriones en Choco, Cauca, Putumayo Valle del Cauca, Meta, y Casanare.

- Realizamos capacitaciones virtuales con los anfitriones para resolver dudas y hacer sueguimiento al proceso de programación, configuración y subida de informacion a la plataforma Arbimon.

- Visitas de campo a los 27 anfitriones.

Grabadoras

- Instalamos 100 grabadoras del tipo Audiomoth, de la mano de 27 anfitriones de Awake.

- Las grabadoras capturaron mas de medio millon de archivos de audio que corresponden a 1.5 Teras de información.

- Se desarrolló e implementó un protocolo de monitoreo, que puede ser replicado en cualquier otro proyecto de turismo de naturaleza.

Detalles adicionales 

- [Monitoreo Acústico](https://monitoreo-acustico.netlify.app)
- [AwakeBIO](https://awake.travel/awakebio)


Mapa
=======================================================================

Column {data-width=650}
-----------------------------------------------------------------------

### Localizacion de especies identificadas




```{r}
#### Codigo mapa
library(readxl)
library(tidyverse)
library(viridis)
library(patchwork)
library(hrbrthemes)
library(circlize)
library(sf)
library(mapview)
library(networkD3)

awake <- read_excel("D:/BoxFiles/Box Sync/CodigoR/Awake_datos/data/Plantilla_de_registros_3.5_aves_cleaned_AnfitrionFixed.xlsx")

awake_sf = st_as_sf(awake, coords = c("decimalLongitude", "decimalLatitude"), crs = 4326)


# df %>% group_by(id) %>% mutate(csum = cumsum(value))

awake_2 <- awake_sf %>%
  group_by(verbatimLocality) %>%
  # mutate(csum = cumsum(occurrenceID))
  summarise(recording = n_distinct(occurrenceID )) 

mapview(awake_2, cex = "recording", alpha = 0.1,
        zcol = "verbatimLocality", map.types	
="CartoDB.DarkMatter" ) #zcol = "verbatimLocality


```
Column {.tabset data-width=350}
-----------------------------------------------------------------------

### Metodología

Grabaciones

- Instalamos 100 grabadoras del tipo Audiomoth, de la mano de 27 anfitriones de Awake.

- Cada anfitrión instaló de una a cuatro grabadoras en su reserva.

- Las grabadoras estuvieron activas de una semana a un mes en cada sitio de instalación.

- En cada región un especialista identifico acústicamente algunas especies.

- Las especies identificadas se usaron para construir patrones de reconocimiento con algoritmos de inteligencia artificial. 

- El tamaño del circulo en el mapa representa el número de grabaciones de cada reserva que se lograron identificar hasta especie.


Detalles adicionales 

- [Monitoreo Acústico](https://monitoreo-acustico.netlify.app)
- [AwakeBIO](https://awake.travel/awakebio)



Especies y anfitriones
=======================================================================

Column {data-width=650}
-----------------------------------------------------------------------

### Red de especies y anfitriones

```{r}
#Codigo para red bipartita

awake_3 <- awake_sf %>%
  select(scientificName, eventDate, stateProvince,
         order, family, genus, occurrenceID, verbatimLocality) %>% 
   count(scientificName, verbatimLocality, sort = TRUE)
  #filter(stateProvince=="Cauca") %>%
  #group_by(verbatimLocality) %>%
   #mutate(csum = sum(scientificName))
  #summarise(recording = n_distinct(occurrenceID ))

#### put italica
#awake_3$scientificName <- paste("_",awake_3$scientificName, "_", sep="")

# From these flows we need to create a node data frame: it lists every entities involved in the flow
nodes <- data.frame(name=c(
            as.character(awake_3$scientificName),
            as.character(awake_3$verbatimLocality)) %>%
                      unique())

awake_3$scientificName=match(awake_3$scientificName, nodes$name)-1 
awake_3$verbatimLocality=match(awake_3$verbatimLocality, nodes$name)-1

# prepare colour scale
ColourScal ='d3.scaleOrdinal() .range(["#FDE725FF","#B4DE2CFF","#6DCD59FF","#35B779FF","#1F9E89FF","#26828EFF","#31688EFF","#3E4A89FF","#482878FF","#440154FF"])'


# Make the Network
sankeyNetwork(Links = awake_3, Nodes = nodes,
                     Source = "scientificName", 
                    Target = "verbatimLocality",
                     Value = "n", NodeID = "name", 
                     sinksRight=FALSE, colourScale=ColourScal, nodeWidth=40, fontSize=10, nodePadding=4, width=1000)


# ="CartoDB.DarkMatter" ) #zcol = "verbatimLocality

#library(dygraphs)
#dygraph(nhtemp, main = "New Haven Temperatures") %>% 
#  dyRangeSelector(dateWindow = c("1920-01-01", "1960-01-01"))
```

Column {data-width=350}
-----------------------------------------------------------------------

### Metodología

- Se seleccionaron 18 especies con muy buenos patrones de reconocimiento en Arbimon y se buscaron con algoritmos de inteligencia artificial en todas las grabaciones. 

- En la grafica se muestra cuales especies se encuentran en la reserva de cual anfitrion.

- El ancho de la banda gris representa el número de grabaciones de esa especie en la reserva.


Detalles adicionales 

- [Monitoreo Acústico](https://monitoreo-acustico.netlify.app)
- [AwakeBIO](https://awake.travel/awakebio)


Taxonomia
=======================================================================

Column {data-width=600}
-----------------------------------------------------------------------


### Especies monitoreadas y sus cantos en porcentajes

```{r}
library(plotly)

#p <- ggplot(data = diamonds, aes(x = cut, fill = clarity)) +
#            geom_bar(position = "dodge")
#ggplotly(p)

awake_circular <- awake %>%
  select(scientificName,vernacularName,
         order, family, genus, verbatimLocality) %>% 
   count(scientificName, order, family, vernacularName, sort = TRUE)
  #arrange(family)
  #dplyr::summarize ()
# awake_circular$id <- 1:18


# make smaller n to 100
awake_circular$n <- awake_circular$n *.1

# Set a number of 'empty bar' to add at the end of each order
empty_bar <- 2
to_add <- data.frame( matrix(NA, empty_bar*nlevels(factor(awake_circular$order)), ncol(awake_circular)) )
colnames(to_add) <- colnames(awake_circular)
to_add$order <- rep(levels(factor(awake_circular$order)), each=empty_bar)
awake_circular <- rbind(awake_circular, to_add)
awake_circular <- awake_circular %>% arrange(order)
awake_circular$id <- seq(1, nrow(awake_circular))

# Get the name and the y position of each label
label_data <- awake_circular
number_of_bar <- nrow(label_data)
angle <- 90 - 360 * (label_data$id-0.5) /number_of_bar     # I substract 0.5 because the letter must have the angle of the center of the bars. Not extreme right(1) or extreme left (0)
label_data$hjust <- ifelse( angle < -90, 1, 0)
label_data$angle <- ifelse(angle < -90, angle+180, angle)



# prepare a data frame for base lines
base_data <- awake_circular %>% 
  dplyr::group_by(order) %>% 
  dplyr::summarize (start=min(id), end=max(id) - empty_bar) %>% 
  rowwise() %>% 
  dplyr::mutate(title=mean(c(start, end)))

# prepare a data frame for grid (scales)
grid_data <- base_data
grid_data$end <- grid_data$end[ c( nrow(grid_data), 1:nrow(grid_data)-1)] + 1
grid_data$start <- grid_data$start - 1
grid_data <- grid_data[-1,]


# Make the plot
p <- ggplot(awake_circular, aes(x=as.factor(id), y=as.numeric(n), fill=order)) +       # Note that id is a factor. If x is numeric, there is some space between the first bar
  
  geom_bar(aes(x=as.factor(id), y=as.numeric(n), fill=order), stat="identity", alpha=0.5) +
  
  # Add a val=100/75/50/25 lines. I do it at the beginning to make sur barplots are OVER it.
  geom_segment(data=grid_data, aes(x = end, y = 80, xend = start, yend = 80), colour = "grey", alpha=1, size=0.3 , inherit.aes = FALSE ) +
  geom_segment(data=grid_data, aes(x = end, y = 60, xend = start, yend = 60), colour = "grey", alpha=1, size=0.3 , inherit.aes = FALSE ) +
  geom_segment(data=grid_data, aes(x = end, y = 40, xend = start, yend = 40), colour = "grey", alpha=1, size=0.3 , inherit.aes = FALSE ) +
  geom_segment(data=grid_data, aes(x = end, y = 20, xend = start, yend = 20), colour = "grey", alpha=1, size=0.3 , inherit.aes = FALSE ) +
  geom_segment(data=grid_data, aes(x = end, y = 100, xend = start, yend = 100), colour = "grey", alpha=1, size=0.3 , inherit.aes = FALSE ) +
  
  # Add text showing the value (n) of each 100/75/50/25 lines
  annotate("text", x = rep(max(awake_circular$id),5), y = c(20, 40, 60, 80, 100), label = c("20", "40", "60", "80", "100") , color="grey", size=3 , angle=0, fontface="bold", hjust=1) +
  
  geom_bar(aes(x=as.factor(id), y=as.numeric(n), fill=order), stat="identity", alpha=0.5) +
  ylim(-100,120) +
  theme_minimal() +
  theme(
    legend.position = "none",
    axis.text = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank(),
    plot.margin = unit(rep(-1,4), "cm") 
  ) +
  coord_polar() + 
  geom_text(data=label_data, aes(x=id, y=as.numeric(n)-10, label=scientificName, hjust=hjust), color="black", fontface="italic",alpha=0.6, size=2.5, angle= label_data$angle, inherit.aes = FALSE ) +
  
  # Add base line information
  geom_segment(data=base_data, aes(x = start, y = -7, xend = end, yend = -5), colour = "black", alpha=0.7, size=0.6 , inherit.aes = FALSE )  +
  geom_text(data=base_data, aes(x = as.numeric(title), y = -18, label=order), hjust=c(0,0,1,0,0,0,0), colour = "black", alpha=0.8, size=2, fontface="bold", inherit.aes = FALSE)

p



q <- ggplot(awake_circular, aes(x=scientificName, y=as.numeric(n), fill=order)) +       # Note that id is a factor. If x is numeric, there is some space between the first bar
  
  geom_bar(aes(x=scientificName, y=as.numeric(n), fill=order), stat="identity", alpha=0.5) + 
  
geom_text(data=awake_circular, aes(x=scientificName, y=-4, label=vernacularName), color="black", fontface="italic",alpha=0.6, size=3, angle= 90, inherit.aes = FALSE ) 
  



```


Column {data-width=400}
-----------------------------------------------------------------------



### Nombres de las especies

```{r}
library(kableExtra)

sp_table <- awake %>%
  select(scientificName,vernacularName,
         order, family, genus) %>% 
   count(vernacularName, scientificName, family, order,  sort = TRUE)

names(sp_table) <- c("Nombre comun", "Nombre cientifico", 
                     "familia", "orden", "cantos")
  
sp_table %>%
  kbl() %>%
  kable_paper("hover", full_width = T, font_size = 9)
  #kable_styling(bootstrap_options = "striped", font_size = 8)

```