Gostaria de fazer um clipe GIS verdadeiro em R de polígonos de solos usando uma série de polígonos de limite único, mas não consigo encontrar uma função R para fazê-lo corretamente. Deve funcionar exatamente como a clip
função no ArcMap da ESRI. Eu tentei o over
método no sp
pacote, mas ele não parece funcionar para polys sobre polys.
Uma sugestão foi usar o pacote gIntersection
in rgeos
como um clipe usando o seguinte 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)
#-----------------------------------
Demora 5 minutos para ser executado (muito lento) e erros com isso:
Erro no RGEOSBinTopoFunc (spgeom1, spgeom2, byid, id, drop_not_poly, "rgeos_intersection"): TopologyException: nenhum dirEdge de saída encontrado em -721459.77681285271 2009506.5980877089
Eu também tentei este código para verificar se há sobreposição:
gIntersects(Clipper_Tile_poly, Soils_poly)
e o resultado foi VERDADEIRO. clip
A função ESRI ArcMap funciona bem para esses dados.
Alguém sabe de uma função R para fazer corretamente um clipe em polígonos espaciais usando polígonos espaciais?