R 导致不正确光栅化的神秘多边形问题
我使用R 导致不正确光栅化的神秘多边形问题,r,raster,sf,R,Raster,Sf,我使用sf和graster软件包对许多空间多边形进行栅格化。结果很好,除了这一次,我已经没有办法解决这个问题了: 我有一个多边形作为简单的要素多边形,还有一个光栅模板。两者都已转换为等面积贝尔曼投影。多边形有一个几何有效性问题,我用lwgeom包中的st_make_valid解决了这个问题 library(sf) library(lwgeom) library(raster) spfile <- 'sp.rds' rasterfile <- 'rasterTemplate_150k
sf
和graster
软件包对许多空间多边形进行栅格化。结果很好,除了这一次,我已经没有办法解决这个问题了:
我有一个多边形作为简单的要素多边形,还有一个光栅模板。两者都已转换为等面积贝尔曼投影。多边形有一个几何有效性问题,我用lwgeom
包中的st_make_valid
解决了这个问题
library(sf)
library(lwgeom)
library(raster)
spfile <- 'sp.rds'
rasterfile <- 'rasterTemplate_150km.tif'
sp <- readRDS(spfile)
rasterTemplate <- raster(rasterfile)
# are there any geometry validity issues? yes!
st_is_valid(sp)
[1] FALSE
Warning message:
In evalq((function (..., call. = TRUE, immediate. = FALSE, noBreaks. = FALSE, :
Ring Self-intersection at or near point 9947244.3466675151 1450099.5373749144
sp2 <- st_make_valid(sp)
st_is_valid(sp2)
[1] TRUE
plot(sp2, col='blue')
库(sf)
图书馆(lwgeom)
图书馆(光栅)
spfile包中的fasterize函数显然不会导致相同的错误。Fasterize也将被纳入包装中,很快就会在CRAN上发布
也不需要强制转换或使其有效
library(sf)
library(fasterize)
df <- readRDS('sp.rds') %>% st_sf(field = 1)
template <- raster('rasterTemplate_150km.tif')
r <- fasterize(df, template, field = 'field')
plot(r)
库(sf)
图书馆(fasterize)
df%st\U sf(字段=1)
模板不确定到底是什么问题,但也许可以尝试做sp3谢谢你的建议,@CalumYou!按照你的建议,我做了sp3 Hmm。对于st\u是否有效preventrasterize
或as('spatical')
工作,是否返回TRUE
?如果您使用st_buffer(sp,0.0)
的“技巧”而不是st_make_valid
,该怎么办?sp3
的情节是什么样的?@CalumYou,尽管存在有效性问题,但实际上一切都是以sp
运行的。换句话说,到目前为止,光栅化问题无论如何都会出现<代码>sp3
看起来与我上面的sp2图相同。我有点困惑,为什么多边形在打印时看起来很好,但却导致了这些问题。
library(sf)
library(fasterize)
df <- readRDS('sp.rds') %>% st_sf(field = 1)
template <- raster('rasterTemplate_150km.tif')
r <- fasterize(df, template, field = 'field')
plot(r)