import os from datetime import datetime from pathlib import Path from pprint import pprint import pandas as pd from .config_reader import ConfigReader from ..DHU.config_reader import ConfigReader as ConfigReader_DHU from ..._data.main import get_data NOW = datetime.now().replace(second=0,microsecond=0) PATH = os.path.dirname(os.path.realpath(__file__)).replace('\\','/') MODEL_FUNC_PATH = f'{PATH}/model_func.py' MODEL_FILE_PATH = f'./model.pkl' def train(*inputs,config=None): config = {} if config is None else config if '__LOCAL' in config.keys(): config_reader_path = config['__LOCAL'] data_URL = config['__URL'] plot_metric = True else: config_reader_path = '/mnt/workflow_data' data_URL = 'http://basedataportal-svc:8080/data/getpointsdata' plot_metric = False config_reader = ConfigReader( path = f'{config_reader_path}/Room.xlsx', DHU_AB_config = ConfigReader_DHU(path=f'{config_reader_path}/DHU_AB.xlsx') ) # 历史数据 data_raw_folder = os.path.join(config_reader_path,f'data/train/data_his_raw/') if not os.path.exists(data_raw_folder): os.makedirs(data_raw_folder) for each_room_dew in config_reader.all_room_dew: all_data = [] data_his_folder = os.path.join(config_reader_path,f'data/train/data_his/{each_room_dew}') if not os.path.exists(data_his_folder): os.makedirs(data_his_folder) points = config_reader.get_point(each_room_dew) for each_point_name,each_point_id in points.items(): file_path = os.path.join(data_his_folder,f'{each_point_name}.pkl') get_data( points_id = [each_point_id], time_start = config_reader.get_app_info(each_room_dew,'模型训练','开始时间','datetime'), time_end = config_reader.get_app_info(each_room_dew,'模型训练','结束时间','datetime'), int_time = 'M', url = data_URL, from_cache = True, PATH = Path(file_path), ) all_data.append(pd.read_pickle(file_path).set_axis([each_point_name],axis=1)) all_data = pd.concat(all_data,axis=1).to_pickle(f'{data_raw_folder}/{each_room_dew}.pkl')