Bladeren bron

散点图增加风场code与数据源类型

chenhongyan1989 4 dagen geleden
bovenliggende
commit
0dce94d8b5

+ 11 - 5
dataAnalysisBehavior/behavior/baseAnalyst.py

@@ -613,11 +613,7 @@ class BaseAnalyst(ABC):
             # add "where" condition
             select_conditions = self.selectAllCondition(conf)
 
-            configAnalysisDF = pd.DataFrame(
-                [config.to_dict() for config in conf.dataContract.configAnalysis])
-            configAnalysisDF = configAnalysisDF[(configAnalysisDF["className"] == self.__class__.__name__)]
-
-            scadaTimeGranularities = configAnalysisDF["scada"].unique()
+            scadaTimeGranularities = self.getTimeGranularitys(conf)
             self.logger.info(
                 f"typeAnalyst: {self.typeAnalyst()}  method: processTurbineData , scadaTimeGranularities : {scadaTimeGranularities}  current class : {self.__class__.__name__}" )
             dictionary = dict()
@@ -674,6 +670,16 @@ class BaseAnalyst(ABC):
         """
         return
 
+    def getTimeGranularitys(self, conf: str):
+        """
+            根据配置获取数据源类型
+        """
+        configAnalysisDF = pd.DataFrame(
+            [config.to_dict() for config in conf.dataContract.configAnalysis])
+        configAnalysisDF = configAnalysisDF[(configAnalysisDF["className"] == self.__class__.__name__)]
+
+        return configAnalysisDF["scada"].unique()
+
     def escape_special_characters(self, original_string: str):
         """
             ---废弃---

+ 3 - 0
dataAnalysisBusiness/algorithm/generatorSpeedPowerAnalyst.py

@@ -146,8 +146,11 @@ class GeneratorSpeedPowerAnalyst(AnalystWithGoodPoint):
         })
         # 使用 apply() 对每个元素调用 datetime.fromtimestamp
         dataFrame[Field_UnixYearMonth]= dataFrame[Field_UnixYearMonth].apply(lambda x: datetime.fromtimestamp(x).strftime('%Y-%m'))
+        scada = self.getTimeGranularitys(conf)[0]
         # 构建最终的JSON对象
         json_output = {
+            "field_code": self.currPowerFarmInfo[Field_PowerFarmCode],
+            "scada": scada,
             "analysisTypeCode": "发电机转速和有功功率分析",
             "engineCode":  engineTypeCode,
             "engineTypeName": engineTypeName,

+ 3 - 1
dataAnalysisBusiness/algorithm/generatorSpeedTorqueAnalyst.py

@@ -150,9 +150,11 @@ class GeneratorSpeedTorqueAnalyst(AnalystWithGoodPoint):
         # 使用 apply() 对每个元素调用 datetime.fromtimestamp
         dataFrame['monthIntTime']=dataFrame['monthIntTime'].apply(lambda x: datetime.fromtimestamp(x).strftime('%Y-%m'))
 
-
+        scada = self.getTimeGranularitys(conf)[0]
         # 构建最终的JSON对象
         json_output = {
+            "field_code": self.currPowerFarmInfo[Field_PowerFarmCode],
+            "scada": scada,
             "analysisTypeCode": "发电机转速和转矩分析",
             "engineCode":  engineTypeCode,
             "engineTypeName": engineTypeName,

+ 3 - 1
dataAnalysisBusiness/algorithm/pitchGeneratorSpeedAnalyst.py

@@ -114,9 +114,11 @@ class PitchGeneratorSpeedAnalyst(AnalystWithGoodBadPoint):
             # 使用 apply() 对每个元素调用 datetime.fromtimestamp
             groupNew[Field_UnixYearMonth] = pd.to_datetime(group[Field_UnixYearMonth], unit='s').dt.strftime('%Y-%m-%d %H:%M:%S')
             group[Field_UnixYearMonth] = group[Field_UnixYearMonth].apply(lambda x: datetime.fromtimestamp(x).strftime('%Y-%m'))
-
+            scada = self.getTimeGranularitys(conf)[0]
             # 构建最终的JSON对象
             json_output = {
+                "field_code": self.currPowerFarmInfo[Field_PowerFarmCode],
+                "scada": scada,
                 "analysisTypeCode": "变桨和发电机转速协调性分析",
                 "engineCode": engineTypeCode,
                 "engineTypeName": engineTypeName,

+ 3 - 0
dataAnalysisBusiness/algorithm/pitchPowerAnalyst.py

@@ -140,8 +140,11 @@ class PitchPowerAnalyst(AnalystWithGoodBadPoint):
 
             group[Field_UnixYearMonth] = pd.to_datetime(group[Field_UnixYearMonth], unit='s').dt.strftime(
                 '%Y-%m-%d %H:%M:%S')
+            scada = self.getTimeGranularitys(conf)[0]
             # 构建最终的JSON对象
             json_output = {
+                "field_code": self.currPowerFarmInfo[Field_PowerFarmCode],
+                "scada": scada,
                 "analysisTypeCode": "变桨和有功功率协调性分析",
                 "engineCode": engineTypeCode,
                 "engineTypeName": engineTypeName,

+ 3 - 1
dataAnalysisBusiness/algorithm/powerScatter2DAnalyst.py

@@ -69,11 +69,13 @@ class PowerScatter2DAnalyst(AnalystWithGoodBadPoint):
             # 使用 apply() 对每个元素调用 datetime.fromtimestamp
             group['monthIntTime'] = group['monthIntTime'].apply(lambda x: datetime.fromtimestamp(x).strftime('%Y-%m'))
 
-
+            scada = self.getTimeGranularitys(conf)[0]
             # 定义要替换的空值类型
             na_values = {pd.NA, float('nan')}
             # 构建最终的JSON对象
             json_output = {
+                "field_code": self.currPowerFarmInfo[Field_PowerFarmCode],
+                "scada": scada,
                 "analysisTypeCode": "逐月有功功率散点2D分析",
                 "engineCode":  millTypeCode,
                 "engineTypeName": engineTypeName,

+ 2 - 2
dataAnalysisBusiness/setup.py

@@ -40,7 +40,7 @@ class InstallCommand(install):
 
 setup(
     name='dataAnalysisBusiness',
-    version='1.2.202505141510',
+    version='1.2.202507101014',
     description='Data Analysis Business Package', # 描述信息
     author='Xie Zhou Yang', # 作者
     packages=find_packages(),
@@ -54,7 +54,7 @@ setup(
     exclude_package_data={'': ['*.py']}
 )
 
-# 获取 setup.py 所在的绝对路径
+# 获取 setup.py 所在的`绝对路径
 setup_dir = os.path.abspath(os.path.dirname(__file__))
 # 编译打包后,删除pyc后缀文件
 for root, _, files in os.walk(setup_dir):