项目简介:基于印度两座太阳能电站的发电数据(DC/AC 功率、日发电量)与气象传感器数据(环境温度、组件温度、辐照度),完整走通数据读取 → 探索性分析(EDA)→ 相关性分析 → 机器学习预测 → 可视化交付的数据分析标准链路。
核心目标:① 探究辐照度、温度与发电功率之间的规律;② 构建发电功率预测模型,辅助光伏电站运营与调度;③ 通过数据大屏直观呈现两站运行状态。
成果:识别出辐照度(IRRADIATION)是影响发电功率的决定性特征;Plant 1 逆变器出力稳定(σ=10.07 kW)、线性回归 R²=0.911、GBM 预测 R² 达 0.97;Plant 2 出力波动大(σ=32.00 kW),去除 DC 功率离群点后 GBM R² 由 0.61 提升至 0.782,并配套 Streamlit 数据大屏。
一、项目背景
太阳能发电受天气(辐照度、温度)影响具有明显的波动性,如何基于历史发电与气象数据预测未来发电功率,对光伏电站的运营与电网调度至关重要。本项目以印度两座太阳能电站(Plant 1 / Plant 2,每站 22 台逆变器)的发电与气象传感器数据为对象,完成探索性分析、相关性分析与发电功率预测建模。
二、数据与预处理
- 数据来源:Kaggle「Solar Power Generation Data」公开数据集(印度两座太阳能电站)。
- 数据规模:两站发电数据与气象传感器数据合并后共 136,472 条记录,时间跨度 2018-05 ~ 11。
- 数据字段:DC 功率、AC 功率、日发电量、环境温度、组件温度、辐照度等。
三、分析流程与关键结论
| 步骤 | 内容 |
|---|---|
| 数据读取与合并 | 两站发电数据 + 气象数据按时间对齐合并 |
| EDA | 辐照度随时间分布(按日期 / 按时刻)、温度-功率与辐照-功率散点、逆变器平均出力对比 |
| 相关性分析 | 温度 / 辐照度与发电功率的相关性热力图 |
| 建模预测 | 线性回归 / 梯度提升(GBM),时间序列切分训练测试,R² / MSE 评估 |
| 模型解释 | 真实 vs 预测曲线、特征重要性 |
关键结论
| 指标 | Plant 1 | Plant 2 |
|---|---|---|
| 逆变器平均出力稳定性 | 稳定(σ=10.07 kW) | 不稳定(σ=32.00 kW) |
| 线性回归 R²(模块温度→DC) | 0.911 | 0.562 |
| GBM 预测 R²(默认参数) | 0.97 | 0.61 |
| GBM 预测 R²(去除离群点后) | — | 0.782 |
💡 辐照度(IRRADIATION)是影响发电功率的决定性特征;Plant 2 逆变器出力波动明显大于 Plant 1,去除 DC 功率离群点后可显著提升模型表现。
1 | # 发电功率预测核心流程(摘要) |
四、Streamlit 数据大屏
深色科技风交互看板,包含三大功能模块:
| 模块 | 功能 |
|---|---|
| 📊 数据概览 | KPI 大屏卡(电站 / 逆变器 / 记录数 / 平均功率)、DC/AC 功率时间序列、日均发电量对比、合并数据预览 |
| 🔍 探索性分析 | 辐照度随时间分布(按日期 / 按时刻)、温度-功率与辐照-功率散点、逆变器平均出力对比、相关性热力图 |
| ⚡ 发电预测 | 线性回归 / 梯度提升(GBM)模型,R² / MSE 评估、真实 vs 预测曲线、特征重要性 |
1 | # 启动 Streamlit 数据大屏 |
五、技术栈与项目结构
技术栈:Python 3 · pandas / numpy / matplotlib / seaborn / plotly / scikit-learn / Streamlit / Jupyter。
| 文件 / 目录 | 说明 |
|---|---|
Plant_1_Generation_Data.csv |
1 号电站发电数据 |
Plant_1_Weather_Sensor_Data.csv |
1 号电站气象数据 |
Plant_2_Generation_Data.csv |
2 号电站发电数据 |
Plant_2_Weather_Sensor_Data.csv |
2 号电站气象数据 |
印度新能源(太阳能)发电探索性分析与预测.ipynb |
完整分析 Notebook(EDA + 预测) |
streamlit_app.py |
Streamlit 数据大屏 |
index.html |
项目介绍页 |

