Eu tenho um shapefile que eu estava trabalhando no ArcGIS Desktop 9.3 de alguma forma corrompido e isso me dá o erro "Número de formas não corresponde ao número de registros da tabela". O que eu gostaria é recuperar esse shapefile, pois ele possui muitas edições que outras revisões do arquivo não possuem.
Anteriormente, eu me recuperei desse erro usando ogr2gui, mas a ferramenta agora falha. Eu até tentei a versão da linha de comando ogr2ogr, mas ainda não tive sorte. Este script, Shapefile Repair Tool do site ArcScripts também não ajudou.
Alguma ideia? (exceto que eu paro de usar shapefiles)
Aqui está a saída do ogr2ogr (com base em uma sugestão nas respostas):
Respostas:
Uma opção, com a perda dos recursos corrompidos, poderia ser ogr2ogr convertendo seu shapefile para outro shapefile, com a opção -skipfailures:
Para mais detalhes, veja esta postagem do blog PerryGeo:
http://www.perrygeo.net/wordpress/?p=132
fonte
Eu uso esse. Sempre corrigiu esse problema para mim.
shapecheck.exe
fonte
A resposta oficial da Esri tem várias dicas, mas aponta para o utilitário de reparo shp que me salvou de ser demitido algumas vezes.
Poucos outros que eu ouvi falar, mas não posso dizer que tentei:
fonte
Ok, aqui está outro truque para adicionar à pilha de boas respostas acima.
Essa é uma força um pouco mais bruta, na maioria das vezes ajuda, às vezes não ajuda, e embora seja provavelmente apenas o primeiro passo para corrigir o problema (em vez de uma solução em si mesma, o que geralmente não é), pode ajudar levá-lo para onde você pode abrir o shapefile. Na maioria dos casos, você ainda precisará fazer mais reparos manuais no ArcMap após a abertura do shapefile (recursos corrompidos ?, atributos ausentes? Atributos desalinhados? Etc.)
Copie o shapefile para uma nova pasta vazia. Leve apenas SHP, SHX e DBF com você. Deixe todos os outros arquivos para trás e sim, que inclui o prj.
(Windows): clique com o botão direito do mouse no arquivo SHX e selecione "Propriedades" para abrir as propriedades do arquivo.
Na guia "Geral", verifique o tamanho exato do arquivo SHX até o byte. Observe a propriedade "Tamanho" e não a propriedade "Tamanho no disco".
Pegue esse tamanho de arquivo em bytes e subtraia 100 bytes (o cabeçalho). Do restante, divida por 8 (o tamanho de cada "palavra"). O resultado fornece o número de recursos de forma dentro da parte SHP do shapefile.
Abra o DBF em algum software que permita editar o DBF e salvá-lo novamente como um DBF. Adicione ou remova registros para fazer com que as linhas no DBF correspondam ao número de recursos de forma no SHP que você calculou na etapa 4. (Se você estiver usando uma versão mais antiga do Excel, lembre-se de que a Linha 1 contém os nomes dos campos; portanto, se você estiver procurando por 1.000 registros, isso acabará sendo 1.001 linhas na planilha desde a primeira linha de dados é a linha nº 2.) Se, para fazer com que o número de linhas corresponda, você precisa excluir as linhas e essas linhas contêm dados reais, você deve mantê-las, salve-as em um novo DBF e poderá lê-las novamente mais tarde, quando você chegar ao ponto em que tudo se abre novamente no ArcMap.
Depois de usar as etapas acima para combinar o número de recursos no SHP com o número de linhas no DBF, tente abrir o shapefile novamente no ArcMap.
fonte
Você pode tentar contar o número de formas nos arquivos .shp com ogrinfo (não tenho certeza de que funcionará):
Se você puder contar o número de formas, poderá abrir o arquivo .dbf com o office aberto para concluí-lo (ou remover linhas extras)
fonte
Tive alguma sorte em excluir os arquivos de índice (.idx e .shx), que o seu GIS regenerará quando reconectado.
fonte
Se o seu shapefile fosse uma camada de pontos e tivesse valores de campo XY, você poderia executar a ferramenta Make XY Event Layer para criar outra camada do shapefile corrompido dbf.
fonte