2011年11月15日火曜日

[Glaeja] Here Comes The Sun

Glaeja』 ver.1.6.0 で追加した天気情報エスケープキャラクタ「%...%」のチュートリアルです。
…といきたいとこなんですが、11月末までまとまったヒマが作れません。

取り急ぎ、「%T%」と「%C%」の一覧だけでも、続きにあげておきます。


気象庁が天気を分類しているテロップ番号は全部で121種類(※末尾の追記を参照)あるんですが、それに対して「%C%」は35種類です。

%C%」における分類の特徴として、
  • 「一時」と「時々」を同じ接続分類「1」にしてある
  • 「朝のうち」等の時間限定を省略
  • 「山沿い」「会場海岸」等の場所限定も省略
  • 「大~」「暴~」等の強さも省略
  • 「霧」は「曇(2)」として分類
  • 「雨か雪」は「雨(3)」に分類
  • 「みぞれ」は「雪(4)」に分類
  • 「雨か雷」「~で雷を伴う」等は全て「雷(5)」に分類
  • 「雷(5)」は接続する天気分類でしか存在しない
などがあります。
%C%」は、天気アイコン表示のためなので、このくらい省略しても問題ないと考えています。

…あ、英語がgdgdなのは突っ込まないでくださいw


テロップ番号
%C%%T%
日本語英語
100 100 fine
101 112 晴時々曇 fine partly cloudy
102 113 晴一時雨 fine partly rain
103 113 晴時々雨 fine partly rain
104 114 晴一時雪 fine partly snow
105 114 晴時々雪 fine partly snow
106 113 晴一時雨か雪 fine partly rain or snow
107 113 晴時々雨か雪 fine partly rain or snow
108 115 晴一時雨か雷雨 fine partly rain or thunderstorm
110 122 晴のち時々曇 fine, later, partly cloudy
111 122 晴のち曇 cloudy after fine
112 123 晴のち一時雨 fine, later, partly rain
113 123 晴のち時々雨 fine, later, partly rain
114 123 晴のち雨 rain after fine
115 124 晴のち一時雪 fine, later, partly snow
116 124 晴のち時々雪 fine, later, partly snow
117 124 晴のち雪 snow after fine
118 123 晴のち雨か雪 rain or snow after fine
119 125 晴のち雨か雷雨 rain or thunderstorm after fine
120 113 晴朝夕一時雨 fine partly rain on morning and evening
121 113 晴朝のうち一時雨 fine partly rain in morning
122 113 晴夕方一時雨 fine partly rain on evening
123 115 晴山沿い雷雨 fine partly thunderstorm at mountains
124 114 晴山沿い雪 fine partly snow at mountains
125 125 晴午後は雷雨 fine, thunderstorm in pm
126 123 晴昼頃から雨 fine, rain in pm
127 123 晴夕方から雨 fine, later rain from evening
128 123 晴夜は雨 fine, later rain in night
129 123 晴夜半から雨 fine, later rain from midnight
130 100 朝のうち霧のち晴 fine after fog in morning
131 100 朝明け方霧 fine partly fog in morning
132 112 晴朝夕曇 fine partly fog on morning and evening
140 115 晴時々雨で雷を伴う fine partly thunderstorm
160 114 晴一時雪か雨 fine partly snow or rain
170 114 晴時々雪か雨 fine partly snow or rain
181 124 晴のち雪か雨 snow or rain after fine
200 200 cloudy
201 211 曇時々晴 cloudy partly fine
202 213 曇一時雨 cloudy partly rain
203 213 曇時々雨 cloudy partly rain
204 214 曇一時雪 cloudy partly snow
205 214 曇時々雪 cloudy partly snow
206 213 曇一時雨か雪 cloudy partly rain or snow
207 213 曇時々雨か雪 cloudy partly rain or snow
208 215 曇一時雨か雷雨 cloudy partly rain or thunderstorm
209 200 fog
210 221 曇のち時々晴 cloudy, later, partly fine
211 221 曇のち晴 fine after cloudy
212 223 曇のち一時雨 cloudy, later, partly rain
213 223 曇のち時々雨 cloudy, later, partly rain
214 223 曇のち雨 rain after cloudy
215 224 曇のち一時雪 cloudy, later, partly snow
216 224 曇のち時々雪 cloudy, later, partly snow
217 224 曇のち雪 snow after cloudy
218 223 曇のち雨か雪 rain or snow after cloudy
219 225 曇のち雨か雷雨 rain or thunderstorm after cloudy
220 213 曇朝夕一時雨 cloudy partly rain on morning and evening
221 213 曇朝のうち一時雨 cloudy partly rain in morning
222 213 曇夕方一時雨 cloudy partly rain on evening
223 211 曇日中時々晴 cloudy partly fine
224 223 曇昼頃から雨 cloudy, rain in pm
225 223 曇夕方から雨 cloudy, later rain from evening
226 223 曇夜は雨 cloudy, later rain in night
227 223 曇夜半から雨 cloudy, later rain in midnight
228 224 曇昼頃から雪 cloudy, snow in pm
229 224 曇夕方から雪 cloudy, later snow from evening
230 224 曇夜は雪 cloudy, later snow in night
231 200 曇海上海岸は霧か霧雨 cloudy partly fog at shore
240 215 曇時々雨で雷を伴う cloudy partly thunderstorm
250 215 曇時々雪で雷を伴う cloudy partly snowstorm
260 214 曇一時雪か雨 cloudy partly snow or rain
270 214 曇時々雪か雨 cloudy partly snow or rain
281 224 曇のち雪か雨 snow or rain after cloudy
300 300 rain
301 311 雨時々晴 rain partly fine
302 312 雨時々止む rain partly cloudy
303 314 雨時々雪 rain partly snow
304 300 雨か雪 rain or snow
306 300 大雨 heavy rain
308 300 雨で暴風を伴う rainstorm
309 314 雨一時雪 rain partly snow
311 321 雨のち晴 fine after rain
313 322 雨のち曇 cloudy after rain
314 324 雨のち時々雪 rain, later, partly snow
315 324 雨のち雪 snow after rain
316 321 雨か雪のち晴 fine after rain or snow
317 322 雨か雪のち曇 cloudy after rain or snow
320 321 朝のうち雨のち晴 fine after rain in morning
321 322 朝のうち雨のち曇 cloudy after rain in morning
322 314 雨朝晩一時雪 rain partly snow on morning and evening
323 321 雨昼頃から晴 rain, fine in pm
324 321 雨夕方から晴 rain, later fine from evening
325 321 雨夜は晴 rain, later fine in night
326 324 雨夕方から雪 rain, later snow from evening
327 324 雨夜は雪 rain, later snow in night
328 300 雨一時強く降る rain partly storm
329 300 雨一時みぞれ rain party sleet
340 400 雪か雨 snow or rain
350 315 雨で雷を伴う thunderstorm
361 421 雪か雨のち晴 fine after snow or rain
371 422 雪か雨のち曇 cloudy after snow or rain
400 400 snow
401 411 雪時々晴 snow partly fine
402 412 雪時々止む snow partly cloudy
403 413 雪時々雨 snow partly rain
405 400 大雪 heavy snow
406 400 風雪強い snowstorm
407 400 暴風雪 snowstorm
409 413 雪一時雨 snow partly rain
411 421 雪のち晴 fine after snow
413 422 雪のち曇 cloudy after snow
414 423 雪のち雨 rain after snow
420 421 朝のうち雪のち晴 fine after snow in morning
421 422 朝のうち雪のち曇 cloudy after snow in morning
422 423 雪昼頃から雨 snow, rain in pm
423 423 雪夕方から雨 snow, later rain from evening
424 423 雪夜半から雨 snow, later rain in night
425 400 雪一時強く降る snow partly storm
426 400 雪のちみぞれ sleety after snow
427 400 雪一時みぞれ snow partly sleety
450 415 雪で雷を伴う snowstorm


2016-09-07 追記:
『Glaeja』ver.4.6.0からは、
「テロップ番号:000」「%C%:000」「%T%:不明(英語では“Unknown”)」
というものが追加されました。
これは、天気情報取得先からのデータの解釈に失敗した場合に用いられます。

19 件のコメント:

  1. 初めまして。
    Glaeja、楽しく使わせていただいています。
    今回の天気情報の実装もとても嬉しいです。

    %T%を英語表示にしたときの表現が
    もう少しナチュラルだったらもっと嬉しいなと思うので、
    表現の提案をさせてください。
    …突っ込まないでって書いてあるのに突っ込んでごめんなさいw

    100 fine
    112 mostly sunny
    113 fine with occasional rain
    114 fine with occasional snow
    115 fine with occasional thundershowers
    122 fine, cloudy later
    123 fine, rain later
    124 fine, snow later
    125 fine with chance of thundershowers later
    200 cloudy
    211 cloudy, occasionally fine
    213 cloudy with occasional rain
    214 cloudy with occasional snow
    215 cloudy with occasional thundershowers
    221 cloudy, fine later
    223 cloudy, rain later
    224 cloudy, snow later
    225 cloudy with chance of thundershowers later
    300 rain
    311 showers with sunny intervals
    312 rain, occasionally stops
    314 rain with occasional snow
    321 rain, fine later
    322 rain, cloudy later
    324 rain, snow later
    315 thunderstorm
    400 snow
    411 snow, occasionally fine
    412 snow, occasionally stops
    413 snow with occasional rain
    421 snow, fine later
    422 snow, cloudy later
    423 snow, rain later
    415 snowstorm

    以上34種です(Orefolderさんのところに投稿されていた一覧は
    100がダブっていて34種類でした)

    長くてすみません。
    ご検討いただけると嬉しいです。

    返信削除
  2. ご提案いただいた文例なんですが、左端の数値は%C%ですか?
    テロップ文(日本語・英語とも)は、%C%ではなく、お天気XMLのテロップ番号に1対1対応しています。

    なので、
    > 113 fine with occasional rain
    %C%==113となるテロップは複数存在します。

    で、英文なんですが、少し言い訳させてくださいw

    > もう少しナチュラルだったらもっと嬉しいなと思うので、

    「英文として自然である」のと「テロップとしてふさわしい」のは違うと考えています。
    例えば、
    > 113 fine with occasional rain
    のように普通の英文なら「時々(一時)」には「occasional(y)」を用います。
    ですが、Androidの天気ウィジェットでは、「partly」を用いていることが多いです(BeautifulWidgets、BeWeather、MinimalWeather、、、)。
    多分「狭い画面に表示するから文字数少ないほうが良い」という理由でしょうね。

    > 122 fine, cloudy later
    「AのちB」に相当する文なんですが、Glaejaでは複数の表現を用いています。

    「晴れのち曇り」には「cloudy after fine」を用いています。「fine, cloudy later」のほうが語順が日本語と同じになるので、こちらにしようか悩んだんですが簡潔なほうにしました。

    「晴れのち時々曇り」には「fine, later, partly cloudy」を用いています。文としては「It is fine and occasionally cloudy later」なので「fine, partly cloudy later」とすべきなんですが、パッと見たときに「fine partly cloudy(晴れ時々曇り)」と見分けがつきにくいので、語順を強引に変えてあるわけです。

    返信削除
  3. こんにちは。
    楽しく使わせていただいております。
    お天気について、明日の天気を表示させたいと考えて試行錯誤しております。

    %c%@0/20/ @@4/4/ @として明日の天気の数字を取り出して
    その数字を英語表記に変換しようと思ってみたのですが
    つまづいてしまいうまくいきません涙
    良い方法はありませんでしょうか?

    返信削除
    返信
    1. > %c%@0/20/ @@4/4/ @として明日の天気の数字を取り出して

      …「@0/20/ @」の「20/」の後にはどんな文字を入れておられるのですか?

      削除
  4. ご返信ありがとうございます!
    20/の後には半角スペースを入れています。
    明日のお天気だけを表示させたいので
    今日,明日,2日後,3日後,4日後,5日後,6日後と
    表示される中から
    「今日,」と「,2日後,3日後,4日後,5日後,6日後」の部分を半角スペースに置き換えて
    「明日」の部分だけが表示されるようにしています。
    ので、現状「明日のお天気→ 223 」とかって表示されてます。
    これを「明日のお天気→ 晴れ 」のように表示させたいのです。

    今日の天気だったら%T%だけで済むのですが・・
    明日の天気を表示させたいのです。。

    返信削除
    返信
    1. あ~~~……、やっと意味が飲み込めました。

      %C%で得られる数値を%T%に変換する方法は残念ですがありません。

      %t%で得られる7日分の天気概況から
      @...@を使って明日の部分だけ取り出す
      ようにされるのがよろしいかと思います。

      削除
  5. ご返信ありがとうございます。

    >%t%で得られる7日分の天気概況から@...@を使って明日の部分だけ取り出す
    最初私もそう思ったのですが、天気状況によって文字数が変わってしまうので
    これでは@...@で取得できないと思い、3桁で変わらない%c%を使おうかと思った次第です。

    具体的には・・
    %t%で取得した場合、あるAの日
    晴れ,雨,曇,晴れ,晴れ,曇,曇
    %t%で取得した場合、あるBの日
    晴れ,雨,晴れ,晴れ,曇,晴れ,晴れ

    Aの日ですと0文字目から12文字を半角スペースに、更に2文字目から3文字を半角スペースに置き換えられるので
    (%t%@0/12/ @@1/3/ @)、明日の"雨"が表示されますが、
    Bの場合には文字数が違うので晴れ晴となってしまいます。。

    別な書き方で
    >%t%で得られる7日分の天気概況から@...@を使って明日の部分だけ取り出す
    方法があるのでしょうか?

    返信削除
    返信
    1. > 方法があるのでしょうか?

      ありますよ。

      コンマ区切り文字列の何番目かを指定して、
      そこだけ取り出す(そこ以外を削除する)
      という@.../.../\m@というのがあります。

      7日分の天気概況はコンマで区切られていますので、
      これを使えば文字数とか関係なく取り出せます。

      削除
  6. ▽`) ありがとうございます!!

    >コンマ区切り文字列の何番目かを指定して、
    そこだけ取り出す(そこ以外を削除する)
    という@.../.../\m@というのがあります。

    「コンマで区切って取り出せればいいのに・・」と思っていたまさにその機能が見つけ出せておりませんでした。
    深く読み込んだつもりだったのですが・・申し訳ありません。

    教えていただきありがとうございます!
    これからも楽しく、感謝を込めて使わせていただきます!!

    返信削除
  7. kanitawaさまこんばんは。

    帰宅したので色々やってみました。
    正直\mの所を何度読んでも分からなかったので(汗)実際に色々な
    数字を入れてみた結果無事表示させることに成功しました!
    ありがとうございました。
    (もしこのコメントが不適切でしたら削除ください)

    他の方の助けになるかと思い書いておきたいと思います。

    ・○日後のお天気の表示のさせ方
    今日(0日後) 0@p@%t%@0/-1/\m@ と入力します。
    明日(1日後) 1@p@%t%@0/-1/\m@ と入力します。
    同じように
    2日後 2@p@%t%@0/-1/\m@
    3日後 3@p@%t%@0/-1/\m@
    4日後 4@p@%t%@0/-1/\m@
    5日後 5@p@%t%@0/-1/\m@
    6日後 6@p@%t%@0/-1/\m@
    と、先頭の数字を変えることでコンマで区切られた文字列の
    0からかぞえた番目のものを表示できます。

    %t%と書くと 『今日,明日,3日後,4日後,5日後,6日後』の天気が表示されます。
    %t%の前に 数字+@P@
    %t%の後に @0/-1/\m@
    を付けて、先頭の数字を変えればコンマで区切られた文字列の
    0からかぞえた数字番目のものだけを表示できます。

    前に付けるものと後ろに付けるものは、分数の割り算と一緒です。
    二分の一 ÷ 三分の二 = ?
    後ろ側の分数の分母と分子をひっくり返して・・・
    何でひっかりかえすの?
    偉いヒトが決めたんだよ!考えなくていいんだ!そうすれば答えが出るんだからイイじゃないか!←ここ重要

    それと同じと思ってください!
    考えればちゃんと分かると思うのですが、私には頭が足りませんでした。
    表示されたらソレでイイじゃないですか(笑

    私はこれで満足です!
    長文失礼致しました!

    返信削除
  8. はじめまして、gleajaをとても便利に使わせてもらっています。

    本題なのですが、イメージレイヤーで明日の天気を1@p@%t%@0/-1/\m@ で表示させたいのですが、マッチの欄で表示'一致するファイルを表示する'にすると表示されず、'最も似たファイルを表示する'にするとイメージは表示されるのですが常に晴のイメージしか表示されません。
    何か考えられる原因はありますでしょうか?
    よろしくお願いします。

    返信削除
    返信
    1. 「テキスト」レイヤーの表示文字列を、その「1@p@%t%@0/-1/\m@」をしてみて、どのような文字列になるか見てみられるべきです。
      展開された結果文字列と同じ名前の画像ファイルが存在するか確認してみてください。

      削除
  9. 返信ありがとうございます。
    確認したところ適応する画像ファイルは存在しています。
    今日の天気でも適応するイメージが表示されるので、原因が何なのか、、、、
    すみませんが解決策をお願い致します。

    返信削除
    返信
    1. > 解決策をお願い致します

      と言われても、情報が少なすぎてなんとも出来ませんねぇ。

      > 1@p@%t%@0/-1/\m@」をしてみて、
      > どのような文字列になるか見てみられるべきです。

      これは確認されたんですか?
      どのような文字列が表示されましたか?

      > 今日の天気でも適応するイメージが表示されるので
      今日の天気を表示している「イメージ」レイヤーの
      ファイル名パターン文字列はどんなのなんですか?

      削除
  10. すみません、今気付きまして最初の書き込みで書き間違いがありました
    1@p@%t%@0/-1/\m@ ではなく
    1@p@%c%@0/-1/\m@で表示させたい、ということです。
    色々と足らなくてすみません、、、

    まず 1@p@%c%@0/-1/\m@ の結果は「211」で
    bananawani-mc.blogspot.jp/2011/11/android-here-comes-sun.html
    こちらの対応表と照らし合わせた「211.png」という画像ファイルも存在しています。

    「今日の天気」のイメージレイヤーの文字列は「フォルダ名/%C%」となっております。

    読みにくかったら申し訳ありません。
    ほかに書くべきことはありますでしょうか?

    返信削除
    返信
    1. > 「今日の天気」のイメージレイヤーの文字列は「フォルダ名/%C%」となっております。

      ということは、天気の画像はすべて「フォルダ名」
      というフォルダ内に入ってるんですよね?
      じゃぁ明日の天気である「1@p@%c%@0/-1/\m@」も
      「フォルダ名」というフォルダ以下の画像を指すように
      しないといけませんよね。

      「イメージ」レイヤーのファイルのパターン文字列に
      「1@p@%c%@0/-1/\m@」と書くと、それが展開されて
      できる「211」という名前の画像ファイルは、
      「/mnt/sdcard/com.gmail.kanitawa.glaeja/images」という
      フォルダのすぐ下にある、と認識してしまいますよ。

      この「images」フォルダの中にサブフォルダを作り、
      そこへ画像ファイルを入れたのであれば、
      そのサブフォルダ名もちゃんと書いてやらなければなりません。

      削除
  11. すみません、「フォルダ名/1@p@%c%@0/-1/\m@」とは書いているんです。

    度々言葉が足らなくてすみません。

    返信削除
    返信
    1. なら最初からそう書けばイイでしょうに。

      「@p@」は「@0/-1/\p@」の省略形です。
      「@0/-1/\p@」は「最初の@のすぐ左の文字から
      一番左端の文字までを数値とみなしてスタックに
      プッシュする」という意味です。

      つまり「フォルダ名/1」という文字列全体を
      数値と見なそうとしています
      、、、これ数値になりますか?

      削除
  12. すみません、解決しました。
    物凄く根本的なことで手を煩わせてしまって申し訳ありませんでした。
    もっと勉強します、、、

    ありがとうございました。m(_ _)m

    返信削除