我想合并两个对象,即在一个表中组合值属性。 我的对象是一个RasterLayer和一个SpatialPointsDataFrame,它没有相同的分辨率,也没有相同的坐标。但两者都有相同的CRS。
class(z)
"RasterLayer"
attr(,"package")
[1] "raster"
class(occ_all)
[1] "SpatialPointsDataFrame"
attr(,"package")
[1] "sp"
> head(coordinates(z),4)
x y
[1,] -10.91667 71.91667
[2,] -10.75000 71.91667
[3,] -10.58333 71.91667
[4,] -10.41667 71.91667
> head(occ_all)
Lon Lat EuroVegMap Euforgen Gbif
1 -10.417 52.083 0 0 0
2 -10.250 51.917 0 0 0
3 -10.250 52.083 0 0 0
4 -10.250 52.250 0 0 0
5 -10.083 51.750 0 0 0
所以,我想使用over()函数,但这不起作用:
over(z,occ_all)
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘over’ for signature ‘"RasterLayer","SpatialPointsDataFrame"’
函数extract()似乎有效,但我不知道它是如何工作的,我不确定这会考虑相应的坐标。
因此,我考虑使用最近邻函数(knn)来确保正确分配坐标之间的链接。对这种方法有什么看法吗?
你能否给我任何“简单”合并我的两个空间物体的建议?
由于
答案 0 :(得分:0)
这取决于您希望合并两个对象的对象类型。您可以使用类{Raster}的命令 rasterize (),从spatialPolygons对象创建与rasterLayer的分辨率和原点匹配的栅格对象。如果这有帮助,请告诉我。