📗

[Tableau]ブラックホール周りの点粒子の軌道を描画する

2024/12/01に公開

summary

  • 昨年度まで研究していたブラックホールに関するVizを作成してみました
  • Pythonでブラックホール周りの点粒子の軌道を計算したものをTableauでアニメーション化しました
  • Tableau曲線表現講座の中で話題になった「曲線の座標となるフィールドに地理的役割を与える」というTipsも活用したVizになっています

はじめに

DATA Saberへのチャレンジが決まり、初のPublic投稿はどんなVizにしようか考えていたところ、↓のポストが流れてきました。美しいVizだなぁと思うと同時に自身の専攻が宇宙論であったことを思い出し、自己紹介も兼ねた1本目の投稿の題材とすることにしました。

データの作成

今回は、粒子がブラックホールに吸い込まれていく様子をVizで表現します。軌道をアニメーションで表現したいので、欲しいデータセットは[時刻], [座標]の形式になります。
 軌道は測地線方程式と呼ばれる式を解くことによって得られます。一番シンプルなブラックホール解であるシュバルツシルト解を仮定すると、解くべき式は

\frac{dr}{dt} = - \frac{1}{E}\left( 1 - \frac{2M}{r} \right) \sqrt{E^2 - \left( 1 + \frac{L^2}{r^2} \right) \left( 1 - \frac{2M}{r} \right)}, \:\:\:\: \frac{d\phi}{dt} = \frac{L}{Er^2}\left( 1 - \frac{2M}{r} \right)

となります(rは動径座標・\phiは角度)。初期条件などの細々した話はしませんが、この微分方程式を解くことで(t, r, \phi)が求まりx=r\cos\phi, y=r\sin\phiの変換によって欲しかったデータが得られることになります。今回は角運動量にあたるLをパラメータとして残し、それぞれのLに対する軌道をPythonで計算しました。


データを接続するとこんな感じ

Vizの作成

点粒子の軌道の描画

まずは[R],[Phi]から[X],[Y]を作成した上で、それぞれ地理的役割(経度)地理的役割(緯度) を付与します。

X
[R] * COS([Phi])
Y
[R] * SIN([Phi])

(※ここでの[Phi]弧度法の角度です。度数法の角度の場合はCOS(RADIANS([Phi]))などとする必要があります。)

ディメンジョンに変換した[L]でフィルターを作成した上で、[X],[Y],[time]をマークカードの詳細(マークの種類は 「円」 )に入れると軌道が登場します。
 そして、[time]を「ページ」に入れることでアニメーションが完成します。「履歴の表示」の設定は以下の通りです。

「履歴の表示」の設定
また、ページが切り替わる度に点滅しているように見えたので今回は 「書式設定」→「アニメーション」 からアニメーションを「オフ」に設定しました。

ブラックホールの描画

次に、同一シート上にブラックホールを描画していきます。先ほど[X],[Y]地理的役割を付与してプロットしているため、マークレイヤーの機能を用いて点粒子の軌道とブラックホールを重ねることができます。これは先日のTableau曲線表現講座で話題に上がった「曲線の座標となるフィールドに地理的役割を与える」というTipsの中で学んだものです。

今回の計算では長さの単位はブラックホールの半径としています。すなわち、ブラックホールの半径は1です。これをBUFFER関数を用いて表現します。(1mや1kmではなく、緯度・経度の「1」なので注意が必要)

BH_BUFFER
BUFFER(MAKEPOINT(0,0), DISTANCE(MAKEPOINT(0,0), MAKEPOINT(0,1), "m"), "m")

BH_BUFFERをマークレイヤーにドラッグアンドドロップして、書式を整えれば完成です!

https://public.tableau.com/app/profile/kamu.kamu/viz/_17330427515630/motion

今回の学び

  • フィールドに地理的役割を付与することで緯度経度で見た座標上にプロットができ、マークレイヤー機能も使える
  • このときの長さの単位は緯度経度で測られるため単位の変換が必要
  • アニメーションのデフォルト値は0.30秒となっており、オフにすることも可能

(以下、Publicに掲載して気がついたこと)

  • 使うフォントに気をつけないとDesktop上とPublic上で表示が異なる
  • ページカード内のスピードコントロールはPublic上では表示されない(?)

この2つについては今後もう少し詳しく調査してみようと思います。

Discussion