J'ai un fichier de formes sur lequel je travaillais dans ArcGIS Desktop 9.3 qui est corrompu d'une manière ou d'une autre et cela me donne l'erreur "Le nombre de formes ne correspond pas au nombre d'enregistrements de table.". Ce que je voudrais, c'est récupérer ce fichier de formes car il a beaucoup de modifications que les autres révisions du fichier n'ont pas.
Plus tôt, j'ai récupéré de cette erreur en utilisant ogr2gui mais l'outil se bloque maintenant. J'ai même essayé la version en ligne de commande ogr2ogr mais toujours pas de chance. Ce script, Shapefile Repair Tool du site Web ArcScripts n'a pas aidé non plus.
Des idées? (sauf que j'arrête d'utiliser des fichiers de formes)
Voici la sortie d'ogr2ogr (basée sur une suggestion dans les réponses):
Réponses:
Une option, avec la perte des fonctionnalités corrompues, pourrait être d'utiliser ogr2ogr pour convertir votre fichier de formes en un autre fichier de formes, avec l'option -skipfailures:
pour plus de détails, consultez cet article du blog PerryGeo:
http://www.perrygeo.net/wordpress/?p=132
la source
J'utilise celui-ci. Cela a toujours résolu ce problème pour moi.
shapecheck.exe
la source
La réponse officielle d'Esri contient un certain nombre de conseils, mais vous indique l' utilitaire de réparation shp qui m'a évité d'être renvoyé plusieurs fois.
Peu d'autres dont j'ai entendu parler, mais je ne peux pas dire que j'ai essayé:
la source
Ok, voici une autre astuce à ajouter à la pile de bonnes réponses ci-dessus.
Celui-ci est un peu plus brutal, la plupart du temps cela aide, parfois non, et bien qu'il ne s'agisse probablement que d'un premier pas vers la résolution du problème (plutôt que d'une solution en soi, ce qui n'est souvent pas le cas), il peut aider vous amène là où vous pouvez ouvrir le fichier de formes. La plupart des cas, vous devrez toujours effectuer plus de réparations manuelles dans ArcMap après l'ouverture du fichier de formes (fonctionnalités corrompues?, Attributs manquants? Attributs mal alignés? Etc.)
Copiez le fichier de formes dans un nouveau dossier vide. N'emportez que le SHP, le SHX et le DBF avec vous. Laissez tous les autres fichiers derrière, et oui cela inclut le prj.
(Windows): cliquez avec le bouton droit sur le fichier SHX et sélectionnez "Propriétés" pour ouvrir les propriétés du fichier.
Dans l'onglet "Général", examinez la taille de fichier EXACT de ce fichier SHX jusqu'à l'octet. Regardez la propriété "Taille" et non la propriété "Taille sur le disque".
Prenez cette taille de fichier en octets et soustrayez 100 octets (l'en-tête). Du reste, divisez par 8 (la taille de chaque "mot"). Le résultat vous donne le nombre d'entités de forme à l'intérieur de la partie SHP du fichier de formes.
Ouvrez le DBF dans certains logiciels qui vous permettront de modifier le DBF et de le sauvegarder en tant que DBF. Ajoutez ou supprimez des enregistrements afin que les lignes du DBF correspondent au nombre d'entités de forme dans le SHP que vous avez calculé à l'étape 4. (Si vous utilisez une ancienne version d'Excel, gardez à l'esprit que la ligne n ° 1 contient les noms des champs, donc si vous recherchez 1 000 enregistrements, cela finira par être 1 001 lignes dans la feuille depuis la première ligne de données est la ligne n ° 2.) Si, pour faire correspondre le nombre de lignes, vous deviez supprimer des lignes et que ces lignes contenaient de vraies données que vous devez conserver, enregistrez-les simplement dans un nouveau DBF, et vous pouvez les lire à nouveau. plus tard, une fois que vous êtes arrivé au point où tout s'ouvre à nouveau dans ArcMap.
Une fois que vous avez utilisé les étapes ci-dessus pour faire correspondre le nombre d'entités du SHP avec le nombre de lignes du DBF, essayez de rouvrir le fichier de formes dans ArcMap.
la source
Vous pouvez essayer de compter le nombre de formes dans vos fichiers .shp avec ogrinfo (pas sûr que cela fonctionnera):
Si vous êtes en mesure de compter le nombre de formes, vous pouvez alors ouvrir votre fichier .dbf avec open office pour le terminer (ou supprimer des lignes supplémentaires)
la source
J'ai eu de la chance en supprimant les fichiers d'index (.idx et .shx), que votre SIG régénérera une fois reconnecté.
la source
Si votre fichier de formes était une couche de points et avait des valeurs de champ XY, vous pouvez exécuter l'outil Créer une couche d'événements XY pour créer une autre couche à partir du fichier de formes corrompu dbf.
la source