我手头有一份包含美国境内某候鸟物种出现数据的 R 代码,共约 50 万个点。
我想在这些点上叠加网格,并计算每个网格中出现的次数。完成计数后,我需要将其与网格单元 ID 相对应。
在 R 中,我使用了 over()
函数来获取范围图内的点,该图是一个 shapefile 文件。
#Read in occurrence data
data=read.csv("data.csv", header=TRUE)
coordinates(data)=c("LONGITUDE","LATITUDE")
#Get shapefile of the species' range map
range=readOGR(".",layer="data")
proj4string(data)=proj4string(range)
#Get points within the range map
inside.range=!is.na(over(data,as(range,"SpatialPolygons")))
上面的方法正如我所希望的那样运行,但没有解决我的当前问题:如何处理类型为“SpatialPointsDataFrame”的点和栅格。您是否建议将栅格化的栅格转换为多边形,并使用我上面提到的相同方法?还是另一个过程更有效?
sp
。 - agstudypracma
包,它有一个名为inpolygon
的函数,可以确定给定点是否在给定多边形的内部。我猜这需要将你的光栅网格转换成多边形数组。 - Carl Witthoftraster
实现它的方法,但也一直在使用sp
- 维多利亚 - Victoria