Me gustaría hacer un verdadero clip SIG en R de polígonos de suelos utilizando una serie de polígonos de límites simples, pero no puedo encontrar una función R para hacerlo correctamente. Debería funcionar igual que el clip
en ArcMap de ESRI. He probado la función over
método en sp
pero no parece funcionar para polis sobre polis.
Una sugerencia fue utilizar el gIntersection
en rgeos
como un clip utilizando el siguiente código:
#------------------------------------
library(rgeos)
library(maptools)
#Read layers as SpatialPolygonsDataFrame (both the same Albers projection)
Soils_poly = readShapePoly("Soils_polygons") #Note - Has 400 polygons
clipper_poly = readShapePoly("clipper_polygon") #Note - Has 1 polygon
#Try gintersection as clip
Clipped_polys = gIntersection(Clipper_Tile_poly, Soils_poly)
#-----------------------------------
Tarda 5 minutos en ejecutarse (demasiado lento) y da error con esto:
Error en RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, drop_not_poly, "rgeos_intersection") : TopologyException: no outgoing dirEdge found at -721459.77681285271 2009506.5980877089
También he probado este código para comprobar si hay solapamiento:
gIntersects(Clipper_Tile_poly, Soils_poly)
y el resultado fue VERDADERO. clip
de ESRI ArcMap funciona correctamente para estos datos.
¿Alguien conoce una función de R para hacer correctamente un recorte en polígonos espaciales utilizando polígonos espaciales?