#' Function for extracting topography info from minimum convex polygons
#'
#' @ inrast = list of rasters (with names!)
#' @ inisl = spatialPointsDataframe containing coordinates for plots of individual islands
#'
top_polygon<-function(inrast,inisl){
results<-NULL
# extract info on Islands
isl.l<-as.character(unique(inisl$Islandnew))
# loop through islands
for (i in 1:length(isl.l)){
cat(as.character(isl.l[i]))
cat("\n")
tmpisl<-subset(inisl,Islandnew==isl.l[i])
# extract topograpy info using a minimum convex polygon
ptmp<- mcp(SpatialPoints(tmpisl), percent = 100)
for (j in 1:length(inrast)){
cat(as.character(names(inrast)[j]))
cat("\n")
# crop raster extent
tmpr<-crop(x=inrast[[j]],y=extent(ptmp))
# create temporary raster
tmpr1<-raster(extent(tmpr),nrow=nrow(tmpr),ncol=ncol(tmpr))
tmpr2<-rasterize(ptmp,tmpr1,res=res(tmpr)[1])
# mask out
finalr<-mask(x=tmpr,mask=tmpr2)
# get values and coordinates
tmpdf <- na.exclude(data.frame(coordinates(finalr), value = getValues(finalr)))
tmpdf1<-data.frame(tmpdf,Island=isl.l[i],var=names(inrast)[j])
results<-rbind(tmpdf1,results)
}
}
results1<-spread(results,var,value)
return(results1)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.