アメダス(風)の可視化:仮想粒子の移動
はじめに
前回に続き、地図上に地域気象観測システム(AMEDAS)の情報を表示する話です。今回は、風を表示します。
開発環境
C言語とOpenGLです。今回もCompute Shaderを使っています。もはや言及の必要がないほど、当たり前の技術になりました。
気象情報
まずは、気象情報を入手します。前回と同様に適当な手段によりJSONファイルを取得してください。
curl https://www.jma.go.jp/bosai/amedas/data/map/YYYYMMDDhhmmss.json --output YYYYMMDDhhmmss.json
JSONファイルから風速(wind)と風向(windDirection)を取り出します。風向は、16方位です。1が北北東で、時計回りに進み、16が北です。
可視化
次に、風を地図上に表示します。ここでは、仮想粒子を用いた動的な表示を行います。以下に手順を示します。
イ)地図上に複数の仮想粒子を無作為に配置します。
ロ)各粒子について、距離が近い順に三つの観測地点を選びます。それら観測地点の風向と風速をカーテシアン座標のベクトルに各々変換します。変換したベクトルを重ね合わせます。このとき、距離による重み付けを行います。
ハ)出来上がった合成ベクトルに沿って粒子を移動させます。
ニ)寿命が尽きた粒子を処分します。
以上のイからニを繰り返します。
適用例
令和6年6月19日午前5時から午後7時までの観測値です。
風速の大小に応じて粒子の色を塗分けた場合
赤色基調なので温度っぽいですが、風速です。
気温の高低に応じて粒子の色を塗分けた場合
気温と風を同時に表示できてお得です。
濃尾平野の場合
以上
古往今来得ざれば即ち書き得れば即ち飽くは筆の常也。と云うわけで御座います、この浅ましき乞食めに何卒皆々様のご慈悲をお願い致します。