Klimapy / 参考 / 验证与效率
Klimapy 1.2.1 · 变量、单位、日历和质量控制规则见相应函数说明。

验证与效率

与社区算法的一致性

将相同数据、单位、日历、基准期和缺测规则输入 Klimapy 与社区算法,比较数值误差。比较的是统一口径下的结果,不把不同默认参数产生的差异直接判为错误。

下表为效率测量所用六个任务的一致性结果。

任务 对照算法 最大绝对误差 允许误差
PRCPTOT xclim 0 rtol=1e-8, atol=1e-8
RX5DAY xclim 0 rtol=1e-8, atol=1e-8
双线性插值 SciPy RegularGridInterpolator 0 rtol=1e-8, atol=1e-8
SVD NumPy LAPACK 5.91e-12 rtol=1e-8, atol=1e-8
EOF eofs 8.19e-12 rtol=1e-8, atol=1e-8
月气候态 xarray groupby 0 rtol=1e-8, atol=1e-8

以上六个任务均在允许误差内。这不代表所有指标、所有日历或所有数据规模都已与其他软件完全一致。

计算效率

Klimapy 与社区算法的实测耗时比

倍数定义为 对照算法耗时 ÷ Klimapy 耗时。大于 1 表示 Klimapy 更快,小于 1 表示更慢;图中虚线为相同耗时。

任务 Klimapy / ms 对照算法 / ms 耗时比
PRCPTOT 1.822 5.382 2.95×
RX5DAY 1.905 6.577 3.45×
双线性插值 0.113 0.066 0.582×
SVD 280.091 0.832 0.00297×
EOF 292.889 6.286 0.0215×
月气候态 1.579 2.654 1.68×

本次 PRCPTOT 和 RX5DAY 分别约快 2.95 倍和 3.45 倍。小型稠密矩阵的 SVD 与 EOF 目前慢于 NumPy 和 eofs,双线性插值也未体现优势。这些结果只适用于下述任务和硬件,不代表所有工作流或大型文件的整体性能。

测量设置

测量日期:2026-10-29。硬件:Intel(R) Core(TM) i5-14600K,Linux x86_64。输入为连续 731 日、6×8 格点的降水数据切片;双线性插值使用前 30 日,其余任务使用完整切片。月气候态对照使用两个明确的基准年。

每项在单线程下预热 2 次,正式运行 7 次并取中位数。计时排除导入、进程启动和文件读取,保留公共接口的分配与结果组织成本;双线性插值包含网格权重构建。一致性检查与计时均基于同一份已载入内存的数组。

测试环境

一致性检查与测量使用以下第三方库:NumPy、xarray、xclim、SciPy 和 eofs。