Estoy tratando de realizar una unión en un campo común después de fusionar dos archivos de forma adyacentes. Los archivos de forma terminan con al menos una delgada franja de espacio entre ellos. Cuando intento una unión me sale el siguiente error de orfandad:
Error en createPolygonsComment (p): rgeos_PolyCreateComment: agujero huérfano, no se puede encontrar el polígono que contiene el agujero en el índice 17
He subido un ejemplo reproducible a Dropbox en este enlace .
Aquí está el código para recrear el problema:
#loading required packages
require(sp)
require(rgdal)
require(maptools)
require(rgeos)
#load example data, set "dsn=" to your working directory or specify the path
example <- readOGR(dsn=".",layer="ReproducibleExample")
#Attempting a UnionSpatialPolygons based on the COUNTY field
example.df <- as(example, "data.frame")
countycol <- example.df$COUNTY
example.diss <- unionSpatialPolygons(example, countycol)
Devoluciones:
Error en createPolygonsComment (p): rgeos_PolyCreateComment: agujero huérfano, no se puede encontrar el polígono que contiene el agujero en el índice 17
Probar la solución propuesta aquí y aquí :
slot(example, "polygons") <- lapply(slot(example, "polygons"), checkPolygonsHoles)
Esto devuelve el mismo error que proviene del intento de unión pero con un número de índice diferente:
rgeos_PolyCreateComment: agujero huérfano, no se puede encontrar el polígono que contiene el agujero en el índice 30
Probar la solución propuesta en el útil tutorial de Roger Bivand
fix <- slot(example, "polygons")
fixa <- lapply(fix, checkPolygonsHoles)
Devuelve el mismo error en el índice 30 que el anterior.
Otros han planteado este problema aquí y aquí , y si bien las soluciones presentadas anteriormente parecen funcionar para algunos casos, otros casos no se resuelven. Un usuario usó QGIS para abordar el problema, y el otro tenía 2 de 3 elementos corregidos, pero no había una resolución para el último.
Parece que las personas continúan teniendo problemas a pesar de que este código funciona de vez en cuando. ¿Alguien ha encontrado una solución dentro de R?
He realizado la herramienta "reparar geometría" en ArcGIS, y corrigió el problema, pero parece que debería haber una solución en R.