#初めに
動作については無保証です。
#データ取得
以下のリンクは"東京"地点のjsonデータです。
jsonの前についている数字はエリアコードになります。
エリアコードは、この方の記事内から参照できます。
気象庁JSONデータ
なお、5時、11時、17時にデータが更新されます。
#データ構造
気象庁の解説を見ながらデータを見ていきます。
{
"firstAreaCode": "130010",
"publishingOffice": "気象庁",
"reportDateTime": "2021-06-18T17:00:00+09:00",
"infoType": "発表",
"areaTimeSeries": {
"timeDefines": [
{"dateTime": "2021-06-18T18:00:00+09:00","duration": "PT3H"},
{"dateTime": "2021-06-18T21:00:00+09:00","duration": "PT3H"},
{"dateTime": "2021-06-19T00:00:00+09:00","duration": "PT3H"},
{"dateTime": "2021-06-19T03:00:00+09:00","duration": "PT3H"},
{"dateTime": "2021-06-19T06:00:00+09:00","duration": "PT3H"},
{"dateTime": "2021-06-19T09:00:00+09:00","duration": "PT3H"},
{"dateTime": "2021-06-19T12:00:00+09:00","duration": "PT3H"},
{"dateTime": "2021-06-19T15:00:00+09:00","duration": "PT3H"},
{"dateTime": "2021-06-19T18:00:00+09:00","duration": "PT3H"},
{"dateTime": "2021-06-19T21:00:00+09:00","duration": "PT3H"}
],
"weather": ["くもり","くもり","くもり","くもり","雨","くもり","雨","くもり","雨","雨"],
"wind": [
{"direction" : "南", "speed": 3, "range": "6 9"},
{"direction" : "南", "speed": 2, "range": "3 5"},
{"direction" : "南", "speed": 2, "range": "3 5"},
{"direction" : "南", "speed": 2, "range": "3 5"},
{"direction" : "南", "speed": 2, "range": "3 5"},
{"direction" : "南", "speed": 3, "range": "6 9"},
{"direction" : "南", "speed": 3, "range": "6 9"},
{"direction" : "南", "speed": 3, "range": "6 9"},
{"direction" : "南", "speed": 2, "range": "3 5"},
{"direction" : "南", "speed": 2, "range": "3 5"}
]
},
"pointTimeSeries": {
"pointNameJP": "東京",
"pointNameEN": "Tokyo",
"timeDefines": [
{"dateTime": "2021-06-18T18:00:00+09:00"},
{"dateTime": "2021-06-18T21:00:00+09:00"},
{"dateTime": "2021-06-19T00:00:00+09:00"},
{"dateTime": "2021-06-19T03:00:00+09:00"},
{"dateTime": "2021-06-19T06:00:00+09:00"},
{"dateTime": "2021-06-19T09:00:00+09:00"},
{"dateTime": "2021-06-19T12:00:00+09:00"},
{"dateTime": "2021-06-19T15:00:00+09:00"},
{"dateTime": "2021-06-19T18:00:00+09:00"},
{"dateTime": "2021-06-19T21:00:00+09:00"},
{"dateTime": "2021-06-20T00:00:00+09:00"}
],
"temperature": [24,23,23,22,21,22,24,24,23,22,22],
"maxTemperature": ["","","","","",24,24,24,24,"",""],
"minTemperature": ["","",21,21,21,21,"","","","",""]
}
}
firstAreaCode
:取得したデータのエリアコード
publishingOffice
:発行元
reportDateTime
:発行された時刻。5時、11時、17時のいずれかの時間になる。
infoType
:情報の種別
areaTimeSeries
:天気データ
areaTimeSeries.timeDefines
:時刻データ
areaTimeSeries.timeDefines.dateTime
:個別の時刻データ
areaTimeSeries.timeDefines.duration
:データが持続する時間。PT3Hは3時間持続の意と思われる。
areaTimeSeries.weather
:天気データ
areaTimeSeries.wind
:風の情報
areaTimeSeries.wind.direction
:風向
areaTimeSeries.wind.speed
:アイコン表示の色変え用
areaTimeSeries.wind.range
:最大風速の範囲
pointTimeSeries
:気温データ
pointTimeSeries.pointNameJP
:エリアの日本語名
pointTimeSeries.pointNameEN
:エリアの英語名
pointTimeSeries.timeDefines
:時刻データ
pointTimeSeries.timeDefines.dateTime
:個別の時刻データ
pointTimeSeries.temperature"
:気温
pointTimeSeries.maxTemperature
:最高気温
pointTimeSeries.minTemperature
:最低気温
#データの取り扱い時の注意
###areaTimeSeries###
気象庁の解説にも記載されている通り、
天気データはdateTime
に記載されている時刻間の予報データになります。
{"dateTime": "2021-06-18T18:00:00+09:00","duration": "PT3H"},
の時刻に対応したデータは
"くもり"と{"direction" : "南", "speed": 3, "range": "6 9"},
であり6/18 18:00~21:00間の予報データとなります。
###pointTimeSeries###
気温データはdateTime
に記載されている時刻のデータとなります。
{"dateTime": "2021-06-19T12:00:00+09:00"},
の時刻に対応したデータは
"24"
であり、6/19 12:00の予報データになります。
また、最高気温と最低気温については、気温とは別にデータが設けられており、
その値になりうる時刻に対応した配列内の要素のみに、数値データが格納されています。
ただし、気温の値と最高気温および最低気温の値は必ずしも一致しないため、
通常使用するのは気温データ、計算時に予測範囲を広げる場合は最高気温及び最低気温のデータを使用する
といった使い方が良さそうです。