Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 导致不正确光栅化的神秘多边形问题_R_Raster_Sf - Fatal编程技术网

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是否有效
prevent
rasterize
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)