"""以下为云端处理部分的续写"""
import os
import json
import pandas as pd
fp = r""
abnormal_temp_diff_dict = {}
abnormal_max_temp_dict = {}
abnormal_min_temp_dict = {}
suit_temp_rate_dict = {}
temp_down_rate_dict = {}
temp_down_duration_dict = {}
high_soc_temp_dict = {}
fault_dict = {}
static_duration_dict = {}
static_soc_dict = {}
static_temp_down_dict = {}
balance_list = []
dod_list = []
day_charge_time_list = []
day_discharge_time_list = []
start_charge_list = []
start_discharge_list = []
for file in os.listdir(fp):
box_name = "1" # 暂定
result_dict = json.loads(file)
# 以下为续写部分
# 温差异常时空调工作状态
if box_name not in abnormal_temp_diff_dict.keys():
abnormal_temp_diff_dict[box_name] = [[], [[], [], [], [], []]]
abnormal_temp_diff_dict[box_name][0] += result_dict["chart26"]["x"]
for pp in range(len(abnormal_temp_diff_dict[box_name][1])):
abnormal_temp_diff_dict[box_name][1][pp] += result_dict["chart26"]["y"][pp]
else:
abnormal_temp_diff_dict[box_name][0] += result_dict["chart26"]["x"]
for pp in range(len(abnormal_temp_diff_dict[box_name][1])):
abnormal_temp_diff_dict[box_name][1][pp] += result_dict["chart26"]["y"][pp]
# 高温异常时空调工作状态
if box_name not in abnormal_max_temp_dict.keys():
abnormal_max_temp_dict[box_name] = [[], [[], [], []]]
abnormal_max_temp_dict[box_name][0] += result_dict["chart27"]["x"]
for pp in range(len(abnormal_max_temp_dict[box_name][1])):
abnormal_max_temp_dict[box_name][1][pp] += result_dict["chart27"]["y"][pp]
else:
abnormal_max_temp_dict[box_name][0] += result_dict["chart27"]["x"]
for pp in range(len(abnormal_max_temp_dict[box_name][1])):
abnormal_max_temp_dict[box_name][1][pp] += result_dict["chart27"]["y"][pp]
# 低温异常时空调工作状态
if box_name not in abnormal_min_temp_dict.keys():
abnormal_min_temp_dict[box_name] = [[], [[], [], []]]
abnormal_min_temp_dict[box_name][0] += result_dict["chart28"]["x"]
for pp in range(len(abnormal_min_temp_dict[box_name][1])):
abnormal_min_temp_dict[box_name][1][pp] += result_dict["chart28"]["y"][pp]
else:
abnormal_min_temp_dict[box_name][0] += result_dict["chart28"]["x"]
for pp in range(len(abnormal_min_temp_dict[box_name][1])):
abnormal_min_temp_dict[box_name][1][pp] += result_dict["chart28"]["y"][pp]
# 恒温占比
if box_name not in suit_temp_rate_dict.keys():
suit_temp_rate_dict[box_name] = []
suit_temp_rate_dict[box_name].append(result_dict["chart29"]["y"])
else:
suit_temp_rate_dict[box_name].append(result_dict["chart29"]["y"])
# 静置回温速率
if box_name not in temp_down_rate_dict.keys():
temp_down_rate_dict[box_name] = []
temp_down_rate_dict[box_name].append(result_dict["chart30"]["y"])
else:
temp_down_rate_dict[box_name].append(result_dict["chart30"]["y"])
# 静置回温时长
if box_name not in temp_down_duration_dict.keys():
temp_down_duration_dict[box_name] = []
temp_down_duration_dict[box_name].append(result_dict["chart31"]["y"])
else:
temp_down_duration_dict[box_name].append(result_dict["chart31"]["y"])
# 50%-100%SOC温度表现,先假定传过来的是列表,周六看看是不是列表
if box_name not in high_soc_temp_dict.keys():
high_soc_temp_dict[box_name] = [[], [], []]
for pp in range(len(high_soc_temp_dict[box_name])):
if result_dict["chart32"]["y"][pp] == 0:
pass
else:
high_soc_temp_dict[box_name][pp] += result_dict["chart32"]["y"][pp]
else:
for pp in range(len(high_soc_temp_dict[box_name])):
if result_dict["chart32"]["y"][pp] == 0:
pass
else:
high_soc_temp_dict[box_name][pp] += result_dict["chart32"]["y"][pp]
# 故障汇总
if box_name not in fault_dict.keys():
fault_dict[box_name] = [[], [], []]
for pp in range(len(fault_dict[box_name])):
if result_dict["chart33"]["y"][pp] == 0:
pass
else:
fault_dict[box_name][pp] += result_dict["chart33"]["y"][pp]
else:
for pp in range(len(fault_dict[box_name])):
if result_dict["chart33"]["y"][pp] == 0:
pass
else:
fault_dict[box_name][pp] += result_dict["chart33"]["y"][pp]
# 以下为静置部分
if box_name not in static_duration_dict.keys(): # 静置时长
static_duration_dict[box_name] = [[], []]
static_duration_dict[box_name][0] += result_dict["chart34"]["x"]
static_duration_dict[box_name][1] += result_dict["chart34"]["y"]
else:
static_duration_dict[box_name][0] += result_dict["chart34"]["x"]
static_duration_dict[box_name][1] += result_dict["chart34"]["y"]
if box_name not in static_soc_dict.keys(): # 静置SOC
static_soc_dict[box_name] = [[], []]
static_soc_dict[box_name][0] += result_dict["chart35"]["x"]
static_soc_dict[box_name][1] += result_dict["chart35"]["y"]
else:
static_soc_dict[box_name][0] += result_dict["chart35"]["x"]
static_soc_dict[box_name][1] += result_dict["chart35"]["y"]
if box_name not in static_temp_down_dict.keys(): # 静置温度下降
static_temp_down_dict[box_name] = [[], []]
static_temp_down_dict[box_name][0] += result_dict["chart36"]["x"]
static_temp_down_dict[box_name][1] += result_dict["chart36"]["y"]
else:
static_temp_down_dict[box_name][0] += result_dict["chart36"]["x"]
static_temp_down_dict[box_name][1] += result_dict["chart36"]["y"]
# 以下为均衡部分
if len(result_dict["chart37"]["y"]):
for x in result_dict["chart37"]["y"]:
x.insert(0, box_name) # 插入箱子名
balance_list += result_dict["chart37"]["y"]
# 以下为放电深度部分
if not len(dod_list):
dod_list = result_dict["chart39"]["y"]
else:
for ii in range(len(dod_list)):
dod_list[ii] += result_dict["chart39"]["y"][ii]
# 每日充电部分
day_charge_time_list += result_dict["string1"]["y"]
day_discharge_time_list += result_dict["string2"]["y"]
if not len(start_charge_list):
start_charge_list = result_dict["chart40"]["y"]
else:
for ii in range(len(start_charge_list)):
start_charge_list[ii] += result_dict["chart40"]["y"][ii]
if not len(start_discharge_list):
start_discharge_list = result_dict["chart41"]["y"]
else:
for ii in range(len(start_discharge_list)):
start_discharge_list[ii] += result_dict["chart41"]["y"][ii]
# 以下为空调部分汇总续写
# 温差异常,高温异常,低温异常温度表现,筛选一段较长时间的进行展示
def get_longest(temp_list, re_list): # 获取最长时间片段 明天确定下各个串的时间有没有排序,不需要排序
time_str_list = temp_list[0]
minute_str_list = [time[:-3] for time in time_str_list] # 转换为精确到分钟
minute_str_series = pd.Series(pd.to_datetime(minute_str_list))
start_index_list = list(minute_str_series[minute_str_series.diff().dt.total_seconds() != 60].index)
end_index_list = list(minute_str_series[minute_str_series[::-1].diff().dt.total_seconds() != -60].index)
if not len(start_index_list):
return [], []
else:
index_diff_series = pd.Series(end_index_list) - pd.Series(start_index_list)
max_diff_index = index_diff_series.idxmax()
duration_list = [] # 异常温度到空调策略改变时
云端处理代码,女生自用
需积分: 0 195 浏览量
2023-12-23
01:45:56
上传
评论
收藏 5KB RAR 举报
Freemeplease
- 粉丝: 0
- 资源: 10
最新资源
- 626556424023092线上生鲜商城.zip
- BF301 对讲机调制系统
- SPN3402DS23RG-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- SPN3402DS23RGB-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- electron + vue项目 实践实例 - 门店管理系统
- 自动化抢票脚本JS文件
- 项目经理技能之 - 软技能
- 基于yolov5的ai自瞄理论上适用于所有FPS游戏的项目源码+权重文件
- 项目经理技能之 - 硬技能
- SPN3400WS23RGB-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈