我有2个形状文件:数据(空间点数据帧)和多边形(多边形数据帧)。我想做一个重叠,但似乎它不起作用。
以下是数据和多边形:
> data
class : SpatialPointsDataFrame
features : 12527
extent : 10.20075, 20.6108, 54.08669, 57.75905 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs
variables : 3
names : timestamp_pretty, timestamp, imo
min values : 01/04/2006 00:00:55, 1143849655232, 9048392
max values : 30/04/2006 23:59:36, 1146441576823, 9191541
> polys
class : SpatialPolygonsDataFrame
features : 436375
extent : 4210000, 5441000, 3395000, 4813000 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs
variables : 2
names : Id, Count
min values : 0, 0
max values : 99999, 9
管理重叠,我用
proj4string(data) <- proj4string(polys) # to confirm the same reference system
inside <- !is.na(over(data, as(polys, "SpatialPolygons"))) # overlapping shape file and data
然后mean(inside)
检查多边形中的平均点数。
但是没有任何事情发生,意思是总是0.我之前使用了很多次它总是有效,我猜它不起作用不是因为2个sph文件的范围不同。有没有办法编辑这个?
谢谢!
答案 0 :(得分:0)
根据我的经验,问题可能在于您分配投影的方式。
require(geosphere)
require(rgeos)
require(rgdal)
proj4string(data) <- spTransform(polys, "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs") #this is the correct way to really project the spatial object on the same projection of polys
over(data, polys) #this is just to check whether the two sp objects interact
尝试运行此代码并告诉我是否发生了某些事情。