本エントリでは、天気情報ソースに「OpenWeatherMap」を選んだ場合の、設定方法とエスケープキャラクタについて解説します。
目次
- 設定画面
- 天気情報の種類と時間属性
- エスケープキャラクタと展開文字
- 「気温」に関する展開文字
- 「湿度」に関する展開文字
- 「降水量・降雪量」に関する展開文字
- 「気圧」に関する展開文字
- 「雲」に関する展開文字
- 「風」に関する展開文字
- 「天気概況」に関する展開文字
- その他の展開文字
- 天気概況文と番号の一覧
設定画面
『Glaeja』の環境設定で、[天気情報の取得先]に「OpenWeatherMap」を選んだ後、[天気情報取得の設定...]をクリックすると、以下の「OpenWeatherMap」の設定画面に移動します。
「OpenWeatherMap」の設定画面 |
画面の一番下には、「OpenWeatherMap」が提供する天気データが準拠するクリエイティブ・コモンズ・ライセンスとそのリンクが表示されています。
天気情報の取得先に「OpenWeatherMap」を選んだ場合、天気データの更新間隔は「1時間」固定です。
APIキー
『Glaeja』で「OpenWeatherMap」からの天気データを利用するには、ユーザー各自でデータ取得のための「APIキー」を取得し設定していただくことになっています。
(本来は「アプリ開発側のAPIキーで取得した天気データを自前サーバを介してアプリユーザーに二次配布する」という形式にするものなのでしょうが、そのための初期投資コストを払うのは、しがない個人開発者にはツラいです......)
拙エントリ「"OpenWeatherMap"アカウントの作成とAPIキーの取得方法」を参考にして、ユーザー各自でAPIキーを取得してくださるようお願いします。
設定画面の[APIキー]をクリックし、表示されたダイアログに取得したAPIキーを入力してください。
APIキー入力ダイアログ |
入力後に[OK]をクリックすると、そのAPIキーで「OpenWeatherMap」のサーバに接続して、天気データ取得を試みます。
入力したAPIキーが正しければ、天気データ取得に成功し、以下のようなポップアップが表示されます。
天気データ取得に成功 |
正しくないAPIキーの場合には、以下のようなポップアップとなりますので、再入力してください。
天気データ取得に失敗 |
正しいAPIキーを入力すると、下にある[位置指定の方法]と[位置]を設定することができるようになります。
位置設定の方法
「OpenWeatherMap」からの天気データで、参照する地点の位置を設定する方法には、以下リスト画面にある3つの方法があります。
位置指定方法の選択リスト |
都市ID
都市IDによる位置指定 |
「OpenWeatherMap」が内部で使用している都市のID番号で直接に指定する方法です。設定したい地点に相応する都市IDを知っているのであれば、これが一番確実な方法ですが、そのIDを知る方法が面倒なのでオススメはしません。
この「都市ID」で位置を指定した場合、その地点の都市名が[都市と国名]に、その地点の緯度・経度が[緯度と経度]に自動的に設定されます。
都市と国名
都市と国名による位置指定 |
「Kamata, JP」のように、設定したい地点の都市名と国名(※必ず2文字の略号)をコンマで区切って入力します。「OpenWeatherMap」に登録されている地点のなかから、入力した都市名と国名に(よくわからないナゾのアルゴリズムで)最も似たものが選ばれるようです。
[都市ID]と[緯度と経度]は、選ばれた地点のものが自動的に設定されます。
※ ちなみに、2016-10-03の時点で、日本国内の約1400箇所の地点が登録されているようです。
一見これが一番直感的な指定方法なのですが、「都道府県名」のような副次的な情報を入力できませんし、表示もされませんので、本当に期待していた地点に設定されているのかわかりにくい、という問題もあります(位置指定の方法を[緯度と経度]に変更して、それらから地図を使って確認することは可能ですが...)。
※ ちなみに、上記のように「Kamata, JP」と設定した場合、そこは実は「東京都大田区蒲田」ではありません。これは「都市ID:2112903」である「福島県田村市船引町」となります(これがなぜ Kamata なのかは不明)。実際に「東京都大田区蒲田」辺りを設定したい場合には「都市ID:6419432」を設定する必要があります。しかし、そこの都市名である「Showajima, JP」を設定すると、これは「都市ID:1865485」である「東京都中央区佃二丁目」となってしまいます。なんというか、期待するだけ無駄な気もしますね...
緯度と経度
緯度と経度による位置指定 |
これは、入力した緯度・経度に最も近い「OpenWeatherMapに登録されている地点」を探索して、そこに設定する方法となります。
[都市ID]と[都市名と国名]は、探索された地点のものが自動的に設定されます。
設定したい地点の緯度・経度をGoogleマップなどで調べて入力すれば、確実にその場所に近い地点を設定できるので、この方法が一番オススメです。ただ、この方法には1つだけ難点というか分かりにくい点があります。それは、入力した緯度・経度と、設定された地点の実際の緯度・経度は若干異なっている、というものです。
例えば、「東京都大田区西蒲田のJR蒲田駅前」辺りを設定しようと「緯度:35.562622、経度:139.715354」を設定したとします。これで取得される天気データは、登録されている地点のうち最も近い「都市ID:6419432、東京都大田区昭和島」のものとなるのですが、この地点そのものは「緯度:35.571671、経度:139.750000(東京モノレールの昭和島駅辺り)」となっています。まあ気になるほどの違いでもないのですが、設定画面に表示されている緯度と経度は、「入力された緯度と経度」であって、「参照している登録地点の緯度と経度」ではない、という事実を忘れないようにしてください。
天気情報の種類と時間属性
天気情報は、種類(天気概況文、予想気温、予想降水量、...)と時間属性(ある時間帯、ある日)をもっています。「OpenWeatherMap」において、これらの意味するところは「ひとくち予報 in Feed」のものとは異なっていますので注意してください。
時間属性の種類
『Glaeja』では「OpenWeatherMap」から最大5日間の天気データを取得します。この天気データが「どの時間のものか」を示すのが時間属性です。
「ある時間帯」の指定方法
「OpenWeatherMap」では、一日を3時間ずつ8等分しており、その1つ1つを「時間帯」と呼びます。
例えば、「%M%」という展開文字は「現時刻を含む時間帯の予想気温」を表示します。「%MM%」と展開文字を2つ並べると「現時刻を含む時間帯の次(3時間後)の時間帯の予想気温」が、また「%MMM%」と3つ並べると「現時刻を含む時間帯の次の次(6時間後)の時間帯の予想気温」が表示されます。このように、現時刻を含む時間帯を基準として、展開文字を複数個並べることで続く時間帯が指定されることになります。
「ある日」の指定方法
例えば、「%m%」という展開文字は「現時刻を含む日(つまり今日)のすべての時間帯の予想気温」を表示します。表示は、「19.01/18.73/17.56/18.22/21.31/23.39/23.62/24.24」のように、各時間帯でのデータが「/(スラッシュ)」で区切られて表示されます。また、午前3時以降に今日のデータを表示させた場合などには、「--/--/17.56/18.22/21.31/23.39/23.62/24.24」のように、過ぎてしまった時間帯のデータは「--」で代替されます。
これも「ある時間帯」と同様に、展開文字を複数個並べることで「次の日」「次の次の日」のすべての時間帯のデータを表示させることができます。
エスケープキャラクタと展開文字
天気情報用エスケープキャラクタ「%」で囲まれた文字(展開文字)は、様々な天気情報に展開・表示されます。ここでは、天気情報ソースとして「OpenWeatherMap」を選んだ場合の展開文字について解説します。
「気温」に関する展開文字
M:ある時間帯における予想気温
m:ある日のすべての時間帯における予想気温
ある時間帯、およびある日のすべての時間帯の予想気温が「℃」単位で表示されます。気温データは「18.73」のように小数点以下2桁まで表示される場合がほとんどですが、1桁だったり整数で表示されることもあります。
H:ある日における予想最高気温
L:ある日における予想最低気温
ある日における予想最高および最低気温が「℃」単位で表示されます。気温データは「19」のように整数で表示されます。
これは、その日のすべての時間帯の予想気温のうちでの最高気温の切り上げ、および最低気温の切り下げを表示するのですが、「今日」の場合は少し特殊な処理をしています。「今日」の過ぎてしまった時間帯の予想気温は不明なため、真の意味での「予想最高気温」「予想最低気温」を知ることはできません。そこで、「明日」の「予想最高気温」「予想最低気温」となる時間帯と同じ時間帯に「今日」も「予想最高気温」「予想最低気温」となっていたはずと考え、その時間帯の予想気温を表示しようとします(その時間帯が過ぎてしまっていたなら「--」で代替します)。そのため、季節の変わり目や天気が急に変わるときなどは、なんか変な表示になることもありますが、気にしないでいただければ幸いです。
「湿度」に関する展開文字
U:ある時間帯における予想湿度
u:ある日のすべての時間帯における予想湿度
ある時間帯、およびある日のすべての時間帯の予想湿度が「%」単位で表示されます。湿度データは「93」のように整数で表示されます。
「降水量・降雪量」に関する展開文字
R:ある時間帯における予想降水量・降雪量
r:ある日のすべての時間帯における予想降水量・降雪量
ある時間帯、およびある日のすべての時間帯の予想降水量ないし降雪量が「mm」単位で表示されます。降水量・降雪量データは「1.04」のように小数点以下2桁まで表示される場合がほとんどですが、1桁だったり整数で表示されることもあります。
「気圧」に関する展開文字
N:ある時間帯における予想気圧
n:ある日のすべての時間帯における予想気圧
ある時間帯、およびある日のすべての時間帯の予想気圧が「hPa」単位で表示されます。降水量・降雪量データは「1015.96」のように小数点以下2桁まで表示される場合がほとんどですが、1桁だったり整数で表示されることもあります。
「雲」に関する展開文字
D:ある時間帯における予想雲量
d:ある日のすべての時間帯における予想雲量
ある時間帯、およびある日のすべての時間帯の予想雲量が「%」単位で表示されます。雲量とは「全天の何%が雲に覆われているか」を表す値です。雲量データは「68」のように整数で表示されます。
「風」に関する展開文字
V:ある時間帯における予想風速
v:ある日のすべての時間帯における予想風速
ある時間帯、およびある日のすべての時間帯の予想風速が「m/s」単位で表示されます。風速データは「2.32」のように小数点以下2桁まで表示される場合がほとんどですが、1桁だったり整数で表示されることもあります。
W:ある時間帯における予想風向(角度表記)
w:ある日のすべての時間帯における予想風向(角度表記)
ある時間帯、およびある日のすべての時間帯の予想風向が「北を0°とする角度」単位で表示されます。風向データは「213.505」のように小数点以下3桁まで表示される場合がほとんどですが、1桁だったり4桁だったりすることもあります。
X:ある時間帯における予想風向(言語表記)
x:ある日のすべての時間帯における予想風向(言語表記)
ある時間帯、およびある日のすべての時間帯の予想風向が「東北東」といった言語表記で表示されます。「ロケール」が日本語なら「東北東」、英語なら「ENE」のように表示されます。
「天気概況」に関する展開文字
T:ある時間帯における天気概況文
t:ある日のすべての時間帯における天気概況文
ある時間帯、およびある日のすべての時間帯の天気概況文が表示されます。「ロケール」によって表示される言語が異なります(詳細はこちらを参照ください)。
B:ある時間帯における天気概況番号
b:ある日のすべての時間帯における天気概況番号
ある時間帯、およびある日のすべての時間帯の天気概況番号が表示されます。この番号は「ひとくち予報 in Feed」のものとは異なる「OpenWeatherMap」独自の番号となっています(詳細はこちらを参照ください)。
C:ある時間帯における天気カテゴリ
c:ある日のすべての時間帯における天気カテゴリ
ある時間帯、およびある日のすべての時間帯の天気カテゴリが表示されます。この天気カテゴリの構造そのものは「ひとくち予報 in Feed」のものと同じなのですが、天気概況文が「ひとくち予報 in Feed」と「OpenWeatherMap」で異なっているため、対応する天気カテゴリも異なったものとなっています。詳細はこちらを参照ください。
その他の展開文字
p:参照している地点の都市名
P:参照している地点の国名
参照している地点の「OpenWeatherMap」に登録されている都市名と国名が表示されます。これは「ロケール」の種類に依らず常に「英語表記」となります。
Q:参照している地点の都市ID
参照している地点の「OpenWeatherMap」に登録されている都市IDが表示されます。
S:ある時間帯の開始日時
s:ある日のすべての時間帯の開始日時
ある時間帯、およびある日のすべての時間帯の開始日時が「yyyyMMddHHmm」の形式で表示されます。
E:ある時間帯の終了日時
e:ある日のすべての時間帯の終了日時
ある時間帯、およびある日のすべての時間帯の終了日時が「yyyyMMddHHmm」の形式で表示されます。
A:参照している地点の緯度
O:参照している地点の経度
参照している地点の「OpenWeatherMap」に登録されている緯度および経度が表示されます。
位置指定に[緯度と経度]を用いた場合に、そこで入力された値が表示されるのではないことに注意してください。「%A%」「%O%」では、入力された緯度・経度に最も近い「OpenWeatherMap」登録地点の緯度と経度が表示されます。
天気概況文と番号の一覧
以下のテーブルに、「OpenWeatherMap」で現れる天気概況番号(%B%)・概況文(%T%)・カテゴリ(%C%)の一覧を記す。
天気概況番号 %B% | 天気カテゴリ %C% | 概況文 %T% | |
---|---|---|---|
日本語 | 英語 | ||
200 | 315 | 弱い雷雨 | thunderstorm with light rain |
201 | 315 | 雷雨 | thunderstorm with rain |
202 | 315 | 強い雷雨 | thunderstorm with heavy rain |
210 | 215 | 弱い雷 | light thunderstorm |
211 | 215 | 雷 | thunderstorm |
212 | 215 | 強い雷 | heavy thunderstorm |
221 | 215 | ときどき雷 | ragged thunderstorm |
230 | 315 | 弱い霧雨で雷を伴う | thunderstorm with light drizzle |
231 | 315 | 霧雨で雷を伴う | thunderstorm with drizzle |
232 | 315 | 強い霧雨で雷を伴う | thunderstorm with heavy drizzle |
300 | 300 | 弱い霧雨 | light intensity drizzle |
301 | 300 | 霧雨 | drizzle |
302 | 300 | 強い霧雨 | heavy intensity drizzle |
310 | 300 | 弱い雨と霧雨 | light intensity drizzle rain |
311 | 300 | 雨と霧雨 | drizzle rain |
312 | 300 | 強い雨と霧雨 | heavy intensity drizzle rain |
313 | 300 | にわか雨と霧雨 | shower rain and drizzle |
314 | 300 | 強いにわか雨と霧雨 | heavy shower rain and drizzle |
321 | 300 | にわか霧雨 | shower drizzle |
500 | 300 | 小雨 | light rain |
501 | 300 | 雨 | moderate rain |
502 | 300 | 強い雨 | heavy intensity rain |
503 | 300 | 非常に激しい雨 | very heavy rain |
504 | 300 | 猛烈な雨 | extreme rain |
511 | 300 | 雨氷 | freezing rain |
520 | 300 | 弱いにわか雨 | light intensity shower rain |
521 | 300 | にわか雨 | shower rain |
522 | 300 | 強いにわか雨 | heavy intensity shower rain |
531 | 213 | ときどきにわか雨 | ragged shower rain |
600 | 400 | 小雪 | light snow |
601 | 400 | 雪 | snow |
602 | 400 | 強い雪 | heavy snow |
611 | 400 | 凍雨 | sleet |
612 | 400 | にわか凍雨 | shower sleet |
615 | 413 | 弱いみぞれ | light rain and snow |
616 | 413 | みぞれ | rain and snow |
620 | 400 | 弱いにわか雪 | light shower snow |
621 | 400 | にわか雪 | shower snow |
622 | 400 | 強いにわか雪 | heavy shower snow |
701 | 200 | もや | mist |
711 | 200 | 煙 | smoke |
721 | 200 | 煙霧 | haze |
731 | 200 | 砂塵旋風 | sand, dust whirls |
741 | 200 | 霧 | fog |
751 | 200 | 降砂 | sand |
761 | 200 | 降塵 | dust |
762 | 200 | 降灰 | volcanic ash |
771 | 300 | スコール | squalls |
781 | 200 | 竜巻 | tornado |
800 | 100 | 快晴 | clear sky |
801 | 100 | 晴れ | few clouds |
802 | 100 | 千切れ雲 | scattered clouds |
803 | 112 | 雲がち | broken clouds |
804 | 200 | 曇り | overcast clouds |
以上
5 件のコメント:
アプデが入ったのでまさかと思ったらそのまさかでした、ありがとうございます<(_ _)>
天気の「%c%」の方がイメージだと表示されないのですが、イメージに対応していないのでしょうか?
当方では表示されるのですが……
「%C%」の大文字小文字を間違ってませんか?
大文字の方は表示されるのですが、小文字の方はイメージ非対応と言う事でしょうか?
上記の記述から、小文字の「%c%」だと、1日分の表示が可能と言う事なのかと思いまして…。
それと、翌日、2日後、3日後等の表記は今の所、ひとくち予報に切り替えるしか無いのでしょうか?
> 小文字の「%c%」だと、1日分の表示が可能と言う事なのかと思いまして…
「イメージ」レイヤーの[ファイル...]のところに
・「%C%」と書いたら、その時間帯の天気に該当するアイコン画像が1つ表示されるので、
・「%c%」と書いたら、今日の全時間帯の各天気に該当するアイコン画像が複数並んで表示されるのではないか
とお考えになられていたのであれば、根本的に考え方が間違っています。
「イメージ」レイヤーは、そんな器用なことができるようには作られていません。
> 翌日、2日後、3日後等の表記は
「OpenWeatherMap」用の「%...%」では、
・(現在時刻から)24時間後(に相当する時間帯)、48時間後(に相当する時間帯)、72時間後(に相当する時間帯)
という記述なら可能です。
コメントを投稿