当サイトの天気予報について
飛騨高山ライブカメラには岐阜県飛騨地方の天気予報を表示していますが、この天気予報は気象庁が発表している情報をもとに表示しています。デザインは独自の画像等を作成して使用しておりますが、情報は改変せずそのまま表示しています。(「晴後曇」を一部ひらがななどに置き換えて「晴れのちくもり」など読みやすいように直してはいます。)
政府標準利用規約に準拠すれば使用できるそうなので特に問題はないと考えます。
やり方としてはの岐阜県飛騨地方の天気情報のHTMLを定期的にダウンロードし、そこから必要な情報を抜き出して整形して表示するという、いわゆるスクレイピング的な手法であり、あんまりスマートな方法ではなかったのですが、そういうやり方しかできませんでした。
なので公式で天気予報のXMLとか用意してくれたら良いなとは思っておりました。(気象庁の情報をXMLにして公開されているサイトもあります。)
民間の気象会社も多数ありますし、気象庁がXML等でデータを配信すると、いわゆる民業圧迫につながるので反対されているとかなんとか聞いたような気がしますが、そもそも国の機関なのだし、国民が利用しやすいようデータを配信してくれても良いのではないかと思っていました。(NHKの番組のインターネット配信も既存テレビ局に反対されていたと思いますが、普通にやってますし…)
そういえば気象庁のサイトに広告を載せるというのはどうなったのでしょうか?
(広告を募集・表示がされるようになっていました。2021.7.21追記)
気象庁のサイトが大幅リニューアル
2021年2月に気象庁のウェブサイトが大幅に変わりました。ありがたいことに天気の情報が、jsonで取得できるようになったのです。これをAPIといっていいのか私にはよく分かりませんが、例えば岐阜県の天気情報などは以下から取得できます。
1. 天気予報(岐阜県詳細 明後日までと週間)
2. 明後日までの天気概況(岐阜)
3. 週間天気概況(名古屋)
3番目のは全国の主な地点のみで岐阜はありません。2と3は天気の概況なので、1を使います。
このjson、ぱっと見ただけでは何が書いてあるのかよく分かりませんが、この中に岐阜県内の2地方(美濃地方と飛騨地方)の「今日」「明日」の天気の詳細(天気概況・朝の最低と日中の最高気温・風向き・1日を4つの時間帯に分けた降水確率 など)と、岐阜県全体の週間天気予報が入っています。
最後の210000が岐阜県のコードということになります。数字を変えれば他の都道府県の情報も当然見られますので興味のある方は調べてみてください。(130000が東京)
このjsonには、定義された「weatherCodes」があります。その情報は、ここにアクセスして、chromeウェブブラウザのデベロッパーツールを開き、DevTool のコンソールからForecast.Const.TELOPSと入力すると見られます。
情報は以下のツイートを参考にさせていただきました。
weatherCode は DevTool のコンソールから Forecast.Const.TELOPS と入力すると全部見れる
— Torishima (@izutorishima) February 24, 2021
JavaScript インスタンスがグローバルになってて助かった pic.twitter.com/RKiYC8oO00
以下は一部です。
weatherCodesには全部で118の天気情報があります。全ての天気はこの118種で表しているということになります。
例えば、「210」は、天気の昼用画像アイコンは「210.svg」、夜用の画像アイコンが「610.svg」で次の3桁の数字は大まかな天気(100は晴、200はくもり、300は雨、400は雪)、そして天気の日本語表記「曇後時々晴」と英語の表記「CLOUDY, PARTLY CLOUDY LATER」と5つの情報が含まれています。
「210」と「211」の天気は「曇後時々晴」と「曇後晴」でちょっと違いますが、画像アイコンは同じということが分かります。夜用の画像が昼用のものと同じなのがあるのは、晴れていない場合は分ける必要がないからです。(太陽か月が出ている場合のみ夜用が必要、雨や雪のときは必要なし)。アイコン画像の数は全部で43種類です。
以前はもっと数が多く、130種類以上のアイコンが使われていました。中には全く同じ画像なのに番号が違うものもあり、なぜなのか私には分かりませんが、現在はすっきり整理された印象です。天気のアイコン画像は、気象会社によっても種類に違いがあります。
例として、下の画像は以前使っていた「晴時々雪か雨」のアイコンです。現在は使われていません。
weatherCodesは、天気を表示するときに使うデータベースで、数字から参照して使えということですね。
表示について
jsonからデータを取得できるようになったので、あとはそこから必要な情報を抜きだし、天気の表示関係はweatherCodesを参照して、サイトに表示します。
PHPでやっているので、jsonはPHPの配列に直してから情報を取り出しています。
天気予報の更新時間が、5時、11時、17時の1日3回で、17時以降は画像アイコンが夜のものに(太陽が月へ)変わります。夜は背景が暗くなります。暴風雨・暴風雪のときは背景がグレーになり、猛暑(最高気温が32℃以上)になると背景が暑い感じになる(はずです)。
午前0時になると、メインは次の日(当日)の情報を表示するようにしています。
天気情報を見て、なんとなく疑問なこと
その1
アイコン画像の名前が規則から外れたようなものが存在する。規則的には1=晴、2=曇、3=雨、4=雪なのですが…
「202」は「曇時々雨」(なぜ203ではないのか)
「303」は「雨時々雪」(なぜ304ではないのか)
「313」は「雨のち曇」(なぜ312ではないのか)…。
多分同じような数字だと間違えやすいので、(例えば、302と203とか)間違えにくくするためなのかもしれませんが、本当のところは分かりません。
その2
朝5時に更新されたときに、すでに0-6時の降水確率は「 – 」(表示無し)になってしまいます。当日の0-6時の降水確率のマスがあっても表示されることは無いのです。(同じように朝の最低気温も当日のものは表示されない。)
当ライブカメラでは0時をすぎると更新される5時までは、前日分の明日の情報(つまり日付が変わって今日の情報…ややこしいな)を表示するようにしています。
もし日付が変わる頃にも更新してくれればこちらとしては嬉しいのですが…(ほとんどの人は寝てる時間帯なのでほぼ必要ないとは思いますが…)
その3
週間天気予報は、11月1日~3月31日だけ飛騨と美濃で分けて表示されます。それ以外の期間は岐阜市の情報になってしまいます。これはtwitterで教えてくれた人がいて分かりましたが、1年を通して分けてほしいなあと思います。難しいんですかね…。以下はその詳細です。
夏でも飛騨と美濃では天気も気温も結構違うよ!っていう人が多いと思います。他の地域も似たような感じではないでしょうか…。
コメント