import os # 项目ID PROJECT_ID = 1420 # 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 = 'hour' # 应该与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(' ', '_')