编辑:根据先前的答案更新具有更具体信息的问题
抱歉缺乏明确性,但这是我的第一篇文章。我有一组点,我希望使用over
函数覆盖到加利福尼亚湾区的县,这样我得到一个带有点的数据框和一个新列,显示每个点落入哪个邻域。我已经查看了其他几个相关问题,但他们的答案似乎对我使用的数据不起作用。我使用complete.cases
来删除NA
行。然后我将这些点转换为SpatialPointsDataFrame
。点的投影以NA
开始,我将它们设置为"+init=epsg:3857"
(谷歌地图/开放街道地图默认投影)。然后我将投影的点转换为多边形,即:"+proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000001 +datum=NAD83 +units=us-ft +no_defs +ellps=GRS80 +towgs84=0,0,0"
我使用result <- !is.na(over(sfpoints, sfpolygon))
仅覆盖旧金山的点数。但是,result
数据框只是全部NA。
这里有一组示例:
id lat lon
1 37.97102 -122.300752
2 37.809869 -122.253598
3 37.782851 -122.45351
4 37.808497 -122.263405
5 37.767335 -122.425399
6 37.79215 -122.423548
7 39.78373 -100.445882
8 37.79215 -122.423548
9 39.78373 -100.445882
10 37.870594 -122.265938
11 39.78373 -100.445882
12 37.870594 -122.265938
13 39.78373 -100.445882
14 37.96979 -121.769799
15 NA -100.445882
可以在此处找到社区的形状文件:https://data.sfgov.org/Geographic-Locations-and-Boundaries/Neighborhood-Groups-Map/qc6m-r4ih?
我做错了什么?我按照其他响应来定义正确的投影,转换它们以使点和多边形匹配,并应用叠加,但它仍然无效。