Description Usage Arguments Value Note Author(s) Examples
Get a subset of a object of class "SpatialPoints"
or "SpatialPointsDataFrame"
avoiding spatial clustering.
1 2 3 4 | ## S4 method for signature 'SpatialPoints'
sample.grid(obj, cell.size, n, bbox, ...)
## S4 method for signature 'SpatialPointsDataFrame'
sample.grid(obj, cell.size, n, bbox, ...)
|
obj |
|
cell.size |
numeric; the cell size of the overlayed |
n |
integer; specifies maximum number points in each grid |
bbox |
matrix; the bounding box of output |
... |
other optional arguments that can be passed to |
Returns a list of two objects: (1) an object of type "SpatialPoints"
or "SpatialPointsDataFrame"
that contains a subset of the obj, and (2) resulting grid.
Spatial points are overlayed with spatial grids with a specified cell size and then get a subset from each grid with a specified number at most. If one grid has less points than the specified number, all the points are taken. If one grid has more points than the specified number, only this number of points are taken by sample
. This function can be used when there are too much point observations to be handled, especially for spatially clustered observations. The total number of sampled points are determined by cell.size
and n
together. You will get fewer the sampled points when cell.size
is larger, or/and when n
is smaller. Similar sample sizes can be achieved by differen combination of cell.size
and n
.
Wei Shangguan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | library(sp)
data(isis)
profs <- isis[["sites"]]
coordinates(profs) <- ~ LONWGS84 + LATWGS84
proj4string(profs) <- CRS("+proj=longlat +datum=WGS84")
## sample SpatialPointsDataFrame:
#bbox <- matrix(c(-180, -90, 180, 90), nrow=2)
prof1 <- sample.grid(profs, cell.size = c(5,5), n = 1)
l0 <- list("sp.points", profs, pch=1, col="red")
l1 <- list("sp.points", prof1$subset, pch="+", col="black", cex=1.2)
spplot(prof1$grid, scales=list(draw=TRUE),
col.regions="grey", sp.layout=list(l0, l1))
## Subsampling ratio:
round(length(prof1$subset)/length(profs)*100, 1)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.