我试图使用覆盖功能,代码如下:
usa <- map('state',boundary = FALSE, lty=2,plot=FALSE,fill=TRUE)
usa_SP <- map2SpatialPolygons(usa, IDs=usa$names, proj4string = CRS("+proj=longlat"))
comB.dat <- read.csv("agbregion.csv",header=TRUE)
names(comB.dat) <- c("Lon","Lat","harvDB")
names(AGByr)<- c("Lon","Lat","harvDB")
names(AGBdiff) <- c("Lon","Lat","harvDB")
pts <- SpatialPoints(cbind(comB.dat$Lon,comB.dat$Lat))
ptsyr <- SpatialPoints(cbind(AGByr$Lon,AGByr$Lat))
ptsdiff <- SpatialPoints(cbind(AGBdiff$Lon,AGBdiff$Lat))
o <- overlay(pts, usa_SP)
但我收到以下错误: (函数(classes,fdef,mtable)中的错误:无法为签名'&#34; SpatialPoints&#34;,&#34; SpatialPogons&#34;'
找到函数'overlay'的继承方法我不知道发生了什么。有人可以帮我解释一下吗?非常感谢。
答案 0 :(得分:0)
请参阅?raster::overlay
的帮助。注意前几行。
## S4 method for signature 'Raster,Raster'
overlay(x, y, ..., fun, filename="", recycle=TRUE, forcefun=FALSE)
## S4 method for signature 'Raster,missing'
overlay(x, y, ..., fun, filename="", unstack=TRUE, forcefun=FALSE)
这告诉您此方法仅适用于Raster
个对象,例如RasterLayer
,RasterStack
等。
考虑使用sp::over
,声明为
点,网格和多边形的一致空间叠加:在对象x的空间位置从空间对象y中检索索引或属性