合并R中的空间数据:Rasterlayer和SpatialPointsDataFrame

时间:2014-05-19 15:19:53

标签: r spatial

我想合并两个对象,即在一个表中组合值属性。 我的对象是一个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)来确保正确分配坐标之间的链接。对这种方法有什么看法吗?

你能否给我任何“简单”合并我的两个空间物体的建议?

由于

1 个答案:

答案 0 :(得分:0)

这取决于您希望合并两个对象的对象类型。您可以使用类{Raster}的命令 rasterize (),从spatialPolygons对象创建与rasterLayer的分辨率和原点匹配的栅格对象。如果这有帮助,请告诉我。