桃栗三年柿八年などと申しますが、このデータを見るとオレンジの木は4~5年くらいでそこそこの太さまで生育するように見えます。しかし、「木の幹の太さを測る」、データの解析以前にいろいろあるようです。米国と日本で測る高さが違う?それどころか日本国内でも北海道と本州以南では違う?いろいろあるのね。
※「データのお砂場」投稿順Indexはこちら
樹木の生長曲線は、第18回でテーダマツという米国南部に生える松の「高さ」のデータを扱ったことがあります。今回もそれに似たデータです。オレンジの木の「幹の太さ」に関するデータです。
「幹の太さ」と言われると、直径を測るの?周囲の長さ?いったい幹のどのくらいのあたりを測るの?と疑問が浮かびます。以下にURLを貼り付けたデータセットの説明ページによると、このデータは、以下のようなもののようです。1箇所引用させていただきます。
a numeric vector of trunk circumferences (mm). This is probably “circumference at breast height”, a standard measurement in forestry.
「胸の高さの周囲の長さ」が「林業の標準」みたいですが「probably」という頼りなさです。データ処理をするにあたっては、一貫した基準で計測されていれば良いので「気にするな」ということなのでしょう。しかし気になります。R言語でデータ処理を行う前にその辺をちょいと調べてみました。
木の幹の太さの測り方は、似ているけれど違いがある!
まずは日本における林業の大本、林野庁の以下の資料を見ました。
上記資料には斜立、根曲り、分岐等の各種事例毎、詳細な説明があるのです。これ見れば私でも測定できる?肝心な部分を引用させていただきます。
山側の地際から、幹軸に沿って1.2m(北海度は1.3m)の胸高位置で測定
「胸高位置」出てきました。しかし北海道とそれ以外で「胸の高さ」が違うようです。なして?北海道人はデカイのか?なお、太さは「幹軸に直角な面の直径を0.1cm単位で計測」ということで直径表示です。
一方、巨木の保護活動などをされている環境省自然環境局生物多様性センターの以下資料もあります。
幹周の測定ということで、周囲の長さの計測であり、その位置は地上130cm高さでの測定です。幹周の表示はcm単位ということであります。
さてまだあります。どうも土木関係や不動産屋さんなどがお使いの方式はまた微妙に違うみたい。たまたま和歌山県の以下資料が検索に引っかかったので、そのURLが以下に。
これまた肝心な部分を引用させていただきます。
「幹周(目通り)」とは、樹木の幹の周長をいい、地際より 1.2m上りの位置を測定する。
直径でなく周長表示。和歌山県は本州だから1.2mなんでしょうかね。もう一つWebページを見つけました。
1箇所引用させていただきます。
胸高直径の位置は、国や地域で若干異なり、日本では地上1.30m、ヨーロッパで地上1.30m、アメリカでは地上1.37mが採用されています。
まとめると、
- 表示としては直径なのか、周囲長なのか2流儀が併存している(円とみなせば換算できるけれども)
- 測定高さは「胸高」といわれるが、地域や目的によって1.2/1.3/1.37mなどの違いがある(コマケー事を言わなければだいたい一緒よ。。。)
まずは生データ
いつもの通りまずは生データのロードと観察であります。
data('Orange') class(Orange) head(Orange)
上記の結果が以下に
例によって data.frameに付加情報ついてますが、単純 data.frame として処理して良いタイプです。Treeというフィールドが木のIDみたいです。ageの単位は「days since 1968/12/31」なので、1500とか出てきても4年ちょっとです。最後のcircumferenceは幹周(mm単位)です。先ほどの「調査」からすると米国なので1.37m高さでの?なんでしょうかね。
まずは生データをプロットしてみます。
library(ggplot2) g0 <- ggplot(data=Orange, aes(age, circumference, color=Tree))+geom_point() g1 <- g0 + facet_wrap(vars(Tree)) + labs(title="Orange")
全ての木を1枚のグラフにプロットした g0 がこちら。
木ごとにファセットを切った g1 がこちら。
黄色の点が見ずらくてすみません。まあだいたい4年もすると幹回りの太さの成長は横ばいになってくる感じ(ロジスティック曲線風な)がします。
例題の処理方法では
上記、当方の勝手処理ではggplot2でデータを眺めましたが、例題の処理方法では coplotを使っていました。こんな感じ。
そして例によってですが、回帰曲線を推定するのに nls()関数を使い、SSlogisモデルを当てはめています。
冒頭のアイキャッチ画像に、上記処理の結果を貼り付けました。