Nothing
knitr::opts_chunk$set(cache=T,fig.width=5,fig.height=5,dpi=125)
# packages used for the data generation library(raster) library(rasterVis) library(tidyr) library(dplyr) library(geosphere) library(maptools) library(mapdata) library(bossMaps) library(rMOL)
rMOL
and bossMaps
packages#devtools::install_github("MapofLife/rMOL")#, ref="7622634") #devtools::install_github("adammwilson/bossMaps",) #devtools::install_local("~/repos/bossMaps_0.1.tgz")
env=getData('worldclim', var='bio', res=10) env=env[[c(1,12)]]
domain=raster(env,layer=0)
species=c("Tinamus_solitarius") dsp=MOLget(species,type=c("points","range")) plot(env[[1]]);plot(dsp$points,add=T);plot(dsp$range,add=T,border="red")
dsp=MOLclean(dsp,dropdist=1000,drop=T) plot(env[[1]]);plot(dsp$points,add=T);plot(dsp$range,add=T,border="red")
points=dsp$points range=dsp$range
fdist=paste0(species,"_rangeDist.tif") if(!file.exists(fdist)) { ## calculate distance-to-range: this is slow but only has to be done once per species. ## Can speed it up by increasing fact (at the expense of lower accuracy). rdist=rangeDist(range,points,domain,domainkm=3000,mask=F,fact=2) ## Mask out undesired areas (ocean, etc.) ## Typically you would do this using your environmental data, ## but here we'll just use a coastline polygon from the maps package land=map(interior=F,fill=T,xlim=bbox(rdist)[1,],ylim=bbox(rdist)[2,],plot=F) land=map2SpatialPolygons(land,IDs=land$names) rdist=mask(rdist,land) rdist=trim(rdist,padding=10,file=fdist,overwrite=T) } rdist=raster(fdist) names(rdist)="rangeDist" plot(rdist);plot(range,add=T);plot(points,add=T)
fo=paste0(species,"_env.grd") if(!file.exists(fo)){ land=map(interior=F,fill=T,xlim=bbox(rdist)[1,],ylim=bbox(rdist)[2,],plot=F) land=map2SpatialPolygons(land,IDs=land$names) td=crop(env,rdist) mask(td,land,file=fo,overwrite=T) senv=writeRaster(td,file=sub("env","senv",fo),overwrite=T) } senv=stack(sub("env","senv",fo)) plot(senv)
Tinamus_solitarius_env=readAll(senv) devtools::use_data(Tinamus_solitarius_env) Tinamus_solitarius_points=points Tinamus_solitarius_range=range #save it devtools::use_data(Tinamus_solitarius_points,overwrite=T) devtools::use_data(Tinamus_solitarius_range,overwrite=T)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.