Help us understand the problem. What is going on with this article?

Excelでハリケーンの進路を可視化

この前、はてなの人気記事にExcelで路線図を描くが出て、Excelがこんな用途に使われるかに驚いた方は多いのではないでしょうか。実際、Excelは想像以上に豊富な機能を持っています。

今回はアメリカ2017年の超大型ハリケーン「イルマ」の進路を、Excelで描いて可視化します。
2019061901.gif

以下は具体的な手順を説明します。

1.データや背景画像の準備

①アメリカ-大西洋の地図

アメリカの国立ハリケーンセンターからNHC Blank Tracking Chartsをダウンロード。経度と緯度付きの地図を使わなければいけません。ハリケーンの移動は緯度と経度の列を地理上の点に変換して表すものだから。

https://www.nhc.noaa.gov/tracking_charts.shtml
2019061902.png

②Hurricane and Tropical Cyclones からハリケーン「アイマ」の経路データをダウンロード。
その中、日時、経度、緯度、風速、気圧などを含めます。

2019061903.png

2.データの前処理

①経度、緯度、風速、気圧の単位を削除し、そして日時をExcelで処理しやすいフォーマットに変換します。

②「アイマ」の経路データでは、最初は6時間ごとにデータを記録し、それから3時間になります。ここは6時間ごとのデータを利用します。
2019061904.png

3.バブルチャートを描く

①アメリカ-大西洋の地図をExcelで挿入し、それを背景にバブルチャートを描きます。経度、緯度をX軸、Y軸とし、バブルの大きさを風速で表示します。

②実際のデータにより、X軸、Y軸の最大値を設定します。地図の経度と緯度の単位は5度なので、バブルチャートのX軸、Y軸の単位を5度にします。

③アメリカ-大西洋の地図の座標軸と重ねるように、バブルチャートの位置と大きさを調整します。それから、バブルチャートの座標軸を隠します。

4.視覚効果

ハリケーンの進路を動的に表現するために、コントロール【スライドバー】を用いて、経過時間を制御できます。スライドするたびに6時間が増えていきます。スライドバーとリンクするセルがグラフの左側の表にデータを渡し、対応する緯度、経度と風速、気圧のデータを、時刻のクエリによって取得します。

時刻を基づき、グラフの2つのデータソースを生成し、スライドバーによるグラフの制御を実現します。

さらに、スライドバーの自動制御、つまりグラフを自動再生させるために、VBAを書きます。
2019061905.png

具体的な手順は以下の通り:

①VBAで開始と停止を制御する二つのマクロを書きます。

②開始、停止、繰り返す、スライドバーを指すコントロールを配置し、以上のマクロを指定します。

③スライドバーのコントロールの書式設定で、リンクするセルを左側のセルを指定します。左側のセルは時間の経過に伴いデータを表示します。

④データソースを生成する

動的な視覚効果を得るには、バブルチャートで2つのデータソースを準備する必要があります。1 つは、現在の時刻の前にハリケーンが移動してきたパスを示し、もう1つは、現在の時刻のハリケーンの位置をマークします。

LOOKUP関数を使います。

現在の時刻の前に、ハリケーンが移動してきたパスのデータ:

=IF($A9<=LOOKUP(map!$C$3,$A$2:$A$55),data!D9,NA())

2019061906.png
現在の時刻のハリケーンの位置のデータ:

=IF(A9=LOOKUP(map!$C$3,$A$2:$A$55),data!D9,NA())

2019061907.png

⑤バブルチャートのデータを選択する
2019061908.png
2019061909.png

チャート内のテキストボックスは、セルとリンクすることでポイントのデータを取得します。

そのほか、ここで風速を表示する縦棒グラフを挿入しました。データの紐づけはバブルチャートと同じです。

これで終わりです。一回Excelでデータの可視化をやってみませんか?

2019061911.gif

以上ははてねブログid:KeisukeYoshinoに発表したものです。これからも更新していくので、よかったら、フォローお願いします。
图片.png

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした