QGISを使用して、Matlabシミュレーションの結果を説明します。Matlabは、QGIS内のシェープファイルに接続されるCSVファイルを生成します。
現時点では、Matlabシミュレーションの新しい結果を表示するには、QGISを閉じて再度開く必要があります。
QGISを閉じて再度開かなくても、CSVファイルの属性テーブルを再読み込みできますか?
QGISを使用して、Matlabシミュレーションの結果を説明します。Matlabは、QGIS内のシェープファイルに接続されるCSVファイルを生成します。
現時点では、Matlabシミュレーションの新しい結果を表示するには、QGISを閉じて再度開く必要があります。
QGISを閉じて再度開かなくても、CSVファイルの属性テーブルを再読み込みできますか?
回答:
毎回QGISを閉じて開くよりも必ずしも簡単ではないが、より理にかなった別のワークフローを提案できます。
これで、任意の空間レイヤーと同じようにQGISでビューを表示し、spatialiteから結合された値を使用できます。ただし、CSVが再作成されるたびに、仮想CSVテーブルを削除し、それに再リンクする必要があります。次に、QGISで更新すると、新しい値が表示されます。これはほんの少しの時間で済みます。さらに、多くのビューを定義して、必要に応じて以前のビューを維持できます...
HTH
Spatialiteフォーマットを使用せずにこれに対する答えをまだ探している人のために、私はうまくいくものを見つけました。
csvがあり、結合を使用してそれを空間レイヤーに結合する場合、結合のオプションの1つはレイヤーをキャッシュすることです。レイヤーのプロパティに移動し、結合されたデータに移動して[結合の編集]をクリックすると、このオプションが表示されます。キャッシュオプションを無効にすると、 csvが変更された後にデータレイヤーを再読み込みし、マップの再描画をトリガーして、更新されたマップビューを取得できます。
Pythonコンソールで再読み込みと再描画を行うことができます。まず、マップキャンバス、csv、およびレイヤーの名前を定義する必要があります。
mc = iface.mapCanvas()
layer=mc.currentLayer()
csv_layer=mc.currentLayer()
currentLayerメソッドを使用するときは、コンソールでレイヤーに名前を付けるときにレイヤーをアクティブにしてください(「現在のレイヤー」である必要があります)。
次に、結合のキャッシュオプションをオフに設定すると、csvを変更してから、Pythonコンソールで次の2つのコマンドを使用してマップを再描画できます。
csv_layer.reload()
layer.triggerRepaint()
これでうまくいきましたが、データが100行しかありませんでした。データセットが大きい場合、キャッシュを使用しないと操作が遅くなる可能性があります。