繁体   English   中英

将两个shapefile与R相交

[英]Intersect two shapefiles with R

我想我想做一些非常基础的事情,但是我似乎找不到关于如何做的文章。 如果我错了,并且已经有关于此主题的帖子,我深表歉意!

我有两个shapefile,可以通过此链接找到:

setwd("~/where you saved your data")
nuts <- readOGR(".", layer = "NUTS_RG_60M_2010")
aqueduct <- readOGR(".", layer = "aqueduct_global_dl_20150409")

老实说,现在我已经被困住了。 我想将渡槽shapefile的所有变量的值添加到nuts文件的相交的nuts3区域中。

我尝试了gIntersection,相交,提取...,但是没有成功。 有人可以帮我弄清楚交叉点吗? 最终结果是一个螺母形状文件,其中包含渡槽形状文件的所有变量。

非常感谢你!

这是两个多边形层的空间连接。 除非螺母中的每个特征都与渡槽的一个特征完全相交,否则就没有直接/单一的方式进行空间连接。

相反,您可以从渡槽的属性表中获取与螺母的每个特征相对应的行列表 -

nuts_over1 = over(nuts, aqueduct, returnList = TRUE)

或使用函数总结特定的属性,在这种情况下,结果可以结合回nuts的属性表。 例如,与六个主要特征相交的渡槽国家如下:

nuts_over2 = over(
  nuts, 
  aqueduct[, "COUNTRY"], 
  fn = function(x) paste(x, collapse = ", ")
)
head(nuts_over2)
                                                          COUNTRY
1                              Austria, Hungary, Austria, Hungary
2 Austria, Hungary, Austria, Hungary, Slovakia, Austria, Slovakia
3                     Austria, Austria, Hungary, Austria, Hungary
4                                                         Austria
5                     Austria, Austria, Austria, Austria, Austria
6                                                Austria, Austria 

可以按以下方式将此信息重新连接到螺母的属性表-

nuts@data = cbind(nuts@data, nuts_over2)
head(nuts@data)
  NUTS_ID STAT_LEVL_ SHAPE_Leng SHAPE_Area
0   AT111          3   1.089017 0.08091455
1   AT112          3   2.257319 0.20926007
2   AT113          3   2.002492 0.17728455
3   AT121          3   3.158370 0.40147321
4   AT122          3   2.956927 0.42675504
5   AT123          3   2.010415 0.14145865
                                                          COUNTRY
0                              Austria, Hungary, Austria, Hungary
1 Austria, Hungary, Austria, Hungary, Slovakia, Austria, Slovakia
2                     Austria, Austria, Hungary, Austria, Hungary
3                                                         Austria
4                     Austria, Austria, Austria, Austria, Austria
5                                                Austria, Austria

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM