2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

環境省の暑さ指数APIで「今日の熱中症リスク」を機械可読で取る【kurashi-skill Day 20】

2
Last updated at Posted at 2026-09-30

9月も終わりだというのに、昼間はまだ30℃近くある。「熱中症、もういいでしょ」と思いたいところだけど、救急搬送は10月まで続く。僕のエージェントに「今日、外で走っても大丈夫?」と聞けるようにしたくて、環境省の熱中症予防情報サイトのデータを取りに行った話をする。

起: 暑さ指数(WBGT)は公開データ

暑さ指数(WBGT)は、気温・湿度・日射・輻射熱から熱中症リスクを表す指標で、環境省が全国の観測所分を公開している。しかもログインもAPIキーもいらない。kurashi-skillの収録条件(ログイン不要・公式データ・読み取りのみ)にぴったりだ。

承: まず旧サービスの404から

検索で上位に来る手順どおり、https://www.wbgt.env.go.jp/prev15WG/dl/yohou_20260926.csv にアクセスしたら404。実況値のURLも404。どうやら直ファイルのCSV配信は終わっていた。

サイトの「データダウンロード」ページを読むと、APIの仕様変更の告知があり、wbgt_data_api_service_manual.pdf(393,925バイト、第1.1版・2026年6月24日掲載)という公式仕様書に行き着いた。現行はAPI v1で、レスポンスはJSONだ。

  • 予測値: https://www.wbgt.env.go.jp/api/v1/getForecastData
  • 実況値: https://www.wbgt.env.go.jp/api/v1/getSurveyData
  • 地点マスタ: https://www.wbgt.env.go.jp/man15NH/wbgt_point_master-20260515.csv

2026-09-26の実測: 地点マスタは130,112バイトで865地点(+ヘッダ)。UTF-8・BOMつき。予測APIは発表時刻(05/11/17時の1日3回)を指定すると、3時間ごと約57時間先まで返る。東京(地点番号44132)で19件来た。

転: 罠が3ついた

罠1: 値は10倍。 予測APIの forecast_val は "210" のような文字列で、これは21.0℃の意味。うっかり「今日のWBGTは210℃」と答えるところだった。地球が燃える。

罠2: pref_cds はJIS都道府県コードではない。 東京=13と思って pref_cds=13 を渡したら、地点番号13061系(東京ではない)が返ってきた。東京は44。どうやらアメダス観測所番号の上位ブロック番号の体系らしい。HTTP 200で正常にデータが返る分、たちが悪い。都道府県で絞りたいときは、地点マスタで地点番号を引いて wbgt_nos を使うのが安全だ。

罠3: 地点マスタのCSVは, (カンマ+空白)区切り。 ヘッダもデータも各フィールドの先頭に空白が入る。PythonのDictReaderで素直に読むとキーが Latitude になってKeyErrorを食らう。キーをstripしてから使おう。

ついでに、実況APIの推定値には配信ラグがある。未明に前日の特定時刻を絞って取ると空が返ることがある。エラーではないので、日単位で取るのがいい。

結: エージェントが「外、やめとき」を言えるようになった

ここまでを lookup.py にまとめた。地点マスタをキャッシュし、緯度経度から最寄り地点を探して、予測を環境省の5段階(危険31以上/厳重警戒28-31/警戒25-28/注意21-25/ほぼ安全21未満)つきで表示する。

$ python3 heatstroke/lookup.py --lat 35.68 --lon 139.69
# 最寄り: 東京 (44132) 約5.3km
# 発表 2026/09/25 17:00:00 / 地点 44132 / 19件
2026/09/26 09:00:00  20.0℃  ほぼ安全

(2026-09-26実測。9月下旬の東京はもう「ほぼ安全」だった。サービス期間は概ね4月下旬〜10月なので、来春また値が動き出す。)

今日の持ち帰りは3つ。

  1. 公開データのURLは推測しない。 404が返ったら、そのサイトの公式の仕様書・告知を先に探す。今回はPDFの仕様書が全部答えてくれた。

  2. コード系パラメータはJISとは限らない。 渡す前に、答えのわかっている地点(今回なら東京)で往復テストする。200が返っても中身が違う県かもしれない。

  3. 古い手順は検索上位に残る。 公共データの世界ではサービス刷新がよくある。手順記事の日付と、公式サイトの更新履歴を見る癖をつけたい。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?