#### CLOUD FOREST FIGURE 1 
library(raster)
library(maptools)
library(mapplots)
library(scales)
library(plotrix)
library(Cairo)
library(plyr)

setwd("C:/bio/R_Backup/cloudforests/figures/figures_17072018")
source("pcolor_scale.R")

# SET FOLDER CONNECTIONS
INPUT <-"C:/bio/Bio_Backup/TIN R Skripte/GIT/cloudforests/data/"
OUTPUT<-"C:/bio/Bio_Backup/TIN R Skripte/GIT/cloudforests/output/"

full  <- read.csv (paste0(INPUT,"vertsferns_by_cfID_speclist_101518_newid.csv"),sep=";")

CFRegCount_per_spec <- ddply(full, .(taxogroup,scientificname,cf_ass,cf_end), summarise, cfIDCount = length(na.omit(cf_id)))
CFRegCountIsOne <- subset(CFRegCount_per_spec, cfIDCount ==1)

CFSingleRegEndemicsInfo <- merge(CFRegCountIsOne, subset(full,select = c("scientificname","cf_id","CFRegionName","CFRegionContinent")),
                                 by = "scientificname", all.x= TRUE, all.y = FALSE)

agg.cfEndemics <- ddply(CFSingleRegEndemicsInfo, .(cf_id, CFRegionName, CFRegionContinent, taxogroup), summarise,
                        EndSR.cf.assoc = sum(cf_ass),
                        EndSR.cf.restr = sum(cf_end))

agg.cfEndemics <- agg.cfEndemics[order(-agg.cfEndemics$EndSR.cf.restr),]

biodiv     <- ddply(full, .(cf_id, CFRegionName, CFRegionContinent, taxogroup), summarise,
                    cf_ass = sum(cf_ass),
                    cf_end = sum(cf_end))


#### Plot global map ####

#### Load raster data ####
america     <-raster(paste0(INPUT,"americas.sdat"))
africa      <-raster(paste0(INPUT,"africa.sdat"))
asiapacific <-raster(paste0(INPUT,"asiapacific.sdat"))
canaries    <-raster(paste0(INPUT,"canaries.sdat"))
world       <-raster(paste0(INPUT,"world.sdat"))

#shapefiles
pp    <- read.table(paste0(INPUT,"pp.txt"),header=T)
coordinates(pp)<-~x+y
coords<- coordinates(pp)
pp    <- pp[,1:2]
ll    <- shapefile(paste0(INPUT,"cloudforest_regions_lines.shp"))
mm    <- raster(paste0(INPUT,"cf.tif"))
mmshp <- shapefile(paste0(INPUT,"cf1.shp"))
world <- shapefile(paste0(INPUT,"world.shp"))

pp<-as.data.frame(pp)
pp$x<-coords[,1]
pp$y<-coords[,2]

# biodiv
biodiv<- merge(biodiv,pp,by.x="cf_id",by.y="ID")

mammals<-biodiv[biodiv$taxogroup=="Mammals",]
birds  <-biodiv[biodiv$taxogroup=="Birds",]
cyathea<-biodiv[biodiv$taxogroup=="Cyatheaceae",]
amphies<-biodiv[biodiv$taxogroup=="Amphibians",]
 
cf_id<-sort(rep(seq(1,66,1),4))
taxons<-rep(c("Mammals","Birds","Cyatheaceae","Amphibians"),66)

df_ref<-cbind(cf_id,taxons)
df_ref<-as.data.frame(df_ref)
df_ref<-merge(df_ref,pp,by.x="cf_id",by.y="ID")

mammals<-merge(df_ref,mammals,by.x="cf_id",by.y="cf_id",all.x=TRUE)
mammals[is.na(mammals)]<-0
colnames(mammals)[4:5]<-c("x","y")
mammals<-mammals[mammals$taxons=="Mammals",]

birds<-merge(df_ref,birds,by.x="cf_id",by.y="cf_id",all.x=TRUE)
birds[is.na(birds)]<-0
colnames(birds)[4:5]<-c("x","y")
birds<-birds[birds$taxons=="Birds",]

cyathea<-merge(df_ref,cyathea,by.x="cf_id",by.y="cf_id",all.x=TRUE)
cyathea[is.na(cyathea)]<-0
colnames(cyathea)[4:5]<-c("x","y")
cyathea<-cyathea[cyathea$taxons=="Cyatheaceae",]

amphies<-merge(df_ref,amphies,by.x="cf_id",by.y="cf_id",all.x=TRUE)
amphies[is.na(amphies)]<-0
colnames(amphies)[4:5]<-c("x","y")
amphies<-amphies[amphies$taxons=="Amphibians",]

cont="world" 
pdf(paste0(OUTPUT,"Fig1_a.pdf"),height=70/6,width = 290/6,compress = FALSE)
  plot(get(cont),col="grey",border=NA)
  mm1<-mmshp#crop(mmshp,get(cont))
  plot(mm1, col="grey40", add=TRUE, border=NA)
  plot(ll, col="black",add=TRUE)
  
  scaling=2.5

    area1<-"colombia"
    area2<-"sulawesi"
    area3<-"ruwenzori"
    
    r1  <-raster(paste0("C:/bio/R_Backup/cloudforests/figures/figures_9042018/",area1,".sdat"))
    rect(extent(r1)[1],extent(r1)[3],extent(r1)[2],extent(r1)[4],lty=1,border="red")
    r1  <-raster(paste0("C:/bio/R_Backup/cloudforests/figures/figures_9042018/",area2,".sdat"))
    rect(extent(r1)[1],extent(r1)[3],extent(r1)[2],extent(r1)[4],lty=1,border="red")
    r1  <-raster(paste0("C:/bio/R_Backup/cloudforests/figures/figures_9042018/",area3,".sdat"))
    rect(extent(r1)[1],extent(r1)[3],extent(r1)[2],extent(r1)[4],lty=1,border="red")
    
    
    cols<-c(alpha("goldenrod1", 0.5), alpha("royalblue4", 0.5), alpha("darkgreen",0.5), alpha("firebrick",0.5))
    zsx<-c()
    xx <-c()
    yy <-c()
    ids<-c()
    mammals$cf_id<-as.numeric(as.character(mammals$cf_id))
    for (n in unique(mammals$cf_id)) {
      zs<-c(mammals$cf_ass[n],birds$cf_ass[n],cyathea$cf_ass[n],amphies$cf_ass[n])
      zs[is.na(zs)]<-0.1
      add.pie(z=zs,mammals$x[n],mammals$y[n],radius=log(sum(zs))/scaling,col=cols, labels="",border=FALSE)
      zsx<-c(zsx,sum(zs))
      xx<-c(xx,mammals$x[n])
      yy<-c(yy,mammals$y[n])
      ids<-c(ids,mammals$cf_id[n])
    }
    
    add.pie(z=c(1,1,1,1),c(79),c(-19),radius=log(sum(50)/scaling)/2,labels="",col=alpha("black",0.25),border=FALSE)
    add.pie(z=c(1,1,1,1),c(85),c(-19),radius=log(sum(100)/scaling)/2,labels="",col=alpha("black",0.25),border=FALSE)
    add.pie(z=c(1,1,1,1),c(92),c(-19),radius=log(sum(250)/scaling)/2,labels="",col=alpha("black",0.25),border=FALSE)
    add.pie(z=c(1,1,1,1),c(98),c(-19),radius=log(sum(500)/scaling)/2,labels="",col=alpha("black",0.25),border=FALSE)
    add.pie(z=c(1,1,1,1),c(105),c(-19),radius=log(sum(1500)/scaling)/2,labels="",col=alpha("black",0.25),border=FALSE)
    
    text(x=c(79,85,92,98,105),y=c(-19,-19,-19,-19,-19),c("50","100","250","500","1500"),cex=2.5)
    text(x=c(95),-14,c("species richness"),cex=2)
    par(xpd=TRUE)
    legend(x=0,y=-22, # position
           legend = c("Mammals","Birds","Treeferns","Amphibians"), 
           title = "",
           fill = c(alpha("goldenrod1", 0.5), alpha("royalblue4", 0.5), alpha("darkgreen",0.5), alpha("firebrick",0.5)),
           cex = 3,
           bty = "n",
           ncol= 4) # border
    
    cols<-c(alpha("darkorange1", 0.75), alpha("royalblue4", 0), alpha("darkgreen",0), alpha("firebrick",0))
    for (n in c(1:length(mammals[,1]))) {
      zs<-c(mammals$cf_ass[n],birds$cf_ass[n],cyathea$cf_ass[n],amphies$cf_ass[n])
      zs[is.na(zs)]<-0.1
      ze<-c(mammals$cf_end[n],birds$cf_end[n],cyathea$cf_end[n],amphies$cf_end[n])
      ze[is.na(ze)]<-0.1
      p<-ze/zs
      p[p<=0.01]<-0.01
      add.pie(z=zs,mammals$x[n],mammals$y[n],radius=(log(sum(zs))/scaling)*p[1],col=cols, labels="",border=FALSE)
    }
    
    cols<-c(alpha("goldenrod1", 0), alpha("royalblue4", 0.75), alpha("darkgreen",0), alpha("firebrick",0))
    for (n in c(1:length(mammals[,1]))) {
      zs<-c(mammals$cf_ass[n],birds$cf_ass[n],cyathea$cf_ass[n],amphies$cf_ass[n])
      zs[is.na(zs)]<-0.1
      ze<-c(mammals$cf_end[n],birds$cf_end[n],cyathea$cf_end[n],amphies$cf_end[n])
      ze[is.na(ze)]<-0.1
      p<-ze/zs
      p[p<=0.01]<-0.01
      add.pie(z=zs,mammals$x[n],mammals$y[n],radius=(log(sum(zs))/scaling)*p[2],col=cols, labels="",border=FALSE)
    }
    
    cols<-c(alpha("darkorange1", 0), alpha("royalblue4", 0), alpha("darkgreen",0.75), alpha("firebrick",0))
    for (n in c(1:length(mammals[,1]))) {
      zs<-c(mammals$cf_ass[n],birds$cf_ass[n],cyathea$cf_ass[n],amphies$cf_ass[n])
      zs[is.na(zs)]<-0.1
      ze<-c(mammals$cf_end[n],birds$cf_end[n],cyathea$cf_end[n],amphies$cf_end[n])
      ze[is.na(ze)]<-0.1
      p<-ze/zs
      p[p<=0.01]<-0.01
      add.pie(z=zs,mammals$x[n],mammals$y[n],radius=(log(sum(zs))/scaling)*p[3],col=cols, labels="",border=FALSE)
    }
    
    cols<-c(alpha("darkorange1", 0), alpha("royalblue4", 0), alpha("darkgreen",0), alpha("firebrick",0.75))
    for (n in c(1:length(mammals[,1]))) {
      zs<-c(mammals$cf_ass[n],birds$cf_ass[n],cyathea$cf_ass[n],amphies$cf_ass[n])
      zs[is.na(zs)]<-0.1
      ze<-c(mammals$cf_end[n],birds$cf_end[n],cyathea$cf_end[n],amphies$cf_end[n])
      ze[is.na(ze)]<-0.1
      p<-ze/zs
      is.na(p)<-0.01
      #p[p=="NaN"]<-0.01
      add.pie(z=zs,mammals$x[n],mammals$y[n],radius=(log(sum(zs))/scaling)*p[4],col=cols, labels="",border=FALSE)
      
    }
    text(y=yy+(log(zsx)/2)+0.75,x=xx,ids,col="black",cex=1.2,font=2)

    dev.off()

#### CLOUD FOREST FIGURE V2 
library(raster)
library(maptools)
library(mapplots)
library(scales)
library(plotrix)
library(Cairo)

setwd("C:/bio/R_Backup/cloudforests/figures/figures_17072018")
source("pcolor_scale.R")

# SET FOLDER CONNECTIONS
INPUT <-"C:/bio/Bio_Backup/TIN R Skripte/GIT/cloudforests/data/"
OUTPUT<-"C:/bio/Bio_Backup/TIN R Skripte/GIT/cloudforests/output/"


### Plot maps of deforestation
loss<-raster(paste0(INPUT,"cf_loss.tif"))
prot<-raster(paste0(INPUT,"cf_prot.tif"))

for(area in unique(c("colombia","costa_rica","sulawesi","ruwenzori","hispaniola","legend")))
{
  if(area!="legend")
  {
    r1  <-raster(paste0(INPUT,area,".sdat"))
    r1[r1<=0]<-NA
    
    cc<-as.vector(col2rgb("chartreuse3"))
    col1<-rgb(cc[1]/255,cc[2]/255,cc[3]/255,alpha=0.1)
    loss1<-crop(loss,r1)
    prot1<-crop(prot,r1)
    prot1[prot1<1]<-NA
    prot1[is.na(r1)]<-NA
    prploss<-loss1*prot1
    poly1<-rasterToPolygons(prot1, dissolve = T)
    
    pdf(paste0(OUTPUT,area,"_loss.pdf"),width = 10,height = 10)
      colfunc <- colorRampPalette(c("grey40","goldenrod2"))
      colfunc2<- colorRampPalette(c("grey40","red"))
      
      bgcol="white"
      txtcol="white"
      plot(r1,col="grey",legend=FALSE)
      opar<-par()
      breaks<-c(99999,-100,-200,-300,-400,-5000)
      
      plot(loss1,col=rev(colfunc(5)),breaks=breaks,add=TRUE,legend=F)
      plot(prploss,col=rev(colfunc2(5)),breaks=breaks,add=TRUE,legend=F)
        
      par(opar)
      col1<-rgb(cc[1]/255,cc[2]/255,cc[3]/255,alpha=0)
      plot(poly1,col=rgb(0,0,0,alpha = 0.5),add=TRUE,border="black",lwd=1 ,density=15, angle=45)
    dev.off()
  }
  if(area=="legend")
  {
    pdf(paste0(OUTPUT,area,"_loss1.pdf"),width = 10,height = 7)
      plot(0,ylim=c(0,20),xlim=c(0,200),col="white",ylab="",xlab="",axes=F)
      par(cex=1.5)
      cscl(rev(colfunc(5)),c(100,180,6.5,8.5),horiz = F,zrng=c(-500,0),at=-100*0:5,labs=c("0","-1","-2","-3","-4",">-5"),title="",cx=0.85, lablag=1.2,titlag = -3)
      par(cex=1.5)
      cscl(rev(colfunc2(5)),c(100,180,8.5,10.5),horiz = F,zrng=c(-500,0),at=-100*0:5,labs=c("","","","","",""),title="percent change",cx=0.85, lablag=1.2,titlag = -3)
      par(cex=1)
      cols<-c(alpha("darkorange1", 0.75), alpha("royalblue4", 0), alpha("darkgreen",0), alpha("firebrick",0))
      legend(10,13,c("mammals","birds","treeferns","amphibians"),col=c("goldenrod1","royalblue4","darkgreen","firebrick"),bty="n",border=F,cex=1.8,pch=15)
      text(x=140,y=7.5,"unprotected",cex=1.5)
      text(x=140,y=9.5,"protected",cex=1.5,col="white")
    dev.off()
    
    pdf(paste0(OUTPUT,area,"_loss2.pdf"),width = 12,height = 7)
      plot(0,ylim=c(0,20),xlim=c(0,200),col="white",ylab="",xlab="",axes=F)
      add.pie(z=c(1,1,1,1),c(40),c(13),radius=log(sum(100)/2)/2,labels="",col=alpha("black",0.25),border=FALSE)
      add.pie(z=c(1,1,1,1),c(70),c(13),radius=log(sum(500)/2)/2,labels="",col=alpha("black",0.25),border=FALSE)
      add.pie(z=c(1,1,1,1),c(105),c(13),radius=log(sum(1500)/2)/2,labels="",col=alpha("black",0.25),border=FALSE)
      add.pie(z=c(1,1,1,1),c(145),c(13),radius=log(sum(3000)/2)/2,labels="",col=alpha("black",0.25),border=FALSE)
      
      text(x=c(40,70,105,145),y=c(13,13,13,13),c("100","500","1500","3000"),cex=4)
      text(x=98,y=17.8,c("species richness"),cex=4)
    dev.off()
    
  }
  
}


 
