2012-06-17 11 views
5

Supongo que necesitaba reformular mi pregunta anterior, redactada de forma espantosa (eliminada). Aquí hay otro intento. Quiero unirme a las regiones adyacentes, de modo que su borde común desaparezca y solo se vea su línea exterior.Fusionar regiones vecinas en R (datos espaciales agregados)?

Aquí está un ejemplo reproducible:

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

Ahora vamos a considerar sólo las regiones las regiones 3 y 5

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

¿Cómo puedo acaba de agregarse estas regiones. En la práctica, lo que quiero hacer es tener un mapa de todo el continente mostrando todos los países y produciendo un mapa que muestre América del Norte y América del Sur.

Para mí esto parece una tarea bastante común, pero no puedo encontrar la función correcta para hacerlo hasta ahora. ¿Me pierdo una función o simplemente puedo hacerlo manualmente?

enter image description here

+2

Utilice 'unionSpatialPolygons()' del paquete 'maptools': http://gis.stackexchange.com/questions/21360/merging-2-polygon-adjacent-to-each-other-using-r –

+0

Sé que su pregunta dice en R, pero la biblioteca de manipulación espacial por excelencia es postgres/postgis. También puede escribir R procedimientos almacenados en postgres, consulte http://www.bostongis.com/PrinterFriendly.aspx?content_name=postgresql_plr_tut01, lo que significa que obtiene los beneficios de la indexación espacial y las funciones de postgis y las estadísticas de R. Hay una función de importación de shp a postgres que se envía con postgres. –

Respuesta

9

El paquete rgeos proporciona una serie de excelentes herramientas para el manejo de Spatial* datos, que se pueden utilizar en este caso.

Por ejemplo:

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

Esto también tiene el mismo resultado, y puede ser más útil para varios polígonos:

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

El resultado de plot(regionOfInterest):

enter image description here

Cuestiones relacionadas