main_anomalyPCA.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from LIB.BACKEND import DBManager
  2. dbManager = DBManager.DBManager()
  3. from LIB.MIDDLE.CellStateEstimation.Common import log
  4. import pandas as pd
  5. import anomalyPCA
  6. dataSOH = pd.read_excel('sn-20210903.xlsx',sheet_name='格林美-CATL7255')
  7. fileNames = dataSOH['sn']
  8. fileNames = list(fileNames)
  9. l = len(fileNames)
  10. mylog=log.Mylog('log.txt','error')
  11. mylog.logcfg()
  12. for k in range(l):
  13. try:
  14. sn = fileNames[k]
  15. df_data = dbManager.get_data(sn=sn, start_time='2021-06-01 00:00:00', end_time='2021-10-01 00:00:00', data_groups=['bms'])
  16. data_train = df_data['bms']
  17. df_data = dbManager.get_data(sn=sn, start_time='2021-10-01 00:00:00', end_time='2021-11-01 00:00:00', data_groups=['bms'])
  18. data_test = df_data['bms']
  19. if len(data_train)>0:
  20. x_train=anomalyPCA.makedataset(data_train)
  21. x_train_pro=anomalyPCA.process(x_train)
  22. pca=anomalyPCA.anomalyPCA(x_train_pro)
  23. res=anomalyPCA.transform(x_train_pro,pca,x_train)
  24. res.to_csv('res'+sn+'.csv',encoding='gbk')
  25. if len(data_test)>0:
  26. x_test=anomalyPCA.makedataset(data_test)
  27. x_test_pro=anomalyPCA.process(x_test)
  28. pred=anomalyPCA.transform(x_test_pro,pca,x_test)
  29. pred.to_csv('pred'+sn+'.csv',encoding='gbk')
  30. outliers=anomalyPCA.detect_outliers(pred,threshold=0.95)
  31. outliers2=anomalyPCA.detect_outliers2(res,pred,threshold=36)
  32. outliers.to_csv('outliers'+sn+'.csv',encoding='gbk')
  33. outliers2.to_csv('outliers2'+sn+'.csv',encoding='gbk')
  34. except Exception as e:
  35. print(repr(e))
  36. mylog.logopt(sn,e)
  37. pass