気象庁のアメダス(AMeDAS: Automated Meteorological Data Acquisition System 自動気象データ収集システム)のデータはWeb APIで提供されています。
入口はいくつかありますが、例えば地図を拡大して自分の知りたい場所を探してクリックすると、一覧表(1時間ごと・10分ごと)やグラフを見ることができます。
例えば私の住んでいる三重県津市をクリックすると、https://www.jma.go.jp/bosai/amedas/#area_type=offices&area_code=240000&amdno=53133&format=table1h&elems=53414 というページが現れます。この URL に含まれる amdno=53133
により、津市のアメダスの番号が 53133 であることがわかります。
今日の早朝は大雨でしたので、そのデータを調べてみましょう。53133 という地点の2022年8月6日3時以降のデータは https://www.jma.go.jp/bosai/amedas/data/point/53133/20220806_03.json というJSONファイルに含まれています。時刻部分は 00、03、06、……、21 のように3時間ごとになっており、一つのファイルに3時間分のデータが入っています。
このデータを取得し、10分降水量のグラフを描いてみましょう:
import requests import pandas as pd import matplotlib.pyplot as plt url = "https://www.jma.go.jp/bosai/amedas/data/point/53133/20220806_03.json" data = requests.get(url).json() t = [pd.to_datetime(k) for k in data.keys()] x = [data[k]['precipitation10m'][0] for k in data.keys()] plt.plot(t, x, "o-") plt.xlabel("日時") plt.ylabel("10分降水量")
なお、このAPIで取得できるデータは限られています。古いデータは過去の気象データ・ダウンロードから行えます。
2022年7月2〜4日に起きたKDDIの大規模通信障害で、アメダスデータの2022-07-02 01:40〜2022-07-04 16:30のうち5%が失われました(『日経コンピュータ』2022-09-15 p.008参照)。
参考: