室内の暑さ指数WBGTを簡単に求めてみた(2022/06/25追記)
BOSCHの温度・湿度・気圧センサBME280を使って屋内外のデータを継続的に取っているのですが、これを使って熱中症リスクの有効な指標とされている暑さ指数(湿球黒球温度WBGT)が求められないものか、ちょっと調べました。
本来のWBGTは仮想黒体の球などを用意して、日射や輻射の黒球温度・湿球温度・乾球温度を用いて測定するということで、簡単には作れそうにありません。
一般的に観測しているデータから推定する方法を書いた論文も見つけましたが、こちらはこちらで全天日射量や風速を用いており、やはり簡単にはいきません。 他方、Wikipediaの湿球黒球温度項の冒頭にある換算表が分かりやすいものの、その適用範囲が分からなかったので出典を辿ったところ、これは日本生気象学会の熱中症予防研究委員会というページに掲載されている、「日常生活における熱中症予防指針Ver.3」(リンク先PDF)の図2だと分かりました。【2022/06/25リンク先修正、詳細は下記】
ここには「この図は,気温と湿度から簡単に WBGT を推定するために作成したものであり,室内で日射がない状態(黒球温度が乾球温度と等しい)としたので,正確な WBGT 値と異なる場合もある.」と記されており、よって日射を遮った屋内の温湿度データを用いれば概算値としては十分使えるだろうと考えました。 図2の内容を表計算ソフトを使って入力し、csv出力してPythonの2次元リストに整形して、温湿度データからWBGT値を求めるPythonスクリプトを作りました。ご笑覧下さい:
Python3(3.5.3と3.7.7)だけで動作確認しています。
動作および結果などについて、ご利用は自己責任で。 室温の範囲は21〜40[°C]、湿度の範囲は20〜100[%RH]で、浮動小数点数を想定していますが、整数でも大丈夫です。温湿度の範囲を外れると99[°C]を返します。
湿度の後にvで始まる文字列を入れると、WBGTの値だけでなくメッセージを付加します。なお「レベル」は統一された基準が無いようなので、私が分かりやすいと思った環境省の実況ページに合わせました。 さて、
私のところでは、スイッチサイエンスさんのサンプルプログラムをベースにして、次のフォーマットでデータ出力するようにしています:
2020, 8, 16, 17, 0, 11, 32.02, 61.96, 995.33
(年, 月, 日, 時, 分, 秒, 温度, 湿度, 気圧)
これを出すスクリプト(thp.py)から直接WBGT値を求めるには、コンソール(私はbash)で、
./wbgt.py $(./thp.py | awk -F',' '{print $7 $8}') v
としてフィールド7, 8のデータを渡せば、
暑さ指数WBGT値は29°Cで、厳重警戒レベルです
と出ます。
ログファイルからだと、例えば
tail -1 ログファイル名
をawkに渡せばよく、いまやってみたところ、
居間:
暑さ指数WBGT値は29°Cで、厳重警戒レベルです
窓の外(日陰):
暑さ指数WBGT値は31°Cで、危険レベルです
と出ましたので、まだクーラーが切れません… ところで、参照した図表の注釈(日射が無ければ黒球温度が乾球温度と等しいとみなす)とWBGT定義式より、乾球温度と相対湿度と気圧を用いて湿球温度を求めたら定義に則った計算ができるなと思ったのですが、これには「湿り空気線図」についてしっかり勉強しないといけないようで、考えただけで熱が出そう(例えば、空気調和・衛生工学会誌の1951年8月号←リンク先PDF)。ちょっと涼しくなってからかな。 パドラッパ from MacBook Air (2017) 【2022/06/25追記】 日本生気象学会ホームページの構成が変わってリンクが切れていたのを修正しました。なお「日常生活における熱中症予防指針」が更新されていますが、内容を確認できていないので指針への直接リンクはVer.3のままです。現時点での最新は2022/5/25発行のVer.4でした。
本来のWBGTは仮想黒体の球などを用意して、日射や輻射の黒球温度・湿球温度・乾球温度を用いて測定するということで、簡単には作れそうにありません。
一般的に観測しているデータから推定する方法を書いた論文も見つけましたが、こちらはこちらで全天日射量や風速を用いており、やはり簡単にはいきません。 他方、Wikipediaの湿球黒球温度項の冒頭にある換算表が分かりやすいものの、その適用範囲が分からなかったので出典を辿ったところ、これは日本生気象学会の熱中症予防研究委員会というページに掲載されている、「日常生活における熱中症予防指針Ver.3」(リンク先PDF)の図2だと分かりました。【2022/06/25リンク先修正、詳細は下記】
ここには「この図は,気温と湿度から簡単に WBGT を推定するために作成したものであり,室内で日射がない状態(黒球温度が乾球温度と等しい)としたので,正確な WBGT 値と異なる場合もある.」と記されており、よって日射を遮った屋内の温湿度データを用いれば概算値としては十分使えるだろうと考えました。 図2の内容を表計算ソフトを使って入力し、csv出力してPythonの2次元リストに整形して、温湿度データからWBGT値を求めるPythonスクリプトを作りました。ご笑覧下さい:
ダウンロード - wbgt.py
★2020/08/19 15:34
表のミスタイプに気付いて差し換えました★
Python3(3.5.3と3.7.7)だけで動作確認しています。
動作および結果などについて、ご利用は自己責任で。 室温の範囲は21〜40[°C]、湿度の範囲は20〜100[%RH]で、浮動小数点数を想定していますが、整数でも大丈夫です。温湿度の範囲を外れると99[°C]を返します。
湿度の後にvで始まる文字列を入れると、WBGTの値だけでなくメッセージを付加します。なお「レベル」は統一された基準が無いようなので、私が分かりやすいと思った環境省の実況ページに合わせました。 さて、
私のところでは、スイッチサイエンスさんのサンプルプログラムをベースにして、次のフォーマットでデータ出力するようにしています:
2020, 8, 16, 17, 0, 11, 32.02, 61.96, 995.33
(年, 月, 日, 時, 分, 秒, 温度, 湿度, 気圧)
これを出すスクリプト(thp.py)から直接WBGT値を求めるには、コンソール(私はbash)で、
./wbgt.py $(./thp.py | awk -F',' '{print $7 $8}') v
としてフィールド7, 8のデータを渡せば、
暑さ指数WBGT値は29°Cで、厳重警戒レベルです
と出ます。
ログファイルからだと、例えば
tail -1 ログファイル名
をawkに渡せばよく、いまやってみたところ、
居間:
暑さ指数WBGT値は29°Cで、厳重警戒レベルです
窓の外(日陰):
暑さ指数WBGT値は31°Cで、危険レベルです
と出ましたので、まだクーラーが切れません… ところで、参照した図表の注釈(日射が無ければ黒球温度が乾球温度と等しいとみなす)とWBGT定義式より、乾球温度と相対湿度と気圧を用いて湿球温度を求めたら定義に則った計算ができるなと思ったのですが、これには「湿り空気線図」についてしっかり勉強しないといけないようで、考えただけで熱が出そう(例えば、空気調和・衛生工学会誌の1951年8月号←リンク先PDF)。ちょっと涼しくなってからかな。 パドラッパ from MacBook Air (2017) 【2022/06/25追記】 日本生気象学会ホームページの構成が変わってリンクが切れていたのを修正しました。なお「日常生活における熱中症予防指針」が更新されていますが、内容を確認できていないので指針への直接リンクはVer.3のままです。現時点での最新は2022/5/25発行のVer.4でした。
| 固定リンク | 0
コメント