| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import os
- # 项目ID
- PROJECT_ID = 92 # TODO 需要修改项目ID
- # 智慧水萝卜URL登陆用户名和密码
- USERNAME = 'admin'
- PASSWORD = 'JK20200508'
- # 智慧水萝卜URL登陆部门ID参数
- DEP_ID = '135'
- # 智慧水萝卜URL网站地址
- BASE_URL = 'http://120.55.44.4:8900'
- # ALL ITEMS文件保存路径
- ALL_ITEMS_FILE_DIR = r'D:\code\data_analysis\GetItem'
- ALL_ITEMS_FILE_NAME = f'{PROJECT_ID}_all_items.csv' # 输出的文件名称,不要轻易修改
- ALL_ITEMS_FILE_PATH = os.path.join(ALL_ITEMS_FILE_DIR, ALL_ITEMS_FILE_NAME)
- INCLUDE_HEAD = True # ALL_ITEMS文件是否包含头信息
- TRANSFER_JSON_NAME = f'{PROJECT_ID}_all_items_name_code_transfer.json'
- # 智慧水萝卜某项目最大页数
- MAX_PAGES = 290 # TODO 需要修改为网页的实际数量
- PAGE_SIZE = 20
- # 数据库参数,从数据库拿数据时使用
- DB_HOST = '192.168.50.4'
- DB_USER = 'root'
- DB_PASSWORD = '*B-@p2b+97D5xAF1e6'
- DB_NAME = 'ws_data' # 数据库名称
- DB_PORT = 4000
- POSTFIX = 'minute' # 应该与DB_SHEET_NAME的后缀保持一致 TODO 可根据需求修改为天、小时或分钟
- DB_SHEET_NAME = f'dc_item_history_data_{POSTFIX}' # 表名称
- # 开始年月日
- CHECK_YEAR_START = 2025
- CHECK_MONTH_START = 1
- CHECK_DAY_START = 1
- # 结束年月日
- CHECK_YEAR_END = 2025
- CHECK_MONTH_END = 12
- CHECK_DAY_END = 31
- # 时分秒
- CHECK_HOUR_START = 0
- CHECK_MINUTE_START = 0
- CHECK_SECONDS_START = 0
- CHECK_HOUR_END = 23
- CHECK_MINUTE_END = 59
- CHECK_SECONDS_END = 59
- # 统计数据量
- STATISTICS_FILE_DIR = r'D:\code\data_analysis\GetItem'
- STATISTICS_FILE_NAME = f'{PROJECT_ID}_statistics_{POSTFIX}.csv'
- # 是否从文件加载
- IS_FROM_LOCAL = False
- # 皮尔逊相关系数计算
- EXCLUDE_WORDS = ['电流', '控制字', '步序', '时间设定', '开关', '报警', '噪音'] # 排除列表,若字段包含列表内的词,就自动跳过不参与统计
- DIFF_WORDS = ['累计', '计数', '运行时间', '电能'] # 差分列表,若字段包含列表内的词,就对数据执行差分
- MIN_RECORDS = 2000 # 低于该值的字段不会参与计算 TODO 需要修改记录的最小记录数
- IS_LAG = True
- IS_NORMALIZE = False
- MAX_LAG = 0 # 最大滞后, 0表示没有滞后
- STEP = 1 # 最大滞后步长
- P_VALUE_THRESHOLD = 0.05 # 显著性p值阈值
- PEARSONR_VALUE_THRESHOLD = 0.10 # 皮尔逊相关系数r阈值,低于此阈值视同为0
- # 皮尔逊输出文件保存地址
- R_MAT_JSON_FILE_DIR = r'D:\code\data_analysis\Analysis'
- R_MAT_JSON_FILE_NAME = f'{PROJECT_ID}_pearsonr_mat_{POSTFIX}.pkl'
- R_MAT_JSON_PATH = os.path.join(R_MAT_JSON_FILE_DIR, R_MAT_JSON_FILE_NAME)
- # Lasso
- LASSO_FEATURE_FILE_DIR = r'D:\code\data_analysis\Analysis'
- LASSO_FEATURE_FILE_NAME = 'lasso_features_choose.json'
- LASSO_FEATURE_FILE_PATH = os.path.join(R_MAT_JSON_FILE_DIR, LASSO_FEATURE_FILE_NAME)
- # other 拓展参数
- def fmt_date(start_year,end_year,
- start_month,end_month,
- start_day,end_day,
- start_hour=0,end_hour=23,
- start_minute=0,end_minute=59,
- start_second=0,end_second=59):
- fmt = lambda x: '0' + str(x) if abs(x) < 10 else str(x)
- start_month = fmt(start_month)
- end_month = fmt(end_month)
- start_day = fmt(start_day)
- end_day = fmt(end_day)
- start_hour = fmt(start_hour)
- end_hour = fmt(end_hour)
- start_minute = fmt(start_minute)
- end_minute = fmt(end_minute)
- start_second = fmt(start_second)
- end_second = fmt(end_second)
- start_datetime = f'{start_year}-{start_month}-{start_day} {start_hour}:{start_minute}:{start_second}'
- end_datetime = f'{end_year}-{end_month}-{end_day} {end_hour}:{end_minute}:{end_second}'
- return start_datetime, end_datetime
- DATE_START, DATE_END = fmt_date(start_year=CHECK_YEAR_START, start_month=CHECK_MONTH_START, start_day=CHECK_DAY_START,
- start_hour=CHECK_HOUR_START, start_minute=CHECK_MINUTE_START, start_second=CHECK_SECONDS_START,
- end_year=CHECK_YEAR_END, end_month=CHECK_MONTH_END, end_day=CHECK_DAY_END,
- end_hour=CHECK_HOUR_END, end_minute=CHECK_MINUTE_END, end_second=CHECK_SECONDS_END)
- DF_MERGE_FILE_DIR = r'D:\code\data_analysis\Analysis'
- DF_MERGE_FILE_PATH = os.path.join(DF_MERGE_FILE_DIR, f'{PROJECT_ID}_' + DB_NAME + '_' + DB_SHEET_NAME + '_' + POSTFIX + '_' + DATE_START.replace(':','-') + '_' + DATE_END.replace(':','-') + '.pkl').replace(' ', '_')
|