繁体   English   中英

如何从空间点数据集创建内聚空间像素

[英]How to create cohesive Spatial Pixels from Spatial Points Dataset

我有一个空间点DF spo (覆盖感兴趣的不规则形状的区域)。 由于crs转换,数据不在常规网格上。

我的目标是提供具有预定分辨率和关注区域范围的栅格(更多空间点数据将映射到此主栅格上)。

问题开始于我

rasterize(spo, raster(ncol, nrow, extent, crs), spo$param)

我需要调整nrowncol的方式,这样我不会我的兴趣领域内取得来港的云纹图案。 我无法使用预定义的(更高)分辨率,因为rasterize没有插值功能。

作为解决这个问题,我想我可能需要某种形式的空间像素DF的spi ,覆盖我的整个感兴趣区域(就像在meuse.grid library(raster); data(meuse.grid)并作为主网格。 然后,我可以用它来插值我的数据,例如

idw(param~1,spo,spi)

然后,以我选择的分辨率完整覆盖我感兴趣的领域。 但是如何从点数据中生成SpatialPixelsDataFrame?

所以,在我看来,这个问题归结为:如何从生产默兹数据集meuse.grid?

也许我在这里采用了错误的方法,所以请让我知道是否可以更轻松地以其他方式实现我的目标。

如果您有一个多边形来定义您感兴趣区域的边界(应该如此),那么它就很简单。 一种方法是使用来自geoRpolygrid函数,该函数本身只是SpatialPointsexpand.gridoverlay的包装

假设您有一个定义感兴趣区域的多边形称为ROI

在这种情况下,我将从meuse.grid创建一个

 data(meuse.grid)
 coordinates(meuse.grid) = ~x+y
 x <- chull(meuse.grid@coords)
 borders <- meuse.grid@coords[c(x,x[1]),]

 ROI <- SpatialPolygons(list(Polygons(list(Polygon(borders)), ID = 'border')))

实际上,要使用多网polygrid您只需要定义感兴趣区域的多边形坐标即可。

要创建覆盖该ROI区域的10米网格,您可以创建对polygrid的调用

# get the bounding box for ROI an convert to a list
bboxROI <- apply(bbox(ROI), 1, as.list)
# create a sequence from min(x) to max(x) in each dimension
seqs <- lapply(bboxROI, function(x) seq(x$min, x$max, by= 10))

# rename to xgrid and ygrid
names(seqs) <- c('xgrid','ygrid')

thegrid <- do.call(polygrid,c(seqs, borders = list(ROI@polygons[[1]]@Polygons[[1]]@coords)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM