CitizenScience_inat.df <- data.frame(CitizenScience_inat3)
head(CitizenScience_inat.df)
# get only binomial names
CitizenScience_inat.df$name <- sub("(\\w+\\s+\\w+).*", "\\1", CitizenScience_inat.df$name )
# from https://ufbi2018.github.io/SpoelhofJ/
library(taxize)
library(dplyr)
result.long <- as.character(CitizenScience_inat.df$name) %>%
gnr_resolve(#data_source_ids = c(163, 180),
best_match_only = TRUE,
with_canonical_ranks=T)
result.short <- result.long %>%
select(submitted_name, matched_name2, score)%>%
distinct()
result.short
head(result.short)
CitizenScience_inat.df$Correct.Name <- result.short$matched_name2[match(x=as.character(CitizenScience_inat.df$name), table=result.short$submitted_name)]
# some NAs?
CitizenScience_inat.df[is.na(CitizenScience_inat.df$Correct.Name),] # no
CitizenScience_inat.df2 <- CitizenScience_inat.df[,c("Correct.Name", "UTM", "Year", "key")]
CitizenScience_inat.df2 <- CitizenScience_inat.df2[!duplicated(CitizenScience_inat.df2),]
CitizenScience_inat.df2 <- rbind(CitizenScience_inat.df2, CitizenScience_inat.df2x)
"Alopochen aegyptiaca" %in% CitizenScience_inat.df2$Correct.Name
# save XIII
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Data 2020/1-Data_4R")
write.csv(CitizenScience_inat.df2, "Data from iNaturalist via R code.csv")
# Portugal
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Data 2020/ebd_PT_relJun-2020")
pt.data <- fread("ebd_PT_relJun-2020.txt", header = T)
pt.data <- data.frame(pt.data)
names(pt.data)
exotic.birds.ebird.pt <- pt.data[pt.data$SCIENTIFIC.NAME %in% sp.list$Species_all, c("SCIENTIFIC.NAME",
"LATITUDE","LONGITUDE",
"OBSERVATION.DATE","GLOBAL.UNIQUE.IDENTIFIER")]
# Portugal
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Data 2020/ebd_PT_relJun-2020")
names(pt.data)
exotic.birds.ebird.pt <- pt.data[pt.data$SCIENTIFIC.NAME %in% sp.list$Species_all, c("SCIENTIFIC.NAME",
"LATITUDE","LONGITUDE",
"OBSERVATION.DATE","GLOBAL.UNIQUE.IDENTIFIER")]
exotic.birds.ebird.pt <- exotic.birds.ebird.pt[!duplicated(exotic.birds.ebird.pt),]
head(exotic.birds.ebird.pt)
# FIND THE UTM
coordinates(exotic.birds.ebird.pt) <- ~LONGITUDE+LATITUDE
proj4string(exotic.birds.ebird.pt)<-CRS("+init=epsg:4326")
exotic.birds.ebird.pt$UTM <- over(exotic.birds.ebird.pt,grid)[,"CODIGO"]
exotic.birds.ebird.pt2 <- exotic.birds.ebird.pt[!is.na(exotic.birds.ebird.pt$UTM),]
unique(exotic.birds.ebird.pt2$SCIENTIFIC.NAME)
# Spain
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Data 2020/ebd_ES_relJun-2020")
es.data <- fread("ebd_ES_relJun-2020.txt", header = T)
es.data <- data.frame(es.data)
exotic.birds.ebird.es <- es.data[es.data$SCIENTIFIC.NAME %in% sp.list$Species_all, c("SCIENTIFIC.NAME",
"LATITUDE","LONGITUDE",
"OBSERVATION.DATE","GLOBAL.UNIQUE.IDENTIFIER")]
exotic.birds.ebird.es <- exotic.birds.ebird.es[!duplicated(exotic.birds.ebird.es),]
head(exotic.birds.ebird.es)
# FIND THE UTM
coordinates(exotic.birds.ebird.es) <- ~LONGITUDE+LATITUDE
proj4string(exotic.birds.ebird.es)<-CRS("+init=epsg:4326")
exotic.birds.ebird.es$UTM <- over(exotic.birds.ebird.es,grid)[,"CODIGO"]
exotic.birds.ebird.es2 <- exotic.birds.ebird.es[!is.na(exotic.birds.ebird.es$UTM),]
plot(exotic.birds.ebird.es2, cex=.01)
sort(unique(exotic.birds.ebird.es2$SCIENTIFIC.NAME))
ebird <- rbind(exotic.birds.ebird.pt2, exotic.birds.ebird.es2)
plot(ebird, cex=.01)
ebird$Correct.Name <- sp.list$Species_in.use[match(x=ebird$SCIENTIFIC.NAME,
table=sp.list$Species_all)]
ebird2 <- data.frame(ebird)
ebird2$Year <- as.numeric(format(as.Date(ebird2$OBSERVATION.DATE, format="%Y-%m-%d"),"%Y"))
ebird2 <- ebird2[,c("Correct.Name", "UTM", "Year", "GLOBAL.UNIQUE.IDENTIFIER")]
names(ebird2)[4] <- "key"
# save XIV
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Data 2020/1-Data_4R")
write.csv(ebird2, "Data from eBird Sep2020.csv")
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Data 2020")
B4All <- read_excel("Biodiversity4All info.xlsx", sheet=1)
B4All$Year <- as.numeric(format(as.Date(B4All$Date, format="%d/%m/%Y"),"%Y"))
head(B4All)
names(B4All)
B4All <- B4All[,c("scientificName","Year","decimalLongitude","decimalLatitude","id")]
B4All <- B4All[!(duplicated(B4All)),]
B4All$decimalLongitude <- as.numeric(B4All$decimalLongitude)
B4All$decimalLatitude <- as.numeric(B4All$decimalLatitude)
coordinates(B4All) <- ~decimalLongitude+decimalLatitude
proj4string(B4All) <- CRS("+init=epsg:4326")
# proyectoAvis
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Data 2020")
Avis <- read.csv("observaciones_AVIS_16092020.csv", sep=";")
head(Avis)
"Alopochen aegyptiaca" %in% Avis$especie
rm(list=ls())
# load species list -------------------------------------------------------
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper")
sp.list <- read.csv("UpdatedList.csv",head=T)
head(sp.list)
sort(unique(sp.list$Species_in.use))
species.origin <- read.csv("Species Origin.csv", head=T)
# load data ------------------------------------------------------
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/NeoBiota/GIS")
iberia <- readOGR(dsn=".", layer="iberia")
iberia <- spTransform(iberia, CRS("+init=epsg:4326"))
iberia <- iberia[,"CNTRY_NAME"]
grid <- readOGR(dsn=".", layer="UTM_iberia_May2016")
grid <- spTransform(grid, CRS("+init=epsg:4326"))
#
# Sources
#
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Data 2020/1-Data_4R")
#1 Abellan et al 2016
Abellan <- read.csv("Data from Abellan et al 2016.csv", head=T, row.names=1)
Abellan$Year_publication = 2016
#2,3 Birds PT - Data from Atlas das Aves Nidificantes em Portugal
BirdsPT2 <- read.csv("Data from additions to Atlases.csv", head=T, row.names=1)
head(BirdsPT2)
BirdsPT2 <- BirdsPT2[,c("Correct.Name", "Year", "Year_publication", "UTM","Source")]
BirdsPT2 <- BirdsPT2[!is.na(BirdsPT2$UTM),]
levels(BirdsPT2$Source)[2] = "Catry et al. 2010"
BirdsPT2$Year <- as.character(BirdsPT2$Year)
BirdsPT <- read.csv("Data from Atlas das Aves Nidificantes em Portugal.csv", head=T)
head(BirdsPT)
BirdsPT <- BirdsPT[,c("Correct.Name", "Year", "Year_publication", "UTM","Source")]
BirdsPT <- BirdsPT[!is.na(BirdsPT$UTM),]
BirdsPT$Source <- "Equipa Atlas 2008"
#4 Mammals PT - Data from Atlas de Mamíferos de Portugal
mamm.pt <- read.csv("Data from Atlas de Mamíferos de Portugal.csv", head=T)
head(mamm.pt)
mamm.pt <- mamm.pt[,c("Correct.Name", "Year", "Year_publication", "UTM","Source")]
mamm.pt <- mamm.pt[!is.na(mamm.pt$UTM),]
mamm.pt$Source <- "Bencatel et al. 2019"
mamm.pt$Year <- as.character(mamm.pt$Year)
#5 Herps PT - Atlas dos Anfíbios e Répteis de Portugal
herpsPT <- read.csv("Data from Atlas Herps PT.csv", head=T)
head(herpsPT)
herpsPT <- herpsPT[,c("Correct.Name", "Year", "Year_publication", "UTM","Source")]
herpsPT <- herpsPT[!is.na(herpsPT$UTM),]
herpsPT$Source <- "Loureiro et al. 2008"
#6 B4All
B4A <- read.csv("Data from B4All.csv", head=T, row.names=1)
head(B4A)
B4A$Source <- "Biodiversity4All 2020"
#7 COCN
COCN <- read.csv("Data from COCN.csv", head=T, row.names=1)
head(COCN)
COCN <- COCN[!is.na(COCN$UTM),]
names(COCN)[4] <- "key"
COCN$Source <- "Colectivo Ornitológico Cigüeña Negra 2020"
COCN$Year <- as.character(COCN$Year)
#8 eBird
eBird <- read.csv("Data from eBird Sep2020.csv", head=T, row.names=1)
head(eBird)
eBird$Source <- "eBird 2020"
eBird$Year <- as.character(eBird$Year)
#9 iNAT
inat <- read.csv("Data from iNaturalist via R code.csv", head=T, row.names=1)
head(inat)
inat$Source <- "iNAturalist 2020"
inat$Year <- as.character(inat$Year)
#10 BD_IEET and MAGRAMA
BD_IEET <- read.csv("Data from Inventario Español de Especies Terrestres BD_IEET_2015.csv", row.names=1)
head(BD_IEET)
table(BD_IEET$Source)
levels(BD_IEET$Source)[c(1,4,5)] <- "Base de Datos AHE 2011"
levels(BD_IEET$Source)[2] <- "Pleguezuelos et al. 2002"
levels(BD_IEET$Source)[3] <- "Palomo et al. 2002"
levels(BD_IEET$Source)[6] <- "Madrono et al. 2004"
BD_IEET$Year <- as.character(BD_IEET$Year)
#11 Publications (ISI)
#
ISIweb <- read.csv("Data from ISI.csv", head=T, row.names=1)
head(ISIweb)
names(ISIweb) <- c("Correct.Name", "UTM", "Year",
"Year_publication", "Source")
ISIweb$Year <- as.character(ISIweb$Year)
#12 ML Mathias
MLM <- read.csv("Data from ML Mathias_pers.data.csv", head=T, row.names=1)
head(MLM)
MLM <- MLM[,c("Species", "UTM")]
names(MLM)[1] <- "Correct.Name"
MLM$Source <- "ML Mathias pers.data"
#13 MuNHAC
MUNHAC <- read.csv("Data from MUNHAC.csv", head=T, row.names=1)
head(MUNHAC)
names(MUNHAC)[1] <- "Correct.Name"
MUNHAC$Source <- "MUNHAC 2016"
#14 E Murgui
EMu <- read.csv("Data from Murgui_pers.data.csv", head=T, row.names=1)
head(EMu)
EMu <- EMu[,-3]
EMu$Source <- "Enrique Murgui pers.data"
#15 Proyecto Avis
Avis <- read.csv("Data from proyectoAvis.csv", head=T, row.names=1)
head(Avis)
names(Avis)[4] <- "key"
Avis$Source <- "proyectoAvis"
#16 R Rebelo
RR <- read.csv("Data from Rui Rebelo_pers.data.csv", head=T, row.names=1)
head(RR)
RR <- RR[,-c(2)]
names(RR)[3] <- "Year"
RR$Source <- "Rui Rebelo pers.data"
#17 S Santos
SS <- read.csv("Data from Sara Santos_pers.data.csv", head=T, row.names=1)
head(SS)
SS <- SS[,c("Correct.Name", "UTM", "Year")]
SS$Source <- "Sara Santos pers.data"
#18 MAGRAMA - ESTRATEGIA DE GESTIÓN, CONTROL Y ERRADICACIÓN DEL VISÓN AMERICANO (Neovison vison) EN ESPAÑA
MAGRAMA <- read.csv("zMAGRAMA_neov_vison.csv", head=T)
head(MAGRAMA)
names(MAGRAMA)[2] <- "UTM"
MAGRAMA$Correct.Name <- "Neovison vison"
MAGRAMA$Year_publication <- "2014"
MAGRAMA <- MAGRAMA[,c("Correct.Name", "UTM", "Year_publication")]
MAGRAMA$Source <- "MAGRAMA 2014"
# Bind all ----------------------------------------------------------------
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Data 2020/1-Data_4R")
myd <- do.call(rbind.fill, list(Abellan,
BirdsPT2,
BirdsPT,
mamm.pt,
herpsPT,
B4A,
COCN,
eBird,
inat,
BD_IEET,
ISIweb,
MLM,
MUNHAC,
EMu,
Avis,
RR,
SS,
MAGRAMA))
head(myd)
unique(myd$Year)
# remove duplicates
myd <- myd[!duplicated(myd),]
myd <- myd[myd$Correct.Name %in% sp.list$Species_all,]
myd$UTM <- as.character(myd$UTM)
# remove species discarded before
myd <- myd[!myd$Correct.Name %in% c("Corvus ruficollis", "Hemidactylus turcicus", "Larus dominicanus", "Emberiza cioides", "Muscicapa daurica"),]
# remove species discarded before
myd <- myd[!myd$Correct.Name %in% c("Corvus ruficollis", "Hemidactylus turcicus", "Larus dominicanus", "Emberiza cioides", "Muscicapa daurica"),]
myd$Correct.Name[myd$Correct.Name=="Ploceus intermedius"] = "Ploceus melanocephalus"
myd$Correct.Name[myd$Correct.Name=="Psittacara acuticaudatus"] = "Thectocercus acuticaudatus"
myd <- myd[!duplicated(myd),]
head(myd)
x <- data.frame(Correct.Name = "Haemorhous mexicanus",
UTM = "30SXH60",
Year = 2020,
Source = "Revista Quercus 2020",
Year_publication =2020,
key =NA)
myd <- rbind(myd, x)
# Make sure all names are correct (?) -------------------------------------
head(myd)
myd2 <- myd
myd$Correct.Name <- sp.list$Species_in.use[match(x=as.character(myd$Correct.Name), table=sp.list$Species_all)]
# some NAs?
myd[is.na(myd$Correct.Name),] # no
# ADD taxonomy and info ------------------------------------------------------------------
head(myd)
str(myd)
myd$Class <- sp.list$Class[match(x=myd$Correct.Name,
table=sp.list$Species_all)]
myd$Order <- sp.list$Order[match(x=myd$Correct.Name,
table=sp.list$Species_all)]
myd$Family <- sp.list$Family[match(x=myd$Correct.Name,
table=sp.list$Species_all)]
myd$Common.name <- sp.list$common_name[match(x=myd$Correct.Name,
table=sp.list$Species_all)]
myd$Origin <- species.origin$Endemic..nearest.[match(x=myd$Correct.Name,
table=species.origin$Species)]
myd$IUCN <- species.origin$IUCN[match(x=myd$Correct.Name,
table=species.origin$Species)]
myd.pruned <- myd
x <-  myd.pruned[myd.pruned$Correct.Name == "Discoglossus pictus", ]
unique(as.character(x$UTM))
grid.x <- grid[grid$CODIGO %in% x$UTM,]
plot(iberia)
plot(grid.x, add=T)
myd.pruned3 <- myd.pruned[!(myd.pruned$Correct.Name == "Discoglossus pictus" &
myd.pruned$UTM %in% c("30TWN03","31TDG27")),]
x <-  myd.pruned3[myd.pruned3$Correct.Name == "Discoglossus pictus", ]
grid.x <- grid[grid$CODIGO %in% x$UTM,]
plot(grid.x, add=T, col=4)
myd.pruned3 <- myd.pruned3[!(myd.pruned3$Correct.Name == "Lithobates catesbeianus" &
myd.pruned3$UTM %in%
c("29TQE05", "29SPD31")),]
myd.pruned3 <- myd.pruned3[!(myd.pruned3$Correct.Name == "Podarcis siculus" &
myd.pruned3$UTM %in%
c("30TXN00","30TXL36")),]
myd.pruned3 <- myd.pruned3[!(myd.pruned3$Correct.Name == "Teira dugesii" &
myd.pruned3$UTM %in%
c("29SNE91", "29SNE92")),]
# remove Hemidactylus turcicus
myd.pruned3 <- myd.pruned3[myd.pruned3$Correct.Name != "Hemidactylus turcicus", ]
# remove Larus dominicanus ###  Grande distribuição mundial
myd.pruned3 <- myd.pruned3[myd.pruned3$Correct.Name != "Larus dominicanus", ]
head(myd.pruned3)
# remove Macaca sylvanus from Barcelona"
myd.pruned3 <- myd.pruned3[!(myd.pruned3$Correct.Name=="Macaca sylvanus" & myd.pruned3$UTM=="31TDF26"),]
# Correct Year to Number
sort(unique(myd.pruned3$Year))
myd.pruned3$Year_numeric <- myd.pruned3$Year
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("182")]=1982
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("1960(before)")]=1960
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("1964-1999")]=1999
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("1975-2009")]=2009
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("1981(before)")]=1981
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("1987–2018")]=2018
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("1988-1992")]=1992
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2000-2019")]=2000
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2001(before)")]=2001
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2002-2003")]=2003
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2002(before)")]=2002
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2002(before)-2009")]=2009
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2003-2006")]=2006
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2003-2009")]=2009
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2003-2016")]=2016
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2006-2007")]=2007
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2006-2008")]=2008
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2007-2008")]=2008
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2007-2011")]=2011
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2007-2015")]=2015
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2007-2016")]=2016
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2008-2009")]=2009
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2008-2010")]=2010
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2009-2010")]=2010
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2011-2014")]=2014
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2012-2013")]=2013
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2013-2016")]=2016
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2014-2015")]=2015
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2015-2016")]=2016
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2016-2018")]=2018
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2015-2018")]=2018
myd.pruned3$Year_numeric[myd.pruned3$Year %in% c("2102")]=2012
myd.pruned3$Year_numeric[is.na(myd.pruned3$Year)]=myd.pruned3$Year_publication[is.na(myd.pruned3$Year)]
myd.pruned3$Year_numeric <- as.numeric(as.character(myd.pruned3$Year_numeric))
range(myd.pruned3$Year_numeric, na.rm=T)
hist(myd.pruned3$Year_numeric, xlim=c(2000,2020), breaks=100)
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Master file")
names(myd.pruned3)
names(myd.pruned3)[1]="Species"
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Master file")
write.csv(myd.pruned3, "data on alien terrestrial vertebrates PI_20200930.csv")
# Summary --------------------------------------------------------------------
rm(list=ls())
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Master file")
myd.pruned3 <- read.csv("data on alien terrestrial vertebrates PI_20200930.csv", head=T)
head(myd.pruned3)
table(sapply(gregexpr("[A-z]\\W+", myd.pruned3$Correct.Name), length) + 1L)
table(sapply(gregexpr("[A-z]\\W+", myd.pruned3$Species), length) + 1L)
# n species
length(unique(myd.pruned3$Correct.Name))
# n species
length(unique(myd.pruned3$Species))
tapply(myd.pruned3$Correct.Name, myd.pruned3$Class,FUN=function(x) length(unique(x)))
tapply(myd.pruned3$Species, myd.pruned3$Class,FUN=function(x) length(unique(x)))
x <- myd.pruned3[!duplicated(myd.pruned3[,c("Correct.Name", "UTM")]),]
x <- myd.pruned3[!duplicated(myd.pruned3[,c("Species", "UTM")]),]
sort(table(x$Correct.Name))
sort(table(x$Species))
x <- myd.pruned3[!duplicated(myd.pruned3[,c("Species")]),]
table(x$IUCN)
x2 <- myd.pruned3[!duplicated(myd.pruned3[,c("Species", "UTM", "Year_numeric")]),]
str(x2)
range(x2$Year_numeric, na.rm=T)
sort(table(x2$Year_numeric))
ggplot(myd.pruned3, aes(Year_numeric, fill=Class)) +
geom_histogram(alpha=0.5) +
xlim(1980, 2020) +
facet_wrap(~Class, scales = "free") +
theme_bw() +
theme(legend.position = "none") +
labs(x="Year")
library(plyr)
library(rgeos)
library(rgdal)
library(ggplot2)
library(gridExtra)
library(maps)
library(viridis)
library(scales)
library(ggplot2)
library(maps)
library(mapdata)
library(grid)
library(data.table)
rm(list=ls())
# load master table -------------------------------------------------------
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/Master file")
master <- read.csv("data on alien terrestrial vertebrates PI_20200930.csv", head=T, row.names = 1)
head(master)
# load GIS ---------------------------------------------------------------
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/NeoBiota/GIS")
iberia <- readOGR(dsn=".", layer="iberia")
iberia <- spTransform(iberia, CRS("+init=epsg:4326"))
iberia <- iberia[,"CNTRY_NAME"]
grid <- readOGR(dsn=".", layer="UTM_iberia_May2016")
grid <- spTransform(grid, CRS("+init=epsg:4326"))
grid2 <- fortify(grid)
# Urban areas
iberian.urban <- readOGR(dsn=".", layer="Urban areas")
plot(iberia)
plot(iberian.urban, add=TRUE, col=1)
# prepare table
coord <- data.frame(coordinates(grid))
names(coord) <- c("x","y")
grid@data <- cbind(grid@data,coord)
head(grid@data)
master1 <- master[!duplicated(master[,c("Species", "UTM")]),c("Species",
"UTM", "Class", "Common.name",
"Origin", "IUCN", "Year", "Year_numeric")]
head(master1)
# Plots PDF -------------------------------------------------------------
# template
# Iberia
PI <- spTransform(iberia, CRS("+init=epsg:23029"))
PI <- gBuffer(PI, width=500) # if some points are outside PI
PI <- spTransform(PI, CRS("+init=epsg:4326"))
PI$name <- "Iberia"
PI@data$id = rownames(PI@data)
PI.points = fortify(PI, region="id")
PI.df = join(PI.points, PI@data, by="id")
# urban areas
urban <- gBuffer(iberian.urban, width = 0, byid = TRUE)
urban@data$id = rownames(urban@data)
urban.points = fortify(urban, region="id")
urban.df = join(urban.points, urban@data, by="id")
# plot template
(PI.plot <- ggplot(PI.df) +
aes(long,lat,group=group) +
geom_polygon(fill="grey99") +
geom_polygon(data=urban.df, aes(group=group), fill="grey90") +
geom_path(color="grey", size=.3) +
theme_minimal() +
labs(x="Longitude", y="Latitude") +
coord_map())
# loop over species
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/NeoBiota/2nd submission/DataS1/MAPS")
head(master1)
myClass="Birds"
setwd("~/OneDrive - Universidade de Lisboa/Documents/Exotic data paper/NeoBiota/2nd submission/DataS1/MAPS")
pdf(paste(myClass,"_Neobiota.pdf", sep=""),  onefile = TRUE)
for(sp in sort(unique(as.character(master$Species[master$Class==myClass])))){
m.sub1 <- master1[master1$Species==sp,] # Citizen science
class <- myClass
sp.name <- sp
common.name <- unique(as.character(master$Common.name[master$Species %in% sp]))
subtitle <- as.character(sp.name)
status <- as.character(unique(master$IUCN[master$Species %in% sp]))
origin <- as.character(unique(master$Origin[master$Species %in% sp]))
my.grid1 <- grid[grid$CODIGO %in% m.sub1$UTM,]
my.grid1 <- fortify(my.grid1)
x <- master[master$Species==sp,c("Species", "UTM", "Year_numeric")]
# x <- x[!duplicated(x),]
# x$UTM <- factor(x$UTM)
x <- setDT(x)[, .SD[which.min(Year_numeric)], by=.(Species, UTM)]
x$UTM <- factor(x$UTM)
if(nrow(x)>0){
if(nrow(x)==1){
x1 <- data.frame(Year=x$Year_numeric, UTM=1)
}else{
x1 <- aggregate(data=x, UTM~Year_numeric, length)
x1$Year <- as.numeric(as.character(x1$Year_numeric))
}
}else{
x1 <- NULL
}
p <- PI.plot +
#theme_nothing2() +
geom_polygon(aes(x = long, y = lat, group = group), data = my.grid1,
fill = "#E69F00", color=NA) +
labs(title=common.name, subtitle = sp.name) +
theme(plot.title = element_text(size=14, face='bold',hjust = 0),
plot.subtitle = element_text(size=12, face='italic',hjust = 0)) +
annotate("text", x = 3.3, y = 37.5, label = paste("Category:",status), size = 4.5, hjust=1) +
annotate("text", x = 3.3, y = 37.0, label = paste("Origin:",origin), size = 4.5, hjust=1)
if(!is.null(x1)){
breaks <- unique(floor(pretty(seq(1, (max(x1$UTM) + 1) * 1.1))))
breaks <- c(1, breaks[breaks>0])
gg <- ggplot(x1, aes(Year, y=as.numeric(UTM))) +
geom_point(alpha=0.7) +
#geom_line(alpha=0.7) +
#scale_y_continuous(breaks=c(0,min(x1$UTM, max(x1$UTM)))) +
#scale_y_continuous(breaks= pretty_breaks(3)) +
scale_y_continuous(breaks = breaks) +
# scale_size(range = c(1, 10)) +
#geom_segment(aes(x=Year, y=0, xend=Year, yend=1), size=.1) +
xlim(1980, 2020) +
theme_minimal() +
theme(legend.position = "none") +
labs(y="") +
theme(#axis.line.y=element_blank(),
#axis.text.y=element_blank(),
axis.ticks.y=element_blank(),
#axis.title.y=element_blank(),
panel.grid.minor.y=element_blank(),
panel.grid.major.y=element_blank(),
panel.background = element_rect(fill = "white"))
}
grid.newpage()
vp_b <- viewport(width = 1, height = 1, x = 0.5, y = 0.5)  # the larger map
if(!is.null(x1))
vp_a <- viewport(width = 0.4, height = 0.25, x = 0.77, y = 0.86)  # the inset in upper left
print(p, vp = vp_b)
if(!is.null(x1))
print(gg, vp = vp_a)
}
dev.off()
