2025年10月15日水曜日

アメダスのデータからビニールハウス内の温度を推定する

原木椎茸を栽培しているビニールハウスは、Raspberry Pi で作った温湿度ロガーでデータを取っていたのですが、昨シーズン、ちょっとした不注意で壊してしまいました。

そこで、再度作るのも面白くないなと思いまして、今シーズンは、これまでため込んだデータ(の一部)を使って、アメダスのデータからビニールハウス内の温度を推定するかたちで運用してみることにしました。

ちなみに、以前にも「観測所の気象データからビニールハウス内の温度を推定する。」ということをやっているのですが、この時は1日平均の温度の推定のみでした。

今回は、アメダスから取得したデータを使用して、その時点でのハウス内の温度推定を試みます。

これができると、センサー無しで栽培中の温度の平均値や標準偏差、積算温度(℃時)などが算出可能になります。Google Apps Script で稼働しておけばコストもゼロです。

昨今、スマート農業というと莫大な投資をしてすごい設備入れてみたいなイメージが強いですが、こういうパソコン1台からできるスマート農業もあると思うんですよね。


閑話休題。

さて、まずはある期間にビニールハウスで取得した温度と、最寄りの観測所の温度を突き合わせてみます。温度は、1時間平均の値となっています。


見た目はまずまず。決定係数(R²)も 0.711 ということで、このまま運用できないこともなさそうですが、標準誤差3.86 となっており、もう少し精度を上げたいところです。

線形回帰直線の上部にあってバラけて見えるポイントをどうするかですね。


経験的に、ハウス内の温度に大きく影響するのは日照時間です。

そこで、過去2時間の日照時間(範囲:0~2)が 0~1 となっているときの温度のみをプロットしてみました。状況としては、曇りや雨などの日差しが弱い時と夜間が該当します。


決定係数 0.876、標準誤差 2.09 となり、だいぶよくなりました。


次に、日照時間が 1.1~2 の日差しが強い時のデータです。

ただ、朝夕と昼では同じ日照時間でも温度の上がり方が異なりますので、さらに時間帯で分けてみました。昼が10時~14時で、朝夕はそれ以外です。


朝夕は、決定係数 0.735、標準誤差 2.77。



昼は、決定係数 0.721、標準誤差 2.47。

やはり、朝夕と昼の回帰式では傾きや切片にかなり違いがあります。

決定係数はともに全データのときと大差ないですね。日差しがあるとどうしてもぶれが大きくなるようです。ただ、標準誤差が小さくなったので扱いやすくなりました。


今シーズンは、とりあえずこれで運用してみようと思います。

手順は、以下の①〜④の通りです。アメダスのデータは、以前自作した Web API(https://www.cultivationdata.net/weather-web-api.html#amds)から取得します。


① 最寄りのアメダスから温度(temp)、1時間日照時間(sun1h)、データの時間(dataTime)を取得。

② 1時間前のアメダスのデータにアクセスして1時間日照時間(sun1h)を取得。

③ 2時間日照時間と時間帯で条件分岐して回帰式を計算。

④ ビニールハウスの温度を推定