在R(CRAN)中创建和裁剪网格

时间:2012-10-17 16:11:01

标签: r spatial

我需要在gstat库中为空间插值创建一个遮罩网格。详细地说,我有不同的采样点随机分布,我需要创建包围这些点的最小凸多边形。然后,我必须创建一个空间网格,应该由计算的外壳裁剪,以限制插值到该多边形的范围。如果有人能解释我的详细程序并提供一些例子,我将非常感激。先感谢您。

1 个答案:

答案 0 :(得分:2)

我自己找到了解决方案。

library(spatstat)
library(sp)
library(plotKML)
library(maptools)

创建随机点

x<-rnorm(100,3)
y<-rnorm(100,3)
plot(x,y)
xy<-cbind(x,y)
xy<-as.data.frame(xy)

将点转换为空间点数据帧,然后转换为栅格。

coordinates(xy)=c("x","y")
pnts<-vect2rast(xy)
summary(pnts)

检查摘要单元格大小值并记住它

从点创建凸包。 然后,将“owin”对象(凸包的类)转换为空间多边形(光栅创建的基本步骤)

conv<-convexhull.xy(x,y)
SpP<-as(conv,  "SpatialPolygons")
plot(SpP)
points(x,y)
attr  =  data.frame(a=1,  b=1)
SrDf  =  SpatialPolygonsDataFrame(SpP,  attr)

将“cell.size”设置为“summary(pnts)”(在这种情况下设置为0.085)。

rast <- vect2rast(SrDf,cell.size=0.085)

玩得开心!

plot(rast)
image(rast)
points(x,y)

注意: 对于vect2rast,如果没有为“rast”对象设置cell.size,则该函数会根据un point密度分布自动计算最适合的单元格大小。在这种情况下,多边形仅由其顶点定义,因此我们使用为多边形包围的点计算的单元格大小。