从SpatialPolygonsDataFrame创建镶嵌吗?

问题描述

此处的新手R程序员...正在寻找有关在SpatialPolygonsDataFrame中的多边形之外构建测试的指导。

我正在对州边界内的点调用quadracount。我想使用自定义多边形来定义四边形,而不是使用默认的网格。具体来说,就是我用shapefile格式创建的县多边形。

我从文档中认为可以从“ owin”对象列表中创建所需的镶嵌。我遇到麻烦的地方是使用SpatialPolygonsDataFrame生成该列表。

我确认可以正确读取多边形:

counties <- readOGR('/path/to/counties.shp',layer = "CountyBoundaries",GDAL1_integer64_policy = FALSE)
for(i in 1:nrow(counties)) { 
    plot(counties[i,])
}

这将生成一系列地块,每个县一个。当然,这仅对知道我的数据没有损坏并且可以遍历多边形有用。我需要做的是从SpatialPolygonsDataFrame中的每个多边形中提取一个owin,并将其附加到tess(tiles=myList)的myList中。在这种方法上没有太大的成功。

我强烈怀疑有一种更简单的方法...

非常感谢,

-gt

解决方法

结果是,我的问题是无法完全理解R中如何对列表进行索引。以下代码给了我想要的结果。

毫无疑问,有更好的矢量化方法可以做到这一点。但与此同时:

# The point events are in a PPP: StateCrimes_ppp
counties <- readOGR('/path/to/counties.shp',layer = "CountyBoundaries",GDAL1_integer64_policy = FALSE)
tlist <- list()
for(i in 1:nrow(counties)) { 
    tlist[[i]] <-  as(counties[i,],'owin')
}
QuadCount <- quadratcount(
    StateCrimes_ppp,tess=tess(tiles=tlist)
)

plot(QuadCount,main=NULL)
plot(intensity(QuadCount,image=TRUE),main=NULL,las=1) 

如果有人看到我为解决一个简单的问题而花了很长时间的艰苦努力,那么我很想知道一种更好,更简单,更优雅或更像R的方式来实现这一目标。

再次感谢

-gt

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...