我需要在gstat库中为空间插值创建一个遮罩网格。详细地说,我有不同的采样点随机分布,我需要创建包围这些点的最小凸多边形。然后,我必须创建一个空间网格,应该由计算的外壳裁剪,以限制插值到该多边形的范围。如果有人能解释我的详细程序并提供一些例子,我将非常感激。先感谢您。
答案 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密度分布自动计算最适合的单元格大小。在这种情况下,多边形仅由其顶点定义,因此我们使用为多边形包围的点计算的单元格大小。