Penjelasan
OGR (bagian dari GDAL) adalah perpustakaan yang digunakan oleh QGIS untuk mengakses shapefile. Ketika OGR menghapus fitur itu tidak segera menghapusnya, tetapi hanya menandai fitur sebagai dihapus. Sesekali, perintah yang disebut repack dijalankan, yang membuat file baru dengan akhiran _repack dan menyalin semua fitur yang tidak ditandai sebagai dihapus ke file baru ini. Setelah selesai, .dbf asli diganti dengan _repack.dbf. Kemudian melakukan hal yang sama ke shapefile: membuat yang baru (_packed.shp), menyalin semua fitur yang tidak dihapus dan akhirnya mengganti .shp yang asli.
Tampaknya di suatu tempat dalam proses ini, sesuatu gagal (mungkin macet?).
Dalam proses ini, id fitur berubah, jadi saya kira, bahwa shp (geometri) yang Anda miliki dan dbf (tabel atribut) menggunakan id fitur yang berbeda untuk fitur yang sama, yang mengarah pada perilaku aneh yang Anda alami. Tampaknya, salah satu dari dua file masih berisi (bagian dari) fitur yang dihapus sementara yang lain tidak.
Bagaimana menghadapi ini
Pembaruan, November 2016: GDAL 2.2 dikirimkan dengan fungsi bawaan untuk memanggil pengemasan ulang secara otomatis setiap kali file ditulis ke disk. Jadi sebelum melakukan hal lain: periksa versi GDAL dalam dialog tentang QGIS dan perbarui rilis GDAL Anda (sering dikirim sebagai bagian dari QGIS) ke versi terbaru.
Mungkin tidak banyak yang dapat Anda lakukan selain membuat cadangan reguler agar tidak kehilangan lebih banyak data daripada yang dapat Anda tangani (Anda tetap melakukannya, kan? 😉). Dan jika Anda menemukan cara untuk mereproduksi ini (terbaik dengan dataset sampel) buat laporan bug .
Jika Anda mengalami masalah ini lagi, Anda juga dapat mencoba membuat indeks spasial pada shapefile. Dalam proses ini, QGIS akan memanggil repack lagi pada shapefile, dan mungkin "memperbaiki" shp / dbf. Tapi ini hanya dugaan yang belum diverifikasi.
Seperti yang disebutkan oleh @rhm dan di komentar, mungkin juga membantu untuk mengubah nama file {xyz} _packed. {Ext} menjadi {xyz}. {Ext} . Jika file yang dikemas telah sepenuhnya ditulis dan itu hanya nama yang gagal, itu benar-benar valid untuk melakukan langkah ini secara manual. Namun jika file _packed belum sepenuhnya ditulis, Anda mungkin kehilangan informasi dari bagian fitur Anda. Jadi sebelum Anda mencoba ini, buat salinan cadangan dari semua file yang terlibat.
Informasi latar belakang tentang kapan pengemasan ulang dipanggil
Antara QGIS 2.0 dan 2.8 repack telah dipanggil setiap kali layer diturunkan (keluar QGIS, muat proyek yang berbeda ...). Jika fitur telah dihapus atau geometri berubah, file .shp dan .dbf dengan catatan yang ditandai telah dihapus telah ada.
Dimulai dengan QGIS 2.10 pengemasan ulang dipanggil setiap kali layer disimpan setelah operasi yang berpotensi menambahkan flag yang dihapus ke catatan. Oleh karena itu file-file sekarang harus selalu dalam keadaan waras untuk diproses oleh aplikasi lain.