Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel
Li Chao 271e8378af
naive dask implementation
5 years ago
doc
4649186d25
use dataframe instead of dict
5 years ago
6d649e2da8
add multi-station implementaion
5 years ago
271e8378af
naive dask implementation
5 years ago
271e8378af
naive dask implementation
5 years ago
7932df258e
improve output format
5 years ago
a8c018e0c3
single process algorithm verified: pytest -s test_stations.py
5 years ago
5ea2a21119
PySpark job verified: python sparkjob.py
5 years ago
6d649e2da8
add multi-station implementaion
5 years ago
5ea2a21119
PySpark job verified: python sparkjob.py
5 years ago
d186adeabe
matrix-median and max-current operators verified
5 years ago
de2574bb08
initial implementaion based on max current method
5 years ago
de2574bb08
initial implementaion based on max current method
5 years ago
Storage Buckets

README.md

You have to be logged in to leave a comment. Sign In

Intro

基于最大电流法分析光伏组串状态和故障预警。

算子的训练和运行时说明参考 doc 中文件。

test_one_unit.py 中的测试使用的数据集(ycz6502.csv)格式: 所有组串都属于同一个相关性计算单元(集中式光伏系统:汇流箱, 或者分布式光伏系统:逆变器),只要取其中时间、组串ID、电流值3列即可。

test_stations.py 中的测试集(数据文件hbpv10days.csv尺寸过大未包含在代码库中) 包含时间戳、场站名称、小室编号、汇流箱编号、组串编号、测点ID、电流值,例如:

20181119 07:04:29,SYGD,01,01,01,1000611,0.0

用 场站名称 + 小室编号 + 汇流箱编号 组成分组标识符, 每个分组包含一个汇流箱中所有组串在整个时间域中的电流值, 按天分组后分别做相关性计算。

输入和输出定义

输入格式:组串ID,时间,电流值,电压,功率,辐照度,温度

输出格式:时间,组串ID,相关系数,相关系数矩阵(JSON格式字符串)

计算方案

单线程 Python 程序

优点:使用全部 Pandas, scikit-learn 库,GICS平台目前已支持,占用系统资源小, 记录行数在千万行级别时计算速度尚可接受;

缺点:没有并行能力,计算量继续增加时速度变慢;

性能分析:

  • 数据量大小:10个场站一天的数据,10,439,616 条(千万级),共439MB;

  • 算法语言和架构:Pandas 单进程;

  • 计算资源:节点数:1(物理机), CPU核数:1, 主频:3.44GHz, 内存:2.5 ~ 3 GB

  • 计算单元数:4000

  • 运行时间:270 ~ 300秒

PySpark + Pandas

基于 PySpark 2.3 的 pandas_udf 实现 Spark 并行 + 单点使用 Pandas 处理。

优点:并行能力好,结合 Spark 和 Pandas 的优点;

缺点:只能使用 PySpark ,与 Scala Spark 目前没有整合方案;

性能分析:

  • 数据量大小:10个场站一天的数据,10,439,616 条(千万级),共439MB;

  • 算法语言和架构: PySpark + Pandas;

  • 计算资源:节点数:1(虚拟机), CPU核数:10, 主频:2.40GHz, 内存:2 ~ 2.5 GB(不含 CDH 和 Spark 后台服务,每个 executor 使用 100MB 左右内存)

  • 计算单元数:4000

  • 运行时间:290 ~ 310 秒

Scala Spark + Pandas

Scala Spark + jep + Pandas

优点:与 Scala Spark 整合在一起;

缺点:目前尚未验证可行性;

Scala Spark + PyArrow + Pandas

目前尚未验证。

Scala Spark

优点:在 Spark 框架上运行速度最快,与已有平台整合方便;

缺点:目前的 Python 算法实现不能完全移植到 Spark 上;

Python 并行计算框架

Dask

优点: 不依赖 CDH,集群部署方便(Anaconda 默认集成,仅依赖SSH); 与Pandas方案高度兼容,改写难度小; 兼顾大数据和高并行两种场景。

缺点:在基于 CDH 的HDFS 上读写文件存在问题;

性能分析:

  • 数据量大小:10个场站一天的数据,10,439,616 条(千万级),共439MB;

  • 算法语言和架构: Dask

  • 计算资源:节点数:1(物理机), CPU核数:20, 主频:2.10GHz, 内存:< 5 GB

  • 计算单元数:4000

  • 运行时间:40 ~ 50 秒

Celery + Pandas

优点: 不依赖 CDH; 集群部署方便(仅依赖 RabbitMQ 和 Celery 库); 与Pandas方案高度兼容,改写难度小; 高并发场景下性能可靠;

缺点:不能处理大数据场景。

Python multiprocessing library

fabric

Tip!

Press p or to see the previous file or, n or to see the next file

About

No description

Collaborators 1

Comments

Loading...