学ぶ · 天気と空の解説

ライブレーダーがスマートフォンに届くまで

なめらかなレーダーループは、出来上がった動画ではなく、数値から始まります。Forecast Barは全米スキャンを、タイル化、検証、キャッシュ、デバイス上のレンダリングへと進め、スキャンの間のすき間も処理して、嵐が画面上をなめらかに動くようにしています。

レッスン

なめらかなレーダーループは、出来上がった動画ではなく、数値から始まります。Forecast Barは全米スキャンを、タイル化、検証、キャッシュ、デバイス上のレンダリングへと進め、スキャンの間のすき間も処理して、嵐が画面上をなめらかに動くようにしています。

1回の全米スキャン、約1,600万個の値

NOAAはレーダーの観測を2分ごとに全米スキャンへ統合します。この動画で使われているスキャンは6,100×2,700ポイント、16,470,000個の値を含みます。Forecast Barのサーバーは20秒ごとに新しいスキャンを確認します。

これらは別々の時計です。20秒ごとに確認しても、20秒ごとに新しい観測が生まれるわけではありません。同様に、1秒間に何度も更新される画面が、その回数分の新しいレーダースキャンを受け取っているわけでもありません。

値を送り、色はあとで加える

レーダーは1ポイントあたり1バイトの数値として送られます。スマートフォンがマップを描くときに色を加えます。これにより、元のレーダー値と見る人に表示される配色が分離されます。

1バイトのレーダー値のグリッド。154が強調表示され、(154 − 65) ÷ 2 = 44.5 dBZと変換
レーダーは1ポイントあたり1バイトで届き、スマートフォンがマップを描くときに各値を色に変えます。

個々のレーダーは同時に走査しているわけではありません。遅れているレーダーのデータは、次の実際のスキャンへとなだらかに近づけられます。動画ではこれを、別の観測を作り出すのではなく、実際のスキャンの間を処理することとして説明しています。

検証済みのタイルから完全なフレームを作る

各フレームはタイルに分割されます。タイルは隣から1ピクセルの境界を借りるので、表示される部分が継ぎ目なくつながります。すべてのタイルにはSHA-256フィンガープリントも付けられます。

フレームが公開されるのは、すべてのタイルが検証に合格したときだけです。公開後は変更されません。画面に必要なタイルは、不完全な断片が次々に現れるのではなく、1回のリクエストで1つのファイルとしてまとめて届きます。

タイルに分割されたレーダーフレーム。各タイルにチェックマークとLIVEのスタンプ、その横にSHA-256フィンガープリントのリストと“不変、一度公開、変更なし”の注記
フレームが公開されるのは、すべてのタイルのSHA-256フィンガープリントが確認されたときだけで、その後は変更されません。

変更されないフレームを近くに保持する

公開されたフレームは変更されないので、エッジキャッシュは1年間保持できます。キャッシュされた古いフレームもそのフレームのままであり、最新のスキャンを見つけるのは別の処理です。

デバイス上では、タイルがGPUメモリに積み重ねられ、描画時にピクセルごとに色が適用されます。動画で測定された自動再生の結果は約1.5秒でした。これはループの再生準備が整うまでの時間であり、レーダー観測の古さや、普遍的な配信時間を測ったものではありません。

単にフェードするのではなく、スキャンの間に嵐を動かす

観測の間の数分間も、嵐は動き続けます。単純なクロスフェードでは、古い嵐が消えながら新しい嵐が現れ、薄い2つのコピーができてしまいます。

そこでGPUがモーションフィールドを推定し、フレーム間でエコーをその経路に沿って動かします。結果は画面の次の更新で反映でき、対応ディスプレイでは最大120Hzです。これはディスプレイの上限であり、すべてのデバイスでの保証ではなく、観測の頻度を上げるものでもありません。

午後7:56から午後8:02の間に測定されたモーションフィールドの矢印を重ねたレーダーエコー。その横に“動きを測定する”の文字
クロスフェードではなく、GPUがモーションフィールドを測定し、スキャンの間にエコーをそれに沿って動かします。

覚えておきたいこと

次回はこれらを確認しましょう:

  1. スキャンの間隔、サーバーの確認、画面の更新を区別する。
  2. アニメーションが連続して見えても、タイムスタンプを確認する。
  3. なめらかな動きは、スキャンの間のレンダリングであり、新しいレーダー観測ではないと理解する。
Transcript

Video transcript

Read the full transcript

これがライブレーダーです。本物の嵐が、スマートフォンの上を滑るように動きます。このなめらかさには、10の難問を解く必要がありました。始まりは、このようなレーダーです。2分ごとに、NOAAがそれらをひとつの全米スキャンに統合します。その数、1,600万個の値。私たちは20秒ごとに新しいスキャンを確認します。

画像は送りません。送るのは数値で、1ポイントあたり1バイト。色はスマートフォンが加えます。レーダーは同時に走査していません。そこで遅れているレーダーは、次の実際のスキャンへとなだらかに近づけます。作り出しているものは何もありません。

すべてのフレームはタイルに分割され、それぞれが隣から1ピクセルの境界を借りるので、継ぎ目は見えません。すべてのタイルにフィンガープリントが付けられます。フレームが公開されるのは、すべてが確認されたときだけ。そして、その後は決して変わりません。画面全体がひとつのファイルで届きます。リクエストは1回です。

フレームは変わらないので、エッジがすぐ近くに1年間保持します。スマートフォンでは、タイルがそのままGPUメモリに積み重なり、色は描画時にピクセルごとに塗られます。自動再生の準備は約1.5秒で整います。

ここからが難関です。スキャンは数分おきに届き、嵐は動き続けます。単純なフェードでは、すべての嵐が薄い2つのコピーになってしまいます。そこでGPUが各嵐の向かう先を測定し、それぞれを経路に沿って滑らせます。

脈動はなく、あるのは動きだけ。すべてのフレームが、画面の次の更新で。1回のスキャン。10の難問。ひとつのなめらかなループ。Forecast Bar。

次は、映っているものの読み方を学びましょう。次の動画を選んで、チャンネル登録をお願いします。

Forecast Barの役割

レッスンを実践しましょう。

ライブレーダー

ひとつの完全なフレームから、なめらかなループへ。

この動画は、Forecast BarのライブレーダーをNOAAの全米スキャンから、検証済みの変更されないタイル、デバイス上の色の適用まで追っていきます。モーションブレンドはiPhone、iPad、Mac、Apple TVで動作します。

  • 色が適用される前は1レーダーポイントあたり1バイト
  • 画面のフレームデータは1回のリクエストで
  • 引用した測定では自動再生まで約1.5秒
結果の読み方

なめらかな動きは話の半分にすぎません。

ループの描き方を知れば、嵐がなめらかに動く理由がわかります。レーダーの読み方を知れば、色、動き、時刻のラベルの意味がわかります。次のステップは関連レッスンで解説しています。

  • 画面の更新はレーダーのスキャン頻度とは別
  • モーションブレンドはiPhone、iPad、Mac、Apple TVで動作
よくある質問

よくあるご質問

ライブレーダーは1秒間に120回更新されますか?
画面は対応デバイスで最大120Hzで更新できます。動画の全米レーダースキャンの更新は2分ごとで、スキャンの間のなめらかなレンダリングが新しい観測を生み出すことはありません。
なぜ画像ではなくレーダーの数値を送るのですか?
Forecast Barは1ポイントあたり1バイトを送り、描画時にデバイス上で色を適用します。レーダー値と表示される配色は別のものです。
なぜレーダーフレームを1年間キャッシュできるのですか?
フレームはタイルの検証後にのみ公開され、その後は変更されません。変更されないフレームはキャッシュでき、新しいスキャンはフレームリストで識別されます。
1.5秒という数字は、レーダーが1.5秒前のものという意味ですか?
いいえ。自動再生の準備が整うまでの測定時間であり、観測の古さや配信の遅延ではありません。
Forecast Barのアプリアイコン

予報の背景まで理解しましょう。

上記のForecast Barの機能をお試しください。利用できる機能は、プラン、デバイス、場所によって異なります。

ダウンロードは無料です。リアルタイムの天気を利用するにはサブスクリプションが必要です。iPhoneとiPadでは、すべてのサブスクリプションに新規登録者向けの7日間無料トライアルが付いています。Macのプランには付いていません。MacとiOSのプランは別々です。Apple TVはiOSのForecast Bar Goldに含まれています。