Description Usage Arguments Details Value Author(s) References Examples
View source: R/raster_breaks.R
Take a raster object (RasterLayer,
RasterStack, RasterBrick),
and extract pixels values contain by SpatialPolygonsDataFrame
object. Then, raster_break() generates bins, given by breaks
argument, from pixels values. Finally, it converts all bins into a
SpatialPointsDataFrame object. See details for further
explanation
1 2 | raster_breaks(x.ras, pol.ext, bb = c(t(sp::bbox(pol.ext))),
breaks = NULL, breaks.by = 0.1)
|
x.ras |
A |
pol.ext |
A |
bb |
A integer vector of the form |
breaks |
|
breaks.by |
double. A value between 0 and 1. Argument pass to quantile function, it requires
|
This function extract all pixels values and its coordinates from
raster object. Valid raster objects are (RasterLayer,
RasterStack, RasterBrick).
Then, divides values into bins given by breaks argument. Finally, it
converts this data into a SpatialPointsDataFrame.
bb argument is used for corpping raster object from pol.ext'
bounding box. After cropping, cropped raster object is masked into
pol.ext' boundaries. Both step are important in order to reduce
processing time.
Extraction of values and coordinates are done by values and
coordinates. Both function are applied to the raster object.
output is concatenated into data.frame object.
breaks argument can be pass as NULL, integer or double vector.
If breaks = NULL, the bins are calculated trough
quantile(x, probs, na.rm = TRUE) function,
where x argument is values(rasterobj),
probs = seq(0, 1, by = breaks.by). If breaks = integer >= 1, the
bins are calculated in similar way as breaks = NULL, but
probs = seq(0, 1, length = (breaks +1)). If breaks = c(), where
a vector of the form c(2.1, 2.5, 2.9) produce two bins as [2.1, 2.5)
and [2.5, 2.9). Then the raster values are compared with the range of each bins.
A SpatialPointsDataFrame object. It includes all raster values and
its coordinates, and the bin associated.
Enrique Del Callejo Canal (edelcallejoc@gmail.com), based on implemented algortihms in web platform SPECIES (see References).
http://species.conabio.gob.mx/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | library(sp)
library(rgeos)
library(raster)
data(Mex0)
# Generating de grid from Mex0 data
Mex0.grd<-grd_build(Mex0)
# Extracting bioclim variables from worldclim
bioclim<-getData('worldclim', var='bio', res=2.5)
# Extracting values from 19 bioclim variables
system.time(bio.sp<-raster_breaks(bioclim, Mex0.grd))
# Use x11() for new graphic devices.
plot(Mex0.grd)
plot(bio.sp[which(bio.sp$nameID == 'bio1.p01'),], pch = 20,
col = 'blue', add = TRUE)
# Leaflet interaction
library(leaflet)
leaflet() %>%
addProviderTiles('OpenStreetMap.Mapnik',
options = providerTileOptions(noWrap = TRUE))%>%
addPolygons(data = Mex0.grd, stroke = TRUE, color = '#FFFFFF',
layerId = Mex0.grd@data$ID, weight = 1, opacity = 0.3,
fillColor = '#A9A9A9', fillOpacity = 0.6,
popup = row.names(Mex0.grd@data)) %>%
addCircleMarkers(data = bio.sp[which(bio.sp$nameID == 'bio1.p01'),],
radius = 3,
popup = paste(bio.sp[which(bio.sp$nameID == 'bio1.p01'),]$nameID,
bio.sp[which(bio.sp$nameID == 'bio1.p01'),]$val.p, sep = ' '))
# Extracting values from first bioclim variable
system.time(bio1.sp<-raster_breaks(bioclim$bio1, Mex0.grd))
#' # Leaflet interaction
library(leaflet)
library(RColorBrewer)
# Not run, it can take time
pal <- colorFactor('RdYlBu', levels = rev(levels(as.factor(bio1.sp$nameID))))
samp <- sample(1:length(bio1.sp), 1000)
leaflet() %>%
addProviderTiles('OpenStreetMap.Mapnik',
options = providerTileOptions(noWrap = TRUE))%>%
addPolygons(data = Mex0.grd, stroke = TRUE, color = '#FFFFFF',
layerId = Mex0.grd@data$ID, weight = 1, opacity = 0.3,
fillColor = '#A9A9A9', fillOpacity = 0.6,
popup = row.names(Mex0.grd@data)) %>%
addCircleMarkers(data = bio1.sp[samp,], radius = 1, color = ~pal(bio1.sp$nameID[samp]),
popup = paste(bio1.sp$nameID[samp], bio1.sp$val.p[samp], sep = ' '))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.