为什么 rasterToPolygons 正在创建水平线?

Why rasterToPolygons is creating horizontal lines?

我正在尝试根据其值将栅格图层转换为多边形。我的光栅看起来像这样:

> labels_rast
class       : RasterLayer 
dimensions  : 26, 64, 1664  (nrow, ncol, ncell)
resolution  : 0.03000146, 0.02999809  (x, y)
extent      : 352032, 352033.9, 8551454, 8551455  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=18 +south +datum=WGS84 +units=m +no_defs+ellps=WGS84 +towgs84=0,0,0 
data source : in memory
names       : layer 
values      : 1, 3  (min, max)

当我应用 rasterToPolygons 函数 (dissolve = TRUE) 时,我得到额外的多边形(由水平线定义):

如何避免创建由水平线定义的多边形?

它适用于这个非常相似的案例:

library(raster)
r <- raster(nrow=26, ncol=64, xmn=352032, xmx=352033.9, ymn=8551454, ymx=8551455, crs="+proj=utm +zone=18 +south +datum=WGS84 +units=m", vals=3)
r[, 20:40] <- 2
r[1:3, 1:60] <- 1
r[24:26, 5:64] <- 1
x <- rasterToPolygons(r, dissolve=TRUE)
plot(r)
lines(x)

我猜它对你不起作用,因为浮点不精确。必须查看您的文件才能确定。但是,如果是这样,也许您可​​以稍微舍入范围(或分辨率)。

例如

res(labels_rast) <- 0.03 
y <- rasterToPolygons(labels_rast, dissolve=TRUE)