library(here)
library(dplyr)
library(taxize)
library(raster)
library(maptools)
library(knitr)
library(vroom)
library(reshape2)
za_list<-vroom::vroom(here::here("GBIF/Species_List/0004232-190813142620410.csv"))
ls_list<-vroom::vroom(here::here("GBIF/Species_List/0004702-190813142620410.csv"))
sw_list<-vroom::vroom(here::here("GBIF/Species_List/0004707-190813142620410.csv"))

tx_list<-rbind(za_list, ls_list, sw_list)
missing_sp<-tx_list%>%
              filter(kingdom == "Animalia" & is.na(species))%>%
              distinct()

tx<-tx_list %>%
  dplyr::select(kingdom,phylum, class, order,family,genus,species)%>%
  filter((kingdom == "Animalia" | kingdom == "Plantae") & !is.na(species))%>%
  distinct()

kable(table(tx$kingdom))
Var1 Freq
Animalia 5794
Plantae 10677

Bird and Mammal traits from EltonTraits database

tx_birds<-tx %>% 
  filter(class == "Aves")

tx_mammals<-tx %>% 
  filter(class == "Mammalia")


##EltonTraits database for bird and mammal diets

b_traits<-read.csv(here::here("Traits/birddiet.csv"),stringsAsFactors = FALSE)
m_traits<-read.csv(here::here("Traits/mammdiet_elton.csv"), stringsAsFactors = FALSE)

bird_syn<-tx_birds$species[!tx_birds$species %in% b_traits$Scientific]

bird_traits<-merge(tx_birds, b_traits, by.x = "species", by.y = "Scientific")

mammal_traits<-merge(tx_mammals, m_traits, by.x = "species", by.y = "Scientific")

# tsn <- get_tsn(bird_syn[2], accepted = FALSE)
# 
# lapply(tsn, classification, db = 'itis')

Birds

# Diet groups

kable(bird_traits %>%
  dplyr::select(Diet.5Cat)%>%      
  group_by(Diet.5Cat) %>%
  mutate(diet_count = n())%>%
  distinct()%>%
  arrange(-diet_count))
Diet.5Cat diet_count
Invertebrate 376
VertFishScav 126
PlantSeed 122
Omnivore 84
FruiNect 41
length(unique(bird_traits$species))
## [1] 749
mammal_sel<-mammal_traits%>%
  dplyr::select(species,contains("Diet"))%>%#.Inv, Diet.Vend, Diet.Vect, Diet.Vfish, Diet.Vunk, Diet.Scav, Diet.Scav, Diet.Fruit, Diet.Nect, Diet.Seed, Diet.PlantO)
  dplyr::select(-Diet.Source, -Diet.Certainty)

mammal_melt<-melt(mammal_sel)

mammal_diet<-mammal_melt %>%
  group_by(species) %>%
  filter(value == max(value))

Mammals

kable(mammal_diet%>%
  group_by(variable)%>%
  mutate(diet_count = n())%>%
  dplyr::select(diet_count)%>%
  distinct()%>%
  arrange(-diet_count))
variable diet_count
Diet.PlantO 87
Diet.Inv 68
Diet.Vend 22
Diet.Fruit 18
Diet.Seed 15
Diet.Vfish 8
Diet.Vect 6
Diet.Vunk 4
Diet.Scav 2
Diet.Nect 2
length(unique(mammal_diet$species))
## [1] 203
sa_xy<-vroom::vroom(here::here("GBIF/Occurences/0004234-190813142620410.csv"))
sw_xy<-vroom::vroom(here::here("GBIF/Occurences/0004706-190813142620410.csv"))
ls_xy<-vroom::vroom(here::here("GBIF/Occurences/0004701-190813142620410.csv"))

txy<-rbind(sa_xy, sw_xy, ls_xy)

tmp_dir <- tempdir()
files <- list.files(tmp_dir, full.names = T)
file.remove(files)
##  [1]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
txy_sel <- txy %>% 
  dplyr::select(kingdom, phylum, class, order, family, genus, species, decimalLatitude,decimalLongitude) %>% 
  filter(!is.na(decimalLatitude) & !is.na(decimalLongitude) & (decimalLongitude != 0 & decimalLatitude != 0)) %>% 
  distinct()

coordinates(txy_sel) <- ~decimalLongitude + decimalLatitude

rast<-raster(ncol = 100, nrow = 100)
extent(rast) <- extent(txy_sel)
rast_pts<-rasterize(txy_sel, rast, fun = "count")
plot(rast_pts[[8]])