Shapefile dosyasının shx ve shp dosyaları arasındaki fark açıklanıyor mu?


11

Ben küçük boşuna shp ve shx dosyalarındaki farkların daha derinlemesine bir açıklama arıyorum. Yani 'shp geometri içerir - shx geometrinin bir indeksini içerir'.

Sormamın nedeni, yakın zamanda QGIS'te çalışırken, aklımdaki bu dosya uzantılarındaki kesin farklılıklar hakkında sorulara yol açan iki gözlem yaptım:

  1. QGIS hem shx hem de shp'yi açabilir ve görüntüleyebilir ve her dosya çıktılarında (ekran) az çok aynı görünür,
  2. ama tam olarak öyle değil - bazen eşleşen shx / shp dosyalarının birbirine göre biraz 'off-kilter' görüntülediğini fark ettim. Bir projeksiyon sorunu gibi görünmüyor, sadece birbirleriyle aynı yerde çizmiyorlar.

Bu gözlemler beni ekrandaki bu farklılıkların neden var olduğunu ve QGIS'in shx'i neden shp ile aynı şekilde açıp çalıştırabileceğini merak etti, daha önce anladığım kadarıyla shp 'ana' dosya ise, .dbf ve .shx öğelerinin tek bir tam varlık olarak düzgün çalışmasını gerektirir.



Yanıtlar:


19

Şekil dosyası biçimindeki kesin başvuru ESRI Şekil Dosyası Teknik Açıklamasıdır .

shx"Dizin" olarak tanımlamak yanıltıcıdır . Bunun yerine, doğrudan erişim ofset dosyasıdır. Veri yok shx, sadece ilk yüz baytlık bir klon ve kayıt numarası ve o kaydın başlangıç ​​baytına ofset shp. Öznitelikler için tek yerdir dbf(- aksine "bilgi" rağmen, bağımsız olan shxkravat yok shpve dbfsadece kayıt numarası o yapar).

Şekil dosyalarının vazgeçilmez shpkılan "boşluklara" sahip olması mümkündür shx, ancak pratikte Esri araçları tüm metni yeniden yazacak shpve shxböylece kayıtları düzenleyerek oluşturulan boşluklar kaldırılacaktır. Çoğu koşulda, shxiçeriğin kaybolması durumunda kurtarılması mümkündür ; aynısı shpveya için de söylenemez dbf.

İsimlendirilmesi shpve shxbir eserdir VFILEilk olarak Microsoft Windows, sonra Unix, VAX / VMS, Data General ve IBM'e Esri tarafından port sistemi, işletim PrImeOS doğrudan erişim modülüne genişliği değişken. sbn/ sbx(Bu şekil dosyası şartname dahilinde belgelenmemiş rağmen) mekansal indeks çifti hisseleri aynı adlandırma kuralı. Orijinal VFILEFORTRAN kitaplığında yalnızca temel dosya adlandırılmış ve xterminal karakterine sahip ofset dosyası dosya oluşturulurken yeni göründü.


1
Ve daha sonra: The index file (.shx) contains a 100-byte header followed by 8-byte, fixed-length records. Figure 4 illustrates the index file organization.Mantıksal olarak veritabanı dizinlerine benzer a data structure that improves the speed of data retrieval operations.
user30184

2
Hayır, shxkesinlikle mekansal bir indeks değildir .
Vince

1
shxAslında seri erişimi (diğer G / Ç) yavaşlatır, ancak doğrudan erişim yaratıyor mümkün bir gelişme olarak düşünülebilir.
Vince

1
"..., sadece ilk yüz baytlık bir klon ve kayıt numarası ve ..." . "... shx shp ve dbf'yi bağlamaz, sadece kayıt numarası bunu yapar" . Önce 'kayıt numarası'nın .shx içinde olduğunu söylersiniz. Daha sonra .shx dosyasının .shp ve .dbf'yi bağlamadığını, ancak bu 'kayıt numarası' bağladığını söylüyorsunuz. 'Kayıt numarası' belirtilen iki formatı bağlarsa ve .shx'in bir parçasıysa, neden .shx .shp ve .dbf'yi bağlayamaz? Cevabınızın bu kısmını bana karıştırıyorum. Açıklayabilir misin? Tks.
Andre Silva

2
Kayıt numarası hem shpve de bulunur shx. Bu olduğu değil de, bu dbf, kere kayıt boyutu (bir alan sayısı ve her bir alan için ilave 40 bayt içeren bir tablo için 40 bayt) başlık kayıtlarının ucundan çıkıntı sadece kapalı bayt. Ben hem 'C' ve Java şekil dosyası okuyucuları ve yazıcıları yazdım ve bu bağlantılar programın döngü sayacı değişkendir shp/ shxiçin dbf. shxBaşlangıcına bir RECNO bütünlük kontrolü ile ofset tarafından, rekor sayıda bağlantı sağlar shpdaha kayıt, hiçbir şey.
Vince

12

Shx kesinlikle https://www.esri.com/library/whitepapers/pdfs/shapefile.pdf şartnamesinden okuyabileceğiniz gibi yalnızca bir haritada gösterilecek hiçbir şeye sahip değildir .

QGIS 3.0.3 ile .shx bölümünü seçerek shapefile dosyasını açabilmeniz gerçekten haklısınız, ancak konum üzerinde herhangi bir fark göremiyorum. Şekil dosyasının hala aynı yoldan açıldığına ve sonucun aynı olduğuna inanıyorum. Geometrilerin farklı yerleşimi sorununu yeniden üretmek için bir test örneği oluşturabilirseniz, lütfen sorun hakkında bir QGIS bileti oluşturun.

.Shp parçasını silerseniz, QGIS'in yalnızca .shx dosyasını açmadığını görürsünüz.


Benim hatam, aynı dosyaları tekrar kontrol ettim ve bu gerçekten uyumsuz bir projeksiyondu. Bunları yeniden hizaladığımda, aynı katmanın shx ve shp sürümleri dizildi ve beklendiği gibi özdeşti. İlginç bir şekilde, QGIS hem .shx hem de .shp'nin aynı projeye yüklenmesine izin verir ve kendi kaynak yollarını görüntülerler, ancak başkaları tarafından belirtildiği gibi, çıktı bunlar aslında aynı dosya ile aynı geometrilerdir.
Maggie

2

.shxbir .shpdosyanın dizinidir .

.shpDosyayı açabilmek için her ikisine de ihtiyacınız var . .shxQGIS'de bir dosyayı açarsanız, dosyayı açar .shp. Eğer kapalıysa, bir projeksiyon sorunu var.

Bir ShapeFile üç bileşene ihtiyaç duyar:

  1. .shp - geometriyi depolar
  2. .shx - dizini saklar
  3. .dbf - nitelikleri saklar

.prjGenellikle projeksiyon bilgilerini saklayan bir dosya önerilir. ShapeFile ile ilişkili başka dosyalar olabilir, ancak bunlar kesinlikle gerekli değildir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.