我根据带领的动物的GPS位置制作了一个参考网格,单元格为50x50m.我想在ArcGIS中进行等效的空间连接,并计算每个单元格中的点数.
我使用SpatialPointsDataFrame对象制作了一个参考网格(数据框已经使用UTM坐标系投影)
RESO <- 50 # grid resolution (m)
BUFF <- 500 # grid extent (m) (buffer around location extremes)
XMIN <- RESO*(round(((min(dat.spdf$Longitude)-BUFF)/RESO),0))
YMIN <- RESO*(round(((min(dat.spdf$Latitude)-BUFF)/RESO),0))
XMAX <- XMIN+RESO*(round(((max(dat.spdf$Longitude)+BUFF-XMIN)/RESO),0))
YMAX <- YMIN+RESO*(round(((max(dat.spdf$Latitude)+BUFF-YMIN)/RESO),0))
NRW <- ((YMAX-YMIN)/RESO)
NCL <- ((XMAX-XMIN)/RESO)
refgrid<-raster(nrows=NRW, ncols=NCL, xmn=XMIN, xmx=XMAX, ymn=YMIN, ymx=YMAX)
refgrid<-as(refgrid,"SpatialPixels")
Run Code Online (Sandbox Code Playgroud)
要确保我的网格与SpatialPoints在同一个投影中:
proj4string(refgrid)=proj4string(dat.sp.utm) #makes the grid the same CRS as point
Run Code Online (Sandbox Code Playgroud)
count.point adehabitatMA中的函数看起来像是可以解决这个问题的函数
cp<- count.points(dat.spdf, refgrid)
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
Error in w[[1]] : no [[ method for object without attributes
Run Code Online (Sandbox Code Playgroud)
这不是实现目标的正确途径吗?或者我该如何解决此错误?或者over函数(sp包)是否更合适?
SpatialPointsDataFrame(dat.spdf)的输出
dput(head(dat.spdf, 20))
structure(list(Latitude = …Run Code Online (Sandbox Code Playgroud)