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.