我正在尝试根据其值将栅格图层转换为多边形。我的栅格看起来像这样:
> 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
)时,我得到了额外的多边形(由水平线定义):
如何避免创建由水平线定义的多边形?
答案 0 :(得分:1)
它适用于这种非常相似的情况:
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)