Erläuterung
OGR (Teil von GDAL) ist die Bibliothek, mit der QGIS auf Shapefiles zugreift. Wenn OGR Features löscht, werden diese nicht sofort gelöscht, sondern nur als gelöscht markiert. Hin und wieder wird ein Befehl namens repack ausgeführt, der eine neue Datei mit dem Suffix _repack erstellt und alle Features, die nicht als gelöscht markiert sind, in diese neue Datei kopiert. Sobald dies abgeschlossen ist, wird die ursprüngliche DBF durch die Datei _repack.dbf ersetzt. Das Shapefile wird dann auf die gleiche Weise bearbeitet: Erstellen Sie ein neues (_packed.shp), kopieren Sie alle nicht gelöschten Features und ersetzen Sie schließlich das ursprüngliche .shp.
Es scheint irgendwo in diesem Prozess etwas fehlgeschlagen zu sein (vielleicht ein Absturz?).
Während dieses Vorgangs ändern sich die Feature-IDs. Vermutlich verwenden shp (Geometrie) und dbf (Attributtabelle) unterschiedliche Feature-IDs für dieselben Features. Dies führt zu dem seltsamen Verhalten, das Sie feststellen. Es scheint, dass eine der beiden Dateien noch (einen Teil) der gelöschten Funktionen enthält, während die andere dies nicht tut.
Wie gehe ich damit um?
Update, Nov. 2016: GDAL 2.2 wird mit einer integrierten Funktion ausgeliefert, die das automatische Umpacken aufruft, sobald die Datei auf die Festplatte geschrieben wird. Bevor Sie etwas anderes tun, überprüfen Sie die GDAL-Version im QGIS-Info-Dialogfeld und aktualisieren Sie Ihre GDAL-Version (oft als Teil von QGIS geliefert) auf eine aktuelle Version.
Es gibt wahrscheinlich nicht viel, was Sie dagegen tun können, abgesehen von regelmäßigen Sicherungen, um nicht mehr Daten zu verlieren, als Sie verarbeiten können (tun Sie das trotzdem, oder? 😉). Und wenn Sie einen Weg finden, dies zu reproduzieren (am besten mit einem Beispieldatensatz), erstellen Sie einen Fehlerbericht .
Wenn dieses Problem erneut auftritt, können Sie auch versuchen , einen räumlichen Index für das Shapefile zu erstellen . In diesem Prozess ruft QGIS erneut das Repacken des Shapefiles auf und "repariert" möglicherweise das shp / dbf. Dies ist jedoch nur eine unbestätigte Vermutung.
Wie von @rhm und in den Kommentaren erwähnt, kann es auch hilfreich sein , die Datei {xyz} _packed. {Ext} in {xyz}. {Ext} umzubenennen . Wenn die gepackte Datei bereits vollständig geschrieben wurde und nur die Umbenennung fehlgeschlagen ist, ist es absolut gültig, diesen Schritt manuell auszuführen. Wenn die _packed-Datei jedoch nicht vollständig geschrieben wurde, fehlen möglicherweise Informationen in Teilen Ihrer Funktionen. Also , bevor Sie versuchen , diese Sicherungskopien aller beteiligten Dateien.
Hintergrundinformationen darüber, wann das Umpacken aufgerufen wird
Zwischen QGIS 2.0 und 2.8 wurde das Umpacken aufgerufen, wenn der Layer entladen wurde (QGIS beenden, anderes Projekt laden ...). Wenn ein Feature gelöscht oder eine Geometrie geändert wurde, waren SHP- und DBF-Dateien mit als gelöscht gekennzeichneten Datensätzen vorhanden.
Ab QGIS 2.10 wird repack immer dann aufgerufen, wenn der Layer nach einer Operation gespeichert wird, bei der möglicherweise das gelöschte Flag zu Datensätzen hinzugefügt wird. Daher sollten sich die Dateien jetzt immer in einem vernünftigen Zustand befinden, damit sie von anderen Anwendungen verarbeitet werden können.