定点で繰り返し実施される測定結果をGISに表示する方法を紹介します。定点の位置を示すシェープファイルをあらかじめ準備し、テーブル結合を使用してCSVファイルの測定データを地図上に表示します。新たな測定データが出たときは、テーブル結合を変更するだけで地図上の表示を新しくすることもできますよ。
定点シェープファイルの作成
定点のポイントシェープファイルは、厳密な測量結果があればCSVファイルにして読み込んでも良いし、さほど位置の厳密性が要求されないなら、GIS地図上に目視でプロットしても構いません。ここではUAVで撮影したオルソ画像を背景にして目視でプロットしてみました。
下図では、オルソ画像はあらかじめ表示してあります。(Metashapeで作成したオルソ画像は座標系がうまく読み込めないことがあるので注意してください!)
新規のポイントシェープファイルレイヤを作成し、定点の名前を記入するフィールド「Pt」を追加しておきます。
編集モードに入り、定点を作成していきます。フィールドidは重要ではありませんが、フィールドPtは後に入力するデータファイルに記載された定点名と同じになるよう注意しましょう。
定点シェープファイルが完成したら、保存し、編集モードを終了しておきます。属性テーブルを開き、Ptフィールドに正しく名前が定義されていることを確認しておきます。
正しく定点名が記入されていることがキモですから、地図上にラベルとして表示して、位置と名前が間違っていないことを確認した方が良いですよ!
CSVデータファイルの準備
1回の定点調査データはたぶんExcelかなにかに整理されていますよね?適切なファイル名をつけてCSVファイルとして保存します。定点の名前が記入されたカラムの名前を確認しておいてください。ここでは「Pt」です。
他の調査日のデータもあるなら、同じようにCSVファイルにしておきます。
CSVファイルをテーブルとしてレイヤに登録する
ブラウザパネルからCSVファイルをレイヤパネルにドラッグドロップしたり、ブラウザパネルでダブルクリックすることで、CSVファイルをテーブルとしてレイヤに登録することができますが、ちょっと待ってください。この方法では数値データも文字として扱われてしまいます!
数値データとしてCSVファイルを読み込むには、データーソースマネージャを開き、作成したCSVファイルをテーブルとしてレイヤに登録します。「フィールド型を検出する」に忘れずチェックを入れてください。またCSVファイルには位置情報はありませんから、「ジオメトリなし」もチェックする必要があります。
シェープファイルとテーブルを結合する
定点シェープファイル②を右クリックして「テーブル結合」を選びます。③の+をクリックすると「ベクタ結合を追加」ダイアログが表示されるので、「結合するレイヤ」に前節で作成したテーブルを設定し、「結合基準の属性」と「ターゲット属性」にはシェープファイルとテーブルそれぞれの定点名が入力されたフィールドを選択します。
ここではその他のオプションは規定値のままにしておきます。最下部の「カスタムフィールド名の接頭辞」に注目してください。ここにはテーブル名+アンダースコアがあらかじめ入力されています。
OKをクリックしてテーブル結合を実行し、定点シェープファイルレイヤの属性テーブルを確認すると、数のように測定データが結合されています。測定データのフィールド名にはテーブル名+アンダースコアが付加されていることがわかります。
測定データはあくまでも定点名をキーにして結合されているだけで、定点シェープファイルにデータがコピーされたわけではないことに注意してください。レイヤパネルからテーブルを削除すると結合されたフィールドも消えてしまいます!
シェープファイルにデータをコピーしたいなら、結合した後、右ボタンメニューで「エクスポート」ー「地物の保存」を実行してください。
地図上に測定値を表示してみる
測定データが結合されれば、あとは普通のシェープファイルと同様に地図上でいろいろな方法で表示することができます。
以下では、Sal(塩分)の数値をラベルとして表示し、さらに塩分の高さをシンボルの大きさで表現してみます。
定点シェープファイルレイヤのプロパティを開き、ラベルとシンボロジを編集します。
以上の設定を行うと、地図が下図のように変化します。
いろいろな表示方法を考えてみてください!
新しいデータの扱い1:結合を追加して表示する
新しい測定を行ったら、テーブルを追加し、このテーブルを追加して定点シェープファイルに結合します。すると、下図のように、テーブル名+アンダースコアが付加されたフィールドが追加されるので、新しいデータを地図上に表示できるようになります。
この方法は、新旧のデータを選んで自由に表示できるのがメリットだけど、いちいち表示するフィールドを選び直すのが少し面倒だわ
新しいデータの扱い2:結合を更新して表示する
新しいデータがとれたときに、データだけ簡単に入れ替える方法を考えてみましょう。
まず、テーブル結合をするときに、「カスタムフィールド名の接頭辞」を空白にしておきます。すると下図のように、接頭辞のないフィールド名が追加されます。このフィールド名を使って、地図上の表示方法を「地図上で測定値を表示してみる」のように設定します。
下図の左上で、接頭辞のないフィールド名を使ってシンボロジを設定しています。ラベルも同様に設定しましょう。
次に、新しいデータが入手できたら、テーブルとして登録し、テーブル結合を開いて古い結合はー(マイナス)ボタンをクリックして削除し、改めて+(プラス)ボタンをクリックして新しいデータを結合します。カスタムフィールド名の接頭辞を空欄にすることを忘れないでください。
すると、シンボロジの変更をしなくても、新しいデータが下図下のように地図上に表示されます。新しい測定が行われたら、テーブルを入れ替えるだけで簡単に表示させることができますよ!
これでフィールドを選び直す必要がなくなったとは言え、データの最小値、最大値が変化していると表示されないデータができることもあるよ。シンボロジであらかじめ想定される最小値、最大値が表示範囲に含まれるようにしておくといいね。
新しいデータの扱い3:データファイルをWindowsエクスプローラで入れ替えちゃう!
データファイル名を変更してしまうので,どのデータが表示されているのか後でわからなくなる恐れはあるけど,いつも新しいデータを表示したいだけならこれが一番簡単な方法だわ!
上ですだくんが言っている、最小値、最大値の問題は同じなので注意してね。
下図のように、まず最初に表示したい測定データファイルを、一般的な名前(下図ではdata.csv)にしておきます。その上で、テーブルとしてレイヤパネルに登録し、テーブル結合して、ラベルやシンボロジの設定もしておきます。
あとは、新しいデータのCSVファイルができたら、QGISが起動していない状態で、Windowsエクスプローラでdata.csvを削除して、新しいCSVデータの名前をdata.csvに変えてからQGISを起動するだけです。
みなさん自身がやりやすい方法を工夫してください。 Have fun!
コメント