【发布时间】:2020-02-23 16:48:11
【问题描述】:
我正在尝试获取一个布尔向量,例如,v[i] =1 告诉我第 i 个点(纬度经度对,存在于 train 数据帧内)是否落在在 OGRGeoJSON 文件标识的地理区域之一内。
OGR file 的结构大致如下:
- 1 区:24 多边形
- 2 区:4 个多边形
- 3 区:27 个多边形
- 4 区:18 个多边形
- 5 区:34 个多边形
这就是我试图做的。
但是,获得的结果不正确,因为生成的多边形是 OGR 文件中存在的所有不同区域的混合。
library(rgdal)
library(httr)
library(sp)
r <- GET('https://data.cityofnewyork.us/api/geospatial/tqmj-j8zm?method=export&format=GeoJSON')
nyc_neighborhoods <- readOGR(content(r,'text'), 'OGRGeoJSON', verbose = F)
#New York City polygonal
pol_lat <- c(nyc_neighborhoods_df$lat)
pol_long <- c(nyc_neighborhoods_df$long)
xy <- cbind(pol_lat, pol_long)
p = Polygon(xy)
ps = Polygons(list(p),1)
pol = SpatialPolygons(list(ps))
#Points to analyse (pair of coordinates)
ny_lat <- c(train$pickup_latitude, train$dropoff_latitude)
ny_long <- c(train$pickup_longitude, train$dropoff_longitude)
ny_coord <- cbind(ny_lat, ny_long)
pts <- SpatialPoints(ny_coord)
#Query: Does the point to analyze fall in or out NYC?
over(pts, pol, returnList = TRUE)
如何解决这个问题以获得正确的结果?
【问题讨论】:
-
可以加
dput(nyc_neighborhoods_df) -
@dww,我认为
nyc_neighborhoods_df是nyc_neighborhoods,他们只是在某个时候重命名了对象并没有完成工作。 @pofferbacco,你能提供head(train)的输出吗?或者描述一下我们在哪里可以找到这些数据?