emout.emout.backtrace package

Submodules

emout.emout.backtrace.backtrace_result module

class emout.emout.backtrace.backtrace_result.BacktraceResult(ts, probability, positions, velocities, unit=None)[source]

Bases: object

get_backtrace の返り値をまとめて管理するクラス。 - ts : shape = (N_steps,) - probability : shape = (N_steps,) - positions : shape = (N_steps, 3) # (x, y, z) - velocities : shape = (N_steps, 3) # (vx, vy, vz)

以下の方法でアクセス・可視化できます:

ts, prob, pos, vel = result

→ タプルアンパック

result.pair(“x”, “y”).plot()

→ x vs y

result.pair(“t”, “x”).plot()

→ t vs x

result.tx.plot()

→ x軸に t, y軸に x (= pair(“t”,”x”) と同義)

result.yvz.plot()

→ y vs vz (= pair(“y”,”vz”))

pair(var1, var2)[source]
Return type:

XYData

任意 2 変数を取り出し、XYData を返す。 var1, var2 は以下のいずれか:

‘t’, ‘x’, ‘y’, ‘z’, ‘vx’, ‘vy’, ‘vz’

例:

result.pair(“x”, “y”) → x vs y result.pair(“t”, “x”) → t vs x result.pair(“z”, “vy”) → z vs vy

emout.emout.backtrace.multi_backtrace_result module

class emout.emout.backtrace.multi_backtrace_result.MultiBacktraceResult(ts_list, probabilities, positions_list, velocities_list, last_indexes, unit=None)[source]

Bases: object

get_backtraces の返り値をまとめて管理するクラス。

  • ts_list : shape = (N_traj, N_steps)

  • probabilities : shape = (N_traj,)

  • positions_list : shape = (N_traj, N_steps, 3)

  • velocities_list : shape = (N_traj, N_steps, 3)

  • last_indexes : shape = (N_traj,)

以下の方法でアクセス・可視化できます:

ts_list, probs, pos_list, vel_list = result # タプルアンパック

# 任意の 2 変数ペア (var1, var2) を MultiXYData で取得 result.pair(“x”, “y”) → 各 trajectory の x vs y result.pair(“t”, “x”) → 各 trajectory の t vs x result.tvx → pair(“t”,”vx”) 省略形 result.yvz → pair(“y”,”vz”)

# サンプリング: ランダムまたはインデックス指定 result.sample(10) → ランダムに 10 本だけ抽出 result.sample([0,2,5]) → インデックス 0, 2, 5 の 3 本だけ抽出

# プロット result.yvz.plot()

pair(var1, var2)[source]

任意の 2 変数を取り出し、MultiXYData を返す。 var1, var2 は ‘t’,’x’,’y’,’z’,’vx’,’vy’,’vz’ のいずれか。

Return type:

MultiXYData

例:

result.pair(“x”,”y”) → 各 trajectory の x vs y result.pair(“t”,”x”) → 各 trajectory の t vs x result.tvy → pair(“t”,”vy”)

sample(indices, random_state=None)[source]

ランダム/インデックス指定で一部トラジェクトリを抽出し、新しい MultiBacktraceResult を返す。

Parameters:
  • indices (Sequence[int], range, slice) – 正の整数 k を渡すと「全 N_traj 本からランダムに k 本抽出」。

  • indices – int のリスト/range/slice を渡すと「指定されたインデックス群だけ抽出」。

  • random_state (int, optional) – ランダムサンプリングのシード

Return type:

MultiBacktraceResult

emout.emout.backtrace.probability_result module

class emout.emout.backtrace.probability_result.HeatmapData(X, Y, Z, xlabel='X', ylabel='Y', title='Heatmap', units=None)[source]

Bases: object

2D グリッド上の値を保持し、pcolormesh で描画するヘルパークラス。 X, Y, Z はすべて 2D numpy.ndarray で同じ形状である必要があります。

plot(ax=None, cmap='viridis', use_si=True, **plot_kwargs)[source]

pcolormesh によるヒートマップを描画する。 - ax: matplotlib.axes.Axes を渡すか、None の場合は新規 Figure/Axes を作成 - cmap: カラーマップ(例:’viridis’, ‘plasma’, etc.) - plot_kwargs: pcolormesh に渡す追加キーワード (例:shading=”auto”)

class emout.emout.backtrace.probability_result.ProbabilityResult(phases, probabilities, dims, ret_particles, particles, ispec, inp, unit=None)[source]

Bases: object

get_probabilities が返す結果をまとめるクラス。 任意の 2 変数平面 (var1, var2) に対して HeatmapData を返す。 内部では 6 次元グリッドを保存し、任意の2軸を切り出して可視化可能。

energy_spectrum(energy_bins=None)[source]
pair(var1, var2)[source]

任意の 2 変数 (var1, var2) を取り出し、HeatmapData を返す。 var1, var2 は ‘x’,’y’,’z’,’vx’,’vy’,’vz’ のいずれか。

Return type:

HeatmapData

plot_energy_spectrum(energy_bins=None, scale='log')[source]

emout.emout.backtrace.solver_wrapper module

class emout.emout.backtrace.solver_wrapper.BacktraceWrapper(directory, inp, unit)[source]

Bases: object

get_backtrace(position, velocity, ispec=0, istep=-1, dt=None, max_step=30000, output_interval=1, use_adaptive_dt=False, **kwargs)[source]
Return type:

Tuple[Any, Any, Any, Any]

get_backtraces(positions, velocities, ispec=0, istep=-1, dt=None, max_step=10000, output_interval=1, use_adaptive_dt=False, n_threads=4, **kwargs)[source]
Return type:

Any

get_backtraces_from_particles(particles, ispec=0, istep=-1, dt=None, max_step=10000, output_interval=1, use_adaptive_dt=False, n_threads=4, **kwargs)[source]
Return type:

Any

get_probabilities(x, y, z, vx, vy, vz, ispec=0, istep=-1, dt=None, max_step=10000, use_adaptive_dt=False, n_threads=4, **kwargs)[source]
Return type:

ProbabilityResult

get_probabilities_from_array(positions, velocities, ispec=0, istep=-1, dt=None, max_step=10000, use_adaptive_dt=False, n_threads=4, **kwargs)[source]
Return type:

Any

get_probabilities_from_particles(particles, ispec=0, istep=-1, dt=None, max_step=10000, use_adaptive_dt=False, n_threads=4, **kwargs)[source]
Return type:

Any

emout.emout.backtrace.xy_data module

class emout.emout.backtrace.xy_data.MultiXYData(x, y, last_indexes, xlabel='x', ylabel='y', title=None, units=None)[source]

Bases: object

複数シリーズ (x[i,:], y[i,:]) を保持し、plot() で全シリーズをプロットするヘルパークラス。

plot(ax=None, use_si=True, gap=None, **plot_kwargs)[source]

複数シリーズを重ねて折れ線プロットする。 - ax: matplotlib.axes.Axes を渡すとその上にプロット - plot_kwargs: matplotlib.pyplot.plot に渡す追加キーワード

  • color, linestyle, label, etc.

  • alpha: スカラー値 OR 各系列ごと (長さ N_series の 1D array)

Return type:

Any

class emout.emout.backtrace.xy_data.XYData(x, y, xlabel='x', ylabel='y', title=None, units=None)[source]

Bases: object

単一シリーズ (x, y) を保持し、plot() で x vs y を描くヘルパークラス。

plot(ax=None, use_si=True, gap=None, **plot_kwargs)[source]

折れ線プロット: x vs y - ax: matplotlib.axes.Axes を渡すとその上にプロット - plot_kwargs: matplotlib.pyplot.plot に渡すキーワード (例: color, linestyle, label, alpha, など)

Return type:

Any

Module contents