繰り返し実施される定点観測結果をQGISで効率的に更新表示する

アイキャッチ, qgis-fixedpoint QGIS

定点で繰り返し実施される測定結果をGISに表示する方法を紹介します。定点の位置を示すシェープファイルをあらかじめ準備し、テーブル結合を使用してCSVファイルの測定データを地図上に表示します。新たな測定データが出たときは、テーブル結合を変更するだけで地図上の表示を新しくすることもできますよ。

定点シェープファイルの作成

定点のポイントシェープファイルは、厳密な測量結果があればCSVファイルにして読み込んでも良いし、さほど位置の厳密性が要求されないなら、GIS地図上に目視でプロットしても構いません。ここではUAVで撮影したオルソ画像を背景にして目視でプロットしてみました。

下図では、オルソ画像はあらかじめ表示してあります。(Metashapeで作成したオルソ画像は座標系がうまく読み込めないことがあるので注意してください!)

新規のポイントシェープファイルレイヤを作成し、定点の名前を記入するフィールド「Pt」を追加しておきます。

定点用のシェープファイルを作成し、定点の名前を記入するテキストフィールド Ptを追加しておく
定点用のシェープファイルを作成し、定点の名前を記入するテキストフィールド Ptを追加しておく

編集モードに入り、定点を作成していきます。フィールドidは重要ではありませんが、フィールドPtは後に入力するデータファイルに記載された定点名と同じになるよう注意しましょう。

定点を作成してゆく
定点を作成してゆく

定点シェープファイルが完成したら、保存し、編集モードを終了しておきます。属性テーブルを開き、Ptフィールドに正しく名前が定義されていることを確認しておきます。

定点を作成し終えたら、属性テーブルで定点名を確認しておく
定点を作成し終えたら、属性テーブルで定点名を確認しておく。
すだくん
すだくん

正しく定点名が記入されていることがキモですから、地図上にラベルとして表示して、位置と名前が間違っていないことを確認した方が良いですよ!

CSVデータファイルの準備

1回の定点調査データはたぶんExcelかなにかに整理されていますよね?適切なファイル名をつけてCSVファイルとして保存します。定点の名前が記入されたカラムの名前を確認しておいてください。ここでは「Pt」です。

定点調査データをCSVファイルとして保存する
定点調査データをCSVファイルとして保存する

他の調査日のデータもあるなら、同じようにCSVファイルにしておきます。

CSVファイルをテーブルとしてレイヤに登録する

かわのさん
かわのさん

ブラウザパネルからCSVファイルをレイヤパネルにドラッグドロップしたり、ブラウザパネルでダブルクリックすることで、CSVファイルをテーブルとしてレイヤに登録することができますが、ちょっと待ってください。この方法では数値データも文字として扱われてしまいます!

数値データとしてCSVファイルを読み込むには、データーソースマネージャを開き、作成したCSVファイルをテーブルとしてレイヤに登録します。「フィールド型を検出する」に忘れずチェックを入れてください。またCSVファイルには位置情報はありませんから、「ジオメトリなし」もチェックする必要があります。

CSVファイルをデータソースマネージャでレイヤに登録する
CSVファイルをデータソースマネージャでレイヤに登録する

シェープファイルとテーブルを結合する

定点シェープファイル②を右クリックして「テーブル結合」を選びます。③の+をクリックすると「ベクタ結合を追加」ダイアログが表示されるので、「結合するレイヤ」に前節で作成したテーブルを設定し、「結合基準の属性」と「ターゲット属性」にはシェープファイルとテーブルそれぞれの定点名が入力されたフィールドを選択します。

ここではその他のオプションは規定値のままにしておきます。最下部の「カスタムフィールド名の接頭辞」に注目してください。ここにはテーブル名+アンダースコアがあらかじめ入力されています。

テーブル結合
テーブル結合

OKをクリックしてテーブル結合を実行し、定点シェープファイルレイヤの属性テーブルを確認すると、数のように測定データが結合されています。測定データのフィールド名にはテーブル名+アンダースコアが付加されていることがわかります。

テーブル結合後の属性テーブル
テーブル結合後の属性テーブル
すだくん
すだくん

測定データはあくまでも定点名をキーにして結合されているだけで、定点シェープファイルにデータがコピーされたわけではないことに注意してください。レイヤパネルからテーブルを削除すると結合されたフィールドも消えてしまいます!

シェープファイルにデータをコピーしたいなら、結合した後、右ボタンメニューで「エクスポート」ー「地物の保存」を実行してください。

地図上に測定値を表示してみる

測定データが結合されれば、あとは普通のシェープファイルと同様に地図上でいろいろな方法で表示することができます。

以下では、Sal(塩分)の数値をラベルとして表示し、さらに塩分の高さをシンボルの大きさで表現してみます。

定点シェープファイルレイヤのプロパティを開き、ラベルとシンボロジを編集します。

ラベルとシンボロジを編集する
ラベルとシンボロジを編集する

以上の設定を行うと、地図が下図のように変化します。

定点に結合された測定データを地図上に表示する
定点に結合された測定データを地図上に表示する

いろいろな表示方法を考えてみてください!

新しいデータの扱い1:結合を追加して表示する

新しい測定を行ったら、テーブルを追加し、このテーブルを追加して定点シェープファイルに結合します。すると、下図のように、テーブル名+アンダースコアが付加されたフィールドが追加されるので、新しいデータを地図上に表示できるようになります。

テーブル結合を追加する
テーブル結合を追加する
かわのさん
かわのさん

この方法は、新旧のデータを選んで自由に表示できるのがメリットだけど、いちいち表示するフィールドを選び直すのが少し面倒だわ

新しいデータの扱い2:結合を更新して表示する

新しいデータがとれたときに、データだけ簡単に入れ替える方法を考えてみましょう。

まず、テーブル結合をするときに、「カスタムフィールド名の接頭辞」を空白にしておきます。すると下図のように、接頭辞のないフィールド名が追加されます。このフィールド名を使って、地図上の表示方法を「地図上で測定値を表示してみる」のように設定します。

カスタムフィールド名の接頭辞を空欄にする
カスタムフィールド名の接頭辞を空欄にする

下図の左上で、接頭辞のないフィールド名を使ってシンボロジを設定しています。ラベルも同様に設定しましょう。

次に、新しいデータが入手できたら、テーブルとして登録し、テーブル結合を開いて古い結合はー(マイナス)ボタンをクリックして削除し、改めて+(プラス)ボタンをクリックして新しいデータを結合します。カスタムフィールド名の接頭辞を空欄にすることを忘れないでください。

すると、シンボロジの変更をしなくても、新しいデータが下図下のように地図上に表示されます。新しい測定が行われたら、テーブルを入れ替えるだけで簡単に表示させることができますよ!

テーブルを入れ替えて新しいデータを地図上に表示する
テーブルを入れ替えて新しいデータを地図上に表示する
すだくん
すだくん

これでフィールドを選び直す必要がなくなったとは言え、データの最小値、最大値が変化していると表示されないデータができることもあるよ。シンボロジであらかじめ想定される最小値、最大値が表示範囲に含まれるようにしておくといいね。

新しいデータの扱い3:データファイルをWindowsエクスプローラで入れ替えちゃう!

かわのさん
かわのさん

データファイル名を変更してしまうので,どのデータが表示されているのか後でわからなくなる恐れはあるけど,いつも新しいデータを表示したいだけならこれが一番簡単な方法だわ!

上ですだくんが言っている、最小値、最大値の問題は同じなので注意してね。

下図のように、まず最初に表示したい測定データファイルを、一般的な名前(下図ではdata.csv)にしておきます。その上で、テーブルとしてレイヤパネルに登録し、テーブル結合して、ラベルやシンボロジの設定もしておきます。

一般的な名称のデータテーブルを作成して表示形式を整えておく
一般的な名称のデータテーブルを作成して表示形式を整えておく

あとは、新しいデータのCSVファイルができたら、QGISが起動していない状態で、Windowsエクスプローラでdata.csvを削除して、新しいCSVデータの名前をdata.csvに変えてからQGISを起動するだけです。

Windows エクスプローラで新しいCSVデータの名前をdata.csvに変更してからQGISプロジェクトを起動する
Windows エクスプローラで新しいCSVデータの名前をdata.csvに変更してからQGISプロジェクトを起動する

みなさん自身がやりやすい方法を工夫してください。 Have fun!

コメント

タイトルとURLをコピーしました