Çok büyük bir şekil dosyasının oluşturma performansı nasıl geliştirilir?


20

100MB .dbf ve 500MB .shp dosya bileşenine sahip bir çokgen şekil dosyası var. Bu kadar büyük olmasının nedeni, tüm bölge için bir arazi üssü olarak sınıflandırılmış olmasıdır.

ArcCatalog veya ArcMap'ta dosyayı her görüntülediğimde ve görünüm penceresini biraz hareket ettirdiğimde, tüm dosyanın sıfırdan yeniden çizilmesi gerekiyor. Mekansal indeksleme ve bir coğrafi veritabanına içe aktarmayı denedim - iki yaklaşım da oluşturma ile ilgili herhangi bir fark edilir performans artışı sağlıyor.

Esri'nin yardım sayfası, şekil dosyası performansını artırmak için kullanıcının dosyayı genelleştirebileceğini önermektedir . Bu açıkça işe yarayacak olsa da, hiçbir bilgi kaybetmek istemiyorum. Tüm alanı ile bir sürü geoprocessing / sorgu yapıyorum çünkü dosyayı bölmek ideal değil. Sanırım tüm alanı bir kerede görüntülemekten kaçınabilirim - ancak bazen, örneğin, bir sorgunun dosyanın hangi bölümlerini seçtiğini görmek iyidir.

Görüntü oluşturma performansını artırmak için kullanabileceğim başka bir yaklaşım var mı?

(Teoride, şekil dosyası "piramitleri" oluşturmak ideal olurdu - ArcGIS'in neden böyle bir yaklaşımı hiç desteklemediğinden emin değilim - en azından farkında olduğumdan ...)


2
Böyle büyük bir şekil dosyasına sahip olmak, sadece sorun istiyor. Deneyimlerime göre, Büyük şekil dosyaları çok kolay bozulma eğilimindedir. Yolsuzluğu önlemek için dosyayı bir dosya coğrafi veritabanına alın. Daha iyi çizim performansı ek bir bonus olacaktır.
Devdatta Tengshe

Yukarıda belirttiğim gibi, büyük bir şekil dosyasını bir gdb'ye içe aktarmanın, tamamen oluşturma açısından hiçbir gelişme sağlamadığını buldum. Genel bir perspektiften gdb'de büyük bir shp dosyasına sahip olmanın pek mantıklı olmadığı oldukça haklısınız (her türlü nedenden dolayı).
youzer

2
Şekil dosyası yerine raster kullanmayı düşündünüz mü?
Kirk Kuykendall

Ben bir şeyde ne dosya boyutu 2gb ve bilgisayar belleği de 2gb ise, o zaman arcgis tam bellek tüketecek gibi bu dosya verileri ele nasıl karıştı
user2174920 10:15

Milyonlarca küçük çokgeniniz varsa, raster kullanmış olmalısınız (toprak katmanı
yapmıyorsanız

Yanıtlar:


22

Düşüncelerim:

  1. Şekil dosyanızı bir dosya coğrafi veritabanı özellik sınıfına aktarın - Çizim performansının daha iyi olacağını düşünüyorum , ancak ne kadar olduğundan emin değilim
  2. ArcGIS Desktop 10.0 veya daha yenisini kullanıyorsanız bunu bir Temel Harita Katmanına taşıyın - bu, çizim performansını önemli ölçüde artıracaktır
  3. Vektör verileri için piramitlerin sesini seviyorsanız, bu ArcGIS Idea'ya oy verdiğinizden emin olun .

3
Ancak taban haritası katmanları IIRC üzerinde analiz veya seçim yapamazsınız.
blah238

4
TOK'da ikinci bir katmanı aynı kaynağa işaret ederek ve genellikle bir taban haritası katmanını değil, genellikle kapatılan ancak analiz veya seçim için gerektiğinde görüntülenebilen şüphelenilebilir.
PolyGeo

PolyGeo - cevap için teşekkürler. Ben temel katman denedim ve gerçekten önemli bir performans iyileştirme "katmanı yakınlaştır" tıklandığında, dosya sıfırdan işlemez. Blah238'in yorumuna göre önerdiğiniz geçici çözüm bazı projelerde işe yarayacaktır, ancak taban katmanının kullanımını sınırlayan ek bir şey buldum, herhangi bir semboloji kullanarak dbf'yi görselleştirememeniz. Bu sınırlama ile dosyayı referans için (taban katmanı değil) genelleştirebilirim, sonra gerektiğinde "gerçek" katmanı gösterebilirim. Gerçekten harika bir çözüm değil. Önerdiğiniz gibi "piramitler" fikrini oylayacağım!
youzer

6

ArcMap performansını iyileştirmeye yardımcı olabilecek birçok ipucu var, ancak burada kullandığım üç öneri.

  1. Veri Çerçevesi koordinat sisteminin şekil dosyam ve İçindekiler'de bulunan diğer katmanlarla eşleştiğinden emin olurum; ancak ne kadar az katman gösterilecekse o kadar iyidir.
  2. Sembolojimi yalnızca şeffaflık veya diğer karmaşıklıklar olmadan basit çizgiler ve dolgulara dayalı olarak kullanırım.
  3. Hem bir genel bakışa hem de yakından kaydırma yeteneğine ihtiyacınız varsa, büyüteç veya görüntüleyici kullanmayı düşünün.

genellikle çok iyi tavsiye. Bunların hepsini ilk testlerimde gerçekten uyguladım - çok büyük özellik sınıfları / şekil dosyaları ile başa çıkmak için daha fazla / farklı numaralar gerekiyor gibi görünüyor.
youzer

4

Katman görüntüleme parametrelerini, katmanın büyük ölçeklerde görüntülenmeyeceği şekilde (ör.> 1: 10.000) ayarlayarak oluşturmayı iyileştirebilirsiniz. Bu seçeneği katman özelliklerinde bulabilirsiniz: Katman Özellikleri> Genel Sekmesi> "Uzaklaştırıldığında katman gösterme ..."

Ayrıca, depolama yeri önemlidir - örneğin, bant genişliği düşük eski bir sunucuda depolanmışsa, düşük performansa sahip olmanız garanti edilir. Rutin olarak 1GB + vektör verilerini bir sunucu üzerinden ele alıyorum, bu da sistem özelliklerinizin güncellenmesi gerekip gerekmediğini sorguluyor (referans için 12GB RAM, 2. nesil i7, ortalama grafik kartı kullanıyorum).

resim açıklamasını buraya girin


3

Sorgularınızı yapmak için haritayı oluşturmanız mı gerekiyor? Python komut dosyaları çalıştırdıysanız ve harita çizmeden verilere eriştiyseniz ne olur? Kesin işleminizin, ihtiyaçlarınızın vb. Olduğundan emin değilim, ama bir düşünce.


3

Bir izleyen biraz olarak Aaron cevap , aynı zamanda görselleştirme için döndürülen sonuç sayısını sınırlamak için bir tanım sorgusu kullanabilirsiniz (ve analizini içerir - Ben bir seçim gibi bir çok fonksiyonları inanıyoruz). Herhangi bir anda görüntülemek için tüm özelliklere ihtiyaç duyulmuyorsa ve bölgeleri ton olarak değiştirmiyorsanız, bir tanım sorgusu, sorunuza veya ihtiyaçlarınıza tam bir cevap olmasa da, uygulanabilir bir çözüm olabilir.


3

Hayal kırıklığını duyuyorum. Ben rutin olarak böyle büyük şekil dosyaları ile çalışıyorum ve genel olarak ekran sorunları yok. Yukarıdaki tüm yorumlara katılıyorum, özellikle de veri çerçevesi de dahil olmak üzere her şeyin aynı projeksiyonda olduğundan emin olmak. Dosyayı yerel olarak kopyaladığınızı ve ağ üzerinden erişmeye çalışmadığınızı varsayıyorum? Bu boyuttaki şekil dosyaları ile ilgili görüntüleme sorunlarına neden olacak bir şey, bir akış ağında olduğu gibi aşırı miktarda köşe olması. Bunu bulduğum tek çözüm anında katman tanımları yapmak için bir python komut dosyası oluşturmak, bu yüzden sadece bir seferde sadece birkaç çiziyorum. Başka bir şey, bilgisayarınızın grafik belleği ve grafik kartı güncellemek olacaktır.

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.