Tengo un puñado de aproximadamente 1000 shapefiles que están corruptos (ver mensaje de error adjunto). Los archivos shape se generaron con eCognition Developer 8. Hay un herramienta de script que parece reparar el shapefile una vez identificado como corrupto.
Edita:
Quiero crear un script rápido para recorrer todos mis shapefiles y comprobar si el número de shapes coincide con los registros de la tabla. Puedo contar los registros de la tabla utilizando el siguiente:
# Name: fcCount.py
# Purpose: calculate the number of features in a featureclass
# Import system modules
import arcpy
from arcpy import env
env.workspace = "C:/data"
Sample = "MyShp.shp"
result_dbf = int(arcpy.GetCount_management(Sample).getOutput(0))
print result_dbf
En última instancia, me gustaría crear algún tipo de comprobación lógica como:
if result_dbf = result_shp:
pass
else:
print "There is a problem with" + str(Sample)
¿Cómo puedo contar las formas directamente sin acceder al archivo .dbf? O, en otras palabras, ¿cuál es la mejor manera de comprobar mediante programación si el número de formas coincide con el número de registros de la tabla?
1 votos
Me imagino que el archivo se puede ver, pero ¿son cada uno de los elementos de la tabla de atributos representados por un objeto? de eso se encarga el archivo sbn. independientemente de que muestre el número no coincide. shapefilerepairer es lo que yo uso.
1 votos
Descompilación el script puede ser útil, pero ¡vaya código más antiguo! Sinceramente, me sorprende que todavía funcione con los shapefiles actuales.
1 votos
@Brad He actualizado el post para hacer correcciones. El error .sbn es un problema diferente que he estado teniendo y no está relacionado con este problema.
0 votos
@Brad Cuando ejecuto un archivo dañado a través del Shape Checker, informa: "No hay suficientes registros en el archivo dbf - añadiendo espacios en blanco".