-
-
Save pukpr/7d256e5595ff435421431d48d1df8d19 to your computer and use it in GitHub Desktop.
| #!/usr/bin/env python3 | |
| """ | |
| timeseries_modeler.py | |
| Read a two-column CSV (time, value). Read a JSON file with the same filename | |
| appended by ".p" (e.g. data.csv.p) into a data dictionary. Create a clone of the | |
| time-series and run a loop that steps through timestamps, calling a user- | |
| customizable model-step function to produce a modeled series. At the end the | |
| script computes Pearson's correlation coefficient and the variance of the | |
| squared errors (and also MSE), using library routines. | |
| Usage: | |
| python timeseries_modeler.py data.csv [--out fitted.csv] [--plot] | |
| python3 timeseries_modeler.py 11a.csv --plot | |
| Notes: | |
| - The CSV must have at least two columns (time, value). Header is tolerated. | |
| - Model is: | |
| - impulse every Imp_Stride rows | |
| - C_t = Imp_Amp * impulse_mask * sum_k PeriodsAmp[k] * sin(2*pi*time/Period_k + PeriodsPhase_k) | |
| - D_t = (1-Hold)*D_{t-1} + Hold*C_t | |
| - E_t = LTE_Amp * sin(D_t*LTE_Freq + LTE_Phase) | |
| Provide model parameters via --params as a JSON string (see defaults below). | |
| - The implementation loops over timestamps (explicit for-loop) so the model can | |
| be stateful (sample-and-hold needs previous D). | |
| - Pearson correlation computed using scipy.stats.pearsonr if available, | |
| otherwise a fallback via numpy.corrcoef is used. | |
| - Outputs: | |
| - CSV with columns: time, observed, model, residual | |
| - JSON .p file updated with metadata (metrics, parameters used) | |
| Dependencies: | |
| numpy, pandas, scipy (optional but recommended for Pearson), matplotlib (optional for plotting) | |
| """ | |
| from __future__ import annotations | |
| import argparse | |
| import json | |
| import math | |
| import os | |
| from typing import Any, Dict, List, Tuple, Callable, Optional | |
| import copy | |
| import numpy as np | |
| import pandas as pd | |
| import matplotlib.pyplot as plt | |
| from scipy.stats import pearsonr | |
| import random | |
| TWOPI = 2.0 * math.pi | |
| use_pearson = False | |
| def read_two_column_csv(path: str) -> Tuple[np.ndarray, np.ndarray]: | |
| """Read CSV-like file with two columns: time, value. Tolerant to header rows.""" | |
| df = pd.read_csv(path, sep=r'[,\s]+', engine='python', header=0) | |
| if df.shape[1] < 2: | |
| raise ValueError("Input CSV must have at least two columns (time, value).") | |
| t = pd.to_numeric(df.iloc[:, 0], errors='coerce') | |
| y = pd.to_numeric(df.iloc[:, 1], errors='coerce') | |
| mask = (~t.isna()) & (~y.isna()) | |
| t = t[mask].to_numpy(dtype=float) | |
| y = y[mask].to_numpy(dtype=float) | |
| return t, y | |
| def read_json_p(path: str) -> Dict[str, Any]: | |
| """Read JSON file at path (if exists), else return empty dict.""" | |
| if not os.path.exists(path): | |
| return {} | |
| with open(path, 'r', encoding='utf-8') as fh: | |
| return json.load(fh) | |
| def write_json_p(path: str, data: Dict[str, Any]) -> None: | |
| """Write JSON dict to file path.""" | |
| with open(path, 'w', encoding='utf-8') as fh: | |
| json.dump(data, fh, indent=2, sort_keys=True) | |
| def clone_series(series: np.ndarray) -> np.ndarray: | |
| """Return a deep copy (clone) of the series.""" | |
| return np.array(series, copy=True) | |
| def normalize_rms_y(ts: np.ndarray) -> np.ndarray: | |
| """ | |
| Return a copy of ts where the y-values (column 1) are scaled so their RMS == 1.0. | |
| No error checking (assumes ts is a 2D numpy array with at least 2 columns). | |
| """ | |
| y = ts.copy() | |
| rms = np.sqrt(np.mean(y * y)) | |
| return y / rms | |
| # ---- Model-step interface --------------------------------------------------- | |
| # A model-step function implements: | |
| # model_value, state = model_step(i, t_i, clone_i, state, params) | |
| # Where: | |
| # i: integer time index (0..N-1) | |
| # t_i: timestamp value (float) | |
| # clone_i: cloned original series value at index i (float) | |
| # state: dict carrying model internal state (mutable or replaced) | |
| # params: dict of user parameters | |
| # | |
| # The runner will set up initial state = {} and call model_step for each i. | |
| # --------------------------------------------------------------------------- | |
| def model_step_algorithm(i: int, t_i: float, clone_i: float, state: Dict[str, Any], | |
| Initial: float, | |
| Year: float, | |
| Imp_Stride: int, | |
| Imp_Amp: float, | |
| Periods: list, | |
| PeriodsAmp: list, | |
| PeriodsPhase: list, | |
| Aliased: list, | |
| AliasedAmp: list, | |
| AliasedPhase: list, | |
| Hold: float, | |
| LTE_Amp: float, | |
| LTE_Freq: float, | |
| LTE_Phase: float): | |
| """ | |
| Implements the algorithm-style model described: | |
| - Impulse mask every Imp_Stride rows (row numbering starts at 1) | |
| - C_t = (Imp_Amp if (row_idx % Imp_Stride == 1) else 0) * SUM_k PeriodsAmp[k]*sin(2*pi * t / Period_k + PeriodsPhase[k]) | |
| - D_t = (1-Hold)*D_{t-1} + Hold*C_t (initialize D_0 = Hold*C_0) | |
| - E_t = LTE_Amp * sin(D_t * LTE_Freq + LTE_Phase) | |
| Required params (defaults provided): | |
| - Imp_Stride: int (default 1) | |
| - Imp_Amp: float (default 1.0) | |
| - Periods: list of floats (default [1.0]) | |
| - PeriodsAmp: list of floats (len match Periods, default [1.0]) | |
| - PeriodsPhase: list of floats (len match Periods, default [0.0]) | |
| - Hold: float in [0,1] (default 0.5) | |
| - LTE_Amp: float (default 1.0) | |
| - LTE_Freq: float (default 1.0) | |
| - LTE_Phase: float (default 0.0) | |
| """ | |
| # compute sum of sinusoids | |
| ssum = 0.0 | |
| for amp, per, ph in zip(PeriodsAmp, Periods, PeriodsPhase): | |
| per = float(per) | |
| if per == 0.0: | |
| continue | |
| ssum += float(amp) * math.sin(TWOPI * float(t_i) * Year / per + float(ph)) | |
| # row index as 1..N (i is 0..N-1) | |
| row_idx = i + 2 | |
| impulse = 1.0 if (row_idx % 12 == Imp_Stride) else 0.0 | |
| C_t = impulse * Imp_Amp * ssum | |
| # stateful D | |
| if 'D_prev' not in state: | |
| # initialize as Hold * C_0 (algorithm initialization) | |
| state['D_prev'] = Initial | |
| D_prev = float(state['D_prev']) | |
| D_t = (1.0 - Hold) * D_prev + Hold * C_t | |
| state['D_prev'] = D_t | |
| # compute sum of aliases | |
| ssum = 0.0 | |
| for amp, freq, ph in zip(AliasedAmp, Aliased, AliasedPhase): | |
| freq = float(freq) | |
| ssum += float(amp) * math.sin(TWOPI * float(t_i) * freq + float(ph)) | |
| E_t = LTE_Amp * math.sin(D_t * LTE_Freq + LTE_Phase) + ssum | |
| return float(E_t), state | |
| # Runner that loops through timestamps and produces modeled series ---------------- | |
| def run_loop_time_series(time: np.ndarray, | |
| observed: np.ndarray, | |
| model_step_fn: Callable, | |
| params: Dict[str, Any]) -> Tuple[np.ndarray, Dict[str, Any]]: | |
| """ | |
| Loop over timestamps and compute model values using model_step_fn. | |
| Returns (model_array, final_state). | |
| """ | |
| # Prepare and normalize parameters | |
| DeltaTime = float(params.get('DeltaTime', 0.0)) | |
| Initial = float(params.get('Initial', 0.04294)) | |
| Year = float(params.get('Year', 365.242)) | |
| Imp_Stride = int(params.get('Imp_Stride', 12)) | |
| Imp_Amp = float(params.get('Imp_Amp', 1.0)) | |
| Periods = list(params.get('Periods', [1.0])) | |
| PeriodsAmp = list(params.get('PeriodsAmp', [1.0] * len(Periods))) | |
| PeriodsPhase = list(params.get('PeriodsPhase', [0.0] * len(Periods))) | |
| Aliased = list(params.get('Aliased', [1.0])) | |
| AliasedAmp = list(params.get('AliasedAmp', [1.0] * len(Aliased))) | |
| AliasedPhase = list(params.get('AliasedPhase', [0.0] * len(Aliased))) | |
| Hold = float(params.get('Hold', 0.5)) | |
| LTE_Amp = float(params.get('LTE_Amp', 1.0)) | |
| LTE_Freq = float(params.get('LTE_Freq', 1.0)) | |
| LTE_Phase = float(params.get('LTE_Phase', 0.0)) | |
| N = time.size | |
| clone = clone_series(observed) | |
| state: Dict[str, Any] = {} | |
| model = np.zeros_like(observed, dtype=float) | |
| for i in range(N): | |
| t_i = float(time[i]+DeltaTime*1000.0) | |
| clone_i = float(clone[i]) | |
| v, state = model_step_fn(i, t_i, clone_i, state, Initial, Year, Imp_Stride,Imp_Amp, Periods, PeriodsAmp, PeriodsPhase, | |
| Aliased, AliasedAmp, AliasedPhase, Hold, LTE_Amp, LTE_Freq, LTE_Phase) | |
| model[i] = float(v) | |
| return model, state | |
| # Metrics ----------------------------------------------------------------------- | |
| def compute_metrics(observed: np.ndarray, model: np.ndarray) -> Dict[str, Any]: | |
| """Compute Pearson correlation, residuals, MSE, and variance of squared errors.""" | |
| residuals = model - observed | |
| mse = float(np.mean(residuals ** 2)) | |
| # variance of squared errors (i.e., variance of residuals**2) | |
| var_sq_err = float(np.var(residuals ** 2)) | |
| # Pearson r (use scipy if available else numpy) | |
| try: | |
| r_val, p_val = pearsonr(observed, model) # type: ignore | |
| pearson_r = float(r_val) | |
| pearson_p = float(p_val) | |
| except Exception: | |
| pearson_r = float(np.nan) | |
| pearson_p = float(np.nan) | |
| return { | |
| 'residuals': residuals, | |
| 'mse': mse, | |
| 'var_squared_error': var_sq_err, | |
| 'pearson_r': pearson_r, | |
| 'pearson_p': pearson_p | |
| } | |
| def compute_metrics_scalar(observed: np.ndarray, model: np.ndarray) -> Float: | |
| if False: | |
| """Compute CC""" | |
| r_val, p_val = pearsonr(observed, model) # type: ignore | |
| pearson_r = 1.0-float(r_val) | |
| return pearson_r | |
| else: | |
| """Compute MSE""" | |
| residuals = model - observed | |
| mse = float(np.mean(residuals ** 2)) | |
| return mse | |
| def compute_metrics_region(time: np.ndarray, | |
| observed: np.ndarray, | |
| model: np.ndarray, | |
| Time_Low: Optional[float] = None, | |
| Time_High: Optional[float] = None) -> float: | |
| """ | |
| Compute a scalar metric between observed and model. By default computes MSE. | |
| If Time_Low and Time_High are provided, values with Time_Low <= time <= Time_High | |
| are excluded from the calculation (useful for cross-validation / holdout). | |
| Minimal behavior, no heavy validation: | |
| - If both Time_Low and Time_High are None the full series is used. | |
| - If only one is provided it is treated as an open bound (i.e. exclude | |
| times >= Time_Low if Time_High is None, or <= Time_High if Time_Low is None). | |
| - If Time_Low > Time_High they are swapped. | |
| - If all points are excluded, returns float('nan'). | |
| Parameters | |
| - time: 1D array of time values (same length as observed/model) | |
| - observed: observed values | |
| - model: model values | |
| - Time_Low: lower bound (inclusive) of the excluded middle region, or None | |
| - Time_High: upper bound (inclusive) of the excluded middle region, or None | |
| Returns | |
| - scalar metric (MSE by default) | |
| """ | |
| # Build mask for points to INCLUDE in the metric (True => include) | |
| if Time_Low is None and Time_High is None: | |
| mask = np.ones_like(time, dtype=bool) | |
| else: | |
| # If one bound is missing, treat it as open-ended | |
| if Time_Low is None: | |
| # exclude times <= Time_High | |
| mask = time > float(Time_High) | |
| elif Time_High is None: | |
| # exclude times >= Time_Low | |
| mask = time < float(Time_Low) | |
| else: | |
| # ensure bounds are ordered | |
| tl = float(Time_Low) | |
| th = float(Time_High) | |
| if tl > th: | |
| tl, th = th, tl | |
| # include times strictly outside [tl, th] | |
| mask = (time < tl) | (time > th) | |
| # Select data | |
| t_sel = time[mask] | |
| obs_sel = observed[mask] | |
| mod_sel = model[mask] | |
| # If nothing remains, return NaN | |
| if obs_sel.size == 0: | |
| return float('nan') | |
| # ---- choose metric ---- | |
| # The original snippet had an unused pearson branch; keep MSE as default. | |
| # If you want Pearson-based metric, set use_pearson = True. | |
| global use_pearson | |
| if use_pearson: | |
| from scipy.stats import pearsonr # type: ignore | |
| r_val, _ = pearsonr(obs_sel, mod_sel) | |
| pearson_r = 1.0 - float(r_val) | |
| return pearson_r | |
| else: | |
| residuals = mod_sel - obs_sel | |
| mse = float(np.mean(residuals ** 2)) | |
| return mse | |
| # Opt --------------------------------------------------------------------------- | |
| Monitored = [ | |
| "Imp_Stride", | |
| "DeltaTime", | |
| "Initial", | |
| "Year", | |
| "Imp_Amp", | |
| "PeriodsAmp", | |
| "PeriodsPhase", | |
| "AliasedAmp", | |
| "AliasedPhase", | |
| "Hold", | |
| "LTE_Amp", | |
| "LTE_Freq", | |
| "LTE_Phase", | |
| ] | |
| def _is_list_param(name: str) -> bool: | |
| return name in { | |
| "Periods", | |
| "PeriodsAmp", | |
| "PeriodsPhase", | |
| "Aliased", | |
| "AliasedAmp", | |
| "AliasedPhase", | |
| } | |
| def simple_descent( | |
| time, | |
| observed, | |
| model_step_fn: Callable, | |
| params: Dict[str, Any], | |
| metric_fn: Callable[[Any, Any, Any, float, float], float], | |
| step: float = 0.01, | |
| max_iters: int = 100, | |
| tol: float = 1e-12, | |
| verbose: bool = False, | |
| Time_Low: Float = 1920.0, | |
| Time_High: Float = 1950 | |
| ) -> Dict[str, Any]: | |
| """ | |
| Simple descent optimizer. | |
| Args: | |
| - time, observed, model_step_fn: as in run_loop_time_series | |
| - params: dict with the monitored parameters (scalars and lists of floats) | |
| - metric_fn: function(observed, model_array) -> scalar (smaller is better) | |
| - step: base step size used for +/- changes (applied to scalars and list elements) | |
| - max_iters: max number of outer passes over all parameters | |
| - tol: minimum improvement to consider (metric must decrease by > tol) | |
| - verbose: print progress | |
| Returns dict: | |
| - best_params: dict of accepted parameter values | |
| - best_metric: scalar | |
| - best_model: model array for best params | |
| - best_state: final state from run_loop_time_series for best params | |
| - history: list of evaluated candidates: dicts with keys | |
| ('param', 'index' (or None), 'candidate', 'metric', 'accepted') | |
| - iterations: number of outer iterations performed | |
| """ | |
| # start from given params (copy to avoid mutating caller's dict) | |
| best_params = copy.deepcopy(params) | |
| # ensure list parameters are plain python lists of floats (if present) | |
| for name in Monitored: | |
| if _is_list_param(name) and name in best_params: | |
| best_params[name] = [float(x) for x in best_params[name]] | |
| # evaluate initial | |
| model_vals, final_state = run_loop_time_series(time, observed, model_step_fn, best_params) | |
| best_metric = float(metric_fn(time, observed, model_vals, Time_Low, Time_High)) | |
| history: List[Dict[str, Any]] = [] | |
| if verbose: | |
| print(f"[simple_descent] start metric={best_metric:.6g}") | |
| switched_to_rel = False | |
| for iteration in range(1, max_iters + 1): | |
| any_accepted = False | |
| mode = "rel" if switched_to_rel else "abs" | |
| if verbose: | |
| print(f"[simple_descent] iteration {iteration} mode={mode} best_metric={best_metric:.6g}") | |
| # iterate over monitored params in fixed order | |
| for name in Monitored: | |
| if name == "Imp_Stride": | |
| max_val = 12 | |
| trials_per_iter = 4 | |
| # sample without replacement when possible | |
| population = list(range(0, max_val + 1)) | |
| k = min(trials_per_iter, len(population)) | |
| sampled = random.sample(population, k) if k > 0 else [] | |
| for cand in sampled: | |
| # skip if same as current | |
| if int(best_params.get(name, 0)) == cand: | |
| continue | |
| candidate_params = copy.deepcopy(best_params) | |
| candidate_params[name] = int(cand) | |
| mvals_cand, _ = run_loop_time_series(time, observed, model_step_fn, candidate_params) | |
| metric_cand = float(metric_fn(time, observed, mvals_cand, Time_Low, Time_High)) | |
| accepted = metric_cand + tol < best_metric | |
| history.append({ | |
| "param": name, | |
| "index": None, | |
| "candidate": cand, | |
| "metric": metric_cand, | |
| "accepted": accepted, | |
| "method": "discrete_random", | |
| }) | |
| if accepted: | |
| best_params = candidate_params | |
| best_metric = metric_cand | |
| model_vals = mvals_cand | |
| any_accepted = True | |
| if verbose: | |
| print(f"[stride] accepted {name} = {cand} -> metric {best_metric:.6g}") | |
| # keep sampling further candidates this iteration (could accept more) | |
| continue | |
| if _is_list_param(name): | |
| # skip if param not present or empty | |
| lst = best_params.get(name) | |
| if not lst: | |
| continue | |
| # iterate elements | |
| for idx in range(len(lst)): | |
| cur = float(lst[idx]) | |
| accepted_this_element = False | |
| for sign in (1.0, -1.0): | |
| candidate_params = copy.deepcopy(best_params) | |
| # candidate_params[name][idx] = cur + delta*cur | |
| if not switched_to_rel: | |
| # absolute candidate | |
| candidate = cur + sign * step | |
| else: | |
| # relative candidate (fallback to additive if cur==0) | |
| if abs(cur) > 0.0: | |
| candidate = cur * (1.0 + sign * step/5.0) | |
| else: | |
| candidate = cur + sign * step | |
| candidate_params[name][idx] = candidate | |
| model_vals_cand, _ = run_loop_time_series(time, observed, model_step_fn, candidate_params) | |
| metric_cand = float(metric_fn(time, observed, model_vals_cand, Time_Low, Time_High)) | |
| accepted = metric_cand + tol < best_metric | |
| history.append({ | |
| "param": name, | |
| "index": idx, | |
| "candidate": candidate_params[name][idx], | |
| "metric": metric_cand, | |
| "accepted": accepted, | |
| }) | |
| if accepted: | |
| # keep the candidate | |
| best_params = candidate_params | |
| best_metric = metric_cand | |
| model_vals = model_vals_cand | |
| any_accepted = True | |
| accepted_this_element = True | |
| if verbose: | |
| print(f"[simple_descent] accepted {name}[{idx}] = {best_params[name][idx]:.6g} -> metric {best_metric:.6g}") | |
| # continue trying further +/- steps from the new value: | |
| cur = float(best_params[name][idx]) | |
| break # stop trying other sign at this pass; move to try again from updated cur | |
| # end +/- loop for this element | |
| # Optionally attempt additional immediate steps in same direction until no improvement: | |
| # (Keep this simple implementation: we will revisit in next outer iteration) | |
| pass | |
| else: | |
| # scalar parameter | |
| if name not in best_params: | |
| continue | |
| cur = float(best_params[name]) | |
| accepted_this_param = False | |
| for sign in (1.0, -1.0): | |
| candidate_params = copy.deepcopy(best_params) | |
| # candidate_params[name] = cur + delta*cur | |
| if not switched_to_rel: | |
| # absolute candidate | |
| candidate = cur + sign * step | |
| else: | |
| # relative candidate (fallback to additive if cur==0) | |
| if abs(cur) > 0.0: | |
| candidate = cur * (1.0 + sign * step/5.0) | |
| else: | |
| candidate = cur + sign * step | |
| candidate_params[name] = candidate | |
| model_vals_cand, _ = run_loop_time_series(time, observed, model_step_fn, candidate_params) | |
| metric_cand = float(metric_fn(time, observed, model_vals_cand, Time_Low, Time_High)) | |
| history.append({ | |
| "param": name, | |
| "index": None, | |
| "candidate": candidate_params[name], | |
| "metric": metric_cand, | |
| "accepted": metric_cand + tol < best_metric, | |
| }) | |
| if metric_cand + tol < best_metric: | |
| best_params = candidate_params | |
| best_metric = metric_cand | |
| model_vals = model_vals_cand | |
| any_accepted = True | |
| accepted_this_param = True | |
| if verbose: | |
| print(f"[simple_descent] accepted {name} = {best_params[name]:.6g} -> metric {best_metric:.6g}") | |
| # move on from this parameter (we'll potentially refine in the next iteration) | |
| break | |
| # end +/- for scalar | |
| # end loop over parameters | |
| if not any_accepted: | |
| if not switched_to_rel: | |
| # switch strategies and continue searching with relative updates | |
| switched_to_rel = True | |
| if verbose: | |
| print("[add_then_rel] no acceptance with absolute steps; switching to relative steps") | |
| # do not stop yet; continue with next iteration in relative mode | |
| continue | |
| else: | |
| if verbose: | |
| print(f"[simple_descent] no acceptance in iteration {iteration}; stopping early") | |
| return { | |
| "best_params": best_params, | |
| "best_metric": best_metric, | |
| "best_model": model_vals, | |
| "best_state": final_state, | |
| "history": history, | |
| "iterations": iteration, | |
| } | |
| # max iters reached | |
| if verbose: | |
| print(f"[simple_descent] reached max_iters={max_iters}, best_metric={best_metric:.6g}") | |
| return { | |
| "best_params": best_params, | |
| "best_metric": best_metric, | |
| "best_model": model_vals, | |
| "best_state": final_state, | |
| "history": history, | |
| "iterations": max_iters, | |
| } | |
| # Utilities --------------------------------------------------------------------- | |
| def parse_json_like_arg(s: str | None) -> Dict[str, Any]: | |
| """Parse a JSON-like string from CLI --params. Returns dict.""" | |
| if s is None: | |
| return {} | |
| try: | |
| return json.loads(s) | |
| except Exception as e: | |
| raise argparse.ArgumentTypeError(f"Invalid JSON for --params: {e}") | |
| def main(): | |
| ap = argparse.ArgumentParser(description="Time-series modeler with per-timestamp loop and metrics.") | |
| ap.add_argument('csv', help='Input CSV file (two columns: time, value).') | |
| ap.add_argument('--out', default='fitted_out.csv', help='Output CSV file with time, observed, model, residual.') | |
| ap.add_argument('--plot', action='store_true', help='Show plot of observed vs model (requires matplotlib).') | |
| ap.add_argument('--low', default=0.0) | |
| ap.add_argument('--high', default=3000.0) | |
| ap.add_argument('--cc', action='store_true') | |
| args = ap.parse_args() | |
| global use_pearson | |
| if args.cc: | |
| use_pearson = True | |
| print("using CC") | |
| else: | |
| use_pearson = False | |
| # Read CSV | |
| time, y = read_two_column_csv(args.csv) | |
| if time.size == 0: | |
| raise SystemExit("No data read from CSV.") | |
| y = normalize_rms_y(y) | |
| # Read JSON file with same name appended by ".p" | |
| json_path = args.csv + '.p' | |
| data_dict = read_json_p(json_path) | |
| params = data_dict | |
| model_fn = model_step_algorithm | |
| Low = float(args.low) | |
| High = float(args.high) | |
| # Make a clone of the series (not strictly necessary but requested) | |
| cloned = clone_series(y) | |
| result = simple_descent( | |
| time, y, model_fn, params, | |
| metric_fn=compute_metrics_region, | |
| step=0.05, max_iters=400, tol=1e-12, verbose=True, Time_Low=Low, Time_High=High | |
| ) | |
| params = result["best_params"] | |
| # Run the time-stepping loop (explicit loop per timestamp) | |
| model_vals, final_state = run_loop_time_series(time, cloned, model_fn, params) | |
| # Compute metrics | |
| metrics = compute_metrics(y, model_vals) | |
| # Prepare output DataFrame | |
| out_df = pd.DataFrame({ | |
| 'time': time, | |
| 'observed': y, | |
| 'model': model_vals, | |
| 'residual': metrics['residuals'] | |
| }) | |
| out_df.to_csv(args.out, index=False) | |
| # Update data dictionary with metadata and save to .p file | |
| data_dict_out = dict(params) # copy new | |
| write_json_p(json_path, data_dict_out) | |
| # Print summary | |
| print(f"Processed {time.size} samples from: {args.csv}") | |
| print(f"Output CSV: {args.out}") | |
| print(f"Updated JSON data file: {json_path}") | |
| print("Metrics:") | |
| print(f" MSE = {metrics['mse']:.6e}") | |
| print(f" Variance of squared errors = {metrics['var_squared_error']:.6e}") | |
| print(f" Pearson r = {metrics['pearson_r']}, p-value = {metrics.get('pearson_p', None)}") | |
| # Optional plotting | |
| if args.plot: | |
| mask = (time > Low) & (time < High) | |
| plt.figure(figsize=(12, 6)) | |
| plt.plot(time, y, label='observed', lw=1) | |
| plt.plot(time, model_vals, label='model', lw=1, color='red') | |
| # plt.plot(time, metrics['residuals'], label='residual', lw=0.8, alpha=0.7) | |
| plt.plot(time[mask], [0.0] * len(time[mask]), 'k--', label='cross-validation', linewidth=3) | |
| plt.legend() | |
| plt.xlabel('time') | |
| plt.ylabel('value') | |
| plt.title(f"Model: {args.csv} Pearson r={metrics['pearson_r']:.4g} MSE={metrics['mse']:.4g}") | |
| # plt.grid(True) | |
| plt.show() | |
| if __name__ == '__main__': | |
| main() |
python\simple>python3 ts_lte.py 23d.dat --random --plot --low 1930 --high 1960
{
"Aliased": [
0.422362756,
0.368617497,
0.255621397,
0.209019747,
0.322015847,
0.155274488,
0.262765007,
0.375761106,
0.05374526,
0.225992198,
0.172246939,
0.488757205,
0.112996099,
0.00714361,
0.10034691,
0.04660165,
0.481613596,
2.0,
1.0
],
"AliasedAmp": [
0.12044129777286709,
-0.16450190629923359,
-0.077744867019627,
0.07465592036759264,
0.07706543882168904,
0.27442460869630214,
-0.138785865501292,
-0.14861470090140108,
-0.6070987238509902,
0.03911582193526672,
0.26072611271476365,
0.07949638800187915,
-0.26873251417175703,
-0.20066380157077637,
0.1695289507870913,
-0.15096631068987162,
0.11519549225454642,
-0.03893366081491435,
-0.1893326201487238
],
"AliasedPhase": [
13.983194323390721,
7.897355299084135,
15.568460627847724,
7.689820689156411,
23.70503421494507,
15.16978375934852,
10.355495992642327,
14.076508652852471,
11.06953903047771,
8.883760668892089,
3.2982041423623594,
18.662349293772262,
5.496146195049765,
24.97475574730905,
7.459801459468469,
6.055799294002658,
9.820230492013547,
3.6987402252300026,
1.9004445300818338
],
"DeltaTime": 0.0061096026238041425,
"Hold": 0.001538141,
"Imp_Amp": 43.30654964019078,
"Imp_Stride": 1,
"Initial": 0.02077209530675353,
"LTE_Amp": 1.006000442508684,
"LTE_Freq": 172.49624473292323,
"LTE_Phase": -3.004881066999834,
"Periods": [
27.2122,
27.3216,
27.5545,
13.63339513,
13.69114014,
13.6061,
13.6608,
13.71877789,
6795.985773,
1616.215172,
2120.513853,
13.77725,
3232.430344,
9.132931547,
9.108450374,
9.120674533,
27.0926041
],
"PeriodsAmp": [
0.15920767046989537,
0.11743123657345589,
0.07641424722220616,
0.07658317056963342,
-0.1853450948991782,
0.04390042593060531,
0.27824615262761343,
0.24770054509432257,
0.055356391746208274,
0.17889375888770578,
0.18651279729283457,
0.19878377934710204,
0.020191443932441044,
0.004767891588093174,
0.01654267685886226,
0.014764404918355843,
-0.1813805210524289
],
"PeriodsPhase": [
13.931425713566185,
8.170785020328164,
17.750395273335613,
7.40559534899272,
21.39269412942992,
12.65482194449827,
6.077863003024489,
9.696758612962372,
9.703058792035383,
6.616491105232,
6.78625108857208,
15.387264339942579,
6.099438495561559,
6.598446278312208,
-0.5471260966923112,
6.586211406172566,
8.300380962690795
],
"Year": 365.2520198,
"final_state": {
"D_prev": 0.04294
}
}
Juneau
{
"Aliased": [
0.422362756,
0.368617497,
0.255621397,
0.209019747,
0.322015847,
0.155274488,
0.262765007,
0.375761106,
0.05374526,
0.225992198,
0.172246939,
0.488757205,
0.112996099,
0.00714361,
0.10034691,
0.04660165,
0.481613596,
2.0,
1.0
],
"AliasedAmp": [
0.042059442745152616,
-0.24691307177018465,
0.07947509711748779,
-0.6348492829534632,
-0.15076339091624608,
0.09033165959163378,
0.37175463174672313,
-0.35061617969277786,
-0.09740872638775039,
-0.2208239485899214,
0.4832274743372257,
-0.2998328385968226,
0.3092508674344725,
0.1968830942981964,
0.15262013369259936,
-0.45149108113055963,
-0.2012617528419868,
-0.03219943926664508,
-0.16461200622310285
],
"AliasedPhase": [
10.2471981700097,
10.799847815636888,
16.928274144982577,
8.390510303135072,
22.327068887580726,
13.47055734980354,
12.068425256755614,
12.54419926333548,
8.524382715468704,
8.209117731797848,
6.138501275432774,
20.736518177118747,
5.559144221743718,
23.290350284460892,
5.9080957115339645,
7.085767864090853,
11.402365714741956,
5.783805431730455,
2.2139707843219427
],
"DeltaTime": 0.0,
"Hold": 0.001538141,
"Imp_Amp": 37.641666669777905,
"Imp_Stride": 11,
"Initial": -0.04807207530428182,
"LTE_Amp": 1.1685043873747478,
"LTE_Freq": 184.14084271354653,
"LTE_Phase": -2.2862687654124105,
"Periods": [
27.2122,
27.3216,
27.5545,
13.63339513,
13.69114014,
13.6061,
13.6608,
13.71877789,
6795.985773,
1616.215172,
2120.513853,
13.77725,
3232.430344,
9.132931547,
9.108450374,
9.120674533,
27.0926041
],
"PeriodsAmp": [
0.3482019840434817,
0.03951502378522902,
0.05924893437649338,
0.0312014001110126,
-0.2344522678024117,
0.09247236298586356,
0.17608636515369464,
0.07504879916901912,
0.04632102432338462,
0.21134215374908247,
0.11939787427450892,
0.05185126942791637,
0.030172459140980608,
0.005465571729861118,
0.03944621600195322,
0.01162299853194167,
-0.05105651337033799
],
"PeriodsPhase": [
13.709120663697048,
6.919005029103506,
18.28640153669948,
6.8567069661606865,
21.4417022584624,
9.085970234238099,
5.978857976950828,
8.942668567869873,
9.340253071552285,
7.488600849903711,
6.365649741669403,
15.637830026273457,
6.4708218347671504,
8.39420684167697,
1.0516727824414904,
7.01719801526104,
7.6323704176200975
],
"Year": 365.2520198,
"final_state": {
"D_prev": 0.04294
}
}
python3 ts_lte.py 47d.dat --random --plot --low 1930 --high 1960
Brest FRA
{
"Aliased": [
0.422362756,
0.368617497,
0.255621397,
0.209019747,
0.322015847,
0.155274488,
0.262765007,
0.375761106,
0.05374526,
0.225992198,
0.172246939,
0.488757205,
0.112996099,
0.00714361,
0.10034691,
0.04660165,
0.481613596,
2.0,
1.0
],
"AliasedAmp": [
0.08128291936662362,
0.11865831740952403,
0.16087826594104793,
0.08865147089229601,
0.06716670768220963,
0.053632137921369685,
-0.13326968748430956,
0.1388627961063085,
0.2573061975923226,
-0.05613998065382784,
0.0543775568003435,
-0.06820631139060604,
0.08408551063883363,
-0.11673995976894966,
-0.07553207047692995,
-0.14923775067013037,
-0.09476115345319061,
-0.04298586507349095,
-0.11424798658018757
],
"AliasedPhase": [
11.831192940727908,
8.752280591271823,
16.2628591441797,
8.349220017251715,
26.097607358917777,
15.54583898894695,
12.909047321450428,
14.751702159496368,
8.755293782239736,
8.323647746733077,
2.3683757907205374,
20.45235513231071,
4.435362771019799,
25.78885622687048,
7.153695764468234,
7.535715091861147,
12.194351838516123,
6.553360800586035,
2.308456976737037
],
"DeltaTime": 0.0,
"Hold": 0.001538141,
"Imp_Amp": 42.02447979968539,
"Imp_Stride": 1,
"Initial": 0.013706573234113669,
"LTE_Amp": 0.9043811505534546,
"LTE_Freq": 171.76990885085027,
"LTE_Phase": -0.8605834749684317,
"Periods": [
27.2122,
27.3216,
27.5545,
13.63339513,
13.69114014,
13.6061,
13.6608,
13.71877789,
6795.985773,
1616.215172,
2120.513853,
13.77725,
3232.430344,
9.132931547,
9.108450374,
9.120674533,
27.0926041
],
"PeriodsAmp": [
0.49177973865112906,
0.1346426101515645,
0.13279589242214795,
0.0913062862970234,
-0.17830234070404952,
0.1054031206647529,
0.12535745714286178,
0.1543422628745584,
-0.008690447702050274,
0.1461663546352262,
0.12550417273283324,
0.07003049439320502,
0.07331241628527117,
0.005284197930105334,
0.03739973708729294,
0.006333208672708126,
-0.17991844778458102
],
"PeriodsPhase": [
13.759711647870077,
7.739445832192203,
18.355389212707195,
7.409296801084049,
21.498865347796546,
9.569271934590832,
6.296336792184911,
10.175390407533516,
8.71912886369537,
6.655971773287914,
6.956570902679705,
16.491183591318194,
4.846501410736005,
6.160578896436495,
1.5767055612926841,
4.9144814686871054,
8.108945082562009
],
"Year": 365.2520198,
"final_state": {
"D_prev": 0.04294
}
}
Brest FRA
{
"Aliased": [
0.422362756,
0.368617497,
0.255621397,
0.209019747,
0.322015847,
0.155274488,
0.262765007,
0.375761106,
0.05374526,
0.225992198,
0.172246939,
0.488757205,
0.112996099,
0.00714361,
0.10034691,
0.04660165,
0.481613596,
2.0,
1.0
],
"AliasedAmp": [
0.08128291936662362,
0.11865831740952403,
0.16087826594104793,
0.08865147089229601,
0.06716670768220963,
0.053632137921369685,
-0.13326968748430956,
0.1388627961063085,
0.2573061975923226,
-0.05613998065382784,
0.0543775568003435,
-0.06820631139060604,
0.08408551063883363,
-0.11673995976894966,
-0.07553207047692995,
-0.14923775067013037,
-0.09476115345319061,
-0.04298586507349095,
-0.11424798658018757
],
"AliasedPhase": [
11.831192940727908,
8.752280591271823,
16.2628591441797,
8.349220017251715,
26.097607358917777,
15.54583898894695,
12.909047321450428,
14.751702159496368,
8.755293782239736,
8.323647746733077,
2.3683757907205374,
20.45235513231071,
4.435362771019799,
25.78885622687048,
7.153695764468234,
7.535715091861147,
12.194351838516123,
6.553360800586035,
2.308456976737037
],
"DeltaTime": 0.0,
"Hold": 0.001538141,
"Imp_Amp": 42.02447979968539,
"Imp_Stride": 1,
"Initial": 0.013706573234113669,
"LTE_Amp": 0.9043811505534546,
"LTE_Freq": 171.76990885085027,
"LTE_Phase": -0.8605834749684317,
"Periods": [
27.2122,
27.3216,
27.5545,
13.63339513,
13.69114014,
13.6061,
13.6608,
13.71877789,
6795.985773,
1616.215172,
2120.513853,
13.77725,
3232.430344,
9.132931547,
9.108450374,
9.120674533,
27.0926041
],
"PeriodsAmp": [
0.49177973865112906,
0.1346426101515645,
0.13279589242214795,
0.0913062862970234,
-0.17830234070404952,
0.1054031206647529,
0.12535745714286178,
0.1543422628745584,
-0.008690447702050274,
0.1461663546352262,
0.12550417273283324,
0.07003049439320502,
0.07331241628527117,
0.005284197930105334,
0.03739973708729294,
0.006333208672708126,
-0.17991844778458102
],
"PeriodsPhase": [
13.759711647870077,
7.739445832192203,
18.355389212707195,
7.409296801084049,
21.498865347796546,
9.569271934590832,
6.296336792184911,
10.175390407533516,
8.71912886369537,
6.655971773287914,
6.956570902679705,
16.491183591318194,
4.846501410736005,
6.160578896436495,
1.5767055612926841,
4.9144814686871054,
8.108945082562009
],
"Year": 365.2520198,
"final_state": {
"D_prev": 0.04294
}
}
#!/usr/bin/env python3
"""
timeseries_modeler.py
Read a two-column CSV (time, value). Read a JSON file with the same filename
appended by ".p" (e.g. data.csv.p) into a data dictionary. Create a clone of the
time-series and run a loop that steps through timestamps, calling a user-
customizable model-step function to produce a modeled series. At the end the
script computes Pearson's correlation coefficient and the variance of the
squared errors (and also MSE), using library routines.
Usage:
python timeseries_modeler.py data.csv [--out fitted.csv] [--plot]
python3 timeseries_modeler.py 11a.csv --plot
Notes:
- The CSV must have at least two columns (time, value). Header is tolerated.
- Model is:
- impulse every Imp_Stride rows
- C_t = Imp_Amp * impulse_mask * sum_k PeriodsAmp[k] * sin(2pitime/Period_k + PeriodsPhase_k)
- D_t = (1-Hold)D_{t-1} + HoldC_t
- E_t = LTE_Amp * sin(D_t*LTE_Freq + LTE_Phase)
Provide model parameters via --params as a JSON string (see defaults below).
- The implementation loops over timestamps (explicit for-loop) so the model can
be stateful (sample-and-hold needs previous D). - Pearson correlation computed using scipy.stats.pearsonr if available,
otherwise a fallback via numpy.corrcoef is used. - Outputs:
- CSV with columns: time, observed, model, residual
- JSON .p file updated with metadata (metrics, parameters used)
Dependencies:
numpy, pandas, scipy (optional but recommended for Pearson), matplotlib (optional for plotting)
"""
from future import annotations
import argparse
import json
import math
import os
from typing import Any, Dict, List, Tuple, Callable, Optional
import copy
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import pearsonr
import random
TWOPI = 2.0 * math.pi
use_pearson = False
use_random = False
time_series_name = "none"
def read_two_column_csv(path: str) -> Tuple[np.ndarray, np.ndarray]:
"""Read CSV-like file with two columns: time, value. Tolerant to header rows."""
df = pd.read_csv(path, sep=r'[,\s]+', engine='python', header=0)
if df.shape[1] < 2:
raise ValueError("Input CSV must have at least two columns (time, value).")
t = pd.to_numeric(df.iloc[:, 0], errors='coerce')
y = pd.to_numeric(df.iloc[:, 1], errors='coerce')
mask = (~t.isna()) & (~y.isna())
t = t[mask].to_numpy(dtype=float)
y = y[mask].to_numpy(dtype=float)
return t, y
def read_json_p(path: str) -> Dict[str, Any]:
"""Read JSON file at path (if exists), else return empty dict."""
if not os.path.exists(path):
return {}
with open(path, 'r', encoding='utf-8') as fh:
return json.load(fh)
def write_json_p(path: str, data: Dict[str, Any]) -> None:
"""Write JSON dict to file path."""
with open(path, 'w', encoding='utf-8') as fh:
json.dump(data, fh, indent=2, sort_keys=True)
def clone_series(series: np.ndarray) -> np.ndarray:
"""Return a deep copy (clone) of the series."""
return np.array(series, copy=True)
def normalize_rms_y(ts: np.ndarray) -> np.ndarray:
"""
Return a copy of ts where the y-values (column 1) are scaled so their RMS == 1.0.
No error checking (assumes ts is a 2D numpy array with at least 2 columns).
"""
y = ts.copy()
rms = np.sqrt(np.mean(y * y))
return y / rms
---- Model-step interface ---------------------------------------------------
A model-step function implements:
model_value, state = model_step(i, t_i, clone_i, state, params)
Where:
i: integer time index (0..N-1)
t_i: timestamp value (float)
clone_i: cloned original series value at index i (float)
state: dict carrying model internal state (mutable or replaced)
params: dict of user parameters
The runner will set up initial state = {} and call model_step for each i.
---------------------------------------------------------------------------
def model_step_algorithm(i: int, t_i: float, clone_i: float, state: Dict[str, Any],
Initial: float,
Year: float,
Imp_Stride: int,
Imp_Amp: float,
Periods: list,
PeriodsAmp: list,
PeriodsPhase: list,
Aliased: list,
AliasedAmp: list,
AliasedPhase: list,
Hold: float,
LTE_Amp: float,
LTE_Freq: float,
LTE_Phase: float,
LTE_Zero: float,
Delta_Y: float,
Imp_Amp2: float,
DC: float,
Damp: Float,
LTE_Amp2: float,
LTE_Freq2: float,
LTE_Phase2: float):
"""
Implements the algorithm-style model described:
- Impulse mask every Imp_Stride rows (row numbering starts at 1)
- C_t = (Imp_Amp if (row_idx % Imp_Stride == 1) else 0) * SUM_k PeriodsAmp[k]sin(2pi * t / Period_k + PeriodsPhase[k])
- D_t = (1-Hold)D_{t-1} + HoldC_t (initialize D_0 = Hold*C_0)
- E_t = LTE_Amp * sin(D_t * LTE_Freq + LTE_Phase)
Required params (defaults provided):
- Imp_Stride: int (default 1)
- Imp_Amp: float (default 1.0)
- Periods: list of floats (default [1.0])
- PeriodsAmp: list of floats (len match Periods, default [1.0])
- PeriodsPhase: list of floats (len match Periods, default [0.0])
- Hold: float in [0,1] (default 0.5)
- LTE_Amp: float (default 1.0)
- LTE_Freq: float (default 1.0)
- LTE_Phase: float (default 0.0)
"""
# compute sum of sinusoids
ssum = 0.0
for amp, per, ph in zip(PeriodsAmp, Periods, PeriodsPhase):
per = float(per)
if per == 0.0:
continue
ssum += float(amp) * math.sin(TWOPI * float(t_i) * (Year+Delta_Y) / per + float(ph))
if os.getenv('FORCING', '') == '1':
state['D_prev'] = 0.0
ssum = LTE_Amp * math.sin(ssum * LTE_Freq + LTE_Phase) + LTE_Zero*ssum + DC
return ssum, state
# row index as 1..N (i is 0..N-1)
row_idx = i + 2
impulse = 1.0 if (row_idx % 12 == Imp_Stride) else 0.0
impulse2 = 1.0 if (row_idx % 12 + 6 == Imp_Stride) else 0.0
C_t = (impulse * Imp_Amp + impulse2 * Imp_Amp2) * ssum * math.exp(-Damp * abs(ssum))
# stateful D
if 'D_prev' not in state:
# initialize as Hold * C_0 (algorithm initialization)
state['D_prev'] = Initial
D_prev = float(state['D_prev'])
D_t = (1.0 - Hold) * D_prev + Hold * C_t
state['D_prev'] = D_t
# compute sum of aliases
ssum = 0.0
for amp, freq, ph in zip(AliasedAmp, Aliased, AliasedPhase):
freq = float(freq)
ssum += float(amp) * math.sin(TWOPI * float(t_i) * freq + float(ph))
if os.getenv('EXTRA', '') == '1':
Mult = int(1.0/(0.01+LTE_Freq2))
HiFreq = LTE_Amp2 * math.sin(D_t * LTE_Freq * Mult + LTE_Phase2)
else:
HiFreq = 0.0
E_t = LTE_Amp * math.sin(D_t * LTE_Freq + LTE_Phase) + HiFreq + LTE_Zero*D_t + DC + ssum
return float(E_t), state
Runner that loops through timestamps and produces modeled series ----------------
def run_loop_time_series(time: np.ndarray,
observed: np.ndarray,
model_step_fn: Callable,
params: Dict[str, Any]) -> Tuple[np.ndarray, Dict[str, Any]]:
"""
Loop over timestamps and compute model values using model_step_fn.
Returns (model_array, final_state).
"""
# Prepare and normalize parameters
DeltaTime = float(params.get('DeltaTime', 0.0))
Initial = float(params.get('Initial', 0.04294))
Year = float(params.get('Year', 365.242))
Imp_Stride = int(params.get('Imp_Stride', 12))
Imp_Amp = float(params.get('Imp_Amp', 1.0))
Periods = list(params.get('Periods', [1.0]))
PeriodsAmp = list(params.get('PeriodsAmp', [1.0] * len(Periods)))
PeriodsPhase = list(params.get('PeriodsPhase', [0.0] * len(Periods)))
Aliased = list(params.get('Aliased', [1.0]))
AliasedAmp = list(params.get('AliasedAmp', [1.0] * len(Aliased)))
AliasedPhase = list(params.get('AliasedPhase', [0.0] * len(Aliased)))
Hold = float(params.get('Hold', 0.5))
LTE_Amp = float(params.get('LTE_Amp', 1.0))
LTE_Freq = float(params.get('LTE_Freq', 1.0))
LTE_Phase = float(params.get('LTE_Phase', 0.0))
LTE_Zero = float(params.get('LTE_Zero', 0.0))
Delta_Y = float(params.get('Delta_Y', 0.0))
Imp_Amp2 = float(params.get('Imp_Amp2', 0.0))
DC = float(params.get('DC', 0.0))
Damp = float(params.get('Damp', 0.0))
LTE_Amp2 = float(params.get('LTE_Amp2', 0.01))
LTE_Freq2 = float(params.get('LTE_Freq2', 0.0))
LTE_Phase2 = float(params.get('LTE_Phase2', 6.28))
N = time.size
clone = clone_series(observed)
state: Dict[str, Any] = {}
model = np.zeros_like(observed, dtype=float)
First_Time = True
Last_Time = 0.0
for i in range(N):
t_i = float(time[i]+DeltaTime)
clone_i = float(clone[i])
# should be 1/12 but may be missing values
N_Steps = int(round((t_i - Last_Time) * 12))
N_Steps = 1 if First_Time else N_Steps
First_Time = False
j = 1
while j <= N_Steps:
time_i = float(t_i - (N_Steps-j)/12.0)
v, state = model_step_fn(i, time_i, clone_i, state, Initial, Year, Imp_Stride,Imp_Amp, Periods, PeriodsAmp, PeriodsPhase,
Aliased, AliasedAmp, AliasedPhase, Hold, LTE_Amp, LTE_Freq, LTE_Phase, LTE_Zero, Delta_Y, Imp_Amp2, DC, Damp,
LTE_Amp2, LTE_Freq2, LTE_Phase2)
j = j + 1
model[i] = float(v)
Last_Time = t_i
return model, state
Metrics -----------------------------------------------------------------------
def compute_metrics(time: np.ndarray, observed: np.ndarray, model: np.ndarray, low: float, high:float) -> Dict[str, Any]:
"""Compute Pearson correlation, residuals, MSE, and variance of squared errors."""
residuals = model - observed
mse = float(np.mean(residuals ** 2))
# variance of squared errors (i.e., variance of residuals**2)
var_sq_err = float(np.var(residuals ** 2))
# Pearson r (use scipy if available else numpy)
CV = 1.0 - compute_metrics_region(time, observed, model, low, high, False)
try:
r_val, p_val = pearsonr(observed, model) # type: ignore
pearson_r = float(r_val)
pearson_p = float(p_val)
except Exception:
pearson_r = float(np.nan)
pearson_p = float(np.nan)
return {
'residuals': residuals,
'mse': mse,
'var_squared_error': var_sq_err,
'pearson_r': pearson_r,
'pearson_p': pearson_p,
'CV': CV
}
def compute_metrics_scalar(observed: np.ndarray, model: np.ndarray) -> Float:
if False:
"""Compute CC"""
r_val, p_val = pearsonr(observed, model) # type: ignore
pearson_r = 1.0-float(r_val)
return pearson_r
else:
"""Compute MSE"""
residuals = model - observed
mse = float(np.mean(residuals ** 2))
return mse
def compute_metrics_region(time: np.ndarray,
observed: np.ndarray,
model: np.ndarray,
Time_Low: Optional[float] = None,
Time_High: Optional[float] = None,
Exclude: Optional[bool] = True) -> float:
"""
Compute a scalar metric between observed and model. By default computes MSE.
If Time_Low and Time_High are provided, values with Time_Low <= time <= Time_High
are excluded from the calculation (useful for cross-validation / holdout).
Minimal behavior, no heavy validation:
- If both Time_Low and Time_High are None the full series is used.
- If only one is provided it is treated as an open bound (i.e. exclude
times >= Time_Low if Time_High is None, or <= Time_High if Time_Low is None).
- If Time_Low > Time_High they are swapped.
- If all points are excluded, returns float('nan').
Parameters
- time: 1D array of time values (same length as observed/model)
- observed: observed values
- model: model values
- Time_Low: lower bound (inclusive) of the excluded middle region, or None
- Time_High: upper bound (inclusive) of the excluded middle region, or None
Returns
- scalar metric (MSE by default)
"""
# Build mask for points to INCLUDE in the metric (True => include)
if Time_Low is None and Time_High is None:
mask = np.ones_like(time, dtype=bool)
else:
# If one bound is missing, treat it as open-ended
if Time_Low is None:
# exclude times <= Time_High
mask = time > float(Time_High)
elif Time_High is None:
# exclude times >= Time_Low
mask = time < float(Time_Low)
else:
# ensure bounds are ordered
tl = float(Time_Low)
th = float(Time_High)
if tl > th:
tl, th = th, tl
# include times strictly outside [tl, th]
if Exclude:
mask = (time < tl) | (time > th)
else:
mask = (time > tl) & (time < th)
# Select data
t_sel = time[mask]
obs_sel = observed[mask]
mod_sel = model[mask]
# If nothing remains, return NaN
if obs_sel.size == 0:
return float('nan')
# ---- choose metric ----
# The original snippet had an unused pearson branch; keep MSE as default.
# If you want Pearson-based metric, set use_pearson = True.
global use_pearson
if use_pearson:
from scipy.stats import pearsonr # type: ignore
r_val, _ = pearsonr(obs_sel, mod_sel)
pearson_r = 1.0 - float(r_val)
return pearson_r
else:
residuals = mod_sel - obs_sel
mse = float(np.mean(residuals ** 2))
return mse
Opt ---------------------------------------------------------------------------
Monitored = [
"Imp_Stride",
"DeltaTime",
"Initial",
"Year",
"Imp_Amp",
"Imp_Amp2",
"PeriodsAmp",
"PeriodsPhase",
"AliasedAmp",
"AliasedPhase",
"Hold",
"LTE_Amp",
"LTE_Freq",
"LTE_Phase",
"LTE_Zero",
"Delta_Y",
"DC",
"Damp",
"LTE_Amp2",
"LTE_Freq2",
"LTE_Phase2"
]
Monitored_Slide = [
"Imp_Stride",
"DeltaTime",
"Initial",
"PeriodsPhase",
"AliasedPhase",
"DC"
]
Monitored_Initial = [
"Imp_Stride",
"DeltaTime",
"Initial"
]
def _is_list_param(name: str) -> bool:
return name in {
"Periods",
"PeriodsAmp",
"PeriodsPhase",
"Aliased",
"AliasedAmp",
"AliasedPhase"
}
def simple_descent(
time,
observed,
model_step_fn: Callable,
params: Dict[str, Any],
metric_fn: Callable[[Any, Any, Any, float, float], float],
step: float = 0.01,
max_iters: int = 100,
tol: float = 1e-12,
verbose: bool = False,
Time_Low: Float = 1920.0,
Time_High: Float = 1950
) -> Dict[str, Any]:
"""
Simple descent optimizer.
Args:
- time, observed, model_step_fn: as in run_loop_time_series
- params: dict with the monitored parameters (scalars and lists of floats)
- metric_fn: function(observed, model_array) -> scalar (smaller is better)
- step: base step size used for +/- changes (applied to scalars and list elements)
- max_iters: max number of outer passes over all parameters
- tol: minimum improvement to consider (metric must decrease by > tol)
- verbose: print progress
Returns dict:
- best_params: dict of accepted parameter values
- best_metric: scalar
- best_model: model array for best params
- best_state: final state from run_loop_time_series for best params
- history: list of evaluated candidates: dicts with keys
('param', 'index' (or None), 'candidate', 'metric', 'accepted')
- iterations: number of outer iterations performed
"""
if os.getenv('ALIGN', '') == '1':
Monitored_Parameters = Monitored_Slide
Magnify_Scalar = 10.0
elif os.getenv('ALIGN', '') == '-1':
Monitored_Parameters = Monitored_Initial
Magnify_Scalar = 1.0
else:
Monitored_Parameters = Monitored
Magnify_Scalar = 1.0
# start from given params (copy to avoid mutating caller's dict)
best_params = copy.deepcopy(params)
# ensure list parameters are plain python lists of floats (if present)
for name in Monitored_Parameters:
if _is_list_param(name) and name in best_params:
best_params[name] = [float(x) for x in best_params[name]]
# evaluate initial
model_vals, final_state = run_loop_time_series(time, observed, model_step_fn, best_params)
best_metric = float(metric_fn(time, observed, model_vals, Time_Low, Time_High))
history: List[Dict[str, Any]] = []
if verbose:
print(f"[{time_series_name}] start metric={best_metric:.6g}")
switched_to_rel = os.getenv('RELATIVE', '') == '1'
for iteration in range(1, max_iters + 1):
any_accepted = False
mode = "rel" if switched_to_rel else "abs"
if verbose:
print(f"[{time_series_name}] iteration {iteration} mode={mode} best_metric={best_metric:.6g}")
# iterate over monitored params in fixed order
for name in Monitored_Parameters:
if name == "Imp_Stride":
max_val = 12
trials_per_iter = 4
# sample without replacement when possible
population = list(range(0, max_val + 1))
k = min(trials_per_iter, len(population))
sampled = random.sample(population, k) if k > 0 else []
for cand in sampled:
# skip if same as current
if int(best_params.get(name, 0)) == cand:
continue
candidate_params = copy.deepcopy(best_params)
candidate_params[name] = int(cand)
mvals_cand, _ = run_loop_time_series(time, observed, model_step_fn, candidate_params)
metric_cand = float(metric_fn(time, observed, mvals_cand, Time_Low, Time_High))
accepted = metric_cand + tol < best_metric
history.append({
"param": name,
"index": None,
"candidate": cand,
"metric": metric_cand,
"accepted": accepted,
"method": "discrete_random",
})
if accepted:
best_params = candidate_params
best_metric = metric_cand
model_vals = mvals_cand
any_accepted = True
if verbose:
print(f"[stride] accepted {name} = {cand} -> metric {best_metric:.6g}")
# keep sampling further candidates this iteration (could accept more)
continue
if _is_list_param(name):
# skip if param not present or empty
lst = best_params.get(name)
if not lst:
continue
# iterate elements
for idx in range(len(lst)):
cur = float(lst[idx])
accepted_this_element = False
for sign in (1.0, -1.0):
candidate_params = copy.deepcopy(best_params)
# candidate_params[name][idx] = cur + delta*cur
if use_random:
delta = -step * math.log(random.random())
else:
delta = step
if not switched_to_rel:
# absolute candidate
candidate = cur + sign * delta
else:
# relative candidate (fallback to additive if cur==0)
if abs(cur) > 0.0:
candidate = cur * (1.0 + sign * delta)
else:
candidate = cur + sign * delta
candidate_params[name][idx] = candidate
model_vals_cand, _ = run_loop_time_series(time, observed, model_step_fn, candidate_params)
metric_cand = float(metric_fn(time, observed, model_vals_cand, Time_Low, Time_High))
accepted = metric_cand + tol < best_metric
history.append({
"param": name,
"index": idx,
"candidate": candidate_params[name][idx],
"metric": metric_cand,
"accepted": accepted,
})
if accepted:
# keep the candidate
best_params = candidate_params
best_metric = metric_cand
model_vals = model_vals_cand
any_accepted = True
accepted_this_element = True
if verbose:
print(f"[{time_series_name}] accepted {name}[{idx}] = {best_params[name][idx]:.6g} -> metric {best_metric:.6g}")
# continue trying further +/- steps from the new value:
cur = float(best_params[name][idx])
break # stop trying other sign at this pass; move to try again from updated cur
# end +/- loop for this element
# Optionally attempt additional immediate steps in same direction until no improvement:
# (Keep this simple implementation: we will revisit in next outer iteration)
pass
else:
# scalar parameter
if name not in best_params:
continue
cur = float(best_params[name])
accepted_this_param = False
for sign in (1.0, -1.0):
candidate_params = copy.deepcopy(best_params)
# candidate_params[name] = cur + delta*cur
if use_random:
delta = -step * math.log(random.random()) * Magnify_Scalar
else:
delta = step
if not switched_to_rel:
# absolute candidate
candidate = cur + sign * delta
else:
# relative candidate (fallback to additive if cur==0)
if abs(cur) > 0.0:
candidate = cur * (1.0 + sign * delta)
else:
candidate = cur + sign * delta
candidate_params[name] = candidate
model_vals_cand, _ = run_loop_time_series(time, observed, model_step_fn, candidate_params)
metric_cand = float(metric_fn(time, observed, model_vals_cand, Time_Low, Time_High))
history.append({
"param": name,
"index": None,
"candidate": candidate_params[name],
"metric": metric_cand,
"accepted": metric_cand + tol < best_metric,
})
if metric_cand + tol < best_metric:
best_params = candidate_params
best_metric = metric_cand
model_vals = model_vals_cand
any_accepted = True
accepted_this_param = True
if verbose:
CV = float(metric_fn(time, observed, model_vals_cand, Time_Low, Time_High, False))
print(f"[{time_series_name}] accepted {name} = {best_params[name]:.6g} -> metric {best_metric:.6g} CV {CV:.6g} ")
# move on from this parameter (we'll potentially refine in the next iteration)
break
# end +/- for scalar
# end loop over parameters
if not any_accepted:
if not switched_to_rel:
# switch strategies and continue searching with relative updates
switched_to_rel = True
if verbose:
print("[{time_series_name}] no acceptance with absolute steps; switching to relative steps")
# do not stop yet; continue with next iteration in relative mode
continue
else:
if verbose:
print(f"[{time_series_name}] no acceptance in iteration {iteration}; stopping early")
return {
"best_params": best_params,
"best_metric": best_metric,
"best_model": model_vals,
"best_state": final_state,
"history": history,
"iterations": iteration,
}
# max iters reached
if verbose:
print(f"[{time_series_name}] reached max_iters={max_iters}, best_metric={best_metric:.6g}")
return {
"best_params": best_params,
"best_metric": best_metric,
"best_model": model_vals,
"best_state": final_state,
"history": history,
"iterations": max_iters,
}
Utilities ---------------------------------------------------------------------
def parse_json_like_arg(s: str | None) -> Dict[str, Any]:
"""Parse a JSON-like string from CLI --params. Returns dict."""
if s is None:
return {}
try:
return json.loads(s)
except Exception as e:
raise argparse.ArgumentTypeError(f"Invalid JSON for --params: {e}")
def main():
ap = argparse.ArgumentParser(description="Time-series modeler with per-timestamp loop and metrics.")
ap.add_argument('csv', help='Input CSV file (two columns: time, value).')
ap.add_argument('--out', default='fitted_out.csv', help='Output CSV file with time, observed, model, residual.')
ap.add_argument('--plot', action='store_true', help='Show plot of observed vs model (requires matplotlib).')
ap.add_argument('--low', default=0.0)
ap.add_argument('--high', default=3000.0)
ap.add_argument('--cc', action='store_true')
ap.add_argument('--random', action='store_true')
args = ap.parse_args()
global use_pearson
if args.cc:
use_pearson = True
print("using CC")
else:
use_pearson = False
global use_random
if args.random:
use_random = True
print("using random")
else:
use_random = False
global time_series_name
time_series_name = args.csv
# Read CSV
time, y = read_two_column_csv(args.csv)
if time.size == 0:
raise SystemExit("No data read from CSV.")
y = normalize_rms_y(y)
# Read JSON file with same name appended by ".p"
json_path = args.csv + '.p'
data_dict = read_json_p(json_path)
params = data_dict
model_fn = model_step_algorithm
Low = float(args.low)
High = float(args.high)
# Make a clone of the series (not strictly necessary but requested)
cloned = clone_series(y)
result = simple_descent(
time, y, model_fn, params,
metric_fn=compute_metrics_region,
step=float(os.environ.get('STEP', '0.05')),
max_iters=int(os.environ.get('MAX_ITERS', '400')),
tol=1e-12, verbose=True, Time_Low=Low, Time_High=High
)
params = result["best_params"]
# Run the time-stepping loop (explicit loop per timestamp)
model_vals, final_state = run_loop_time_series(time, cloned, model_fn, params)
# Compute metrics
metrics = compute_metrics(time, y, model_vals, Low, High)
# Prepare output DataFrame
out_df = pd.DataFrame({
'time': time,
'observed': y,
'model': model_vals,
'residual': metrics['residuals']
})
out_df.to_csv(args.out, index=False)
# Update data dictionary with metadata and save to .p file
data_dict_out = dict(params) # copy new
write_json_p(json_path, data_dict_out)
# Print summary
print(f"Processed {time.size} samples from: {args.csv}")
print(f"Output CSV: {args.out}")
print(f"Updated JSON data file: {json_path}")
print("Metrics:")
print(f" CV = {metrics['CV']:.6e}")
print(f" MSE = {metrics['mse']:.6e}")
print(f" Pearson r = {metrics['pearson_r']}, p-value = {metrics.get('pearson_p', None)}")
# Optional plotting
mask = (time > Low) & (time < High)
plt.figure(figsize=(12, 6))
plt.plot(time, y, label='observed', lw=0.5)
plt.plot(time, model_vals, label='model', lw=0.5, color='red')
# plt.plot(time, metrics['residuals'], label='residual', lw=0.8, alpha=0.7)
plt.plot(time[mask], [0.0] * len(time[mask]), 'k--', label='cross-validation', linewidth=3)
plt.legend()
plt.xlabel('time')
plt.ylabel('value')
plt.title(f"Model: {args.csv} Pearson r={metrics['pearson_r']:.4g} CV={metrics['CV']:.4g}")
# plt.grid(True)
if args.plot:
plt.show()
else:
plt.savefig(args.csv+'-'+args.low+'-'+args.high+'.png', bbox_inches='tight') # Save as PNG with tight bounding box
if name == 'main':
main()
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"0.5",
"1",
"2"
],
"AliasedAmp": [
0.1664225309941388,
-0.2248456793287714,
-0.24583219265437842,
-0.13670047429077842,
-0.05596096111465999,
-0.06922342754618857
],
"AliasedPhase": [
5.377732792716752,
4.1886730269266685,
3.6660080447027585,
0.6813756911164797,
1.1561156649997315,
7.152380003811944
],
"DC": -0.12777677516828612,
"Damp": 0.06479893403639156,
"DeltaTime": "3.416666667",
"Hold": 0.0014967241536286758,
"Imp_Amp": 199.5837988521354,
"Imp_Amp2": -0.4968336809759315,
"Imp_Stride": 6,
"Initial": 0.11377368483911615,
"LTE_Amp": 1.4522262526728902,
"LTE_Amp2": 0.22138866570066582,
"LTE_Freq": 134.25817448478074,
"LTE_Freq2": 0.0011180925598876339,
"LTE_Phase": 0.8757571204295547,
"LTE_Phase2": 6.16149818633276,
"LTE_Zero": -3.2420893710105143,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"6.809866946",
"2190.530426",
"6.816697567",
"6.823541904",
"1656.572278"
],
"PeriodsAmp": [
0.49949977321851263,
0.12854426237565938,
0.09776323015233836,
-0.1078234780518013,
-0.015394268086971315,
0.014012323067801306,
-0.039855631193442514,
0.002808550488152294,
0.01398775167334815,
-0.015176233350421769,
0.004879826601477435,
-0.010634889061161853,
-0.011368956307246735,
0.0007195462486307435,
-0.019572552778995715,
-0.009341823067123016,
-0.0634830808912972,
-0.006566621238775781,
0.022987658815233087,
0.027887890442349753,
-0.011654824426126956,
-0.025353890834915842,
-0.03042826480395,
-0.019118442968441333,
0.0071689636283343025
],
"PeriodsPhase": [
14.568883408601316,
8.862538266975196,
5.766320595701967,
4.940912218983716,
7.97188346875489,
9.146661787873326,
13.71900909053875,
4.86487421836257,
8.036633188752894,
4.905214216424707,
5.114950815893248,
7.968877649076145,
2.2091862176292656,
6.363912350901874,
6.061655961410555,
7.1676652767515785,
4.655147338040961,
3.9046161970549367,
7.771692128158078,
7.311306812569453,
9.283840589846879,
4.605187660193065,
6.647466771066414,
3.616127767046294,
5.750144503580306
],
"Year": "365.2495755"
}
fewer parameters, extra 12.8 and 7.6 year biennial
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.01373411600600657,
-0.24925080691132248,
-0.19645105170343374,
-0.053240781100470924,
-0.07023363251304943,
0.22156798548200038,
-0.08542010176712873
],
"AliasedPhase": [
4.505166008741849,
4.634983069111447,
3.9781852469451913,
1.1084517452956228,
7.129478457079872,
6.76962000570448,
7.360061965624767
],
"DC": -0.12777677516828612,
"Damp": 0.11092667501923856,
"DeltaTime": "3.416666667",
"Hold": 0.001497241950062863,
"Imp_Amp": 199.95632977470802,
"Imp_Amp2": -1.1039878744874996,
"Imp_Stride": 6,
"Initial": 0.11381015968220416,
"LTE_Amp": 1.4362597733998936,
"LTE_Amp2": 0.22138866570066582,
"LTE_Freq": 135.13980300104902,
"LTE_Freq2": 0.0011180925598876339,
"LTE_Phase": 0.8683530277906265,
"LTE_Phase2": 6.16149818633276,
"LTE_Zero": -2.156129982208437,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.49989102820075165,
0.1283790301523569,
0.09916397190389156,
-0.11346776121836187,
-0.012021252772694143,
0.01579727515687521,
-0.04093509621360872,
0.0025413050658450354,
0.01469449265310044,
-0.01708550006100795,
0.005165459975156417,
-0.015870078829274555,
-0.011415377295035072,
0.0007051313508501938,
-0.021696244677303553,
-0.010159950050880216,
-0.046608840876050134,
-0.007235656572135306,
0.02273747103045482,
0.02467256996849005,
-0.024483722184257914,
-0.0401580007638929
],
"PeriodsPhase": [
14.572398352634872,
8.829063763851819,
5.754620156331959,
4.984144081316561,
8.067471414826795,
9.20042717625232,
13.678236017492752,
7.581713046839885,
8.046781413367706,
4.927540683169563,
5.398413926794783,
8.503008034786298,
2.146272564580004,
5.784968052645453,
6.085644309438132,
7.221912116548478,
4.620637928357284,
4.191078105980651,
7.699353246673513,
7.383558843734266,
4.592831906457734,
6.6527865258442604
],
"Year": "365.2495755"
}
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
-0.015520265555962623,
-0.23729628910346737,
-0.17067041147672735,
-0.04228721677590398,
-0.06737730574119893,
0.24885323734792775,
-0.10893216006935212
],
"AliasedPhase": [
6.0803282835487344,
4.69815808758631,
4.093086885367645,
1.2257357217074238,
7.138432322922706,
6.831991347274161,
7.667804857056809
],
"DC": -0.12777677516828612,
"Damp": 0.11076327076547361,
"DeltaTime": "3.416666667",
"Hold": 0.001497241950062863,
"Imp_Amp": 199.84116704292475,
"Imp_Amp2": -1.194772069804572,
"Imp_Stride": 6,
"Initial": 0.11381015968220416,
"LTE_Amp": 1.418225005942186,
"LTE_Amp2": 0.21900468970266235,
"LTE_Freq": 135.37921617539627,
"LTE_Freq2": 0.0011180925598876339,
"LTE_Phase": 0.8792409371255436,
"LTE_Phase2": 6.966063426333888,
"LTE_Zero": -2.2618559232517974,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.49989102820075165,
0.1283790301523569,
0.09916397190389156,
-0.11346776121836187,
-0.012037474353421725,
0.01583960931430036,
-0.04093509621360872,
0.004835174746448423,
0.014690388131562085,
-0.01717786280370108,
0.0052310914273853626,
-0.015632563609286894,
-0.011420171454191271,
0.0007061351513286255,
-0.021364551695965864,
-0.010165871663239037,
-0.04654102137583136,
-0.00723636387709109,
0.022725782261923726,
0.02467256996849005,
-0.02435323549957254,
-0.040226727940872745
],
"PeriodsPhase": [
14.572398352634872,
8.828859334370764,
5.736295070865466,
4.983715077092693,
8.064966813967308,
9.195510477282863,
13.682378889767593,
7.606517553486846,
8.047904111784778,
4.929857032156695,
5.4848105356841454,
8.468521188922601,
2.143597100173438,
5.7905417041412965,
6.086763809834034,
7.230374032419841,
4.608020476661523,
4.190548710640622,
7.700278504549495,
7.381270040163863,
4.593309611082867,
6.655555530131739
],
"Year": "365.2495755"
}
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
-0.032516353209908325,
-0.22964623167478376,
-0.106956635248877,
-0.07395628420815965,
-0.04749355870545466,
0.33702386544831914,
0.06764532570994927
],
"AliasedPhase": [
6.925514995947206,
5.063378940325548,
4.2118280990635,
1.0670431499430466,
6.8526068437669325,
7.0681447205981485,
8.367672565829192
],
"DC": -0.274867131213384,
"Damp": 0.11387924269716464,
"DeltaTime": "3.416666667",
"Hold": 0.001497241950062863,
"Imp_Amp": 197.74880959148646,
"Imp_Amp2": -1.1937295677133053,
"Imp_Stride": 6,
"Initial": 0.11372993067058515,
"LTE_Amp": 1.1347303030382427,
"LTE_Amp2": 0.21900468970266235,
"LTE_Freq": 135.1927908512019,
"LTE_Freq2": 0.0011180925598876339,
"LTE_Phase": 0.6976918569957219,
"LTE_Phase2": 6.966063426333888,
"LTE_Zero": -0.30255137543600685,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.500425027759459,
0.1334461214551571,
0.0972475088863109,
-0.11385045870988864,
-0.010027193816219032,
0.013269140496035664,
-0.03882001802880552,
0.00911391321831788,
0.013861793707557914,
-0.02120254647500036,
0.004363735702128504,
-0.01973495345764209,
-0.011148238031906184,
0.0007181559214196173,
-0.02302273428134464,
-0.00975045970374891,
-0.0489761315432879,
-0.009954357065072807,
0.021569849188436626,
0.029718567471034678,
-0.02125963579465834,
-0.041163957401071025
],
"PeriodsPhase": [
14.575847377565035,
8.87668849709703,
5.832793420238761,
4.97819915132115,
8.221938576048572,
8.93550393998553,
13.54927494883589,
7.547725066265494,
8.064750681582169,
4.952891138406816,
4.681327872611894,
8.460797757083126,
2.1144742042662035,
5.449696407355292,
6.0106232637988946,
7.4027570612053575,
4.636651724105095,
4.25585106783906,
7.740293174480834,
7.424976360768335,
4.667489168719152,
6.687919438374671
],
"Year": "365.2495755"
}
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
-0.06918664670189494,
-0.2985989199913816,
-0.20765597365968588,
-0.048887377935359584,
-0.06506688648404786,
0.24003478471389286,
0.07765734673523077
],
"AliasedPhase": [
7.752160965388027,
4.750566147099367,
4.0613264319119695,
1.1082882193848693,
7.025398779036922,
6.7063086881544605,
10.294329662909774
],
"DC": -0.12423808951744805,
"Damp": 0.11804121166368504,
"DeltaTime": "3.416666667",
"Hold": 0.001497241950062863,
"Imp_Amp": 199.22284872886064,
"Imp_Amp2": -0.9027428748626144,
"Imp_Stride": 6,
"Initial": 0.11375655483569767,
"LTE_Amp": 1.4604654875881593,
"LTE_Amp2": 0.20670444077282657,
"LTE_Freq": 135.9690024089703,
"LTE_Freq2": 0.0011180925598876339,
"LTE_Phase": 0.8763419460905278,
"LTE_Phase2": 6.859520639968336,
"LTE_Zero": -2.5048269509446404,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.49927960618941336,
0.12927112377009758,
0.09897162242812127,
-0.1143477835005549,
-0.010077800009618214,
0.01522143261262352,
-0.04110023045843892,
0.0027383773483598355,
0.014574254311673415,
-0.018180068673822332,
0.006026020956249564,
-0.016389238257712695,
-0.01199927042186422,
0.0007555581377546212,
-0.022555997107519155,
-0.010514281503924435,
-0.04852970596500502,
-0.007420228958645425,
0.022126020631521665,
0.025312015697231415,
-0.021841606640866956,
-0.040443350761695245
],
"PeriodsPhase": [
14.57213478488964,
8.816338921228892,
5.765886410928156,
4.9817245953979,
8.21257713697612,
9.15143625820191,
13.6566717186159,
8.401176731068233,
8.090850604963034,
4.91573831661772,
5.215696600603423,
8.266291206663041,
2.117275737008649,
5.669536219081473,
6.129640601219435,
7.269457761117442,
4.5507958142623615,
4.307466328298344,
7.635456567993509,
7.42368540242242,
4.630594902502726,
6.634288530934836
],
"Year": "365.2495755"
}
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
-0.05705465417602754,
-0.2540407223221374,
-0.19424172449717483,
-0.027393338041106875,
-0.06839318183381371,
0.25723274955229214,
0.059780103613691925
],
"AliasedPhase": [
8.016668083702253,
4.761894224309435,
4.081386131615305,
1.4410007074734716,
7.200769710023577,
6.805989934736902,
10.255807985507136
],
"DC": -0.12423808951744805,
"Damp": 0.1164932508026369,
"DeltaTime": "3.416666667",
"Hold": 0.001497241950062863,
"Imp_Amp": 199.07578159812275,
"Imp_Amp2": -1.0013613080672634,
"Imp_Stride": 6,
"Initial": 0.11375655483569767,
"LTE_Amp": 1.333585491310017,
"LTE_Amp2": 0.24475198263665468,
"LTE_Freq": 135.7693413381282,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 0.8841195402917454,
"LTE_Phase2": 6.860982494238797,
"LTE_Zero": -2.346319244828531,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.4991832634332175,
0.12927112377009758,
0.09897162242812127,
-0.1143477835005549,
-0.010077800009618214,
0.01522143261262352,
-0.042050349200289217,
0.0027383773483598355,
0.014574254311673415,
-0.018180068673822332,
0.006026020956249564,
-0.016389238257712695,
-0.01199927042186422,
0.0007555581377546212,
-0.022555997107519155,
-0.010514281503924435,
-0.04852970596500502,
-0.007420228958645425,
0.022126020631521665,
0.02550429078485793,
-0.021841606640866956,
-0.040443350761695245
],
"PeriodsPhase": [
14.57213478488964,
8.814588001089069,
5.779004182090799,
4.981083413856415,
8.181194656281678,
9.125350394298085,
13.665472025711015,
8.200352307853896,
8.079639401323517,
4.931176471212014,
5.182444832586724,
8.28382559420852,
2.1263821140859798,
5.684825197859496,
6.134006386204361,
7.273052818952145,
4.5507958142623615,
4.336713303887333,
7.636066996819392,
7.424033811747508,
4.6199713762301,
6.66901041646273
],
"Year": "365.2495755"
}
Now we take this and use it to predict the Warnemunde 2 coastal station SLH readings
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.6401810794204986,
-0.5820084992504192,
0.5127220579066445,
-0.1544615995167078,
0.11744801916448509,
0.1393456410652593,
-0.5320708252781166
],
"AliasedPhase": [
7.807805272287657,
2.9705424815572576,
5.166277724980381,
0.4124621839005815,
6.996251338120917,
8.816346761467324,
11.178905381216525
],
"DC": -0.12423808951744805,
"Damp": 0.1164932508026369,
"DeltaTime": "3.416666667",
"Hold": 0.001497241950062863,
"Imp_Amp": 199.12441923480887,
"Imp_Amp2": -0.6973381974779412,
"Imp_Stride": 4,
"Initial": 0.11375655483569767,
"LTE_Amp": 0.5576623636392035,
"LTE_Amp2": 0.5910368411836608,
"LTE_Freq": 135.40216164769754,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.1304899708816272,
"LTE_Phase2": 7.341094335645685,
"LTE_Zero": -0.11112540824675762,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5679190871642851,
0.12927112377009758,
0.10517785886260163,
-0.1143477835005549,
-0.010071374263150499,
0.01522143261262352,
-0.09087412799925196,
0.0027383773483598355,
0.014574254311673415,
-0.018180068673822332,
-0.026035631947286843,
-0.016389238257712695,
-0.010026337703068933,
0.0007555581377546212,
-0.022555997107519155,
-0.010493502018753653,
-0.0019912634455650983,
-0.007420228958645425,
0.028465573741109057,
0.07509643885625089,
-0.021841606640866956,
-0.040934338045509895
],
"PeriodsPhase": [
14.623705339235324,
8.690396262012275,
5.753639552090883,
4.9812294358878635,
8.114207822131954,
9.126135560070345,
13.659961072760922,
8.187668885921761,
7.996927409219975,
4.947028199067624,
5.190988014316639,
8.333353920678146,
2.116530928178076,
5.708747294661499,
6.124903261628813,
7.286490891124734,
4.747690245453144,
4.342939526142313,
7.636066996819392,
7.418279453679825,
4.6266318710707415,
6.679561910312635
],
"Year": 365.24708113327955
}
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.4010361700621753,
-0.34674692755400494,
0.29662399149217245,
-0.10905251166965364,
0.06108177229315168,
0.20860305290624204,
-0.3800272268582733
],
"AliasedPhase": [
7.528187607184889,
3.321368494416997,
5.235873799385882,
0.2565968850604682,
6.450766804341344,
9.079444169205582,
11.383624244525839
],
"DC": -0.12423808951744805,
"Damp": 0.08287248516370786,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 196.45941199688434,
"Imp_Amp2": -0.7315160176037717,
"Imp_Stride": 4,
"Initial": 0.11802257719845638,
"LTE_Amp": 0.9744717952301879,
"LTE_Amp2": 0.6383627438271272,
"LTE_Freq": 133.92916118514597,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.5197061880303095,
"LTE_Phase2": 7.577022007295214,
"LTE_Zero": -0.8187412067530945,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5630773710797106,
0.12346039282693197,
0.10143133109774505,
-0.11135710167859678,
-0.018741997115508117,
0.021719570980327327,
-0.06459152566038855,
-0.03234799060276577,
0.014001559137962367,
-0.008794806046461184,
-0.0331071496895582,
-0.012296723717384637,
-0.023482053809808646,
0.000881693547645507,
-0.021114314682501058,
-0.009764611700968241,
-0.01488320313751417,
-0.007800742357813637,
0.03656023200080713,
0.06641962892394444,
-0.02476454140024158,
-0.05194363189358087
],
"PeriodsPhase": [
14.576473988428766,
8.659314104036204,
5.726850233415195,
5.07664184467225,
8.303988773490067,
8.702440292710122,
13.9237413634786,
8.18278015658106,
8.092304596680782,
5.23086737634562,
5.1651598392679805,
6.723700273017174,
1.8921629611838529,
5.113932267882324,
6.0785216627468985,
7.382956820561761,
6.07916124802061,
4.082558344706477,
7.747650744206884,
7.423395798309744,
4.270643436569193,
6.736043355042859
],
"Year": 365.24708113327955
}
Full Warnemunde
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.3419366365550749,
-0.33746385160190384,
0.4485125085083183,
-0.1505363197572114,
0.07754472400411049,
0.18348935125344057,
-0.5751639034202856
],
"AliasedPhase": [
7.808126629864722,
3.6305340998515363,
5.208355427374299,
0.2092812000220146,
6.4054934815387465,
10.27967123104172,
11.284073955160792
],
"DC": -0.12423808951744805,
"Damp": 0.08708897512348249,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.29680223767545,
"Imp_Amp2": 0.8591216779972336,
"Imp_Stride": 4,
"Initial": 0.11803077561919893,
"LTE_Amp": 1.3138405796661277,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 136.24764562277522,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.7029770680785028,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 0.15390410621348005,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5602142444370494,
0.1389818338654034,
0.07992122139006537,
-0.11136360648641389,
-0.021776255035546508,
0.020282684112866343,
-0.04797080246096962,
-0.042969085440637635,
0.014864829185305798,
-0.009021237911429747,
-0.0343885766124657,
-0.03574632377261504,
-0.02050592060287784,
0.0007799724568430707,
-0.02096354622583586,
-0.00980774144504957,
-0.0038738953033040473,
-0.010118133597960266,
0.04029163126372332,
0.06870651651857536,
-0.018697939030539266,
-0.05180741911565132
],
"PeriodsPhase": [
14.574223416340931,
8.523892678007812,
5.666238567397149,
5.035312386216637,
8.639173069272724,
8.528136802563518,
13.753028784291049,
7.612302009332403,
7.862916826256063,
5.003481426731825,
4.8669819057734065,
7.83710661122103,
2.0791890768190284,
4.598459886002269,
6.2763871571451375,
7.432162186088311,
3.1985400619571656,
4.20812394921811,
7.603931189442626,
7.436746214349708,
3.7207499486860858,
6.765680085984023
],
"Year": 365.24708113327955
}
NAO
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
-0.2744388623512538,
-0.12593049666622055,
0.17165254687487977,
0.024505179134009587,
0.00821206393831048,
0.11946152637287433,
-0.2573299637324786
],
"AliasedPhase": [
8.255689553217055,
3.1330620880573687,
4.244480515039745,
2.0258887742102587,
7.05880768220954,
9.49161849874641,
9.908982446121414
],
"DC": 0.02815599412073511,
"Damp": 0.09597959668097587,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 199.05867022769036,
"Imp_Amp2": 0.32562834518008166,
"Imp_Stride": 0,
"Initial": 0.11803077561919893,
"LTE_Amp": 1.0288865691600835,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 134.0851714709694,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.6458137977954392,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 0.4940085639379609,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5752461511718358,
0.1466035728468828,
0.07989842812298982,
-0.11294298959438621,
-0.013888666216785042,
-0.007787682217682786,
-0.03237369342783798,
0.27430818370596477,
0.015048963420871957,
-0.01363012307697694,
-0.04377278386842616,
-0.007266552519386137,
-0.02377714952482342,
0.00033172999213253304,
-0.018864071799101073,
-0.005948862314719692,
-0.016025013430675594,
-0.018932441045351234,
0.04331237279495707,
0.05054837197928527,
-0.016832922300224828,
-0.06317335321505937
],
"PeriodsPhase": [
14.559581112388164,
8.330231942118166,
5.623498911405296,
5.04530310813236,
7.175789881827318,
8.149783799490487,
13.591718344719666,
7.602437979297051,
7.96559947662293,
4.648241791154888,
4.542435917821159,
9.248899611035322,
2.000298153570253,
5.270941271292906,
6.034427812825386,
7.315421978593975,
1.9045919300922314,
4.908027716285974,
7.75342067969287,
7.074551569276791,
3.291107687391094,
6.609535331078324
],
"Year": 365.24708113327955
}
higher Trop / Anom mix. results in a stronger 4.4y modulation


Aarhus #76
https://psmsl.org/data/obtaining/rlr.monthly.data/76.rlrdata
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.18630809569369605,
-0.30321413222416055,
0.24696111138696922,
-0.23900738714363148,
-0.06863697039535242,
0.17513688045215486,
-0.3974986503173688
],
"AliasedPhase": [
8.16915375668099,
3.164958532608324,
5.27221464170202,
0.7137749515718673,
6.441059641541864,
8.010071480944289,
10.677128923323469
],
"DC": 0.0658468087947737,
"Damp": 0.07368879174370906,
"DeltaTime": 3.371152792758322,
"Hold": 0.0014943329519264681,
"Imp_Amp": 196.969997892079,
"Imp_Amp2": -0.014329248128447599,
"Imp_Stride": 3,
"Initial": 1.0817329731970124,
"LTE_Amp": 0.921032757009413,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 135.9347271872061,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 0.916821134537369,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.2283810117093863,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5620918312894726,
0.13100203430373913,
0.08454288496749757,
-0.09883843224556091,
-0.012410945165334383,
0.019815561740529328,
-0.04598530415496373,
-0.035418431532030996,
0.01735505178773413,
-0.03539970123886728,
-0.03180493647115627,
-0.044250668077782225,
-0.022337912355512926,
0.0011310779764427952,
-0.01912669453499279,
-0.0116086412849493,
-0.00923015041149838,
-0.011099911279918974,
0.04295385525365144,
0.06753842755970056,
-0.021068191137038863,
-0.06905865666598861
],
"PeriodsPhase": [
14.60194298782468,
8.528274007602084,
5.731213496159739,
5.040406686537091,
10.359239039406923,
8.012035917564935,
13.819457621268269,
7.984219444477046,
8.535222861945677,
5.903442326142986,
4.851798569154985,
8.46581066436242,
2.275198526676032,
4.397225567406199,
6.347335600549824,
7.354756562376431,
0.6338575241984553,
3.6113883619054863,
7.404748777656788,
7.43609271815472,
4.486765182546372,
6.5985910593798405
],
"Year": 365.24708113327955
}
Use Fremantle AUS (#111) as a proxy for NINO34

{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.23174249416151022,
-0.1070623140491079,
0.23838613734595623,
-0.14986100423912133,
0.02279681626739047,
0.4960694208660594,
-0.2678984132515941
],
"AliasedPhase": [
7.466785332281441,
0.9941929561058978,
3.693284439100918,
1.9254966121833061,
8.29805906418968,
9.869326578875482,
9.120674108237555
],
"DC": -0.12423808951744805,
"Damp": 0.05645356501411647,
"DeltaTime": 3.5306313768521287,
"Hold": 0.0014943329519264681,
"Imp_Amp": 194.4001452572424,
"Imp_Amp2": 0.004370712596522332,
"Imp_Stride": 6,
"Initial": 0.11624437147384048,
"LTE_Amp": 1.1035973146739562,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 132.81332996480933,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.4694229707005697,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 1.6934169933790504,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5602142444370494,
0.13102426620482022,
0.08513741593458704,
-0.10743837579951404,
-0.022677437561556317,
0.01713412385059579,
-0.052551088859125496,
-0.04438086929814986,
0.014850452388015477,
-0.006602849431398543,
-0.0354969835793644,
-0.04456103983752877,
-0.02025429260661,
0.0013076071471877899,
-0.01984369864784211,
-0.013927133965635146,
-0.01702690605922692,
-0.002892731789010914,
0.04350680969044852,
0.06929242446532863,
-0.017747264290199894,
-0.06395161410568909
],
"PeriodsPhase": [
14.58212772539097,
8.60185079669073,
5.489363148906172,
5.14764815901879,
8.87852630846987,
9.164273278645098,
13.674483111813489,
6.914794392777358,
7.625238711182835,
4.716141451706088,
4.876340436476588,
7.555443706232741,
1.7733807000426378,
4.4102561808097125,
7.048286745759765,
7.229787372245087,
4.637910839180891,
4.378823257360646,
7.272995852392219,
7.576228980576777,
3.43010295384348,
6.665907220848805
],
"Year": 365.24708113327955
}
can see how close Fremantle is to NINO34, basically the sign inverse, CC= -0.6

{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.4225279120281558,
-0.5589979693066636,
0.14539869415921317,
-0.10291885167184606,
0.03648006278140163,
0.46470659698023264,
-0.44509182659107643
],
"AliasedPhase": [
11.916806539463447,
4.0094872844132015,
6.481487508543677,
0.3841142841850448,
5.944497830716165,
12.375748248531028,
11.495503816350796
],
"DC": -0.12423808951744805,
"Damp": -0.39935052043051,
"DeltaTime": 3.417303799039976,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.29680223767545,
"Imp_Amp2": 1.7123821012922336,
"Imp_Stride": 12,
"Initial": 0.7265529311816403,
"LTE_Amp": 1.6018102026060472,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 135.1144828512979,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 2.180122057123241,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.10106578957082826,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
1.0669823697152896,
0.4653684258029308,
0.8400006677005887,
0.05473975247301863,
-0.5936553432652493,
0.4101359366543433,
-0.38156371142803663,
-0.8850564677655708,
0.19401080414144678,
0.3145000830130735,
-0.8719993183472119,
-0.1519138272169979,
-0.27264310335883707,
0.16237252448446315,
-0.3769793952245482,
-0.533716240496705,
0.1885421540891763,
-0.6154620167797697,
0.8505354985084489,
-0.16905026857554278,
-0.7342313226988422,
-0.5723125965980024
],
"PeriodsPhase": [
15.2757128915079,
9.568628986274733,
4.4748392255587,
8.128443017883,
9.37927247739791,
11.371359291069092,
10.899802776945053,
10.84237067042267,
9.409838628598559,
0.6820200715432666,
2.319939777475248,
8.385313948327621,
1.9854351234589862,
6.907840118615101,
5.228690450288638,
8.03135035598976,
0.3641945932460748,
2.376444557107234,
6.734916291749504,
6.605266946914558,
3.463765807387349,
7.76659004973132
],
"Year": 365.24708113327955
}
Portland ME USA #183
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.4225279120281558,
-0.5589979693066636,
0.14539869415921317,
-0.10291885167184606,
0.03648006278140163,
0.46470659698023264,
-0.44509182659107643
],
"AliasedPhase": [
11.916806539463447,
4.0094872844132015,
6.481487508543677,
0.3841142841850448,
5.944497830716165,
12.375748248531028,
11.495503816350796
],
"DC": -0.12423808951744805,
"Damp": -0.39935052043051,
"DeltaTime": 3.417303799039976,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.29680223767545,
"Imp_Amp2": 1.7123821012922336,
"Imp_Stride": 12,
"Initial": 0.7265529311816403,
"LTE_Amp": 1.6018102026060472,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 135.1144828512979,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 2.180122057123241,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.10106578957082826,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
1.0669823697152896,
0.4653684258029308,
0.8400006677005887,
0.05473975247301863,
-0.5936553432652493,
0.4101359366543433,
-0.38156371142803663,
-0.8850564677655708,
0.19401080414144678,
0.3145000830130735,
-0.8719993183472119,
-0.1519138272169979,
-0.27264310335883707,
0.16237252448446315,
-0.3769793952245482,
-0.533716240496705,
0.1885421540891763,
-0.6154620167797697,
0.8505354985084489,
-0.16905026857554278,
-0.7342313226988422,
-0.5723125965980024
],
"PeriodsPhase": [
15.2757128915079,
9.568628986274733,
4.4748392255587,
8.128443017883,
9.37927247739791,
11.371359291069092,
10.899802776945053,
10.84237067042267,
9.409838628598559,
0.6820200715432666,
2.319939777475248,
8.385313948327621,
1.9854351234589862,
6.907840118615101,
5.228690450288638,
8.03135035598976,
0.3641945932460748,
2.376444557107234,
6.734916291749504,
6.605266946914558,
3.463765807387349,
7.76659004973132
],
"Year": 365.24708113327955
}
Ketchikan Ak USA #225
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.11038766683008203,
-0.2609582084849903,
0.048036936059908844,
-0.3478229365482875,
0.07494837037229467,
0.3660449178949619,
-0.34928227419293967
],
"AliasedPhase": [
8.576134785785362,
5.535878104913326,
5.987266234218162,
-0.797179002177004,
3.3956874138026496,
11.774895812209516,
9.679494074204658
],
"DC": -0.12423808951744805,
"Damp": 0.09004554650254884,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.5651624025913,
"Imp_Amp2": 2.674043040231733,
"Imp_Stride": 9,
"Initial": 0.11803077561919893,
"LTE_Amp": 1.4794049402787448,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 135.81533110611548,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.2124755007230785,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 1.8576127520607248,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5572364069024972,
0.13534118510342996,
0.07157384026793044,
-0.11136360648641389,
-0.03042343641810574,
0.021517206143626424,
-0.04683328388655832,
-0.061052579003294125,
0.014864829185305798,
-0.014505222428223932,
-0.03687815352172536,
-0.03319183976088729,
-0.0225966883142051,
0.0005677500877298032,
-0.021846290255809857,
-0.00980774144504957,
-0.022438281739933168,
-0.010118133597960266,
0.04157083397351827,
0.0685387163321443,
-0.01876854964947147,
-0.05563987881759451
],
"PeriodsPhase": [
14.624345990901192,
8.279642868392148,
6.002201776365225,
4.992972797443374,
8.762860035588224,
7.8474126231604995,
13.815253745367528,
7.865391827337022,
7.40179719043826,
3.532043048717743,
4.124029613591251,
9.111050326655652,
2.2279519201807774,
2.8296020910735358,
5.911031175121689,
7.354654530532619,
4.107424263725174,
5.491204522448329,
7.212601412892005,
7.723018206119836,
3.761783742075979,
7.277452185135199
],
"Year": 365.24708113327955
}
La Jolla CA USA #256
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.21276651781935968,
-0.3068869494096654,
0.192778517585835,
-0.17521450466993826,
0.03085860573919736,
0.3541457099573648,
-0.5474804721438901
],
"AliasedPhase": [
10.90959088733975,
4.682601499562539,
5.987505152407519,
0.7260442153327273,
7.276185524890352,
12.758043842217868,
9.913515162714722
],
"DC": -0.12423808951744805,
"Damp": 0.07835921457491683,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 195.72191687391157,
"Imp_Amp2": -1.5632680866775066,
"Imp_Stride": 1,
"Initial": -0.6064963014925301,
"LTE_Amp": 1.2991081952656705,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 135.92228886366516,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 2.005102193749262,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 0.31785815951546703,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5603349375076878,
0.12490026778906475,
0.08260875337740832,
-0.10399042670948323,
-0.016090919245008765,
0.01421067189056463,
-0.04797080246096962,
-0.046339574071545236,
0.01075667815152479,
-0.015388973732966577,
-0.038474045295777026,
-0.06688001797421561,
-0.023298961203204335,
0.00027682536362303063,
-0.02168383321775072,
-0.00980774144504957,
-0.0026636824389454222,
-0.010607245854673236,
0.04029163126372332,
0.0705167472757907,
-0.018697939030539266,
-0.06369972519828374
],
"PeriodsPhase": [
14.567955691744073,
8.368450545356298,
5.732485651593579,
4.960522987852565,
9.627372443934213,
8.210846718715532,
13.900856043234867,
7.727691399368326,
7.720991477064335,
3.4984400942206997,
5.083752515382871,
8.833122482310982,
1.9373913751639595,
2.904303424208754,
6.368185798511718,
7.4151396212294,
5.222725484412981,
5.151629417951679,
7.651652229655173,
7.13591722775163,
4.154226805577023,
6.7433128403396685
],
"Year": 365.24708113327955
}
Kahului Harbor HI USA 521
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.21276651781935968,
-0.3068869494096654,
0.192778517585835,
-0.17521450466993826,
0.03085860573919736,
0.3541457099573648,
-0.5474804721438901
],
"AliasedPhase": [
10.90959088733975,
4.682601499562539,
5.987505152407519,
0.7260442153327273,
7.276185524890352,
12.758043842217868,
9.913515162714722
],
"DC": -0.12423808951744805,
"Damp": 0.07835921457491683,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 195.72191687391157,
"Imp_Amp2": -1.5632680866775066,
"Imp_Stride": 1,
"Initial": -0.6064963014925301,
"LTE_Amp": 1.2991081952656705,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 135.92228886366516,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 2.005102193749262,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 0.31785815951546703,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5603349375076878,
0.12490026778906475,
0.08260875337740832,
-0.10399042670948323,
-0.016090919245008765,
0.01421067189056463,
-0.04797080246096962,
-0.046339574071545236,
0.01075667815152479,
-0.015388973732966577,
-0.038474045295777026,
-0.06688001797421561,
-0.023298961203204335,
0.00027682536362303063,
-0.02168383321775072,
-0.00980774144504957,
-0.0026636824389454222,
-0.010607245854673236,
0.04029163126372332,
0.0705167472757907,
-0.018697939030539266,
-0.06369972519828374
],
"PeriodsPhase": [
14.567955691744073,
8.368450545356298,
5.732485651593579,
4.960522987852565,
9.627372443934213,
8.210846718715532,
13.900856043234867,
7.727691399368326,
7.720991477064335,
3.4984400942206997,
5.083752515382871,
8.833122482310982,
1.9373913751639595,
2.904303424208754,
6.368185798511718,
7.4151396212294,
5.222725484412981,
5.151629417951679,
7.651652229655173,
7.13591722775163,
4.154226805577023,
6.7433128403396685
],
"Year": 365.24708113327955
}
Marseilles FRA #61
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.5447297186821478,
-0.27960001495377934,
0.5282267187635779,
-0.10456885440481153,
0.07062410015114838,
0.315969574765093,
-0.11267289210579345
],
"AliasedPhase": [
5.468924455756536,
6.316160394459762,
8.545686070715663,
-0.04986436975464306,
4.107524536969129,
6.907631346322484,
10.883547283098418
],
"DC": -0.12423808951744805,
"Damp": 0.07857139277109378,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.52391135906902,
"Imp_Amp2": 1.1913488696965775,
"Imp_Stride": 3,
"Initial": 0.11964511097845909,
"LTE_Amp": 1.2282841478627837,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 137.9162389093583,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.0631570876312166,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.0942606761101211,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5556319377551009,
0.10865086521594125,
0.0822083035390464,
-0.11466968986824809,
-0.0360875978613115,
0.02204821244993829,
-0.04872328668228335,
-0.042878995772266414,
0.01642203394096803,
-0.009518736526421719,
-0.035128413091391315,
-0.03164415956272223,
-0.021168397952596656,
0.0037767648582872192,
-0.021761393390155013,
-0.010440956588456174,
-0.008629441771531726,
-0.011668645479525975,
0.03647100262503218,
0.07059938077465211,
-0.018598761215074807,
-0.05213900622080094
],
"PeriodsPhase": [
14.591709495574568,
8.504376269030544,
5.911750625504026,
4.978451705634533,
8.025025548310124,
8.854548837401383,
13.647352153086405,
7.547961705408631,
8.348150236201912,
5.356895931897288,
5.057574738700235,
8.442592473525098,
1.809940216337418,
3.5200689977263186,
6.261275863689778,
6.715359174473164,
4.432675444078767,
3.7502906381444605,
7.7520313252310435,
7.3329611810487725,
3.227685101688455,
6.947272274024824
],
"Year": 365.24708113327955
}
San Fran CA #10
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.3424906859966575,
-0.39046666848799794,
0.11746295585368753,
-0.06602888452571147,
0.06114630382395103,
0.4571493079689326,
-0.45039537718232003
],
"AliasedPhase": [
9.716791098830134,
4.799373620882724,
2.931664035896502,
0.0656578638960524,
7.546705792532393,
12.510297606178154,
10.791078560569309
],
"DC": -0.12423808951744805,
"Damp": 0.08994366479980442,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 189.2747947196294,
"Imp_Amp2": 1.2032888711092256,
"Imp_Stride": 3,
"Initial": 0.11803077561919893,
"LTE_Amp": 1.2089786777645317,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 138.45677500993816,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.3900343675249007,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 1.570496486439145,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5549874999468004,
0.1270388225630153,
0.08010936265204537,
-0.11026542830583266,
-0.0076705878609564316,
0.028036892465247265,
-0.04698740781589587,
-0.040479722782910725,
0.018253288003263146,
-0.007083484568957627,
-0.0338011089819492,
-0.03961329727884428,
-0.02398914361324148,
0.0007799724568430707,
-0.01912036216953047,
-0.009766777782505481,
-0.009996151316769354,
-0.01288033914248433,
0.029173245700406428,
0.07295754082081238,
-0.007581303958018362,
-0.04667680764992686
],
"PeriodsPhase": [
14.58902823863258,
8.63477627120771,
5.536960742558955,
4.889075599155848,
11.293454717731784,
8.976948844914197,
14.897621545423156,
9.072739686357702,
7.960534770737466,
3.4481090032115063,
4.882726208018943,
8.204636348864486,
2.234740071279787,
4.598448311221539,
5.3213404277388285,
7.320087085956479,
3.2107120219780945,
4.453997442567288,
7.929442252232137,
7.775346698531202,
3.78516422589696,
6.43811979601834
],
"Year": 365.24708113327955
}


Key West FLA USA
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.3409948998858548,
-0.2780361603280389,
0.15471670627000148,
-0.3285346958239726,
0.17644149707602652,
0.3005595377659302,
-0.45461283665293656
],
"AliasedPhase": [
6.583388232705002,
1.018538581126519,
4.948426133184595,
0.6219677490044827,
4.969659033102598,
9.837041607912267,
9.44092635913059
],
"DC": -0.12423808951744805,
"Damp": 0.08708897512348249,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 195.4818873487873,
"Imp_Amp2": -0.5522421053672776,
"Imp_Stride": 7,
"Initial": 0.8174739560242182,
"LTE_Amp": 1.2575582052293228,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 136.9170535466343,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.495190318764891,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -1.1957374181972968,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5627091449876335,
0.13879824337278035,
0.0737132261048665,
-0.11218407126016473,
-0.025624055327801848,
0.020282684112866343,
-0.04939624926696036,
-0.04719043124174282,
0.014248813119031183,
-0.004943293140421929,
-0.04728412726624584,
-0.04558490066322549,
-0.009975688707115668,
0.0007799724568430707,
-0.020171695888039052,
-0.00980774144504957,
-0.018219102064584634,
-0.010654905583204524,
0.03861997187485363,
0.06686325268888788,
-0.018697939030539266,
-0.0473185714678123
],
"PeriodsPhase": [
14.689235080858671,
8.520301784548902,
5.728703789083029,
5.055688919044302,
9.755726022407483,
8.588975731308528,
13.767255528105279,
6.915652676847138,
8.06302519697901,
3.3519371582858004,
4.787570177645283,
7.675397728583513,
2.0002441584251964,
3.8758901073683014,
7.072223519455869,
7.730228277035376,
3.1527656545704774,
5.24318466403482,
7.300935637207466,
7.5502218077206225,
4.345634193017175,
7.677537949815777
],
"Year": 365.24708113327955
}
notepad
Galveston TX USA 161
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.2849518300473971,
-0.2313901915654936,
0.17224693972962973,
-0.15996487563447953,
0.17362771633244897,
0.2456870652457218,
-0.7943361400461847
],
"AliasedPhase": [
10.479548674641967,
6.3460520981307065,
5.3956522256822605,
0.7766271564528061,
4.639864014718314,
10.163044853945701,
10.747048388960225
],
"DC": -0.12423808951744805,
"Damp": 0.07399681567368248,
"DeltaTime": 3.4598988692053028,
"Hold": 0.0014943329519264681,
"Imp_Amp": 190.38731389664204,
"Imp_Amp2": 0.5229735423390199,
"Imp_Stride": 6,
"Initial": 0.11951484174827703,
"LTE_Amp": 1.4643296343421905,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 138.0952177699771,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.9772314930752097,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.3618413882968936,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.557022723767692,
0.1571674532636112,
0.0797080326722912,
-0.10917989777871864,
-0.018911869844051445,
0.020282684112866343,
-0.0408112071492258,
-0.052365367747100995,
0.014864829185305798,
-0.0028552937901070393,
-0.033048664726229623,
-0.03779680890265911,
-0.02050592060287784,
0.0007799724568430707,
-0.023016438655133992,
-0.00980774144504957,
-0.0052865430398065065,
-0.01571437126048759,
0.04029163126372332,
0.06413348562208061,
-0.016326965315034414,
-0.05180741911565132
],
"PeriodsPhase": [
14.573550338576656,
8.388813031355642,
5.882928421182731,
5.045343575517033,
6.848443822219482,
8.891776424275934,
14.59914998713087,
7.419891343743528,
7.787908368232496,
5.3984951435568584,
4.456986444364476,
6.641857581074675,
2.000594040644599,
3.9888211356813783,
5.94786701315979,
6.323429218764891,
2.192398419968491,
5.203429626137839,
7.611015069547224,
7.800928420521588,
3.948676867104141,
6.949563332768747
],
"Year": 365.24708113327955
}
Seattle WA USA #127
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.15021758935096358,
-0.10823866447614891,
0.15441478560984975,
-0.2115863686029157,
0.07350473631861698,
0.42056509250512886,
-0.27896055722677243
],
"AliasedPhase": [
10.147820921061445,
4.46194556318653,
2.488632100859631,
2.199933277125925,
9.13068648299043,
12.014807133477161,
10.844619232540898
],
"DC": -0.12423808951744805,
"Damp": 0.08117725586645165,
"DeltaTime": 2.867951521122257,
"Hold": 0.0014943329519264681,
"Imp_Amp": 194.90375270958657,
"Imp_Amp2": 1.8387469418794362,
"Imp_Stride": 6,
"Initial": 0.11780381536620259,
"LTE_Amp": 1.4695915077628663,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 137.4195447406675,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.0221772793124562,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 0.5232476881354089,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5579746831303938,
0.1422287443625032,
0.09540100337921459,
-0.11136360648641389,
-0.041902762245940514,
0.019726721045017277,
-0.04629766764299344,
-0.046782876100208495,
0.015819982753916495,
-0.01633074871760218,
-0.0345958414060293,
-0.03854973472697,
-0.028649219079949995,
0.0007799724568430707,
-0.018527566938827976,
-0.009824511131749024,
-0.015358311790964176,
-0.01115851254789165,
0.03570314614514096,
0.0626545922485149,
-0.015758139247219197,
-0.05444207139096743
],
"PeriodsPhase": [
14.480341357349399,
8.523669280034888,
5.676566319346475,
4.967961372671325,
8.764545893648027,
8.248878176432465,
13.167867674314166,
7.62274234677957,
8.315377454616488,
5.874999475586233,
4.200970118434633,
7.7991041673520565,
2.652818444882988,
2.7502527628629423,
6.316244061043092,
7.2100785993521175,
5.318459128811323,
6.131738313545409,
7.291773948092493,
7.1910656412094385,
5.290416377107092,
6.500868725563091
],
"Year": 365.24708113327955
}
Batumi Georgia Black Sea #51
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.6636159546869447,
-0.09531685714734608,
0.45331085321364606,
-0.09230594155868857,
0.05086018183984196,
0.6070692092107837,
-0.3094181833516383
],
"AliasedPhase": [
5.459876795003137,
2.4961937779655576,
4.104862427631985,
0.5454753597418261,
3.7449017215713307,
10.911174368270531,
11.578936901627587
],
"DC": -0.12423808951744805,
"Damp": 0.0862146479268188,
"DeltaTime": 5.77729993819659,
"Hold": 0.0014966553101824996,
"Imp_Amp": 196.93143148731625,
"Imp_Amp2": 1.7270081666013122,
"Imp_Stride": 11,
"Initial": 0.11786549247982156,
"LTE_Amp": 1.6839347019283093,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 135.02690878747472,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.4565365551751186,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.14747160618867886,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5597199057390579,
0.13348499958658447,
0.09398968579568966,
-0.11614689864652761,
-0.016173234582983025,
0.02194634633767638,
-0.03682954254629307,
-0.04254536285838979,
0.014864829185305798,
-0.004401090332376718,
-0.0349389542196871,
-0.030006564643560545,
-0.017640390067929224,
0.0012067160527159408,
-0.018754742223858978,
-0.010671760093588768,
-0.009608865044434424,
-0.00915257566102827,
0.037000625155062826,
0.06887707558639777,
-0.015311904655042088,
-0.056693291150112034
],
"PeriodsPhase": [
14.681707013724113,
8.68000039347857,
5.837794732963355,
4.7878319925644846,
10.23281983569338,
8.917676466952308,
13.418511587906876,
7.252119923059244,
7.8511668992712655,
8.224028389384555,
4.758320558366546,
6.837322504645968,
1.8521743195078904,
6.940261303351203,
5.725396263255512,
7.668494231276973,
6.003949355798829,
4.1896995392397836,
7.455407890103116,
6.947517575844298,
3.478332423862492,
7.940509520149278
],
"Year": 365.24708113327955
}
Cascais PT #52
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.4281325132818794,
-0.1040905526013869,
0.1806228244318623,
-0.04795600930606042,
0.06330565447389577,
0.2886696903850974,
-0.40743912052819403
],
"AliasedPhase": [
8.313385908906783,
5.5059667248639315,
4.324670910801373,
0.4034463557737284,
5.19279386714742,
7.627142425201598,
14.687379057550622
],
"DC": -0.12423808951744805,
"Damp": 0.08708897512348249,
"DeltaTime": 3.391515587126048,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.45250291051536,
"Imp_Amp2": 0.21460008706963266,
"Imp_Stride": 5,
"Initial": -0.1182156295052572,
"LTE_Amp": 1.1456337514957091,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 136.61387426513923,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.6949801520587338,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -1.0770341980368543,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.556870369043398,
0.13917289978816752,
0.08611268052405514,
-0.10832372514443626,
-0.020164082681043236,
0.019522460304407376,
-0.05123219285767934,
-0.04936322883115184,
0.015168065758754574,
-0.015926447390857575,
-0.03675776709249386,
-0.05785324993100611,
-0.019282507265843664,
0.0007799724568430707,
-0.021451203343689093,
-0.010123887125585063,
-0.010864576173550723,
-0.013123913215740727,
0.03946158891726661,
0.06521771851979763,
-0.019696179630046915,
-0.05491127661927035
],
"PeriodsPhase": [
14.548605269364552,
8.477561554947064,
5.656208586472731,
5.105179942509547,
8.775092567495301,
8.334300800250386,
13.273553655533195,
7.362800755429539,
7.657342337975812,
3.5423862357886704,
4.699183053523781,
7.715669736575492,
1.8762561457306925,
4.869545214389658,
6.696594748385298,
7.116010375709213,
-0.06005815474262812,
5.766162628252996,
7.28683111723954,
7.412754818972255,
4.390250422301994,
7.504099767885885
],
"Year": 365.24708113327955
}
Genoa IT #59
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.1381714881952509,
-0.26588546947245134,
0.4786154072391762,
-0.10946254139329571,
0.08622119448101587,
0.25822784618360706,
-0.3308046683238499
],
"AliasedPhase": [
7.052746698445912,
4.163653484056796,
5.67996744940267,
1.3263692517840875,
5.877946675954494,
8.613404483436403,
12.163740500062978
],
"DC": -0.12423808951744805,
"Damp": 0.10526106517893746,
"DeltaTime": 5.278000627331327,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.74143018004023,
"Imp_Amp2": 0.17311542064893357,
"Imp_Stride": 3,
"Initial": 0.1179505225124397,
"LTE_Amp": 1.3507785763425069,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 137.8349334535079,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.9882423951931625,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 0.8339612965348026,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5542093305344632,
0.13807547869901457,
0.07946571638100972,
-0.11114576535740203,
-0.0237673328529667,
0.020282684112866343,
-0.04741593955084768,
-0.05022583436170726,
0.014864829185305798,
-0.009021237911429747,
-0.027893946528340905,
-0.03574632377261504,
-0.02156193014682469,
0.0008456751675044854,
-0.020448292310727933,
-0.00980774144504957,
-0.004062037492095735,
-0.007092391207298529,
0.0418235408501613,
0.06849493195642882,
-0.026028319507888555,
-0.05180741911565132
],
"PeriodsPhase": [
14.539734149566328,
8.415858476927507,
5.87501078536494,
5.181960228910115,
8.215848569344987,
8.965072138771347,
13.918629062500562,
7.300092204374206,
7.52113709432072,
6.11417132822005,
5.446020937161856,
7.199699754836401,
1.722209771417399,
5.531706851232457,
5.911265867264891,
6.841739312622545,
1.9705242653585229,
5.393792554040225,
7.746471384574365,
7.383675741847033,
4.198540858303624,
6.8003898536831535
],
"Year": 365.24708113327955
}
Charleston SC USA
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.20471475925044783,
-0.06289038658079195,
0.3058873110641321,
-0.1876313551504848,
0.12144178005809395,
0.46605054177086525,
-0.14398365589469217
],
"AliasedPhase": [
3.2083081889296996,
0.23976263441697332,
7.836638933064594,
0.859064281342248,
5.168073765720232,
10.73100500563822,
9.558758467817581
],
"DC": -0.12423808951744805,
"Damp": 0.08956167313259208,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 191.3712318546874,
"Imp_Amp2": -1.5456686179154275,
"Imp_Stride": 5,
"Initial": 0.11823803031276944,
"LTE_Amp": 1.2730786873853805,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 138.72434807439353,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.7314532494399293,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 1.1173780444337156,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5498248461002406,
0.14454815310816654,
0.08057520930528844,
-0.11385129097304479,
-0.006514004746647727,
0.018089885323600386,
-0.04289898709449787,
-0.04253554789220105,
0.012955391634748932,
-0.0033863783387157124,
-0.03614917987870938,
-0.035706371463414814,
-0.023773809419816258,
0.0007799724568430707,
-0.020977841902114547,
-0.01157281922141496,
-0.0246093013537243,
-0.016816260862158407,
0.04724745109206771,
0.05789451763161044,
-0.01445852053488546,
-0.050619099817044926
],
"PeriodsPhase": [
14.504715055701945,
8.614635243028008,
5.6291249795992595,
4.765859647556391,
10.53143496126562,
8.51826125065497,
13.707995115432084,
7.334999207955601,
8.075030263810744,
5.439659466753424,
5.07247981787881,
7.960187527076247,
1.8605932305207242,
4.883178441588487,
6.5959176533034745,
8.359760096826745,
3.3978232383255618,
5.418626460904614,
8.148087365304402,
7.120244013686766,
4.110341507559153,
7.701981484076849
],
"Year": 365.24708113327955
}


Mumbai India #43
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.33155553994336384,
-0.2495968988667219,
0.43520903367692637,
-0.06584899963499662,
0.11945208178610942,
0.29971882976844144,
-0.2119480796738941
],
"AliasedPhase": [
5.4956961340611965,
3.90640528947981,
5.50294861438661,
-1.2888827479186924,
5.287941956272245,
12.193490107064903,
10.192086938065321
],
"DC": -0.12423808951744805,
"Damp": 0.08715501667528083,
"DeltaTime": 3.222580547147465,
"Hold": 0.0014943329519264681,
"Imp_Amp": 195.95583443451292,
"Imp_Amp2": -0.1666709518217035,
"Imp_Stride": 6,
"Initial": 0.985542836483893,
"LTE_Amp": 1.3235276104397407,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 137.22875880421475,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 0.8216554762462828,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 0.6535833082293453,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5593626211532859,
0.13702974701732729,
0.07680105211748568,
-0.11326325626417946,
-0.025168670114979225,
0.018901585630387865,
-0.04797080246096962,
-0.04692642397741333,
0.01411742170100651,
-0.00997836418710087,
-0.04145171403204799,
-0.04614903845699203,
-0.021250610174953954,
0.0007799724568430707,
-0.021950810034382297,
-0.01094367577058475,
-0.009771141498707073,
-0.011880056692610877,
0.04029163126372332,
0.06530620669080443,
-0.019024886138778174,
-0.057437678667810896
],
"PeriodsPhase": [
14.50591747907592,
8.231901969192752,
5.459947792150559,
5.279287559250546,
8.384451707019597,
8.41284695956516,
14.302977758492988,
7.724892429793127,
7.866128475961979,
4.046834100461502,
4.55163241513447,
8.673167852261026,
2.7020106276323888,
4.925924163003643,
6.074433520246651,
7.601796055792546,
4.92438468488871,
4.2929237742943736,
7.552540064364933,
7.795395819266297,
4.885974867590206,
6.5527741221820515
],
"Year": 365.24708113327955
}


Atlantic City NJ USA #180
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.26326811436239905,
-0.21439542951064414,
0.6052691118574087,
-0.1713498412892647,
0.0826037065449129,
0.5205082707666282,
-0.08095165028908169
],
"AliasedPhase": [
6.834631818117909,
1.9582579483961728,
7.3994928437945,
1.4046936668542687,
5.337808522866082,
10.60829502170644,
9.801625936939072
],
"DC": -0.12423808951744805,
"Damp": 0.10891184675001123,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 191.2426598404169,
"Imp_Amp2": 0.35486969410346914,
"Imp_Stride": 11,
"Initial": 0.11803077561919893,
"LTE_Amp": 1.2218637691167968,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 137.73848615952488,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.6546034623383574,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -1.7872952748765965,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5458123662075899,
0.1389818338654034,
0.07983345370408032,
-0.10659930884964594,
-0.0157276082743488,
0.02271644091596895,
-0.05821164492360029,
-0.04414007179213993,
0.014864829185305798,
-0.0033326341474130944,
-0.036461194094934424,
-0.03644102380093811,
-0.023059144580918615,
0.0007799724568430707,
-0.022147824534295615,
-0.00980774144504957,
-0.0063862098312069205,
-0.01690591724665482,
0.040247498568614704,
0.07224796981357799,
-0.0226148072694911,
-0.052538340891569245
],
"PeriodsPhase": [
14.571674843826756,
8.576239875184799,
5.5729773124033075,
5.052140099308017,
8.680642128817508,
7.933130654393463,
13.62856480389017,
7.611390566119361,
8.766654402728925,
5.2754792139019715,
4.3588582062450385,
7.565594079616601,
2.0740084161645456,
4.535878410239164,
6.3773039248812555,
7.255910344075061,
0.10084321116221964,
4.772453761269514,
7.332353277146504,
7.671778453572322,
3.6284764397505214,
7.516661903209313
],
"Year": 365.24708113327955
}
Charlottetown CA #427
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.37164416033804254,
-0.40653119309370433,
0.18853913404107672,
-0.19466081338644636,
0.04061581415561791,
0.6320997362719325,
-0.4215723736715605
],
"AliasedPhase": [
6.774839140130368,
2.738111413745394,
7.431540924950377,
-0.5947217075613325,
3.1312406368496335,
10.996872410730328,
13.00065493236072
],
"DC": -0.12423808951744805,
"Damp": 0.08698026063585368,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.27601446073498,
"Imp_Amp2": -0.052998547862333587,
"Imp_Stride": 8,
"Initial": 0.11817865226741639,
"LTE_Amp": 1.4347345468860337,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 138.10688190856342,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.702028579138005,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.3620794938187635,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.560587141021633,
0.13779636379605872,
0.08172781597045514,
-0.10908702678097774,
-0.02231969091276521,
0.02046789973678818,
-0.05333074895084436,
-0.04795800364907156,
0.013556521187121171,
-0.006101281151141104,
-0.0354754264713027,
-0.04256210924134303,
-0.02069409443685446,
0.0005929356023057397,
-0.020097511561283206,
-0.010237717413303123,
-0.017112279505503116,
-0.01183522006225304,
0.039838742600887087,
0.06890358135992532,
-0.022963994660580175,
-0.04488896058343625
],
"PeriodsPhase": [
14.58186663406842,
8.518467728071194,
5.875978386338978,
4.986828256651601,
7.80502567604932,
8.856463899405407,
13.794750223833109,
7.493883315037738,
8.20156879661747,
6.2401316385082986,
4.012336266855111,
6.63503312089956,
1.542385860234171,
4.0387766396175895,
6.229718114664815,
6.435595578170644,
0.9197391413544929,
3.308591311697076,
7.3960562036494215,
7.562862146724656,
3.5739798143486956,
6.101808617568368
],
"Year": 365.24708113327955
}
Neuville CA #192
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.3276099062627234,
-0.052790199960295964,
0.10792566996967108,
-0.14480529773010115,
0.12977774071483092,
0.5180689876946275,
-0.35981411498223564
],
"AliasedPhase": [
5.191253805511765,
7.288491525635083,
7.774192404015498,
2.7083527067718896,
4.254721458259628,
11.99325888990539,
10.462793867687258
],
"DC": -0.12423808951744805,
"Damp": 0.08708897512348249,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 194.2035315234661,
"Imp_Amp2": -1.9050747575227782,
"Imp_Stride": 4,
"Initial": 0.11712754009526351,
"LTE_Amp": 1.0578736112978229,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 135.47711148623492,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.7862661687200936,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 0.08329334825181382,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5576960413917874,
0.156034037510972,
0.08277548210691597,
-0.11136360648641389,
-0.02391393347269841,
0.02134554493065911,
-0.04797080246096962,
-0.05328449165649692,
0.014864829185305798,
-0.008023189476667365,
-0.03483719312816892,
-0.03574632377261504,
-0.02050592060287784,
0.0007799724568430707,
-0.020400309727207095,
-0.010098023303394378,
-0.004876510934509405,
-0.011446953950020038,
0.039923361228420176,
0.07224098249177599,
-0.018697939030539266,
-0.05245189920179064
],
"PeriodsPhase": [
14.660731750385171,
8.550660953075665,
5.132182309374807,
5.093740264760902,
8.866444038111132,
8.493986045502972,
13.502368495507469,
7.53943597320582,
7.18439475555415,
5.463774984377231,
4.412160619179827,
7.782388901017159,
1.6056288425612923,
3.7570904100773572,
6.5622787194683525,
7.364611964466578,
1.8863619918823737,
3.877574505765739,
7.953732583525539,
7.467299345664705,
3.6914043460860513,
6.491854754783689
],
"Year": 365.24708113327955
}
Denison AUS #196
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.07593678118596686,
-0.294491137575034,
-0.10979388618503769,
-0.05447643496076926,
-0.052478957116070646,
0.11594058588041375,
0.1631573518006814
],
"AliasedPhase": [
14.792740808261893,
3.026773128328399,
4.348739784123433,
3.5141295969167374,
6.36614724129982,
7.054752183428893,
10.34583725588143
],
"DC": -0.18836772968587992,
"Damp": 0.09859174553404282,
"DeltaTime": "3.416666667",
"Hold": 0.001497241950062863,
"Imp_Amp": 193.49614207074475,
"Imp_Amp2": -5.3049833706815965,
"Imp_Stride": 2,
"Initial": 0.11383258316683101,
"LTE_Amp": 1.1398495760877152,
"LTE_Amp2": 0.24475198263665468,
"LTE_Freq": 138.2741196691773,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 0.71374497136473,
"LTE_Phase2": 6.860982494238797,
"LTE_Zero": 0.4316648862791745,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.507353783101449,
0.12377417381306124,
0.08169889744527584,
-0.1113925231041446,
-0.022460316762163927,
0.023766659727647427,
-0.045159385935718284,
0.012176355010265955,
0.01568374397856998,
-0.028153112336483672,
0.006773691012926526,
-0.012848529875388126,
-0.008835261897373107,
0.0007552321881619805,
-0.018886600090698515,
-0.013469563314249696,
-0.04656412466046384,
-0.007163784685813143,
0.0235418274608668,
0.032200464645658344,
-0.023569534988125723,
-0.02841986434451475
],
"PeriodsPhase": [
14.644854386765125,
8.992974481677068,
5.679330009099294,
4.798846566978053,
9.337151133202537,
8.497053481735255,
14.219037154245166,
7.338315207959651,
8.015090889643654,
4.911862706651693,
7.794367827675466,
9.221328204768776,
1.673184861263114,
3.877438630192199,
6.51584024650202,
7.51314177779697,
3.4929234053843743,
5.041004105431371,
7.719677407443218,
8.055412372141594,
4.710640210998257,
7.671160202386837
],
"Year": "365.2495755"
}
Pensacola FL USA #246
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.04739709820014355,
-0.14878011801739915,
0.11021959833945325,
-0.18572276640550756,
0.07304226103673307,
0.2437062178445756,
-0.30628586730582086
],
"AliasedPhase": [
6.281694480348819,
5.68582642266709,
7.760235723390187,
1.2109266452077811,
5.300558377564179,
11.068211618873365,
11.696218460814054
],
"DC": -0.009067320436550008,
"Damp": 0.05192112932166543,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 188.77131816404858,
"Imp_Amp2": 1.1785214414993501,
"Imp_Stride": 4,
"Initial": 0.11925602609827855,
"LTE_Amp": 1.2260140936136514,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 138.6266136193281,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 2.2542391689187666,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.6991324513996349,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5598491015489612,
0.14004721469351294,
0.08133289364697574,
-0.11136360648641389,
-0.038683652053604814,
0.020282684112866343,
-0.04797080246096962,
-0.03765549374481088,
0.014650687567986743,
-0.009021237911429747,
-0.03745586608206008,
-0.04440623760309717,
-0.021018524859699704,
0.0007799724568430707,
-0.020841193386408576,
-0.00980774144504957,
-0.01161056165246187,
-0.006445000295979551,
0.04347226398167965,
0.0681352634792195,
-0.02272636076927288,
-0.05521793596773092
],
"PeriodsPhase": [
14.565974510529228,
8.428078036438112,
5.296357024357875,
4.781473050346918,
9.76503532950242,
7.601912553036654,
14.566564574307725,
7.190397985626003,
7.561801271683999,
4.136540018833237,
3.9318927193230095,
7.709305826538754,
1.6985895681272671,
6.078095682610155,
6.818703853377804,
7.379666949145836,
4.420538808288742,
2.4299152369016603,
7.078791827101675,
7.233491645411269,
4.382696551860815,
7.148660329275028
],
"Year": 365.24708113327955
}
Newlyn UK #202
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.5970337187704796,
-0.31684346939672836,
0.16967870979219635,
-0.18474594609846812,
0.06145775909625154,
0.1765874723811921,
-0.08963458227184953
],
"AliasedPhase": [
8.548491633560715,
5.350992752287273,
8.117866848801938,
-0.2639558111747108,
4.445329543715082,
9.432252085101146,
11.46067786600347
],
"DC": -0.12423808951744805,
"Damp": 0.08708897512348249,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 194.3311275230587,
"Imp_Amp2": 1.9525696555588528,
"Imp_Stride": 8,
"Initial": 0.11803077561919893,
"LTE_Amp": 1.1790697447617517,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 135.15462360388528,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.632354173736939,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.07570230166502832,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5602142444370494,
0.13878995675564604,
0.07992122139006537,
-0.11210358952528061,
-0.021776255035546508,
0.020184088256110178,
-0.05075519261081356,
-0.044083762648779334,
0.013077004917179901,
-0.005102351681605272,
-0.039234829488535725,
-0.0333389062097086,
-0.015330247078157232,
0.0007799724568430707,
-0.02096354622583586,
-0.009525797424776578,
-0.015476407435485815,
-0.013624308492457531,
0.04029163126372332,
0.06870651651857536,
-0.0237232691200475,
-0.0561050877458257
],
"PeriodsPhase": [
14.599358561384266,
8.407563945174322,
5.422829321129335,
4.664664804516028,
8.790326653991116,
7.936559912760931,
14.469909912526536,
7.484794536532296,
7.936107380681858,
5.285676981004567,
4.251041160856465,
7.805816302621496,
2.669332100585589,
5.94828978004248,
6.009527085463049,
7.904837771197639,
0.6610060157656906,
3.5634629105233304,
7.858119647659821,
7.280551091021352,
3.3349322511617236,
6.619833515259977
],
"Year": 365.24708113327955
}
North Shields UK #95
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.47181734686089044,
-0.5539131837583232,
0.20978487272127994,
-0.24658205567454913,
0.05091194523979485,
0.6477987233335977,
-0.26608551643396255
],
"AliasedPhase": [
7.985507013378384,
4.675671167326243,
5.843763893462894,
-0.17645738379258394,
3.9579200669844745,
8.147270154533995,
13.15511413347626
],
"DC": -0.12423808951744805,
"Damp": 0.07555160691021878,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 195.0622624669937,
"Imp_Amp2": 0.011411219763124444,
"Imp_Stride": 1,
"Initial": 0.11803077561919893,
"LTE_Amp": 1.5786992575828873,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 137.7010056794688,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.6569993818815463,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 0.5744512401310677,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5636768445433809,
0.1389818338654034,
0.08360153636947505,
-0.11106918668102622,
-0.021827706962536327,
0.020443658802318194,
-0.05490915383183028,
-0.048168415552790785,
0.014589880979583664,
-0.026631772564049087,
-0.04075263356992672,
-0.0386879060451214,
-0.025186827167236973,
0.0007799724568430707,
-0.02096354622583586,
-0.00980774144504957,
-0.013050266139613418,
-0.011293770395692041,
0.04029163126372332,
0.0694316680583656,
-0.016395182440004867,
-0.05180741911565132
],
"PeriodsPhase": [
14.480338111189884,
8.478515917502156,
6.088890716689777,
4.931803275366273,
7.708807250295492,
8.779571772034524,
14.164563712135704,
7.2630679888452,
7.572378342205644,
2.694588331425868,
4.479406834982581,
7.815619490843289,
1.5530656287643494,
5.876403413338103,
5.917931076750135,
7.505403582081175,
5.462805076783872,
3.7127506592846187,
8.014930604455477,
7.302169798709623,
2.748381455705328,
7.262800348522562
],
"Year": 365.24708113327955
}
TNA
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.26673345379674857,
-0.16548487005465415,
0.1361909968514194,
-0.10268633218968212,
0.0208425569248999,
0.08999098334842272,
-0.25414753953980856
],
"AliasedPhase": [
7.3004438062369985,
4.172139801164424,
6.982435138754504,
-2.673996586644861,
4.214624250401252,
11.938197872379424,
12.685851261460703
],
"DC": -0.12423808951744805,
"Damp": 0.10183916596221852,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 194.31655136925872,
"Imp_Amp2": 0.6354848059696669,
"Imp_Stride": 4,
"Initial": 0.2106179852990158,
"LTE_Amp": 1.556291619649493,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 135.1541444044681,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.5609532415625322,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -1.357551614250471,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.558192828157678,
0.1534611448352599,
0.08108999466589234,
-0.11136360648641389,
-0.019716108966873862,
0.01910014721158485,
-0.05587276896491024,
-0.04756109168129282,
0.014864829185305798,
-0.013741453969205163,
-0.027159082648650294,
-0.03459552554529923,
-0.02243829551625692,
0.0007799724568430707,
-0.020796119832371163,
-0.00980774144504957,
-0.015370081534247997,
-0.009829125892091475,
0.04601144365752377,
0.07400606558635117,
-0.027354324676705524,
-0.05634287834785263
],
"PeriodsPhase": [
14.649368764315303,
8.64544966973801,
5.547426959549825,
5.322651075538293,
6.688633731035232,
8.782507769693026,
13.83342878155782,
6.521094640414385,
7.525924636672499,
5.381349264102324,
5.2898413798030575,
7.1988625930975525,
1.2519302814091962,
3.895469725572275,
6.213708427585262,
7.460457366021562,
3.4722345532505794,
5.241050300651924,
6.89580511489168,
7.571165508460786,
2.2685017337599915,
6.679241506946591
],
"Year": 365.24708113327955
}
#TSA
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.3590519037509309,
-0.12493874268206273,
0.12232464834847113,
-0.05231913708478813,
0.04749621757719419,
0.2948089777789843,
-0.3283745123962406
],
"AliasedPhase": [
8.330329241157301,
3.0780761183901806,
4.664728958745214,
2.2952224680925473,
5.253652058040364,
10.380490586824022,
12.516554876539868
],
"DC": -0.12423808951744805,
"Damp": 0.08708897512348249,
"DeltaTime": 3.234990234301396,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.54339637484898,
"Imp_Amp2": 1.6058576720386044,
"Imp_Stride": 3,
"Initial": 0.11794127140075791,
"LTE_Amp": 1.4937803713713351,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 137.69420275416326,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 2.2291166682830337,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -2.123839123720318,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5825528034616155,
0.14827180820066224,
0.09392914637745788,
-0.10797332635038917,
-0.015705034271207324,
0.020901634229883736,
-0.04584304110843033,
-0.03778959718746403,
0.011942782716548188,
-0.012935611351126275,
-0.02908180987932986,
-0.051032783410218184,
-0.016461132657232827,
0.0007799724568430707,
-0.021269219975000014,
-0.01029331056954896,
-0.00151433433474359,
-0.011006510161586236,
0.03977993299052976,
0.06905045534845972,
-0.018697939030539266,
-0.045670530018600795
],
"PeriodsPhase": [
14.724784392280448,
8.61239999610914,
5.7065660389011725,
5.169333674991787,
9.475590965626962,
8.16133779188922,
13.486234692137067,
6.7510820509864695,
7.175858016085284,
4.510516046352033,
5.4376740630488465,
8.584088819017422,
1.923734914376801,
4.323144335858922,
6.158154133551782,
7.470690470193471,
5.162035501231241,
2.1886650136049446,
7.434574602081634,
7.334297832001685,
3.3477944199838348,
6.9699038238591315
],
"Year": 365.24708113327955
}
IOD East
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.05182861733719848,
-0.14284221024746507,
0.13270612201055548,
-0.07245472942255009,
0.03851900826406665,
0.1026281622403975,
-0.06366372887097081
],
"AliasedPhase": [
9.758876145914847,
4.233836859103485,
8.153084008303155,
-1.9218308950285221,
6.763385928514072,
11.296091678732413,
10.40828180457574
],
"DC": -0.5612379137430962,
"Damp": 0.08708897512348249,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.28809175076523,
"Imp_Amp2": 0.4511293229012204,
"Imp_Stride": 2,
"Initial": 0.11820967953439633,
"LTE_Amp": 0.7979015927808953,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 136.97872872134926,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.993027849208977,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -1.3439965035967505,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5624337325432384,
0.14097694023716753,
0.08615646246324521,
-0.11919430576228535,
-0.02636943665394652,
0.020282684112866343,
-0.039130720588964066,
-0.035645548557342956,
0.014864829185305798,
-0.021415199768559365,
-0.039890374044301284,
-0.040569736309826146,
-0.014453942745169113,
0.0007799724568430707,
-0.0343526987058957,
-0.012032501225648478,
-0.005099437576941774,
-0.016444721453796947,
0.04276241315330485,
0.06464989708068236,
-0.019384040793265996,
-0.07957207262020484
],
"PeriodsPhase": [
14.507614751575929,
8.639196770221112,
5.855233383061084,
5.222536891355941,
8.423039758880787,
8.845639185236097,
13.734063112974829,
6.608384006994017,
7.64428164976391,
5.1751871536590714,
4.1853727264770155,
9.592613790948366,
2.868619028297221,
4.816795034498696,
5.948327530517551,
6.577127528114543,
1.6700522377225764,
5.932159993956636,
7.041661664153381,
7.11717791966073,
2.952171454399953,
6.711743916027111
],
"Year": 365.24708113327955
}


PDO
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.4612094092742707,
-0.4057258615493188,
0.06581646380713209,
-0.020498894958240057,
0.008247183471606415,
0.259227814171985,
-0.4228097073613806
],
"AliasedPhase": [
10.707120788426284,
4.683202538265659,
7.882860107464821,
-1.9072944144995378,
7.661800108880511,
7.298212137323596,
11.704341306869646
],
"DC": -0.12423808951744805,
"Damp": 0.08648581809434175,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 196.31249659216905,
"Imp_Amp2": -1.9162398052703682,
"Imp_Stride": 0,
"Initial": 0.4085241448707284,
"LTE_Amp": 1.2857244372238301,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 136.23748674930874,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.6711281302857792,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.409200742519741,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5539173986085675,
0.14704098359922185,
0.07959601497666019,
-0.09941645264874203,
-0.030972403734097494,
0.023460291212438686,
-0.053803445745032256,
-0.07223137423826062,
0.0152451660844928,
-0.006630078311160734,
-0.033472212918549904,
-0.042010151728751444,
-0.020262568443908374,
0.0007799724568430707,
-0.021793103432023637,
-0.00980774144504957,
0.005049098272150198,
-0.008229735787925553,
0.04399557715238525,
0.06698603044528742,
-0.015286888308040553,
-0.04113882739140403
],
"PeriodsPhase": [
14.625777556627808,
8.54284671384598,
6.399936015429469,
5.1216725299511054,
8.389344073297842,
8.616364058702501,
14.026566034972975,
6.84536076486484,
7.897102617986418,
6.569375980977119,
5.056712570027924,
8.046230801156458,
2.3608360339081504,
1.9348490262308011,
5.258832212062222,
7.801341917200824,
4.768111110195202,
6.909067568296704,
7.091309588674412,
7.588832654156258,
4.8593310677982915,
5.87477335323288
],
"Year": 365.24708113327955
}
EMI
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.3890090145007225,
-0.3629672257229209,
0.3462816075133119,
-0.026627848970565915,
0.03601351212523533,
0.4219038586195901,
-0.19202623665607899
],
"AliasedPhase": [
5.934994176343773,
4.996135595141794,
2.8341949638240496,
3.785941498585227,
6.153462692597887,
7.581415116999557,
12.48314031802713
],
"DC": -0.12423808951744805,
"Damp": 0.08604611151113274,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 192.9857599244885,
"Imp_Amp2": 0.22692675367528053,
"Imp_Stride": 0,
"Initial": 0.11803077561919893,
"LTE_Amp": 1.3326679864274438,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 137.2452424208781,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.5728085343576215,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 0.5534569706607894,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.560290288607901,
0.1303401188430874,
0.08219410865607032,
-0.11136360648641389,
-0.03152839766455192,
0.022031175826172054,
-0.051717425451235664,
-0.04505643265627693,
0.014864829185305798,
-0.0029815758415992835,
-0.030465351698478693,
-0.026775438179247532,
-0.0213868292852064,
0.0007799724568430707,
-0.02455605720104321,
-0.008697329530663534,
-0.018767921972677563,
-0.015166672171790994,
0.03999092925782314,
0.05809969806299915,
-0.02340205999091435,
-0.05329590239051155
],
"PeriodsPhase": [
14.703646965074674,
8.543391077850828,
5.90101558157812,
5.111343465970177,
8.776393457689808,
8.482251230526828,
13.310831114146657,
7.433184455761478,
8.04508322837287,
4.1614080254990515,
3.7439643250794736,
8.372323517746425,
1.0362457744553848,
2.217373626693431,
6.8625470061824005,
7.244818961100332,
3.410273610240499,
5.262426280279332,
7.783736947786039,
6.886825223891781,
3.570728196768691,
6.144432284831799
],
"Year": 365.24708113327955
}
ic3
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.08859149321213453,
-0.19330035426025474,
-0.00204659229314453,
-0.6175174949788526,
0.3053759422779131,
0.18000408946701585,
-0.08826732995623152
],
"AliasedPhase": [
8.171150380583896,
4.265457563999319,
8.827162260845466,
-0.25225840027607427,
4.867644817705612,
13.469100171419369,
11.128910305140868
],
"DC": -0.12423808951744805,
"Damp": 0.08761882487551043,
"DeltaTime": 3.417295489378515,
"Hold": 0.0014943329519264681,
"Imp_Amp": 195.05484308587822,
"Imp_Amp2": 1.8635516652744593,
"Imp_Stride": 3,
"Initial": 0.11799404672728163,
"LTE_Amp": 0.9672321466172262,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 135.6673100406989,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.524271877540994,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": 0.471965688397361,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5669275191048789,
0.1336689300822082,
0.06799697754534346,
-0.10915160263507505,
-0.028903336206770477,
0.017901371716905014,
-0.04960088554923693,
-0.04680209474365373,
0.014864829185305798,
-0.015245977418300888,
-0.032144006274192415,
-0.05329919420135805,
-0.021936616452897992,
0.0009312209412877328,
-0.02299684021223,
-0.009389648739971225,
-0.021619320304059678,
-0.012551217911979058,
0.04066262676964662,
0.077507250287186,
-0.018697939030539266,
-0.06402569125936784
],
"PeriodsPhase": [
14.437234994312748,
8.247376887063925,
5.751532655291476,
4.83281478730216,
8.167816201767224,
7.216452983791062,
13.526277585430586,
6.948198955854644,
7.196436418793621,
5.298034495648822,
5.113338342244367,
8.459460891993668,
2.5923142795740506,
4.253099279092148,
6.1104839700793345,
7.279552995005325,
3.7692175958829637,
5.347392548075204,
7.687869888270831,
7.4593988517387375,
3.2845790474680996,
4.995950414086371
],
"Year": 365.24708113327955
}


Honolulu HI #155
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.4484006464896236,
-0.37386715336425963,
0.20277245682924577,
-0.10538002453015528,
0.031140299916839392,
0.377796101968987,
-0.6501146769573984
],
"AliasedPhase": [
9.98121628431841,
3.9741250185797523,
5.281875674594777,
0.688124469867736,
6.515718244497119,
12.751783652783107,
11.205768997013
],
"DC": -0.12423808951744805,
"Damp": 0.08708897512348249,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.6121244758508,
"Imp_Amp2": 1.1972112031753266,
"Imp_Stride": 4,
"Initial": -0.11803077561919893,
"LTE_Amp": 1.2193313506879053,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 136.69441086247866,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.6132350109211682,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.3924818253896976,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.570204087842307,
0.1245396263367175,
0.07767305140197986,
-0.11136360648641389,
-0.018831492799536123,
0.02077195718655654,
-0.04797080246096962,
-0.0536678398281933,
0.014864829185305798,
-0.008535920712294021,
-0.0343885766124657,
-0.043220303725040224,
-0.02050592060287784,
0.0007799724568430707,
-0.022078822907133238,
-0.00980774144504957,
-0.0038738953033040473,
-0.011218235784817223,
0.03611966668280206,
0.07057648978294155,
-0.01928064520631733,
-0.05198813444954066
],
"PeriodsPhase": [
14.546348050324218,
8.72175862308065,
5.815180568067668,
5.396814582188879,
8.541243264456503,
8.035696208970332,
14.322706407655,
6.407998464496778,
7.836261050061661,
3.1584374863454205,
4.797340438073211,
7.453502615704981,
2.5881123174192067,
2.807297740935538,
6.088137420445475,
7.044934059427225,
5.152655617806274,
5.159093642049064,
7.659392940340163,
7.760551103628481,
3.3868855696911386,
6.039820091107199
],
"Year": 365.24708113327955
}
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.4229898717279405,
-0.4084519161245759,
-0.01084774456603505,
-0.10089860424371268,
0.02694323654774091,
0.34975400796560835,
-0.6544825383662813
],
"AliasedPhase": [
9.904505517416771,
4.390555245573728,
4.424664632705779,
0.7172635420377041,
6.610967948286066,
12.688485381390274,
11.1985590808422
],
"DC": -0.12423808951744805,
"Damp": 0.082695656474406,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 192.48848784518006,
"Imp_Amp2": 0.34011883382862296,
"Imp_Stride": 4,
"Initial": -0.11803077561919893,
"LTE_Amp": 1.3091250050403704,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 137.06753644400897,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.3067694174538587,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.5936680101679718,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5651454332026293,
0.12264093516269524,
0.06884451241021869,
-0.11136360648641389,
-0.01986592549794402,
0.02285327960040553,
-0.0480891259171852,
-0.055941992448479826,
0.01676718270677323,
-0.008535920712294021,
-0.037426487988173184,
-0.05604954180603197,
-0.02307742490838837,
0.0007799724568430707,
-0.022078822907133238,
-0.010477313949597885,
-0.006049122729106009,
-0.010442745141898283,
0.03483226496215148,
0.07286787353312749,
-0.020620926696135897,
-0.053570308938392916
],
"PeriodsPhase": [
14.54717000749298,
8.726458928310764,
5.743709621495508,
5.415160856426165,
8.99995797819538,
8.047661672739055,
14.35339799928467,
6.39091332417362,
7.813205751380822,
2.1811766488499775,
4.836105668188576,
7.4296065615102735,
2.54898385703138,
1.8901458166037148,
6.09684330179813,
7.121425783148671,
4.289296254366107,
5.219810741304531,
7.6660621281533885,
7.728503200648494,
3.2586940002001312,
5.946093683259144
],
"Year": 365.24708113327955
}
NINO4
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
-0.20465840921214523,
-0.39536989157209396,
-0.216368081713284,
-0.03599951149146843,
-0.02501236879654226,
0.6417261082970603,
0.07433953829460128
],
"AliasedPhase": [
7.962575632265462,
4.585831689368066,
5.244236199709738,
1.356260016204303,
9.679835920050428,
6.9270211887013975,
7.941435644716701
],
"DC": -0.12423808951744805,
"Damp": 0.1243260914941073,
"DeltaTime": "3.416666667",
"Hold": 0.001497241950062863,
"Imp_Amp": 199.451908806231,
"Imp_Amp2": -1.4177793964670247,
"Imp_Stride": 6,
"Initial": 0.11375655483569767,
"LTE_Amp": 1.5302169757486226,
"LTE_Amp2": 0.24475198263665468,
"LTE_Freq": 134.4210096409392,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.0550022181912846,
"LTE_Phase2": 6.860982494238797,
"LTE_Zero": 0.13344777225836385,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5092457296669008,
0.13122707983507112,
0.09634725806731019,
-0.11337424485972598,
-0.006541764819508468,
0.014622217003497532,
-0.039994523108379615,
0.006730916933375129,
0.014574254311673415,
-0.01864653749097568,
0.009901917385027062,
-0.015876491932423405,
-0.010755521011473475,
0.0007555581377546212,
-0.022555997107519155,
-0.011059732487989622,
-0.05193309970410703,
-0.0071326659302086174,
0.018619067222847247,
0.031184800747524086,
-0.022347961527589926,
-0.0447729561299455
],
"PeriodsPhase": [
14.572171451099576,
8.817284966008769,
5.789506773967591,
5.007812250042462,
8.209218007364177,
8.840228714952557,
13.611885299035245,
8.000975138770267,
8.184189292401808,
4.84077438338101,
4.775439035039762,
8.018320746937494,
2.0707153595419294,
5.42869886605732,
6.080142628734909,
7.385619716804511,
4.615322380326881,
4.486868823124319,
7.726026076586125,
7.290928092054336,
4.6567927894970005,
6.719219667809141
],
"Year": "365.2495755"
}
NINO3
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
-0.32676952132953335,
-0.4215090993695924,
-0.27513499641826533,
-0.018481901063718675,
-0.01867301060370047,
0.3435714347582939,
0.0910790568968396
],
"AliasedPhase": [
7.461559229546888,
4.7698019904279825,
4.424009166145002,
2.9510437001039795,
8.590071349063228,
6.924495878715929,
7.889152245960246
],
"DC": -0.12423808951744805,
"Damp": 0.12937837258127544,
"DeltaTime": "3.416666667",
"Hold": 0.001497241950062863,
"Imp_Amp": 200.81815690540725,
"Imp_Amp2": -0.9644391188341868,
"Imp_Stride": 6,
"Initial": 0.11357513712691474,
"LTE_Amp": 2.0051111262040013,
"LTE_Amp2": 0.24475198263665468,
"LTE_Freq": 135.01797226097258,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 0.824551988745763,
"LTE_Phase2": 6.860982494238797,
"LTE_Zero": -0.06858679236874334,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.49926446351041975,
0.12927112377009758,
0.09807947832026494,
-0.11354530847875274,
-0.006021005718445226,
0.01522143261262352,
-0.04180210191303711,
0.007020802487255309,
0.014036419521858185,
-0.022563128753321775,
0.007114140312357451,
-0.016389238257712695,
-0.01199927042186422,
0.0007555581377546212,
-0.022555997107519155,
-0.010514281503924435,
-0.056306818911700494,
-0.009192622862611358,
0.019958319197951543,
0.027507315356236683,
-0.021841606640866956,
-0.040443350761695245
],
"PeriodsPhase": [
14.575096508692427,
8.87200170286491,
5.79806803605806,
4.967850785908332,
8.869184757584165,
9.040861465172593,
13.63929357631605,
8.09007347162173,
8.19829655256441,
4.843195423169302,
5.009479108964843,
8.08023193711548,
2.3797136171782722,
5.4658076266247955,
6.013829683068793,
7.354892800263196,
4.506852338786508,
4.303992191928985,
7.685031256928155,
7.426385243515183,
4.782110238074086,
6.720196608534219
],
"Year": "365.2495755"
}
Raahe FI #240
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.27996647365676214,
-0.4502362557184998,
0.21232802285690852,
-0.2834052211848341,
0.08905233447004401,
0.44856859609832,
-0.6874319132942812
],
"AliasedPhase": [
7.402815215342159,
2.354696961643428,
4.783006125195931,
-0.24975666276107986,
8.407324393450844,
7.775842869021185,
9.471831257922881
],
"DC": -0.12423808951744805,
"Damp": 0.08762937652411244,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.3809820491404,
"Imp_Amp2": -1.0061019143651309,
"Imp_Stride": 7,
"Initial": 0.38821939876362843,
"LTE_Amp": 1.2026360875805862,
"LTE_Amp2": 0.4298032835098847,
"LTE_Freq": 136.51907652503485,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.1050862015228462,
"LTE_Phase2": 7.873797958554444,
"LTE_Zero": -0.25847608524999593,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5602142444370494,
0.1389818338654034,
0.08282547843439386,
-0.11136360648641389,
-0.028556104854314326,
0.020282684112866343,
-0.048141415318671714,
-0.034649662042504165,
0.014864829185305798,
-0.009021237911429747,
-0.0343885766124657,
-0.03507096940765428,
-0.021935054171067923,
0.0007799724568430707,
-0.021012034194781305,
-0.009270240560650756,
-0.0049227054766929805,
-0.008160133247101934,
0.04029163126372332,
0.06870651651857536,
-0.01736907213437058,
-0.05180741911565132
],
"PeriodsPhase": [
14.628546476924251,
8.36869199879231,
6.003097326735109,
5.036371624183522,
8.205002908733775,
8.203917895336104,
13.747228653998295,
8.114767179479138,
8.243233261130714,
5.415380190820144,
4.785702919729709,
7.965338573779706,
2.4502969984958156,
3.736013977191934,
6.016213270682218,
6.703097693001379,
2.424878981652876,
3.477461748044123,
7.681842344660123,
7.4769452094217295,
3.9396161773862124,
6.761696720915679
],
"Year": 365.24708113327955
}
AO
{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.25902788865679843,
-0.587867280714859,
0.5597329138018511,
-0.1297556737083317,
0.2035749498066802,
0.3302247070667728,
-0.20976476198401206
],
"AliasedPhase": [
8.366043017261644,
2.164234978603297,
4.645188124405464,
-0.901954968992759,
5.566586932715073,
8.983200751528251,
9.029656746019517
],
"DC": -0.12423808951744805,
"Damp": 0.08708897512348249,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.30747674665687,
"Imp_Amp2": 0.883497079460327,
"Imp_Stride": 1,
"Initial": -0.2185758793363896,
"LTE_Amp": 1.3914998416125832,
"LTE_Amp2": 0.6513719234105115,
"LTE_Freq": 136.2034880811508,
"LTE_Freq2": 0.011180925598876339,
"LTE_Phase": 1.601242987128868,
"LTE_Phase2": 8.16649464027961,
"LTE_Zero": 0.2801299634380527,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5602142444370494,
0.12420495423206494,
0.07992122139006537,
-0.11136360648641389,
-0.021776255035546508,
0.020282684112866343,
-0.04797080246096962,
-0.042969085440637635,
0.014864829185305798,
-0.009021237911429747,
-0.034483474099570754,
-0.03574632377261504,
-0.02050592060287784,
0.000783802991427517,
-0.02083406102870747,
-0.00980774144504957,
-0.0037941659330021603,
-0.010183028256449306,
0.04029163126372332,
0.06870651651857536,
-0.018697939030539266,
-0.05180741911565132
],
"PeriodsPhase": [
14.551151783522592,
8.501348008967748,
5.666206948354458,
5.149021177147336,
9.131336285490164,
8.571750645990479,
13.429885251227107,
7.541982984771915,
7.427421219131064,
4.8859133357556255,
4.99436147075948,
7.540793998911312,
1.5871882418384755,
6.630765078487783,
6.7502267303457275,
7.154967610401046,
4.784121443566078,
5.351125971187354,
7.352795980785456,
7.451319878289789,
4.0984482984120625,
6.141394996357189
],
"Year": 365.24708113327955
}
higher LTE factor

{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.27161257350264423,
-0.32201739180582506,
0.5332136800102483,
-0.0872107909794962,
0.15085054623687094,
0.1466577569716676,
-0.24274584721775405
],
"AliasedPhase": [
8.542345366249148,
2.4655719403117002,
4.686153943475969,
0.48675082730196867,
5.642857626362061,
8.237038670122207,
9.142964703455704
],
"DC": -0.12423808951744805,
"Damp": 0.08737407716722961,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014943329519264681,
"Imp_Amp": 193.46181118329258,
"Imp_Amp2": 0.8977951125148386,
"Imp_Stride": 1,
"Initial": -0.21864423333937905,
"LTE_Amp": 1.1195979353696914,
"LTE_Amp2": 1.0431748287187521,
"LTE_Freq": 136.20537634761865,
"LTE_Freq2": 0.08111809255988764,
"LTE_Phase": 1.550224584335603,
"LTE_Phase2": 7.99731680613725,
"LTE_Zero": 0.09191167971115426,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5602818175411705,
0.12773474200228543,
0.07941452662956318,
-0.11037187371023888,
-0.021369477845213446,
0.02027370465021914,
-0.0485774005836772,
-0.04243213049346861,
0.014810763551780385,
-0.00941531820317175,
-0.03453946118946407,
-0.03606655470374866,
-0.02056386236085062,
0.0007756716892217015,
-0.02082923074233686,
-0.009698809512587109,
-0.003441447443871129,
-0.00972418590754444,
0.04020162711997816,
0.06870651651857536,
-0.018719729336866962,
-0.05076444302729393
],
"PeriodsPhase": [
14.567840625653822,
8.512404233196378,
5.606283029745975,
5.1370488632357585,
9.07742644673693,
8.589118062335741,
13.44748047384309,
7.567256445597179,
7.388485547546237,
4.802686339304204,
5.063437340123929,
7.626149732962172,
1.6631729008570466,
6.520572668444046,
6.80286206602831,
7.175233973806546,
4.480749773109025,
5.34643638182189,
7.353598554561969,
7.426791318486073,
4.011876191668352,
6.199608935122582
],
"Year": 365.24708113327955
}
CV

{
"Aliased": [
"0.0537449",
"0.1074898",
"0.220485143",
"1",
"2",
"0.07771",
"0.131456"
],
"AliasedAmp": [
0.2114334737946783,
-0.08795860287227034,
0.2996749851504303,
-0.11148775590302348,
0.16414133163285272,
0.1690259897019823,
-0.3625288696945305
],
"AliasedPhase": [
8.83264213425239,
4.757863084534088,
4.714637767957561,
-0.4876983418305849,
5.924640458266777,
7.422778005647177,
8.693047544337281
],
"DC": -0.08712197565502076,
"Damp": 0.08825622815004269,
"DeltaTime": 3.4166430998860955,
"Hold": 0.0014944538506345716,
"Imp_Amp": 194.26464093861242,
"Imp_Amp2": 0.7533598998438945,
"Imp_Stride": 1,
"Initial": -0.21864423333937905,
"LTE_Amp": 0.6769015145499876,
"LTE_Amp2": 0.8406911872588109,
"LTE_Freq": 136.17639749698444,
"LTE_Freq2": 0.08111809255988764,
"LTE_Phase": 1.4170357048675948,
"LTE_Phase2": 8.386161373629772,
"LTE_Zero": -0.15593930474223353,
"Periods": [
"27.2122",
"27.3216",
"27.5545",
"13.63339513",
"13.69114014",
"13.6061",
"13.6608",
"13.71877789",
"6795.985773",
"1616.215172",
"2120.513853",
"13.77725",
"3232.430344",
"9.132931547",
"9.108450374",
"9.120674533",
"27.0926041",
"3397.992886",
"9.095011909",
"9.082856397",
"2190.530426",
"6.816697567"
],
"PeriodsAmp": [
0.5602818175411705,
0.1278102520068296,
0.07807758707548997,
-0.11076909774890853,
-0.022663665503136938,
0.020438303819661188,
-0.04822159738127547,
-0.04220798206634495,
0.014729289809134564,
-0.009368400389569046,
-0.03449602956058033,
-0.03638031211843496,
-0.020823265496160745,
0.0007623450073216359,
-0.02084727619705371,
-0.009630004045521222,
-0.0026365144505750594,
-0.009749470520309328,
0.040217442788961784,
0.06883350928155262,
-0.018721024690728085,
-0.049849866040156766
],
"PeriodsPhase": [
14.567840625653822,
8.509190522554658,
5.6024931280882,
5.137314406344558,
9.021946813388242,
8.591261000148451,
13.438150201761276,
7.554621904047689,
7.387958897489322,
4.8121530424420875,
5.078456308324239,
7.606082413906006,
1.6550956049184704,
6.492469573753156,
6.790466175672192,
7.170661182406364,
4.237290024681263,
5.348597791902,
7.3498594293401505,
7.422613231076673,
3.9545635362919604,
6.209357540615018
],
"Year": 365.24708113327955
}









python3 ts_lte.py 65d.dat --plot --low 1930.0 --high 1960.0
{

"Aliased": [
0.422362756,
0.368617497,
0.255621397,
0.209019747,
0.322015847,
0.155274488,
0.262765007,
0.375761106,
0.05374526,
0.225992198,
0.172246939,
0.488757205,
0.112996099,
0.00714361,
0.10034691,
0.04660165,
0.481613596,
2.0,
1.0
],
"AliasedAmp": [
-0.17393725407674607,
0.12642715690383188,
0.1949827569849214,
0.2304294488746547,
-0.13321156438777482,
-0.07996225109392693,
-0.1517342694440159,
0.0910288389145477,
-0.4402154943805398,
0.15091585811246291,
-0.34856637009197583,
0.07274689811674001,
-0.15056992224712717,
-0.45278751555897145,
-0.3183612989827549,
0.4936801030925848,
0.021771689307045223,
-0.058102856799769544,
0.1042631465960338
],
"AliasedPhase": [
12.391492162500006,
10.655151982086986,
18.228715276073125,
7.610668851263877,
25.56666094689996,
16.468658023550468,
11.529194128263095,
15.049590385400032,
11.334959127133228,
9.023701961198283,
4.136442641443885,
20.04530389223759,
2.9257886062632004,
24.36894136450105,
6.301513321802799,
6.278230183427883,
10.031371976179079,
5.766353584000019,
2.476791589209313
],
"DeltaTime": 0.0,
"Hold": 0.001538141,
"Imp_Amp": 40.81771511999958,
"Imp_Stride": 10,
"Initial": 0.019500295726409787,
"LTE_Amp": 1.1925854500508217,
"LTE_Freq": 182.4319915000037,
"LTE_Phase": -0.40033153514144176,
"Periods": [
27.2122,
27.3216,
27.5545,
13.63339513,
13.69114014,
13.6061,
13.6608,
13.71877789,
6795.985773,
1616.215172,
2120.513853,
13.77725,
3232.430344,
9.132931547,
9.108450374,
9.120674533,
27.0926041
],
"PeriodsAmp": [
0.4314793373182475,
0.11036529575333755,
0.13870937877606934,
0.04172397047822836,
-0.2561268459330383,
0.11854454052354857,
0.13918935633404814,
0.02449309218634555,
0.04419078658890769,
0.14343856818928372,
0.16221236871908584,
-0.028372816391217637,
0.020164630254031254,
0.005409833883469155,
0.04763238354186368,
0.008352446230524946,
-0.14450012760004027
],
"PeriodsPhase": [
13.949781480000004,
6.4056158947520085,
18.729732370000026,
6.371274393267004,
20.998850680000004,
9.342972953999995,
6.551334822999998,
12.170340860469018,
9.117522079999999,
7.57083659,
6.258543069000001,
14.7935300849,
6.5502293745233295,
6.682567708000001,
0.9898748829695369,
4.927774305305427,
8.045674634
],
"Year": 365.2520198,
"final_state": {
"D_prev": 0.04294
}
}