QGIS içinde bir CSV dosyası yeniden yüklensin mi?


9

Matlab simülasyonumun sonuçlarını göstermek için QGIS kullanıyorum. Matlab, QGIS içindeki bir şekil dosyasına bağlı bir CSV dosyası üretir.

Şu anda Matlab simülasyonunun yeni sonuçlarını göstermek için QGIS'i kapatıp yeniden açmam gerekiyor.

CSV dosyasının öznitelik tablosunu QGIS'i kapatmadan ve yeniden açmadan yeniden yüklemek mümkün müdür?


Teşekkürler @Jason bahşiş benim için bir cazibe beğendi - QGIS 3.10 kullanarak seçenek özellikleri altında- > kaynak altında ! [ Propertiescreatespatialindex ] ( i.stack.imgur.com/5G3y5.png )
Hannes Buhrmann

Yanıtlar:


3

Her seferinde QGIS'i kapatmak ve açmaktan daha kolay olmasa da, daha anlamlı olabilen alternatif bir iş akışı önerebilirim:

  • Shapefile'ınızı spatialite içe aktarın
  • CSV'yi spatialite içe aktarın ("Sanal TXT / CSV seçeneğini kullanarak)
  • Uzamsal tabloyu (şekil dosyası) sanal CSV tablosuna KATILARAK uzamsal görünümde uzamsal görünüm oluşturma

Şimdi, görünümü herhangi bir uzamsal katman gibi QGIS'de görüntüleyebilir ve uzamsalın JOINed değerlerini kullanabilirsiniz. Ancak, CSV her yeniden oluşturulduğunda, sanal CSV tablosunu DAMLA ve yeniden bağlamanız gerekir. Daha sonra QGIS'deki bir yenileme yeni değerleri gösterecektir. Bu sadece bir dakikanızı alır ve dahası, birçok görünüm tanımlayabilir ve gerekirse öncekileri saklayabilirsiniz ...

HTH


2

Spatialite formatı kullanmadan buna hala cevap arayan herkes için, işe yarayan bir şey buldum.

Bir csv'niz varsa ve onu uzamsal bir katmana katılmak için bir birleştirme kullanıyorsanız, birleştirme seçeneklerinden biri katmanı önbelleğe almaktır. Katmanınızın özelliklerine, ardından birleştirilmiş verilere gidip birleştirmeyi düzenle'yi tıklarsanız bu seçeneğe ulaşabilirsiniz. Önbellek seçeneğini devre dışı bırakırsanız , csv değiştikten sonra veri katmanını yeniden yükleyebilir ve ardından yenilenmiş bir harita görünümü elde etmek için haritanızın yeniden boyamasını tetikleyebilirsiniz.

Yeniden yükleme ve yeniden boyama işlemlerini Python Konsolu'nda yapabilirsiniz. İlk olarak, harita tuvali, csv ve katman için bir ad tanımlamanız gerekir:

mc = iface.mapCanvas()
layer=mc.currentLayer()
csv_layer=mc.currentLayer()

CurrentLayer yöntemini kullanırken konsolda adlandırırken katmanların etkin olduğundan emin olun ('geçerli katman' olmalıdır).

Ardından, birleştirmeniz için önbellek seçeneğini kapalı olarak ayarlarsanız, csv'yi değiştirebilir ve ardından haritanızı yeniden çizmek için Python konsolunda aşağıdaki iki komutu kullanabilirsiniz:

csv_layer.reload()
layer.triggerRepaint()

Bu benim için çalıştı, ama sadece 100 satır veri vardı. Daha büyük bir veri kümeniz olduğunda işlemlerin önbelleğe alınmadan yavaş olması olabilir.


0

Şekil dosyasının katman özelliklerini açın ve General- Coordinate reference systemöğesine tıklayın Create spatial index. Tamamlandığında, şekil dosyası yenilenir.

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.