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

使用Xarray计算1950-2020年大气数据逐十年均值的问题咨询

逐十年大气参数均值计算解决方案

以下两种方案均可生成兼容netCDF格式的计算结果,不会出现数据类型转换错误:

方案1:基于已生成的年平均结果计算

  • 第一步:为年平均数据集添加数值型十年标签
    ds_annual_means['decade'] = (ds_annual_means['year'] // 10) * 10
    
    运算会自动将1950-1959年的记录标签统一设为1950,1960-1969年设为1960,以此类推,标签为整型,不存在object类型问题。
  • 第二步:按十年标签分组求均值
    ds_decade_means = ds_annual_means.groupby('decade').mean()
    
  • 可选优化:若需保留datetime64[ns]类型的时间坐标,可将十年标签转换为对应区间的起始日期:
    import pandas as pd
    ds_decade_means = ds_decade_means.assign_coords(
        time = lambda x: [pd.to_datetime(f"{d}-01-01") for d in x['decade'].values]
    )
    # 可按需删除多余的decade字段
    ds_decade_means = ds_decade_means.drop_vars('decade')
    

方案2:直接从原始观测数据计算(精度更高)

无需先单独计算年平均,直接从原始带time维度的数据集处理,避免两次平均带来的精度损失:

# 为原始数据集添加十年标签
ds['decade'] = (ds.time.dt.year // 10) * 10
# 直接分组计算十年均值
ds_decade_means = ds.groupby('decade').mean()

结果导出

两种方案输出的数据集均可直接调用xarray内置方法保存为nc文件:

ds_decade_means.to_netcdf("decade_mean_result.nc")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:39:00