HuggingFace镜像/Suncast
模型介绍文件和版本分析
下载使用量0

☀️ Suncast — 逐时太阳能光伏发电预测模型(中国区域)

这是一个机器学习模型,可根据纬度、经度和日期范围,预测中国内地任意位置的逐时太阳能光伏发电量(kWh)。


📌 模型概述

项目详情
任务表格回归(太阳辐照度 → 光伏功率)
算法随机森林回归器(通过 PyCaret AutoML 实现)
目标区域中国内地(UTC+8)
时间分辨率1小时间隔
输出单位kWh(1千瓦标准光伏电站)
训练周期2024全年
训练样本量4,861,296

📊 性能表现

指标值
MAE(平均绝对误差)76.19 W/m²
RMSE(均方根误差)126.96 W/m²
R²(决定系数)0.748
MAPE(平均绝对百分比误差)1.49%

主要观察结果:

  • ✅ 夏季(太阳辐照度充足)预测精度高
  • ⚠️ 冬季误差增大(辐照度低,气象条件多变)
  • 模型的季节性结构支持长期扩展

🗂️ 数据来源

输入数据 — GFS(全球预报系统,NOAA)

  • 空间分辨率:1° × 1°
  • 时间分辨率:1小时
  • 覆盖范围:纬度19°–53°(步长2°),经度74°–134°(步长2°)→ 558个网格点
变量单位
地面气压Pa
地面温度K
相对湿度(2米)%
U 风分量(10米)m/s
V 风分量(10米)m/s
日照时长s
低/中/高云量%
向下短波辐射通量W/m²

GFS DSWRF 是通过 RRTMG 辐射传输方案计算的模型模拟值,非直接卫星观测数据。

目标数据 — NASA POWER / CERES SYN1deg

  • 来源:CERES SYN1deg(Ed4.x),经 Terra/Aqua CERES、MODIS 和地球静止卫星交叉校准
  • 空间分辨率:1° × 1°(下采样至2° × 2°)
  • 时间分辨率:1小时(由3小时数据线性插值得到)
  • 时区:固定UTC+8(全国统一)

🧠 模型训练详情

特征工程

  • GFS 输入变量的时空对齐与标准化
  • 添加的时间特征:hour_local、month_local、day_of_year、season

对比的候选模型

  • 极端随机树回归器
  • 随机森林回归器 ✅(已选择)
  • LightGBM
  • 梯度提升回归器

选择随机森林是因其具有较强的抗过拟合能力,且在所有评估指标上均表现出均衡的性能。

训练配置

设置值
训练/测试集划分80% / 20%
交叉验证k折交叉验证(k=10)
超参数调优网格搜索

⚡ 光伏功率转换

预测的太阳辐照度(W/m²)通过 pvlib 转换为发电量(kWh)。

参数值
面板倾斜角25°
面板方位角180°(朝南)
温度系数−0.004 /°C
容量1 kW(标准)

发电量在当地时间 06:00 前和 19:00 后设置为 0 kWh。


🚀 使用方法

1. 安装依赖项

pip install huggingface_hub pycaret[full]

2. 从 Hugging Face Hub 下载并加载模型

from huggingface_hub import hf_hub_download
from pycaret.regression import load_model, predict_model
import pandas as pd

# Download model from Hugging Face Hub
model_path = hf_hub_download(
    repo_id="ryukkt62/Suncast",
    filename="Suncast_v1.pkl"
)

# Load PyCaret pipeline (strip .pkl extension)
model = load_model(model_path.replace(".pkl", ""))

3. 准备输入特征并进行预测

# Prepare input features
input_data = pd.DataFrame([{
    "sp": 101325,       # Surface Pressure [Pa]
    "t": 300.15,        # Surface Temperature [K]
    "r2": 60.0,         # Relative Humidity [%]
    "u10": 2.0,         # U-Wind [m/s]
    "v10": -1.5,        # V-Wind [m/s]
    "SUNSD": 3200,      # Sunshine Duration [s]
    "lcc": 10.0,        # Low Cloud Cover [%]
    "mcc": 5.0,         # Mid Cloud Cover [%]
    "hcc": 20.0,        # High Cloud Cover [%]
    "sdswrf": 650.0,    # DSWRF [W/m²]
    "hour_local": 12,
    "month_local": 7,
    "day_of_year": 190
}])

# Predict irradiance → PV power
prediction = predict_model(model, data=input_data)
print(prediction["prediction_label"])

注意: 模型文件在首次下载后会缓存在本地(~/.cache/huggingface/hub/),因此后续调用不会重新下载。


📁 仓库文件

文件描述
Suncast_v1.pkl训练好的 PyCaret 随机森林管道
config.json模型元数据

⚠️ 局限性

  • 训练数据仅限于 2024 年(原计划为 2020–2024 年;因 GFS 服务器不稳定和存储限制而缩减)
  • 网格分辨率为 2° × 2° —— 预测使用距离输入坐标最近的网格点
  • 不适用于中国大陆网格覆盖范围之外

image

📄 许可证

本模型基于 Apache 2.0 许可证 发布。