Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----message=FALSE, include = FALSE-------------------------------------------
library(ElevDistr)
## ----eval = FALSE-------------------------------------------------------------
# install.packages("ElevDistr")
# library("ElevDistr")
## ----eval = FALSE-------------------------------------------------------------
# install.packages("devtools", repos = "http://cran.us.r-project.org")
# devtools::install_github("LivioBaetscher/ElevDistr")
# library("ElevDistr")
## -----------------------------------------------------------------------------
gstURL <- paste0("https://os.zhdk.cloud.switch.ch/chelsav2/GLOBAL/",
"climatologies/1981-2010/bio/CHELSA_gst_1981-2010_V.2.1.tif")
gslURL <- paste0("https://os.zhdk.cloud.switch.ch/chelsav2/GLOBAL/",
"climatologies/1981-2010/bio/CHELSA_gsl_1981-2010_V.2.1.tif")
gst <- terra::rast(gstURL, vsi = TRUE)
gsl <- terra::rast(gslURL, vsi = TRUE)
## -----------------------------------------------------------------------------
gmted2010URL <- paste0("https://edcintl.cr.usgs.gov/downloads/sciweb1/shared/topo/downloads/GMTED/",
"Global_tiles_GMTED/300darcsec/med/E000/30N000E_20101117_gmted_med300.tif")
gmted2010Part <- terra::rast(gmted2010URL, vsi = TRUE)
## ----eval = FALSE-------------------------------------------------------------
# distance_to_treeline(lon = 8.65, lat = 46.87, gstRaster = gst, gslRaster = gsl,
# elevationRaster = gmted2010Part, elevation = 504, pointDf = pointsAboveTreeline,
# plot = FALSE, plotHist = FALSE, gstMin = 6.4, gslMin = 94)
## ----eval=FALSE, fig.cap="Example of a sampled area", fig.dim=c(7, 7), message=FALSE, include=FALSE----
# #ggmap::ggmap_show_api_key()
# point <- as.list(c(8.728898, 46.9375))
# temp <- generate_grid(8.728898, 46.93756, 10, 0.0025)
# temp$df <- classify_above_treeline(temp$df, gst, gsl)
# treeline <- sample_treeline(temp$df, temp$lonLength, temp$latLength, 0.0025)
# plot_distr(point, temp$df, treeline, 12)
## ----eval=FALSE, fig.cap="Example of treelinie distribution", fig.dim=c(7, 6), message=FALSE, include=FALSE----
# point <- as.list(c(8.728898, 46.9375))
# temp <- generate_grid(8.728898, 46.93756, 10, 0.0025)
# temp$df <- classify_above_treeline(temp$df, gst, gsl)
# treeline <- sample_treeline(temp$df, temp$lonLength, temp$latLength, 0.0025)
# x <- calculate_distance(treeline = treeline, elevationRaster = gmted2010Part, pointElevation = 512, treelineSampling = 10, plot = TRUE)
## -----------------------------------------------------------------------------
#install.packages("rgbif") #Remove hashtag if you have not installed this package
myspecies <- c("Ranunculus pygmaeus", "Ranunculus thora")
gbifData <- rgbif::occ_data(scientificName = myspecies, hasCoordinate = TRUE, limit = 20000)
## -----------------------------------------------------------------------------
temp1 <- gbifData$`Ranunculus pygmaeus`$data[, c("scientificName", "decimalLatitude", "decimalLongitude",
"elevation", "taxonRank")]
temp2 <- gbifData$`Ranunculus thora`$data[, c("scientificName", "decimalLatitude", "decimalLongitude",
"elevation", "taxonRank")]
ranunculus <- rbind(temp1, temp2)
## ----message = FALSE----------------------------------------------------------
#install.packages("tidyverse") #Remove hashtag if you have not installed this package
library("tidyverse")
ranunculusFiltered <- ranunculus %>% filter(!is.na(elevation) & 0 < elevation & elevation < 8850)
## -----------------------------------------------------------------------------
ranunculusFiltered <- ranunculusFiltered %>% filter(taxonRank == "SPECIES")
## -----------------------------------------------------------------------------
set.seed(42) #Set a seed for reproducible
ranunculusSampled <- ranunculusFiltered %>% group_by(scientificName) %>% slice_head(n = 100)
## ----print = FALSE------------------------------------------------------------
#Import climatic layers
gstURL <- paste0("https://os.zhdk.cloud.switch.ch/chelsav2/GLOBAL/",
"climatologies/1981-2010/bio/CHELSA_gst_1981-2010_V.2.1.tif")
gslURL <- paste0("https://os.zhdk.cloud.switch.ch/chelsav2/GLOBAL/",
"climatologies/1981-2010/bio/CHELSA_gsl_1981-2010_V.2.1.tif")
gst <- terra::rast(gstURL, vsi = TRUE)
gsl <- terra::rast(gslURL, vsi = TRUE)
#Import the DEM
gmted2010URL2 <- paste0("https://edcintl.cr.usgs.gov/downloads/sciweb1/shared/topo/downloads/GMTED/",
"Global_tiles_GMTED/300darcsec/med/E000/50N000E_20101117_gmted_med300.tif")
gmted2010Part2 <- terra::rast(gmted2010URL2, vsi = TRUE)
#Run classification for the first five elements
elev <- distance_to_treeline(lon = ranunculusSampled$decimalLongitude[1:5],
lat = ranunculusSampled$decimalLatitude[1:5], gstRaster = gst,
gslRaster = gsl, elevationRaster = gmted2010Part2, pointDf = pointsAboveTreeline,
elevation = ranunculusSampled$elevation[1:5], plot = FALSE,
plotHist = FALSE, gstMin = 6.4, gslMin = 94)
## -----------------------------------------------------------------------------
elev
## ----eval = FALSE-------------------------------------------------------------
# temp <- terra::rast("your_raster_layer.tif")
## ----eval = FALSE-------------------------------------------------------------
# #Import raster of your choice
# gst <- terra::rast(file = "your_gst_layer.tif")
# gsl <- terra::rast(file = "your_gsl_layer.tif")
#
# #Compute new data frame
# newPointsAboveTreeline <- generate_point_df(gstRaster = gst, gslRaster = gsl, stepSize = 0.0416666,
# gstTreshold = 6.4, gslTreshold = 94)
#
# #Save the output
# save(newPointsAboveTreeline, file = "newPointsAboveTreeline.Rdata")
## ----eval = FALSE-------------------------------------------------------------
# #Load the polygons of all the mountains (from the GMBA project)
# mountain_polygons <- terra::vect("GMBA mountain inventory V1.2(entire world)/
# GMBA Mountain Inventory_v1.2-World.shp")
#
# #Keep only the points that are in a alpine polygon
# #"keep" will be a vector containing all row numbers that contain coordinate, which lie in the Alps
# keep <- terra::is.related(terra::vect(newPointsAboveTreeline, geom = c("longitude", "latitude")),
# mountain_polygons, "intersects") |> which()
#
# newPointsAboveTreeline2 <- newPointsAboveTreeline [keep,] #Pick the lines of interest
## -----------------------------------------------------------------------------
pointAbove <- get_nearest_point(lon = 8.65, lat = 46.87, pointDf = pointsAboveTreeline)
pointAbove
## -----------------------------------------------------------------------------
grid <- generate_grid(lon = pointAbove$lon, lat = pointAbove$lat, squareSize = 10, stepSize = 0.0025)
head(grid$df)
## -----------------------------------------------------------------------------
grid$df <- classify_above_treeline(coords = grid$df, gstRaster = gst, gslRaster = gsl,
gstTreshold = 6.4, gslTreshold = 94)
head(grid$df)
## -----------------------------------------------------------------------------
treelineDf <- sample_treeline(df = grid$df, lonLength = grid$lonLength, latLength = grid$latLength)
head(treelineDf)
## ----eval = FALSE-------------------------------------------------------------
# plot_distr(nearestCorner = pointAbove, grid = grid$df, treelineDf = treelineDf, size = 12)
## -----------------------------------------------------------------------------
calculate_distance(treeline = treelineDf, elevationRaster = gmted2010Part, pointElevation = 504,
treelineSampling = 10, plot = FALSE)
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.