Ich habe ein Shapefile, an dem ich in ArcGIS Desktop 9.3 gearbeitet habe, das irgendwie beschädigt ist, und es gibt den Fehler "Die Anzahl der Formen stimmt nicht mit der Anzahl der Tabellendatensätze überein." Was ich möchte, ist, dieses Shapefile wiederherzustellen, da es viele Änderungen enthält, die andere Revisionen der Datei nicht haben.
Früher habe ich diesen Fehler mit ogr2gui behoben, aber das Tool stürzt jetzt einfach ab. Ich habe sogar die Kommandozeilenversion ogr2ogr ausprobiert, aber immer noch kein Glück. Auch dieses Skript, das Shapefile Repair Tool von der ArcScripts-Website, hat nicht geholfen.
Irgendwelche Ideen? (außer dass ich keine Shapefiles mehr benutze)
Hier ist die Ausgabe von ogr2ogr (basierend auf einem Vorschlag in den Antworten):
Antworten:
Eine Option mit dem Verlust der beschädigten Funktionen könnte darin bestehen, ogr2ogr zu verwenden, um Ihr Shapefile mit der Option -skipfailures in ein anderes Shapefile zu konvertieren:
Weitere Details finden Sie in diesem Blogbeitrag des PerryGeo-Blogs:
http://www.perrygeo.net/wordpress/?p=132
quelle
Ich benutze diesen. Es hat dieses Problem für mich immer behoben.
shapeecheck.exe
quelle
Die offizielle Antwort von Esri enthält eine Reihe von Tipps, verweist Sie jedoch auf das Hilfsprogramm für die Reparatur von SHPs , mit dem ich ein paar Mal gefeuert wurde.
Nur wenige andere, von denen ich gehört habe, aber nicht sagen kann, dass ich es versucht habe:
quelle
Ok, hier ist ein weiterer Trick, den Sie dem Stapel guter Antworten oben hinzufügen können.
Dies ist ein bisschen brutaler, meistens hilft es, manchmal nicht, und obwohl es wahrscheinlich nur ein erster Schritt zur Behebung des Problems ist (und keine Lösung für sich selbst, die es oft nicht ist), kann es helfen Bringen Sie Sie dorthin, wo Sie das Shapefile öffnen können. In den meisten Fällen müssen Sie nach dem Öffnen des Shapefiles noch weitere manuelle Reparaturen in ArcMap durchführen (beschädigte Funktionen, fehlende Attribute, falsch ausgerichtete Attribute usw.).
Kopieren Sie das Shapefile in einen neuen leeren Ordner. Nehmen Sie nur SHP, SHX und DBF mit. Lassen Sie alle anderen Dateien zurück, und ja, das schließt den prj ein.
(Windows): Klicken Sie mit der rechten Maustaste auf die SHX-Datei und wählen Sie "Eigenschaften", um die Dateieigenschaften zu öffnen.
Sehen Sie sich auf der Registerkarte "Allgemein" die EXAKTE Dateigröße dieser SHX-Datei bis auf das Byte an. Sehen Sie sich die Eigenschaft "Größe" an und nicht die Eigenschaft "Größe auf Festplatte".
Nehmen Sie diese Dateigröße in Bytes und subtrahieren Sie 100 Bytes (den Header). Teilen Sie den Rest durch 8 (die Größe jedes "Wortes"). Das Ergebnis gibt Ihnen die Anzahl der Formmerkmale im SHP-Teil des Shapefiles an.
Öffnen Sie die DBF in einer Software, mit der Sie die DBF bearbeiten und wieder als DBF speichern können. Hinzufügen oder Entfernen von Datensätzen, damit die Zeilen in der DBF mit der Anzahl der Formmerkmale in dem SHP übereinstimmen, die Sie in Schritt 4 berechnet haben. (Wenn Sie eine ältere Version von Excel verwenden, denken Sie daran, dass Zeile 1 die Feldnamen enthält. Wenn Sie also 1.000 Datensätze verwenden, werden seit der ersten Datenzeile 1.001 Zeilen im Blatt angezeigt ist Zeile Nr. 2.) Wenn die Anzahl der Zeilen übereinstimmen soll, müssen Sie Zeilen löschen, und diese Zeilen enthalten echte Daten, die Sie behalten müssen. Speichern Sie diese einfach in einem neuen DBF, und Sie können das Zeug zurücklesen in später, wenn Sie den Punkt erreicht haben, an dem sich in ArcMap alles wieder öffnet.
Versuchen Sie, das Shapefile in ArcMap erneut zu öffnen, nachdem Sie die obigen Schritte ausgeführt haben, um die Anzahl der Features im SHP mit der Anzahl der Zeilen im DBF abzugleichen.
quelle
Sie können versuchen, die Anzahl der Formen in Ihre .shp-Dateien mit ogrinfo zu zählen (nicht sicher, ob es funktioniert):
Wenn Sie in der Lage sind, die Anzahl der Formen zu zählen, können Sie Ihre DBF- Datei mit Open Office öffnen, um sie zu vervollständigen (oder zusätzliche Zeilen entfernen).
quelle
Ich hatte etwas Glück beim Löschen der Indexdateien (.idx und .shx), die Ihr GIS bei erneuter Verbindung neu generiert.
quelle
Wenn Ihr Shapefile eine Punktebene war und XY-Feldwerte hatte, können Sie das Werkzeug XY-Ereignisebene erstellen ausführen, um eine weitere Ebene aus der beschädigten Shapefile-Datenbank zu erstellen.
quelle