Compute Tsyganenko & Sitnov (2005) [2]\(W_k(t_i)\), per Eq. (7) with optional “storm-by-storm” resets.
Parameters:
time (1D array-like of datetime.datetime) – Strictly increasing times. Must match the length of the second dimension of S.
S (2D ndarray, shape (N, 6)) – The source function \(S_k(t_i)\) (from eq. (8)).
6 columns for k=1..6, N rows for times 0..N-1.
storm_onsets (list or 1D array of int, default=None) – Indices of time that mark the beginning of each storm.
If provided, then for i in [onsets[m]..onsets[m+1]-1], we sum from onsets[m].
Times before the first onset or after the last are filled with fill_value.
If None (default), we sum from i=0 (the earliest time). Add 0 to storm_onsets
array to include the calculation of coefficients before the storm.
fill_value (float, default=np.nan) – Value for W outside any identified storms. Default is NaN.
Returns:
W – 6 different \(W_k(t_i)\) for each k (and i).
Return type:
2D ndarray, shape (N, 6)
Notes
Equation (7) in Tsyganenko & Sitnov (2005) can be written (for each k):