这是一个机器学习模型,可根据纬度、经度和日期范围,预测中国内地任意位置的逐时太阳能光伏发电量(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% |
主要观察结果:
| 变量 | 单位 |
|---|---|
| 地面气压 | Pa |
| 地面温度 | K |
| 相对湿度(2米) | % |
| U 风分量(10米) | m/s |
| V 风分量(10米) | m/s |
| 日照时长 | s |
| 低/中/高云量 | % |
| 向下短波辐射通量 | W/m² |
GFS DSWRF 是通过 RRTMG 辐射传输方案计算的模型模拟值,非直接卫星观测数据。
hour_local、month_local、day_of_year、season选择随机森林是因其具有较强的抗过拟合能力,且在所有评估指标上均表现出均衡的性能。
| 设置 | 值 |
|---|---|
| 训练/测试集划分 | 80% / 20% |
| 交叉验证 | k折交叉验证(k=10) |
| 超参数调优 | 网格搜索 |
预测的太阳辐照度(W/m²)通过 pvlib 转换为发电量(kWh)。
| 参数 | 值 |
|---|---|
| 面板倾斜角 | 25° |
| 面板方位角 | 180°(朝南) |
| 温度系数 | −0.004 /°C |
| 容量 | 1 kW(标准) |
发电量在当地时间 06:00 前和 19:00 后设置为 0 kWh。
pip install huggingface_hub pycaret[full]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", ""))# 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 | 模型元数据 |

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