実装ガイド · 気象庁のデータ
ガイド更新:。 記事ごとの測定日・仕様確認日は、リンク先に記載しています。
気象庁JSONの使い分け
予報・観測・地震・警報から選ぶ
明日の天気と、いま観測された気温では、読むファイルも地域の単位も異なります。作りたい機能から既存の実装例を選び、保存データで区域と時刻の対応を確かめてから取得処理へ進めます。
ここで扱うJSONは気象庁ホームページが使うファイルです。公開されたAPI仕様として保証されたものではなく、URLや内容は変わり得ます。各実装例の取得日と検証範囲はリンク先に記載しています。
作りたいものに合うデータを選ぶ
予報
これからの天気
- 地域・情報の単位
- 府県予報区のファイル内に複数の区域・時系列
- 残す時刻
- 発表時刻と、各値の予報対象時刻
- 取り違えやすい点
- 配列の位置だけで区域を決めない。短期と週間を分ける。
アメダス
実際に観測された気温・雨量
- 地域・情報の単位
- 観測所番号
- 残す時刻
- 観測時刻。最新時刻を取得日時と区別する
- 取り違えやすい点
- 観測所で項目が異なる。欠測を0℃・雨量0にしない。
地震情報
地震の発表を探す
- 地域・情報の単位
- 発表一覧と各情報のファイル
- 残す時刻
- 発表時刻と地震の発生時刻
- 取り違えやすい点
- 同じ地震に複数の発表がある。一覧の先頭だけで詳細を確定しない。
警報・注意報
地域の警報・注意報を読む
- 地域・情報の単位
- 府県予報区のファイルから市区町村等を選ぶ
- 残す時刻
- 種類ごとの報にある発表時刻
- 取り違えやすい点
- r8形式は全ての報を読む。解除と発表中を分け、取得失敗を「なし」にしない。
まず、保存した地域コードを1件読む
市区町村と上位の予報区の対応表(JSON)を保存します。これは2026年10月29日に取得した気象庁の地域情報をCodeAgentが加工した表で、最新の天気や警報は入っていません。
次のコードを同じフォルダの read-area.mjs に保存し、Node.jsで node read-area.mjs を実行します。追加パッケージは不要で、実行時の外部通信もありません。
import { readFileSync } from 'node:fs';
const data = JSON.parse(readFileSync('jma-area-class20-2026-10-29.json', 'utf8'));
const area = data.rows.find(row => row.class20_code === '1310100');
if (!area) throw new Error('保存データに地域がありません');
console.log(JSON.stringify(area, null, 2)); 千代田区の行が1件表示されます。class20_code が 1310100、office_code が 130000 であることを確認してください。前者は市区町村等、後者は上位の府県予報区です。この2つを同じコードとして使わないことが最初の確認になります。
続いて地域コード検索ツールで自分の地域を探し、親子関係と予報ファイルの例外を検証した記録を参照します。CSV版と出典・取得日時もツールのページから確認できます。
取得処理へ進む前の確認
- 取得元と時刻を残す。取得URL、取得日時、本文の発表・観測時刻を別々に保存します。
- 対象地域を照合する。地域コード・観測所番号・予報区を混ぜず、本文に対象があるか確認します。
- 失敗と値なしを分ける。HTTPエラー、JSON以外、未対応の形、欠測を正常な0や「警報なし」へ変換しません。
- 前後の本文を保存して比べる。更新後の値や形はJSON差分ツールで確認できます。差があるだけでは訂正や異常とは断定しません。
警報・注意報の例は氾濫に関する別ファイルを含みません。避難の判断には気象庁の最新の防災情報と自治体の発表を使ってください。
公式資料と確認範囲
2026年11月4日に気象庁ホームページの利用条件と新たな防災気象情報の案内を確認しました。出典を表示し、加工した場合は加工したことも明示します。利用条件の確認日をJSONの再取得日とはしていません。
上の最小例は公開中の保存JSONで実行しました。リンク先の記事のAPI取得結果は各記事の取得日時点のものです。ほかのデータ源は公共データAPI一覧から選べます。