Je voudrais faire un vrai clip SIG dans R de polygones de sols en utilisant une série de polygones à frontière unique, mais je ne trouve pas de fonction R pour le faire correctement. Cela devrait fonctionner exactement comme la clipfonction d'ArcMap d'ESRI. J'ai essayé la overméthode dans le sppaquet mais cela ne semble pas fonctionner pour les polys sur polys.
Une suggestion a été d'utiliser le package gIntersectionin rgeoscomme un clip en utilisant le code suivant:
#------------------------------------
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)
#-----------------------------------
Cela prend 5 minutes à exécuter (beaucoup trop lent) et des erreurs avec ceci:
Erreur dans RGEOSBinTopoFunc (spgeom1, spgeom2, byid, id, drop_not_poly, "rgeos_intersection"): TopologyException: aucun dirEdge sortant trouvé à -721459.77681285271 2009506.5980877089
J'ai également essayé ce code pour vérifier le chevauchement:
gIntersects(Clipper_Tile_poly, Soils_poly)
et le résultat était VRAI. clipdans ESRI ArcMap fonctionne très bien pour ces données.
Quelqu'un connaît une fonction R pour faire correctement un clip sur des polygones spatiaux en utilisant des polygones spatiaux?





