David hai 1 mes
pai
achega
9439c6e268
Modificáronse 1 ficheiros con 16 adicións e 11 borrados
  1. 16 11
      DataLimitpower/limited_power_solar.py

+ 16 - 11
DataLimitpower/limited_power_solar.py

@@ -1,5 +1,5 @@
 import pandas as pd
-import os
+import os, argparse
 import numpy as np
 np.random.seed(42)
 import matplotlib
@@ -9,10 +9,15 @@ current_path = os.path.dirname(__file__)
 
 
 class LimitPower(object):
-    def __init__(self, logger, args, weather_power):
-        self.logger = logger
-        self.args = args
-        self.opt = self.args.parse_args_and_yaml()
+    def __init__(self, weather_power):
+        self.opt = argparse.Namespace(**{'usable_power': {
+            'bias': 3.304,
+            'coe': 4,
+            'down_fractile': 30,
+            'env': 'C_GLOBALR',
+            'k': 0.03506,
+            'outliers_threshold': 1.5,
+            'up_fractile': 70}, 'cap': 30})
         self.weather_power = weather_power
 
     def segment_statis(self):
@@ -76,7 +81,7 @@ class LimitPower(object):
         k_final = round(np.mean(ks), 5)  # 对清洗后的斜率做平均
         # print("++++2:", ks)
         delete_x.extend(delete_x1)
-        self.logger.info("拟合可用功率,删除的斜率:" + ' '.join([str(x) for x in delete_x]))
+        print("拟合可用功率,删除的斜率:" + ' '.join([str(x) for x in delete_x]))
         glob_rp = {k: v for k, v in glob_rp.items() if k not in delete_x}   # 清洗后剩下的分段点位
         return k_final, bias, glob_rp
 
@@ -113,11 +118,11 @@ class LimitPower(object):
                 new_weather_power.append(row)
         new_weather_power = pd.concat(new_weather_power, axis=1).T
         new_weather_power.plot.scatter(x=self.opt.usable_power["env"], y='C_REAL_VALUE', c='c')
-        plt.savefig(current_path + '/figs/测光法{}.png'.format(name))
+        plt.savefig(current_path + './data/测光法{}.png'.format(name))
         new_weather_power = new_weather_power[new_weather_power['c'] == 'red']
         number = len(new_weather_power)
-        self.logger.info("测光法-未清洗限电前,总共有:{}条数据".format(len(self.weather_power)))
-        self.logger.info("测光法-清除限电后保留的点有:" + str(number) + " 占比:" + str(round(number / len(self.weather_power), 2)))
+        print("测光法-未清洗限电前,总共有:{}条数据".format(len(self.weather_power)))
+        print("测光法-清除限电后保留的点有:" + str(number) + " 占比:" + str(round(number / len(self.weather_power), 2)))
         return new_weather_power.loc[:, ['C_TIME', 'C_REAL_VALUE', 'C_ABLE_VALUE']]
 
     def clean_limited_power_by_signal(self, name):
@@ -127,8 +132,8 @@ class LimitPower(object):
         weather_power1.plot.scatter(x=self.opt.usable_power["env"], y='C_REAL_VALUE', c='c')
         plt.savefig(current_path + '/figs/信号法{}.png'.format(name))
         weather_power1 = weather_power1[weather_power1['signal'] == False]
-        self.logger.info("信号法-未清洗限电前,总共有:{}条数据".format(len(self.weather_power)))
-        self.logger.info("信号法-清除限电后保留的点有:" + str(len(weather_power1)) + " 占比:" + str(round(len(weather_power1) / len(self.weather_power), 2)))
+        print("信号法-未清洗限电前,总共有:{}条数据".format(len(self.weather_power)))
+        print("信号法-清除限电后保留的点有:" + str(len(weather_power1)) + " 占比:" + str(round(len(weather_power1) / len(self.weather_power), 2)))
         return weather_power1.loc[:, ['C_TIME', 'C_REAL_VALUE', 'C_ABLE_VALUE']]
 
     def signal_result(self, manual, auto):