形状文件范围与R重叠

时间:2018-01-16 08:35:49

标签: r file shape extent

我有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文件的范围不同。有没有办法编辑这个?

谢谢!

1 个答案:

答案 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

尝试运行此代码并告诉我是否发生了某些事情。