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

多维数组遍历:提取经纬度网格点时间序列并调用函数

解决多维网格时间序列提取问题

首先,你当前代码的问题在于多维数组的索引方式错误,链式的[:][x][y]写法不符合多维数组(如numpy数组)的索引逻辑,容易导致维度顺序混乱,无法正确提取目标网格的时间序列。

步骤1:确认数据维度顺序

先打印你的sst数据的维度形状,明确各维度的顺序:

print(m.sst.shape)

假设输出为(29, 4, 8),则维度顺序为(time, lat, lon);如果输出是(29, 8, 4),则维度顺序为(time, lon, lat)。

步骤2:修正索引提取时间序列

根据维度顺序,调整循环内的索引方式:

  • 如果维度是(time, lat, lon):
    for x in range(len(m.lon)):  # x是经度索引
        for y in range(len(m.lat)):  # y是纬度索引
            # 提取第y个纬度、第x个经度对应的所有时间点数据
            sst_time_series = m.sst[:, y, x]
            mhws, clim = mhw.detect(t_x, sst_time_series, pctile=90, alternateClimatology=[t_c, sst_c])
    
  • 如果维度是(time, lon, lat):
    for x in range(len(m.lon)):  # x是经度索引
        for y in range(len(m.lat)):  # y是纬度索引
            # 提取第x个经度、第y个纬度对应的所有时间点数据
            sst_time_series = m.sst[:, x, y]
            mhws, clim = mhw.detect(t_x, sst_time_series, pctile=90, alternateClimatology=[t_c, sst_c])
    

关键说明

多维数组的正确索引方式是用逗号分隔各维度的索引,[:, y, x]表示:

  • : 取所有时间维度的数据
  • y 取第y个纬度的切片
  • x 取第x个经度的切片
    这样就能精准得到单个网格点对应的29天时间序列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:17:18