| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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')
-
-
-
|