environmentaltools.temporal.fourier_initialization
- environmentaltools.temporal.fourier_initialization(df, param)[source]
Initialize Fourier expansion parameters using moving window analysis.
Computes initial parameter estimates for non-stationary analysis by fitting stationary models in a moving time window, then extracting Fourier coefficients from the time-varying parameter estimates.
- Parameters:
df (pd.DataFrame) – Time series data with ‘n’ column containing normalized time [0,1]
param (dict) –
Configuration dictionary containing:
- ’no_tot_param’int
Total number of distribution parameters
- ’initial_parameters’dict
With ‘mode’ (list of Fourier orders), ‘par’ (list), ‘plot’ (bool)
- ’reduction’bool
Whether using reduced parameter space
Other keys required by stationary_analysis
- Returns:
Updated param dictionary with:
- ’initial_parameters’][‘par’]list
Initialized Fourier coefficients [mean, a1, b1, a2, b2, …]
- ’par’list
Same as initial_parameters[‘par’]
- ’mode’tuple
Fourier mode orders
- Return type:
dict
Notes
The algorithm:
Divides annual cycle into daily windows (14-day width)
Fits stationary model to data in each window
Applies Fast Fourier Transform to parameter time series
Extracts Fourier coefficients: mean, amplitude_n, phase_n
Window width is 14/365.25 (approximately 2 weeks) to capture intra-annual variability while maintaining statistical robustness.
Boundary conditions handle wrap-around at year start/end.
Examples
>>> param['initial_parameters'] = { ... 'mode': [2], # 2nd order Fourier ... 'par': [], ... 'plot': False ... } >>> param = fourier_initialization(df, param) >>> # param['par'] now contains [mean, a1, b1, a2, b2] for each parameter