ESRI şekil dosyasının yalnızca bir bölümünü R'ye okuyun


10

Windows 7'de R'ye okumak istediğim çok büyük bir ESRI şekil dosyası var (> 8000 çokgen, .shp dosyası> 32MB).

Rgdal ve readOGR () yöntemine aşinayım. Bununla birlikte, bu şekil dosyası boyutuyla, tüm şekil dosyasını belleğe okumak çok yavaş bir işlemdir. Ayrıca, şekil dosyasında bulunan 8.000'in yalnızca birkaç kümelenmiş çokgeniyle (<100) ilgileniyorum. Bunu yapmam gereken süreç oldukça tekrarlayıcı, yani şekil dosyasının birçok kez yüklenmesi gerekiyor, bu yüzden şu anda çok yavaş.

Bu nedenle, süreci hızlandırmak için şekil dosyasının bir kısmını okumak mümkün olup olmadığını merak ediyorum. Bu kadar büyük miktarda veri yüklemek ve sonra bunların çoğunu atmak pratik görünmüyor.


Hangi platformu kullanıyorsunuz? ArcGIS'e erişiminiz varsa, sanırım ArcPy'de alt küme seçimini yapan ve sonra python komut dosyasından bir R işlemi yürüten bir şey komut dosyası yazabilirsiniz. Bu kesinlikle mümkündür ... Python'dan R kodu yürütmek için bir Google araması yapın.
GeoJohn

3
Belki de verilerinizin sizin için önemli olan bir kısmını yeni şekil dosyasına aktarmayı deneyin ve daha sonra R'de çalışın.
ami

muhtemelen sf ile çalışacaktır. Ancak saveRDS ile R çalışma alanı formatına kaydedin. Genel olarak SQLite veya benzeri bir şekilde depolamanın yolları vardır, ancak gerekli olduğundan şüphe
duyuyorum

Yanıtlar:


8

Akla gelen tek şey, yeni "sfr" kütüphanesinden ve alt kümeleme için ilişkili basit özellik sınıfından faydalanmaktır. Sfr kütüphane GitHub'dan şu anda mevcuttur ve burada olduğu öğretici Başlamak için.

Ben ancak bir alt küme sorgusu dayalı veri akışı inanmıyorum, bu kira okuma süreleri önemli ölçüde hızlandırmak ve sözde R uzamsal sınıfların geleceği .

Başka bir seçenek, uzamsal verilerinizi bir veritabanında (örn., PostGIS) depolamak ve veritabanından sorgulamak olacaktır. Bu, büyük verilerle başa çıkmak için son derece verimli bir yol olabilir.


2
sfPaket sürümü 0.2 (2016/10/26) beri CRAN geçerli: cran.r-project.org/web/packages/sf/index.html
rcs

1

QGIS gibi bir CBS kullanmanın ve ihtiyacınız olan özellikleri seçmenin iyi bir yaklaşım olacağını düşünüyorum.
Sonuçları birleştirmeniz gerekiyorsa, işlemek istemediğiniz 7900 çokgenle bir dosya oluşturabilir, ardından 100 çokgeni işleyebilir ve işledikten sonra yeniden katılabilirsiniz.


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.