Bläddra i källkod

awg commit algorithm components

anweiguo 3 månader sedan
förälder
incheckning
1f99c93c25

+ 0 - 3
models_processing/model_predict/model_prediction_lightgbm.py

@@ -61,9 +61,6 @@ def forecast_data_distribution(pre_data,args):
             else:
                 df['power_forecast'] = model.predict(df[model.feature_name()])
                 df.loc[df['power_forecast'] < 0, 'power_forecast'] = 0
-                # 添加小时列 把光夜间置为0
-                df["hour"] = pd.to_datetime(df["date_time"]).dt.hour
-                df.loc[(df["hour"] >= 20) | (df["hour"] <= 6), 'power_forecast'] = 0
                 print("model predict result  successfully!")
                 if 'farm_id' not in df.columns:
                     df['farm_id'] = farm_id

+ 66 - 0
post_processing/pre_post_processing.py

@@ -0,0 +1,66 @@
+import pandas as pd
+from flask import Flask,request,jsonify
+import time
+import logging
+import traceback
+
+from common.database_dml import get_data_from_mongo,insert_data_into_mongo
+
+app = Flask('post_processing——service')
+
+
+@app.route('/hello', methods=['POST'])
+def hello():
+    return jsonify(message='Hello, World!')
+
+
+def  predict_result_adjustment(df, args):
+    col_time = args['col_time']
+    col_adjust = args['col_adjust']
+    ratio_dict = eval(args['ratio'])
+    df['hour'] = df[col_time].apply(lambda x:x[11:13])
+    rates = ratio_dict.keys()
+    for rate in rates:
+        hours = ratio_dict[rate]
+        df.loc[df['hour'].isin(hours), col_adjust] *= float(rate)
+    return df.drop('hour', axis=1)
+
+
+@app.route('/pre_post_processing', methods=['POST'])
+def data_join():
+    # 获取程序开始时间  
+    start_time = time.time()  
+    result = {}
+    success = 0
+    print("Program starts execution!")
+    try:
+        args = request.values.to_dict()
+        print('args',args)
+        logger.info(args)
+        df_pre = get_data_from_mongo(args)
+        res_df = predict_result_adjustment(df_pre, args)
+        insert_data_into_mongo(res_df,args)
+        success = 1
+    except Exception as e:
+        my_exception = traceback.format_exc()
+        my_exception.replace("\n","\t")
+        result['msg'] = my_exception
+    end_time = time.time()
+    result['success'] = success
+    result['args'] = args
+    result['start_time'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(start_time))
+    result['end_time'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(end_time))
+    print("Program execution ends!")
+    return result
+
+
+if __name__=="__main__":
+    print("Program starts execution!")
+    logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
+    logger = logging.getLogger("post_processing")
+    from waitress import serve
+    serve(app, host="0.0.0.0", port=10107)
+    print("server start!")
+    
+   
+    

+ 1 - 0
run_all.py

@@ -23,6 +23,7 @@ services = [
     ("models_processing/model_train/model_training_bp.py", 10103),
     ("models_processing/model_predict/model_prediction_bp.py", 10104),
     ("data_processing/data_operation/data_tj_nwp_ftp.py", 10106),
+    ("post_processing/pre_post_processing.py", 10107),
 ]
 
 # 获取当前脚本所在的根目录