小编Dan*_*ica的帖子

R:我如何计算网格每个单元格中有多少个点?

我根据带领的动物的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)

r spatial r-sp

4
推荐指数
2
解决办法
7338
查看次数

标签 统计

r ×1

r-sp ×1

spatial ×1