Overview

This Leaflet map represents 3D flights of European free-tailed bat spotted from 2017-08-08 to 2017-08-15. There are 8 individual.local.identifier for bats taxonomy Tadarida teniotis.

The study results can be accessed on https://www.movebank.org/ and contains data from: European free-tailed bats use topography and nocturnal updrafts to fly high and fast.

O’Mara MT, Amorim F, McCracken GF, Mata V, Safi K, Wikelski M, Beja P, Rebelo H, Dechmann DKN. 2021. Data from: European free-tailed bats use topography and nocturnal updrafts to fly high and fast. Movebank Data Repository. https://doi.org/10.5441/001/1.52nn82r9

# install.packages("leaflet")
library(leaflet)
library(tidyverse)

Data can be downloaded from the www.movebank.org. In summary, during the day, flying animals use environmental energy sources such as thermal updrafts and wind gradients, but these are considered unavailable at night due to lower thermal potential and difficulty finding uplift sources. Surprisingly, some bat species have been observed flying at high altitudes at night, making energetically costly ascents and reaching remarkable airspeeds. This study confirms that bats utilize orographic uplift to ascend over 1,600 meters and achieve sustained airspeeds of 135 km/h. Wind patterns and topography predict areas suitable for high-altitude ascents, which bats adeptly navigate, capitalizing on vertical wind energy in the nocturnal landscape.

bats <- read.csv("data/3D flights of European free-tailed bats.csv")
bats %>% glimpse
## Rows: 9,873
## Columns: 16
## $ event.id                        <dbl> 3512001004, 3512001005, 3512001006, 35…
## $ visible                         <chr> "true", "true", "true", "true", "true"…
## $ timestamp                       <chr> "2017-08-08 20:24:01.000", "2017-08-08…
## $ location.long                   <dbl> -7.047997, -7.048008, -7.047867, -7.04…
## $ location.lat                    <dbl> 41.33874, 41.33792, 41.33684, 41.33501…
## $ gps.hdop                        <dbl> 1.02, 1.02, 1.02, 1.02, 1.06, 1.06, 1.…
## $ gps.maximum.signal.strength     <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ gps.satellite.count             <int> 6, 6, 6, 6, 5, 5, 6, 5, 5, 5, 5, 5, 5,…
## $ ground.speed                    <dbl> 8.222222, 4.111111, 5.138889, 6.166667…
## $ height.above.msl                <dbl> 464, 492, 506, 554, 6, 616, 610, 518, …
## $ manually.marked.outlier         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ sensor.type                     <chr> "gps", "gps", "gps", "gps", "gps", "gp…
## $ individual.taxon.canonical.name <chr> "Tadarida teniotis", "Tadarida tenioti…
## $ tag.local.identifier            <int> 48, 48, 48, 48, 48, 48, 48, 48, 48, 48…
## $ individual.local.identifier     <chr> "Bat4_3D6001852B980", "Bat4_3D6001852B…
## $ study.name                      <chr> "3D flights of European free-tailed ba…
bats%>%
  count(tag.local.identifier,individual.local.identifier )
##   tag.local.identifier individual.local.identifier    n
## 1                    2          Bat2_3D6001852B95D  219
## 2                   11          Bat8_3D6001852B9A7  900
## 3                   20          Bat3_3D6001852B978 1568
## 4                   23          Bat1_3D6001852B958 1265
## 5                   27          Bat6_3D6001852B98E 1435
## 6                   41          Bat7_3D6001852B9A3 1623
## 7                   48          Bat4_3D6001852B980 1466
## 8                   48          Bat5_3D6001852B98C 1397
dat <- bats%>%
  select(individual.local.identifier,timestamp,long=location.long,lat=location.lat, ground.speed,height.above.msl)%>%
  mutate(date=(as.Date(timestamp)),.after = timestamp)%>%
  select(-timestamp)

dat %>% head
##   individual.local.identifier       date      long      lat ground.speed
## 1          Bat4_3D6001852B980 2017-08-08 -7.047997 41.33874     8.222222
## 2          Bat4_3D6001852B980 2017-08-08 -7.048008 41.33792     4.111111
## 3          Bat4_3D6001852B980 2017-08-08 -7.047867 41.33684     5.138889
## 4          Bat4_3D6001852B980 2017-08-08 -7.048289 41.33501     6.166667
## 5          Bat4_3D6001852B980 2017-08-08 -7.050266 41.33322    17.472222
## 6          Bat4_3D6001852B980 2017-08-08 -7.049934 41.33103     9.250000
##   height.above.msl
## 1              464
## 2              492
## 3              506
## 4              554
## 5                6
## 6              616
dat%>%
  pull(date)%>%
  range()
## [1] "2017-08-08" "2017-08-15"
RdYlBu <- colorFactor("RdYlBu", domain = dat$individual.local.identifier)
leaflet(dat) %>%
  addTiles() %>%
   addTiles(group = "OSM (default)") %>%
  addProviderTiles(providers$Esri.WorldStreetMap)%>%
  addCircles(lng = ~long,lat = ~lat,
                   color=~RdYlBu(individual.local.identifier), 
                   popup = ~individual.local.identifier)%>%
  addMiniMap()%>%
  mapOptions()%>%
  addMeasure()%>%
  addScaleBar()
library(htmlwidgets)
 library(htmltools)

saveWidget(map, file="day7_navigator.html",title = "3D flights of European free-tailed bats")