2015-04-22 40 views
1

我有兩個shapefile - 我們稱它們爲shp1.shp和shp2.shp - 並且我想創建一個新的shapefile文件,它們之間有重疊。R中的空間加入

本質上,我試圖確定shp1中的哪些地理區域屬於shp2。大多數shp1多邊形將包含shp2多邊形,並且一些shp2多邊形將落入多個shp1多邊形內。

如果我開始

library(sp) large_list <- over(shp1,shp2, returnList = TRUE)

這讓我共享地域的大名單。但是,如何獲取該列表並使用它來執行空間連接,並創建一個新的shapefile?

我對R相對較新(特別是GIS),任何幫助將不勝感激。

+1

是[這](http://stackoverflow.com/a/23138742/980833)你在找什麼呢? (請注意,即使它是作爲** raster **包的一部分進行分發的,union()不會將兩個「SpatialPolygons」對象作爲參數。) –

+1

@ JoshO'Brien當我這樣做時,出現以下錯誤:錯誤在RGEOSBinTopoFunc(spgeom1,spgeom2,byid,id,drop_lower_td,「rgeos_difference」): TopologyException:輸入幾何0是無效的:自相交在點或近點-120.76777118577075 37.538496877470358在-120.76777118577075 37.538496877470358 –

+0

你可以歸零足以產生一個最小可重現的例子,你可以與我們分享?否則,除非有人遇到了完全相同的錯誤信息,並記得是什麼原因造成的,否則我們將無法提供幫助。 (我確實有一種預感,那可能是導致我在另一個(未被接受的)答案中引入一個「eps」參數的相同問題)。 –

回答

0

您可能會發現在功能intersect答案,從包裝raster

library(raster) 
newshape <- intersect(shape1, shape2)