首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中有孔的SpatialPolygons的Rasterize

R中有孔的SpatialPolygons的Rasterize
EN

Stack Overflow用户
提问于 2018-08-10 21:31:01
回答 2查看 649关注 0票数 2

我试图以一种与栅格的每个单元格重叠的多边形的数量来对一个SpatialPolygons对象进行栅格化。我的多边形有洞。我的问题是,如果两个洞重叠,它包括这个重叠在计数中。

我创造了一个玩具例子:

代码语言:javascript
复制
library(sp)
library(raster)

p1 <- rbind(c(-180,-20), c(-140,55), c(10, 0), c(-140,-60), c(-180,-20))
hole <- rbind(c(-150,-20), c(-100,-10), c(-110,20), c(-150,-20))
p1 <- list(p1, hole)
p2 <- rbind(c(-10,0), c(140,60), c(160,0), c(140,-55), c(-10,0))
p3 <- rbind(c(-180,-20), c(-130,55), c(0,60), c(40,5), c(15,-45), c(-180,-20))
p3 <- list(p3, hole)

pols <- spPolygons(p1, p2, p3)

pols@polygons[[1]]@Polygons[[2]]@hole
pols@polygons[[3]]@Polygons[[2]]@hole


r1 <- raster(ncol=180, nrow=180)
r <- rasterize(pols, r1, fun="count")
plot(pols, col=rgb(1,0,0,0.5))
plot(r)

我认为这可能是导致与use R to rasterize shapefile with holes?相关的问题的原因,但是没有最终的解决方案。问题是,rasterize ESRI shapefile with holes but FALSE hole slots的问题是,这些漏洞没有正确地形成,但这不是我的情况。如果你看看这些洞,它们都是真的,请看:

代码语言:javascript
复制
pols@polygons[[1]]@Polygons[[2]]@hole
pols@polygons[[3]]@Polygons[[2]]@hole

任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-12 18:40:21

使用包fasterize进行栅格化(除了速度更快)似乎可以避免这个问题:

代码语言:javascript
复制
library(fasterize)
library(sf)

r1 <- raster(ncol=180, nrow=180)
r <- fasterize::fasterize(sf::st_as_sf(pols),
                          r1, fun = "count")
plot(r, col = rainbow(3))

哈哈!

票数 2
EN

Stack Overflow用户

发布于 2018-08-11 01:02:22

这是一个解决办法。首先对每个多边形进行扫描,然后对它们进行汇总。通过这样做,洞将为零。

代码语言:javascript
复制
library(sp)
library(raster)

# Create a list of Spatial Polygons
pols_list <- lapply(list(p1, p2, p3), spPolygons)

# Create a blank raster
r1 <- raster(ncol = 180, nrow = 180)

# Rasterize each polygon
r_list <- lapply(pols_list, rasterize, y = r1, fun = "count")

# Create a raster stack
s <- stack(r_list)

# Calculate the sum
r2 <- sum(s, na.rm = TRUE)

# Plot r2
plot(r2)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51794262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档