为什么 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)
我正在尝试根据其值将栅格图层转换为多边形。我的光栅看起来像这样:
> 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)