import os from datetime import datetime from pathlib import Path import pandas as pd from ...model.DHU.DHU_A import DHU_A from ...model.DHU.DHU_B import DHU_B from ...tools.config_reader import ConfigReader from ...tools.data_loader import DataLoader def optimize(*inputs,config=None): config = {} if config is None else config if '__LOCAL' in config.keys(): config_reader_path = config['__LOCAL'] data_URL = config['__URL'] else: config_reader_path = '/mnt/workflow_data' data_URL = 'http://basedataportal-svc:8080/data/getpointsdata' config_reader = ConfigReader(path=f'{config_reader_path}/DHU_A配置.xlsx') if config_reader.meta['设备类型'] == 'DHU_A': MODEL = DHU_A elif config_reader.meta['设备类型'] == 'DHU_B': MODEL = DHU_B else: raise NotImplementedError(config_reader.meta['设备类型']) ALL_RESULT = { 'EXCEPTION':{ 'Data': {}, 'Fit' : {}, 'Save': {} } } for each_eaup_name in config_reader.all_equp_names: # 加载数据 # 运行判断 # 稳态判断:房间露点设定值与反馈值是否接近 # 模型判断:模型精度是否满足要求 # 模式判断: # 1. 基于当前露点优化模式:基于房间露点设定值减偏差 # 2. 快速提升送风露点模式:约束送风露点保持不变 # 获取数据 try: data_loader = DataLoader( path = f'{config_reader_path}/data/train/data_his/', start_time = config_reader.get_app_info(each_eaup_name,app_type='模型训练',key='开始时间',info_type='datetime'), end_time = config_reader.get_app_info(each_eaup_name,app_type='模型训练',key='结束时间',info_type='datetime') ) data_loader.dowload_equp_data( equp_name = each_eaup_name, point = config_reader.get_equp_point(each_eaup_name,equp_class=['A','B']), url = data_URL, clean_cache = False ) equp_data = data_loader.get_equp_data(each_eaup_name) equp_data = clean_data(equp_data) save_data(f'{config_reader_path}/data/train/data_his_clean',f'{each_eaup_name}.pkl',equp_data) except Exception as E: ALL_RESULT['EXCEPTION']['Data'][each_eaup_name] = E continue