使用 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)
我有一组积分:
> 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)