Saya mencari penjelasan yang lebih mendalam tentang perbedaan file shp dan shx tetapi tidak berhasil. Maksud saya di luar 'shp berisi geometri - shx berisi indeks geometri'.
Alasan saya bertanya, adalah karena saat bekerja di QGIS baru-baru ini, saya telah membuat dua pengamatan yang mengarah pada pertanyaan-pertanyaan di benak saya seputar perbedaan yang pasti dalam perluasan file ini:
- QGIS dapat membuka dan menampilkan shx dan shp, dan setiap file tampaknya kurang lebih identik dalam outputnya (tampilan),
- tapi tidak persis begitu - saya perhatikan bahwa kadang-kadang file shx / shp yang cocok menampilkan sedikit 'off-kilter' satu sama lain. Tampaknya bukan masalah proyeksi, mereka tidak menggambar di lokasi yang sama persis satu sama lain.
Pengamatan ini membuat saya penasaran mengapa perbedaan tampilan ini ada, dan mengapa QGIS dapat membuka dan mengoperasikan shx dengan cara yang sama dengan shp, ketika sebelumnya pemahaman saya adalah bahwa shp adalah file 'master' jika Anda mau, tetapi membutuhkan .dbf dan .shx berfungsi dengan benar sebagai satu kesatuan, seluruh entitas.
qgis
shapefile
file-formats
Maggie
sumber
sumber
Jawaban:
Referensi definitif pada format shapefile adalah Deskripsi Teknis ESRI Shapefile .
Adalah menyesatkan untuk menggambarkan
shx
sebagai "indeks". Sebaliknya, itu adalah file offset akses langsung. Tidak ada data dalamshx
, hanya klon dari seratus byte pertama dan nomor catatan dan diimbangi dengan byte awal dari catatan itu dishp
. Satu-satunya lokasi untuk atribut adalahdbf
(yang berdiri sendiri - meskipun "pengetahuan" sebaliknya,shx
tidak mengikatshp
dandbf
, hanya nomor catatan yang melakukannya).Dimungkinkan untuk shapefile memiliki "celah" di
shp
mana membuatshx
sangat diperlukan, tetapi dalam praktiknya alat Esri akan menulis ulang keseluruhanshp
danshx
sehingga setiap celah yang dibuat oleh mengedit catatan dihapus. Dalam sebagian besar kondisi, dimungkinkan untuk memulihkanshx
konten jika hilang; hal yang sama tidak dapat dikatakan untukshp
ataudbf
.Penamaan
shp
danshx
merupakan artefak dariVFILE
modul akses langsung lebar variabel dari sistem operasi PrImeOS, pertama porting oleh Esri ke Unix, VAX / VMS, Data General, dan IBM, kemudian ke Microsoft Windows. Thesbn
/sbx
spasial pasangan indeks saham konvensi yang sama penamaan (meskipun ini tidak didokumentasikan dalam spesifikasi shapefile). Di dalamVFILE
pustaka FORTRAN asli , hanya file dasar yang dinamai, dan file offset denganx
karakter terminal baru saja muncul pada pembuatan file.sumber
The index file (.shx) contains a 100-byte header followed by 8-byte, fixed-length records. Figure 4 illustrates the index file organization.
Logikanya analog dengan indeks basis dataa data structure that improves the speed of data retrieval operations
.shx
ini sama sekali bukan indeks spasial.shx
benar-benar memperlambat akses serial (lebih I / O), tapi itu tidak membuat akses langsung mungkin , yang dapat dianggap perbaikan.shp
danshx
. Ini tidak ada dalamdbf
, hanya offset byte implisit dari akhir catatan header (40 byte untuk tabel, yang mencakup jumlah bidang, dan 40 byte tambahan untuk setiap bidang) dikalikan ukuran catatan. Saya telah menulis pembaca dan penulis shapefile di kedua 'C' dan Java, dan itu adalah variabel counter loop dari program yang menghubungkanshp
/shx
kedbf
. Theshx
menyediakan linkage dari catatan jumlah, dengan diimbangi dengan cek integritas recno, untuk awalshp
rekaman, tidak lebih.Shx tentu tidak memiliki apa pun untuk ditampilkan di peta sendiri karena Anda dapat membaca dari spesifikasi https://www.esri.com/library/whitepapers/pdfs/shapefile.pdf .
Anda memang benar dalam hal ini dimungkinkan untuk membuka shapefile dengan memilih bagian .shx dengan QGIS 3.0.3 tetapi saya tidak dapat melihat perbedaan pada lokasi. Saya percaya bahwa shapefile masih dibuka melalui jalur yang sama dan hasilnya sama. Jika Anda dapat membuat test case untuk mereproduksi masalah penempatan geometri yang berbeda, harap buat tiket QGIS tentang masalah tersebut.
Jika Anda menghapus .shp bagian Anda akan melihat bahwa QGIS tidak membuka .shx saja.
sumber
.shx
adalah indeks untuk suatu.shp
file.Anda perlu keduanya untuk dapat membuka
.shp
file. Jika Anda membuka.shx
file di QGIS, itu membuka.shp
file. Jika tidak aktif, ada masalah proyeksi.ShapeFile membutuhkan tiga komponen:
.shp
- menyimpan geometri.shx
- menyimpan indeks.dbf
- menyimpan atributSebuah
.prj
file yang biasanya dianjurkan, yang menyimpan informasi proyeksi. Mungkin ada file lain yang terkait dengan ShapeFile, tetapi ini tidak mutlak diperlukan.sumber