Me gustaría hacer un verdadero Clip GIS en R de polígonos de suelos utilizando una serie de polígonos de un solo contorno, pero no puedo encontrar una función R para hacerlo correctamente. Debería funcionar igual que la función CLIP en ArcMap de ESRI. He probado el método Over en el paquete SP, pero no parece funcionar para polys sobre polys. Una sugerencia fue utilizar gIntersection in rgeos package como Clip usando 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)
#-----------------------------------
Esto tarda 5 minutos en ejecutarse (demasiado lento) y errores con esto:
Error en RGEOSBinTopoFunc (spgeom1, spgeom2, byid, id, drop_not_poly, "rgeos_intersection"): TopologyException: no se ha encontrado un dirEdge saliente en -721459.77681285271 2009506.5980877089
También probé este código para verificar la superposición:
gIntersects(Clipper_Tile_poly, Soils_poly)
y el resultado fue VERDADERO. La función CLIP en ESRI ArcMap funciona bien para estos datos.
¿Alguien sabe de una función R para hacer correctamente un Clip en polígonos espaciales utilizando polígonos espaciales?