2012-06-17 44 views
5

Tôi đoán là tôi cần phải thuật lại câu hỏi trước đó của tôi một cách quá tệ hại (đã xóa nó). Đây là một thử khác. Tôi muốn tham gia vào các vùng lân cận, theo cách mà biên giới chung của họ biến mất và chỉ có thể nhìn thấy đường bên ngoài của họ.Hợp nhất các vùng lân cận trong R (dữ liệu không gian tổng hợp)?

Dưới đây là một ví dụ tái sản xuất:

require(shapefiles) 
require(sp) 

xx <- readShapeSpatial(system.file("shapes/sids.shp", package="maptools")[1], 
        IDvar="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66")) 

# show all the subregions 
plot(xx) 

enter image description here

Bây giờ chúng ta hãy xem xét chỉ khu vực vùng 3 và 5

plot(xx[c(3,5),]) 

Làm thế nào tôi có thể chỉ tổng hợp những khu vực này. Trong thực tế những gì tôi muốn làm là như có một bản đồ của toàn lục địa cho thấy tất cả các nước và sản xuất một bản đồ cho thấy Bắc Mỹ và Nam Mỹ.

Đối với tôi, điều này có vẻ như là một nhiệm vụ khá phổ biến nhưng tôi không thể tìm thấy chức năng phù hợp để làm điều đó cho đến thời điểm này. Tôi chỉ cần bỏ lỡ một chức năng hoặc tôi có thể chỉ đơn giản là nó bằng tay?

enter image description here

+2

Sử dụng 'unionSpatialPolygons()' từ gói 'maptools': http://gis.stackexchange.com/questions/21360/merging-2-polygon-adjacent-to-each-other-using-r –

+0

Tôi biết câu hỏi của bạn nói trong R, nhưng thư viện thao tác không gian xuất sắc là postgres/postgis. Bạn cũng có thể viết các thủ tục R được lưu trữ trong postgres, xem http://www.bostongis.com/PrinterFriendly.aspx?content_name=postgresql_plr_tut01, có nghĩa là bạn nhận được lợi ích của việc lập chỉ mục không gian và các hàm từ postgis và các số liệu thống kê của R. Có một shp để postgres chức năng nhập khẩu cũng như tàu với postgres. –

Trả lời

9

Gói rgeos cung cấp một số công cụ tuyệt vời để xử lý Spatial* dữ liệu, có thể được sử dụng trong trường hợp này.

Ví dụ:

library(rgeos) 
regionOfInterest <- gUnion(xx[3,], xx[5,]) 

này cũng có kết quả tương tự, và có thể hữu ích hơn cho nhiều đa giác:

regionOfInterest <- gUnionCascaded(xx[c(3,5), ]) 

Kết quả từ plot(regionOfInterest):

enter image description here

Các vấn đề liên quan