QGISで表示

1.CSVデータのクリーニング

RのForest Toolsで出力されたCSVデータは3110本あった。これをMSエクセルでみると、XY座標が殆ど同じデータが沢山あることが解った。
おそらくForest Toolsの関数パラメータが妥当ではなかったことが原因と考えられる。
最初からやり直すのは面倒なので隣り合う木の距離が1m以内のデータを削除することにした。
はじめに、xとy項目で並べ替えをして、一行下の個体との距離をピタゴラスの定理「L=sqrt((xa-xa+1)^2+(ya-ya+1)^2)」で求めた。

距離が1m未満の行は解りやすいように「=IF(J3<1,"〇","")」でセルに「〇」を表示させた。
一度削除した後再度並べ替えをすると距離が1m未満の個体が出現するのでこの作業は2回以上繰り返す。
上の図は削除後の状態である。削除後には716個体となった。上図の「height」の値は地表面の高さを含めた樹頂点の高さである。
「winRadius」は樹頂点検出のための半径の値だが、樹冠の半径として使えそうだ。

2.QGISでCSVデータの読み込み。

QGISのメインメニュー「レイヤ」の「レイヤの追加」にある「CSVテキストレイヤの追加」を選択すると下記のダイヤログが出てくる。

X属性、Y属性は自動的に選択される。ついでにZ属性としてheightを選択しておこう。地理院地図タイルにオーバーレイすると下図のようになる。
対象地以外にも樹頂点が現れるのでQGIS上でクリーニングする。

WebODMで構築したオルソフォトにオーバーレイすると下図のようになる。
樹頂点の位置はかなり正確に抽出されていることがわかった。
ただし、明らかに抽出されていない樹頂点があるが今回はこのままで良しとした。

3.木の根元の高さを得る。

国土地理院が公表している5mメッシュデータから樹頂点位置の地表面の高さを得ることができる。
ツールは「Point Sampling Tool」である。予めプラグインメニューからインストールしておきましょう。
「Point Sampling Tool」を利用するときに最大の問題点はCRSの統一である。
またNULLデータがあると解析がストップするので、属性データを表示させて確認しておきましょう。
今回は「樹頂点31」と「5mメッシュDEM」は「EPSG:4326 - WGS 84 」で統一させた。

「Point Sampling Tool」で出力されるのはポイントデータの地表高のみである。
下図は「フィールド計算機」で緯度経度情報を付加した後の属性データを表示したものだ。

4.属性の空間結合

ポイントデータの「樹頂点」と「地表面高」は本来同じレコードの別フィールドにあるべきなので「属性の空間結合」で統一させることとした。

両者には緯度経度情報に一致したデータがあるので、「等しい」と「重なりがある」の両方を選択して結合した。
対象地の全ての樹木の属性データが下図である。対象地外の樹頂点の削除の後に個体数は591本となった。
対象地面積は1.96haなので約300本/haの森であることがわかった。

1本1本の立木の情報はこれで1レコードに収納された。