使用 R 中的 SP 包无法找到哪些多边形包含哪些点

Trouble finding which polygons contain which points using SP package in R

我有一组积分:

> head(Map3)
SpatialPoints:
                   lat      long
Cincinnati OH 39.10312 -84.51202
Dayton OH     39.75895 -84.19161
Lexington KY  38.04058 -84.50372
Zanesville OH 39.94035 -82.01319
Louisville KY 38.25266 -85.75846
Columbus OH   39.96118 -82.99879
Coordinate Reference System (CRS) arguments: +proj=utm +zone=10 +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 

和一组称为 shape 的多边形,它们是 U.S 中的区域。 (DMA).

他们有相同的坐标系,我知道他们重叠:

> proj4string(shape)
[1] "+proj=utm +zone=10 +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"
>   proj4string(Map3)
[1] "+proj=utm +zone=10 +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"
> bbox(Map3 )
            min       max
lat    21.30694  64.83778
long -157.85833 -68.77781
>   bbox(shape )
         min       max
x -124.73297 -66.94932
y   24.54424  49.38436

它们似乎也有相似的范围(而且 lat/long 的顺序似乎正确):

>   range(Map3@bbox)
[1] -157.85833   64.83778
>   range(shape@bbox)
[1] -124.73297   49.38436

但是当我尝试获取包含点的多边形时,我什么也得不到:

> indices <- over(Map3,shape)
> head(indices)
              NAME PHshare Rank PUSA  DMA USTV CPHShare Hrank HTV markets marketpop Dmoney Rmoney Dpc Rpc AdsPC adrepshare fraction split
Cincinnati OH <NA>      NA   NA   NA <NA>   NA       NA    NA  NA    <NA>        NA     NA     NA  NA  NA    NA         NA       NA    NA
Dayton OH     <NA>      NA   NA   NA <NA>   NA       NA    NA  NA    <NA>        NA     NA     NA  NA  NA    NA         NA       NA    NA
Lexington KY  <NA>      NA   NA   NA <NA>   NA       NA    NA  NA    <NA>        NA     NA     NA  NA  NA    NA         NA       NA    NA
Zanesville OH <NA>      NA   NA   NA <NA>   NA       NA    NA  NA    <NA>        NA     NA     NA  NA  NA    NA         NA       NA    NA
Louisville KY <NA>      NA   NA   NA <NA>   NA       NA    NA  NA    <NA>        NA     NA     NA  NA  NA    NA         NA       NA    NA
Columbus OH   <NA>      NA   NA   NA <NA>   NA       NA    NA  NA    <NA>        NA     NA     NA  NA  NA    NA         NA       NA    NA

不确定是什么问题-我只想找出哪些区域包含这些点。

如果问题出在 lat/long 的顺序上,我该如何反转?

这是data

您确定在您的 SpatialPoints 中将经度指定为 x,将纬度指定为 y 吗?
你的 bbox 输出顺序不一样,所以我想这是错误的。

编辑: 您的点数据的 bbox 顺序不正确。您应该按原样导入 csv 文件:

library(sp)

Map3 <- read.csv("stackdata/points.csv")
coordinates(Map3) <- ~lon+lat

bbox(Map3)

如果您在 shapefile 上绘制点,您应该看看它们是否重叠。

plot(shape)
points(Map3)