You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于时间序列数据的叠加周期分析(SEA)实现需求

叠加周期分析(SEA)实现方案与可视化

核心分析逻辑说明

  • 每个事件的时间窗口:事件开始前3天(记为**-3到0天**)、开始后7天(记为0到7天),总计10天的时间序列
  • 叠加分析核心:将所有事件对应时间窗口的数据对齐到事件起始点(0时刻),计算均值/分位数等统计量,提取群体事件的共性特征

数据处理与分析步骤

1. 加载样本数据与CDF数据

  • 读取HILDCAA_list_SEA样本数据,提取事件的起始时间戳
  • 加载CDF格式的观测数据,解析出目标变量的时间序列(如地磁指数、太阳风参数等)

2. 时间窗口对齐与数据提取

对每个事件执行:

  • 根据事件起始时间,截取起始时间-3天到起始时间+7天的时间序列
  • 将所有截取的序列按时间偏移量(相对于事件起始点)对齐,构建二维数组(行:事件;列:时间偏移)

3. 统计量计算

  • 计算每个时间偏移点的均值、中位数、25%/75%分位数(用于绘制误差带)
  • 可选:计算事件间的标准差或异常值占比

4. 可视化实现(匹配轴参考示例)

  • X轴:时间偏移(从-3到7,单位:天),标注0时刻为事件起始点
  • Y轴:目标变量的统计值(如Dst指数、AE指数等)
  • 绘图元素:均值曲线+分位数填充带,可按需添加单个事件的散点/曲线作为参考

优化后的Python代码示例

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from spacepy import pycdf  # 用于读取CDF数据

# 1. 加载事件列表
hildcaa_events = pd.read_csv('HILDCAA_list_SEA.csv')  # 假设样本数据为CSV格式
event_starts = pd.to_datetime(hildcaa_events['start_time'])

# 2. 加载CDF数据
cdf_data = pycdf.CDF('your_data.cdf')
time_array = pd.to_datetime(cdf_data['Epoch'][:])
target_var = cdf_data['dst'][:]  # 替换为你的目标变量,如AE、Bz等
cdf_data.close()

# 3. 构建对齐后的数据集
time_offsets = np.arange(-3, 8)  # -3到7天,共10个时间点
aligned_data = []

for start in event_starts:
    # 计算每个时间偏移对应的时间点
    window_times = [start + pd.Timedelta(days=offset) for offset in time_offsets]
    # 提取对应时间点的变量值(线性插值填充缺失)
    event_data = np.interp([t.timestamp() for t in window_times], 
                           time_array.astype(int)/10**9, 
                           target_var)
    aligned_data.append(event_data)

aligned_data = np.array(aligned_data)

# 4. 计算统计量
mean_vals = np.mean(aligned_data, axis=0)
q25 = np.percentile(aligned_data, 25, axis=0)
q75 = np.percentile(aligned_data, 75, axis=0)

# 5. 可视化
plt.figure(figsize=(10, 6))
plt.plot(time_offsets, mean_vals, color='darkred', linewidth=2, label='均值')
plt.fill_between(time_offsets, q25, q75, color='lightcoral', alpha=0.3, label='25%-75%分位数')

# 标注事件起始点
plt.axvline(x=0, color='black', linestyle='--', label='事件起始')

# 设置轴标签与样式
plt.xlabel('相对于事件起始的时间偏移(天)')
plt.ylabel('Dst指数(nT)')  # 替换为你的变量名称
plt.title('HILDCAA事件叠加周期分析')
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()

关键注意事项

  • 若CDF数据时间分辨率不是日度,需先做日度聚合处理(如取每日均值/极值)
  • 处理缺失数据时,可选择插值填充或剔除缺失过多的事件
  • 可视化时可根据参考示例调整颜色、线条样式、轴范围等参数

内容的提问来源于stack exchange,提问作者Peculiar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 21:42:26