sample.grid {GSIF}R Documentation

sample spatial points by grids


Get a subset of a object of class "SpatialPoints" or "SpatialPointsDataFrame" avoiding spatial clustering.


## S4 method for signature 'SpatialPoints'
sample.grid(obj, cell.size, n, bbox, ...)
## S4 method for signature 'SpatialPointsDataFrame'
sample.grid(obj, cell.size, n, bbox, ...)



"SpatialPoints*" object


numeric; the cell size of the overlayed "SpatialGridDataFrame" in the form of c(x,y)


integer; specifies maximum number points in each grid


matrix; the bounding box of output "SpatialPoints" or "SpatialPointsDataFrame"; it is set the same as the obj if missing


other optional arguments that can be passed to over


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


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)

[Package GSIF version 0.5-5 Index]