空间线的栅格聚合

raster aggregate for spatial lines

我正在寻找通过属性分解空间线数据框。在我的数据集中有一条河线,其中有多个段 运行 通过相同的栖息地类型,我想要一条连续的线段通过每个栖息地类型。

raster:aggregate 非常适合空间多边形,尽管文档提到 spatialpolygons/lines 描述和示例只提到空间多边形。

每当我 运行 在空间线数据帧上时,我都会收到错误消息: h(simpleError(msg, call)) 中的错误: 在为函数 'spChFIDs' 选择方法时评估参数 'obj' 时出错:在为函数 'bbox' 选择方法时评估参数 'obj' 时出错: 'bbox' 的对象赋值=26=]“字符”对于class“空间”对象中的插槽“proj4string”无效;是(值,“CRS”)不是真的 另外: 警告信息: 在 proj4string(x) 中:CRS 对象有注释,在输出中丢失:

一些分享友好的代码来突出问题:

library(raster)
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
x <- rasterToContour(r)

#create duplicate data that is slightly shifted so there is still some spatial overlap
x2 <- shift(x, dx=100, dy=-100)

#combine the two spatial dataframes
x3 <- raster::bind(x, x2)

#aggreate or "dissolve" the features by "level"
test <- raster::aggregate(x3, by = "level")

#vs how it works on a spatial polygon
p <- shapefile(system.file("external/lux.shp", package="raster"))
test2 <- raster::aggregate(p, by = "NAME_1")

谢谢

这是一个错误,这里是使用 terraraster 的替代品)

的解决方法
library(raster)
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
x <- rasterToContour(r)
x2 <- shift(x, dx=100, dy=-100)
x3 <- raster::bind(x, x2)


a = terra::aggregate(terra::vect(x3), "level")
# coerce back
b = as(a, "Spatial")

# or via sf
b = sf::st_as_sf(a)
d = as(b, "Spatial")