¿Cómo evitar crear Shapefiles corruptos durante la edición?

15

Tengo uno de mis técnicos de SIG que digitaliza algunas líneas en formato QGIS en formato shapefile. No sé cómo lo hizo (y tampoco él), pero de alguna manera el shapefile se corrompió. Estaba creando líneas al azar o algunas de las líneas que él creó simplemente desaparecerían. Entré en ArcCatalogue para ver cómo se veía en ArcGIS y esto es lo que vi:

Observeeliconodesignodeinterrogacióndondedeberíavereliconode'línea'deunshapefile.ObviamenteArcCataloguenopuedeleerestearchivo.Además,parecequesecreóunsegundoarchivodbfconel'_packed'adjuntoalfinal.CuandomiroelshapefileusandoelexploradordeWindows,veoqueyaexisteunarchivo.dbfparaelshapefile'M3_PRE_SMU_lines_10Apr13_SMC.dbf',porloquenosédedóndeprovieneeste_figurado_enfiguradoynopuedoencontrarnadaenlíneaesolohabla.

IntentéagregarestearchivoenArcMapyrecibíelsiguienteerror:

El error se explica por sí mismo ... el número de formas no coincide con el número de registros. Simplemente no sé por qué está ocurriendo eso. No parece haber nada en línea que explique cómo está ocurriendo esto en QGIS, pero veo un par de herramientas de reparación. En realidad, lo reparé yo mismo simplemente abriendo QGIS, agregando la capa, y luego haciendo clic derecho en la capa y 'guardando' otro archivo de formas. Por lo tanto, he pensado en una solución, pero espero encontrar una solución que evite que esto ocurra en primer lugar. Gracias, Mike

    
pregunta Mike 16.04.2013 - 00:24

4 respuestas

16

Explicación

OGR (parte de GDAL) es la biblioteca utilizada por QGIS para acceder a los shapefiles. Cuando OGR elimina las funciones, no las elimina de inmediato, sino que las marca como eliminadas. De vez en cuando, se ejecuta un comando llamado repack , que crea un nuevo archivo con el sufijo _repack y copia todas las funciones que no están marcadas como eliminadas en este nuevo archivo. Una vez que termina, el archivo .dbf original se reemplaza con el _repack.dbf. Luego hace lo mismo con el shapefile: cree uno nuevo (_packed.shp), copie todas las características no eliminadas y eventualmente reemplace el .shp original.

Parece que en algún lugar de este proceso, algo falló (¿quizás un choque?).

Dentro de este proceso, los identificadores de funciones cambian, por lo que supongo que la shp (geometría) que tienes y el dbf (tabla de atributos) usan diferentes identificadores de características para las mismas características, lo que conduce al extraño comportamiento que experimentas. Parece que uno de los dos archivos todavía contiene (parte de) las funciones eliminadas, mientras que el otro no.

Cómo lidiar con esto

Actualización, noviembre de 2016: GDAL 2.2 se entrega con la funcionalidad incorporada para llamar automáticamente al paquete cada vez que el archivo se escribe en el disco. Entonces, antes de hacer nada más: verifique la versión de GDAL en el diálogo de QGIS sobre y actualice la versión de GDAL (a menudo incluida como parte de QGIS) a una versión reciente.

Probablemente no hay mucho que puedas hacer al respecto aparte de realizar copias de seguridad regulares para no perder más datos de los que puedes manejar (lo estás haciendo de todos modos, ¿verdad?

respondido por el Matthias Kuhn 06.12.2013 - 12:03
1

Esto me pasó a mí en QGIS. Logré resolver el problema simplemente eliminando '_packed' del nombre del archivo, como alguien ha sugerido en la sección de comentarios anterior.

    
respondido por el rhm 17.06.2015 - 15:46
1

Quizás este es otro problema de un archivo de índice .shx roto. El tipo de geometría debe almacenarse en el encabezado .shp y .shx. Si no coinciden, el software generará un error.

Parece que QGIS no es muy estricto con los archivos de índice rotos, y puede recrearlo con Save As... , mientras que ARCGIS insiste en un archivo de índice correcto y crea un dbf (tabla de atributos) para las características que se pueden encontrar a través de las partes correctas del archivo de índice, o tal vez sin usar el índice.

    
respondido por el AndreJ 03.07.2013 - 20:22
1

La reaparición de características eliminadas y / o el comportamiento extraño de los shapefiles de las que se han eliminado en QGIS es un error conocido, consulte este error informe 11007 y esta pregunta relacionada: Los polígonos eliminados parecen para volver a versiones anteriores . Además de que ArcGIS tiene problemas con dichos shapefiles, cuando se guardan en QGIS como archivos TAB de MapInfo, hacen que el complemento MapInfo RouteFinder se bloquee a menos que las tablas se empaquen primero en MapInfo antes de cargar RouteFinder. La ejecución de Universal Translator para convertir estos shapefiles dañados en MapInfo falla.

Como ha encontrado, el problema se puede solucionar haciendo un 'guardar como' en QGIS.

    
respondido por el SpatialSuccess 20.01.2016 - 11:50

Lea otras preguntas en las etiquetas