Me gustaría hacer un verdadero Clip SIG en R de polígonos de suelos usando una serie de polígonos de límite único, pero no puedo encontrar una función R para hacerlo correctamente. Debería funcionar igual que la clip
función en ArcMap de ESRI. He probado el over
método en el sp
paquete pero no parece funcionar para polys sobre polys.
Una sugerencia fue usar el paquete gIntersection
in rgeos
como un 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 encontró 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. clip
La función en ESRI ArcMap funciona bien para estos datos.
¿Alguien sabe de una función R para hacer correctamente un clip en polígonos espaciales usando polígonos espaciales?