Ich verwende QGIS, um die Ergebnisse meiner Matlab-Simulation zu veranschaulichen. Matlab erstellt eine CSV-Datei, die mit einem Shapefile in QGIS verbunden ist.
Im Moment muss ich QGIS schließen und erneut öffnen, um die neuen Ergebnisse der Matlab-Simulation anzuzeigen.
Ist es möglich, die Attributtabelle der CSV-Datei neu zu laden, ohne QGIS zu schließen und erneut zu öffnen?
Antworten:
Ich kann einen alternativen Workflow vorschlagen, der zwar nicht unbedingt einfacher ist als das Schließen und Öffnen von QGIS jedes Mal, aber sinnvoller sein könnte:
Jetzt können Sie die Ansicht in QGIS wie jede räumliche Ebene anzeigen und die JOINed-Werte von Spatialite verwenden. Jedes Mal, wenn die CSV neu erstellt wird, müssen Sie die virtuelle CSV-Tabelle TROPFEN und erneut mit ihr verknüpfen. Eine Aktualisierung in QGIS zeigt dann die neuen Werte an. Dies dauert nur einen Moment, und außerdem können Sie viele Ansichten definieren und die vorherigen bei Bedarf beibehalten ...
HTH
quelle
Für alle, die noch nach einer Antwort suchen, ohne ein Spatialite-Format zu verwenden, habe ich etwas gefunden, das funktioniert.
Wenn Sie eine CSV-Datei haben und einen Join verwenden, um sie mit einer räumlichen Ebene zu verbinden, besteht eine der Optionen der Verknüpfung darin, die Ebene zwischenzuspeichern. Sie können zu dieser Option gelangen, wenn Sie zu den Eigenschaften Ihrer Ebene und dann zu den verknüpften Daten gehen und auf Verknüpfung bearbeiten klicken. Wenn Sie die Cache-Option deaktivieren , können Sie die Datenebene nach dem Ändern der CSV neu laden und anschließend ein Repaint Ihrer Karte auslösen, um eine aktualisierte Kartenansicht zu erhalten.
Sie können das Neuladen und Neulackieren in der Python-Konsole durchführen. Zuerst müssen Sie einen Namen für die Kartenleinwand, die CSV und für den Layer definieren:
Stellen Sie sicher, dass die Ebenen aktiv sind, wenn Sie sie in der Konsole benennen, wenn Sie die currentLayer-Methode verwenden (es muss sich um die 'aktuelle Ebene' handeln).
Wenn Sie dann die Cache-Option für Ihren Join deaktiviert haben, können Sie die CSV ändern und dann die folgenden zwei Befehle in der Python-Konsole verwenden, um Ihre Map neu zu zeichnen:
Das hat bei mir funktioniert, aber ich hatte nur 100 Datenzeilen. Es kann sein, dass Vorgänge ohne Caching langsam sind, wenn Sie einen größeren Datensatz haben.
quelle
Öffnen Sie die Ebeneneigenschaften des Shapefiles und klicken Sie auf
General
- . Sobald es fertig ist, wird das Shapefile aktualisiert.Coordinate reference system
Create spatial index
quelle