Estoy tratando de realizar una unión en un campo común después de fusionar dos shapefiles adyacentes. Los shapefiles terminan con al menos una delgada franja de espacio entre ellos. Cuando intento una unión obtengo el siguiente error de agujero huérfano:
Error en createPolygonsComment(p) : rgeos_PolyCreateComment: orphaned hole, cannot find containing polygon for hole at index 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)
Devuelve:
Error en createPolygonsComment(p) : rgeos_PolyCreateComment: orphaned agujero, no puede encontrar el polígono que contiene el agujero en el índice 17
Probando el arreglo propuesto aquí y aquí :
slot(example, "polygons") <- lapply(slot(example, "polygons"), checkPolygonsHoles)
Esto devuelve el mismo error que viene del intento de unión pero con diferente número de índice:
rgeos_PolyCreateComment: agujero huérfano, no puede encontrar el polígono que lo contiene para el agujero en el índice 30
Probando el arreglo propuesto 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 aunque las soluciones planteadas anteriormente parecen funcionar para algunos casos, otros no se resuelven. Un usuario utilizó QGIS para solucionar el problema, y el otro tuvo 2 de 3 elementos solucionados, pero sin resolución para el último.
Parece que la gente sigue 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 ha corregido el problema, pero parece que debería haber una solución en R.
0 votos
Sin sus datos, es difícil decir dónde está el problema.
0 votos
@Pascal, acabo de subir un enlace de dropbox con un shapefile reducido de 10mb comprimido y 16mb descomprimido que reproduce el problema. No estaba seguro de cómo proporcionar los datos ya que el original era de 1,5 gb, pero he conseguido utilizar ArcGIS para reducir el problema a un archivo más pequeño. ¿Existe un buen protocolo para crear y compartir ejemplos reproducibles de tamaño manejable?
0 votos
Probar diferentes enfoques con R no ha funcionado. Y Qgis se congela al comprobar las geometrías.