ソフトウェア
代表的な森林群落高の計算:
Cumulative Basal Area Inflection (CuBI) height

はじめに
このページでは、Nakai et al.(2010) が提案した cumulative basal area inflection (CuBI) height を求めるプログラムを公開します。
CuBI height は、小さい木から積算した胸高断面積合計が樹高との間にS字曲線の関係があることを利用し、その「変曲点」の高さを森林を代表する群落高とする考え方(定義)です。
CuBI height につきましては、「森林の高さについて」に詳しい説明があります。併せてご覧下さい。
CuBI height の計算
CuBI height は、以下の手順で求めます。
-
樹高が低い順(昇順)にデータを並べ替える。
-
低い木からの積算胸高断面積を計算する。
-
積算胸高断面積を樹高に対してプロットする。
-
データに対して、最小二乗法によってS字曲線の関数をあてはめる。.
S字曲線(シグモイド曲線)の式はいくつかありますが、Nakai et al.(2010) は以下の Richards 式 (Richards, 1959) が様々な森林に対して当てはまりが良いことを確認しました。

この式を実測値に最小二乗法であてはめることで、CuBI height を含む以下の5つのパラメタを求めます。
-
A:上限値
-
B:下限値
-
k:形状パラメタ
-
ν:曲線の非対称性を決定するパラメタ
-
hc:CuBI height, 関数の変曲点
MATLAB プログラム
以下の圧縮ファイルの中身を MATLAB の作業フォルダに展開してください。
圧縮ファイルには、以下のファイルが入っています。
-
CuBI_calc.m (メインプログラム)
-
Richards.m (Richards式)
-
TreeData.csv (サンプルデータ、実際の毎木データを改変)
このプログラムでは、nlinfit 関数で CuBI height を含む5つのパラメータを求め、さらに nlparci 関数でこれら全ての95%信頼区間を求めます。
計算された結果は、全て CSV ファイルにまとめて出力され、さらに図のようにグラフを表示します。

<プログラムの使い方>
-
MATLAB を立ち上げ、作業フォルダに移動
-
CuBI_calc でプログラム実行
R プログラム
以下の圧縮ファイルの中身を R で使用するフォルダに展開してください。
圧縮ファイルには、以下のファイルが入っています。
-
CuBI_calc.R (メインプログラム)
-
TreeData.csv (サンプルデータ、実際の毎木データを改変)
このプログラムでは、nls 関数で CuBI height を含む5つのパラメータを求め、さらに confint 関数でこれら全ての95%信頼区間を求めます。
計算された結果は、全てテキストファイルにまとめて出力され、さらに図のようにグラフを表示します。

<プログラムの使い方>
-
R を立ち上げ、「ディレクトリの変更」で圧縮ファイルを展開したディレクトリを指定
-
source("CuBI_calc.R") でプログラム実行
-
もしエラーが発生した場合、プログラム中の初期値を変更してみる。
-
S字曲線の形が極端に偏る場合、ν の初期値 nu0 を大きくしないと値を求められない場合があります。
-
様々な初期値の組み合わせを検討しましたが、R の nls を使って一組の初期値で全てをカバーすることは難しいようです。
参考文献
-
Nakai, T., Sumida, A., Kodama, Y., Hara, T., Ohta, T. A comparison between various definitions of forest stand height and aerodynamic canopy height. Agric. For. Meteorol., 150, 1225–1233, 2010.
[doi: 10.1016/j.agrformet.2010.05.005]
-
中井太郎. 北方林の群落高と微気象. 低温科学, 73, 65–71, 2015.
[doi: 10.14943/lowtemsci.73.65][HUSCAP]
-
Richards, F.J. A flexible growth function for empirical use. J. Exp. Bot., 10, 290–300, 1959.
[doi: 10.1093/jxb/10.2.290]