From c7a89b637e4d473f04f4b03a1102c5ffd8083572 Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Wed, 20 Feb 2019 15:29:27 +0100 Subject: [PATCH] ajout profil --- PSSE_PF_Eficas/utils.py | 344 ++-------------------------------------- 1 file changed, 15 insertions(+), 329 deletions(-) diff --git a/PSSE_PF_Eficas/utils.py b/PSSE_PF_Eficas/utils.py index 514dc575..f37c2d2f 100644 --- a/PSSE_PF_Eficas/utils.py +++ b/PSSE_PF_Eficas/utils.py @@ -4,10 +4,6 @@ ############################################################ debug = True -""" -Nouvelle ligne -""" - dicoCaracteresSpeciaux = { " ":"_", "-" : "_" , @@ -44,330 +40,20 @@ def testNettoyeName(): exit() print ('succes testNettoyeName') -if __name__ == "__main__": - testNettoyeName() +def testNettoyeNameAvecProfil(): + import cProfile, pstats, StringIO + pr = cProfile.Profile() + pr.enable() + # appel de la fonction qu on veut profiler + testNettoyeName() + pr.disable() + s = StringIO.StringIO() + sortby = 'cumulative' + ps = pstats.Stats(pr, stream=s).sort_stats(sortby) + ps.print_stats() + print(s.getvalue()) -# try: -# int(loadname[0]) -# loadname="_" + loadname -# except: -# pass -# LoadDico[loadname]= {} -# LoadDico[loadname]['NAME'] = carray[0][i].strip() -# LoadDico[loadname]['ID'] = carray[1][i] -# LoadDico[loadname]['EXNAME'] =carray[2][i] -# LoadDico[loadname]['NUMBER']=iarray[0][i] -# LoadDico[loadname]['P']=np.real(xdata)[0][i] -# LoadDico[loadname]['Q']=np.imag(xdata)[0][i] -# -# #Extract Generators -# sid = -1 #all buses -# flag = 1 #all in service loads/generators (4 all loads/generators) -# -# string = ['NUMBER'] -# ierr,iarray = psspy.amachint(sid,flag,string) -# -# string = ['NAME','ID','EXNAME'] -# ierr,carray = psspy.amachchar(sid,flag,string) -# -# rstrings = ['pgen','qgen','mbase','pmax','qmax','pmin','qmin'] -# ierr, rarray = psspy.amachreal(sid, flag, rstrings) -# -# MachineDico = {} # [Bus name, machine ID, extended bus name, bus number] -# for i in range(len(iarray[0])): -# idname = "Gr" + carray[1][i].strip() -### try: -### idname = "Gr" + str(int(carray[1][i])) -### except: -### idname = "Gr" + carray[1][i] -# machinename = carray[0][i].strip()+ "__" + idname -# machinename = machinename.replace(" ","_") -# machinename = machinename.replace("-","_") -# machinename = machinename.replace(".","_") -# machinename = machinename.replace("&","and") -# machinename = machinename.replace("%","pct") -# machinename = machinename.replace("=","eq") -# machinename = machinename.replace("#","_") -# machinename = machinename.replace("$","_") -# machinename = machinename.replace("/","_") -# machinename = machinename.replace("\\","_") -# try: -# int(machinename[0]) -# machinename="_" + machinename -# except: -# pass -# MachineDico[machinename]={} -# MachineDico[machinename]['NAME'] = carray[0][i].strip() -# MachineDico[machinename]['ID'] = carray[1][i] -# MachineDico[machinename]['EXNAME'] =carray[2][i] -# MachineDico[machinename]['NUMBER']=iarray[0][i] -# MachineDico[machinename]['P']=rarray[0][i] -# MachineDico[machinename]['Q']=rarray[1][i] -# MachineDico[machinename]['PMAX']=rarray[3][i] -# MachineDico[machinename]['QMAX']=rarray[4][i] -# MachineDico[machinename]['PMIN']=rarray[5][i] -# MachineDico[machinename]['QMIN']=rarray[6][i] -# -# #Extract Motors -# sid = -1 #all buses -# flag = 1 #all in service loads/generators (4 all loads/generators) -# -# string = ['NUMBER','PSETCODE','BASECODE'] -# ierr,iarray = psspy.aindmacint(sid,flag,string) -# -# string = ['NAME','ID','EXNAME'] -# ierr,carray = psspy.aindmacchar(sid,flag,string) -# -# rstrings = ['psetpoint','mbase','p','q'] -# ierr, rarray = psspy.aindmacreal(sid, flag, rstrings) -# -# -# MotorDico = {} # [Bus name, machine ID, extended bus name, bus number] -# for i in range(len(iarray[0])): -# idname = "Mo" + carray[1][i].strip() -### try: -### idname = "Gr" + str(int(carray[1][i])) -### except: -### idname = "Gr" + carray[1][i] -# motorname = carray[0][i].strip()+ "__" + idname -# motorname = motorname.replace(" ","_") -# motorname = motorname.replace("-","_") -# motorname = motorname.replace(".","_") -# motorname = motorname.replace("&","and") -# motorname = motorname.replace("%","pct") -# motorname = motorname.replace("=","eq") -# motorname = motorname.replace("#","_") -# motorname = motorname.replace("$","_") -# motorname = motorname.replace("/","_") -# motorname = motorname.replace("\\","_") -# -# try: -# int(motorname[0]) -# motorname="_" + motorname -# except: -# pass -# MotorDico[motorname]={} -# MotorDico[motorname]['NAME'] = carray[0][i].strip() -# MotorDico[motorname]['ID'] = carray[1][i] -# MotorDico[motorname]['EXNAME'] =carray[2][i] -# MotorDico[motorname]['NUMBER']=iarray[0][i] -# MotorDico[motorname]['PSETCODE']=iarray[1][i] -# MotorDico[motorname]['BASECODE']=iarray[2][i] -# MotorDico[motorname]['PSETPOINT']=rarray[0][i] -# MotorDico[motorname]['MBASE']=rarray[1][i] -# MotorDico[motorname]['P']=rarray[2][i] -# MotorDico[motorname]['Q']=rarray[3][i] -# -# -# #Extract Lignes -# sid = -1 -# owner = 1 -# ties = 1 -# flag = 2 #6 for two-winding transfos -# entry = 1 #each branch once, not both directions -# string = ['FROMNUMBER','TONUMBER'] -# ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string) -# string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID'] -# ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string) -# -# LineDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2] -# for i in range(len(iarray[0])): -# idname = carray[4][i].strip() -# #idname = carray[4][i] -# if '@' in idname: -# idname = idname.replace('@','Br') -# elif '*' in idname: -# idname = idname.replace('*','Sw') -# else: -# try: -# idname = 'Li' + str(int(idname)) -# except: -# idname = 'Li' + idname -# linename =carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname -# linename = linename.replace(" ","_") -# linename = linename.replace("-","_") -# linename = linename.replace(".","_") -# linename = linename.replace("&","and") -# linename = linename.replace("%","pct") -# linename = linename.replace("=","eq") -# linename = linename.replace("#","_") -# linename = linename.replace("$","_") -# linename = linename.replace("/","_") -# linename = linename.replace("\\","_") -# try: -# int(linename[0]) -# linename="_" + linename -# except: -# pass -# if NoBreakersandSwitches: -# if 'Br' not in idname and 'Sw' not in idname: -# LineDico[linename]={} -# LineDico[linename]['FROMNAME']=carray[0][i].strip() -# LineDico[linename]['TONAME']=carray[1][i].strip() -# LineDico[linename]['ID']=carray[4][i] -# LineDico[linename]['FROMEXNAME']=carray[2][i] -# LineDico[linename]['TOEXNAME']=carray[3][i] -# LineDico[linename]['FROMNUMBER']=iarray[0][i] -# LineDico[linename]['TONUMBER']=iarray[1][i] -# -# -# print "Read lines" -# -# #Extract Transfos -# sid = -1 -# owner = 1 -# ties = 1 -# flag = 6 #two-winding transfos -# entry = 1 #each branch once, not both directions -# string = ['FROMNUMBER','TONUMBER'] -# ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string) -# string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID'] -# ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string) -# -# TfoDico = {} #[linename, Bus name 1, Bus name 2, machine ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2] -# for i in range(len(iarray[0])): -# idname = 'Tr' + carray[4][i].strip() -### try: -### idname = 'Tr' + str(int(carray[4][i])) -### except: -### idname = 'Tr' + carray[4][i] -# tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname -# tfoname = tfoname.replace(" ","_") -# tfoname = tfoname.replace("-","_") -# tfoname = tfoname.replace(".","_") -# tfoname = tfoname.replace("&","and") -# tfoname = tfoname.replace("%","pct") -# tfoname = tfoname.replace("=","eq") -# tfoname = tfoname.replace("#","_") -# tfoname = tfoname.replace("$","_") -# tfoname = tfoname.replace("/","_") -# tfoname = tfoname.replace("\\","_") -# try: -# int(tfoname[0]) -# tfoname="_" + tfoname -# except: -# pass -# TfoDico[tfoname]={} -# TfoDico[tfoname]['FROMNAME']=carray[0][i].strip() -# TfoDico[tfoname]['TONAME']=carray[1][i].strip() -# TfoDico[tfoname]['ID']=carray[4][i] -# TfoDico[tfoname]['FROMEXNAME']=carray[2][i] -# TfoDico[tfoname]['TOEXNAME']=carray[3][i] -# TfoDico[tfoname]['FROMNUMBER']=iarray[0][i] -# TfoDico[tfoname]['TONUMBER']=iarray[1][i] -# TfoDico[tfoname]['#WIND']=2 -# print "Read Transfos" -# -# #Extract 3 winding Transfos -# sid = -1 #assume a subsystem containing all buses in working case -# owner_3flow = 1 #1 = use bus ownership 2 = use tfo ownership -# ties_3flow = 3 #ignored bc sid is negative. 3 = interior subsystem and subsystem tie 3 winding transformers -# flag=3 #all 3 winding transfo windings -# string = ['wind1number','wind2number','wind3number'] -# ierr,iarray = psspy.awndint(sid,owner,ties,flag,entry,string) -# string = ['wind1name','wind2name','wind3name','wind1exname','wind2exname','wind3exname','id'] -# ierr,carray = psspy.awndchar(sid,owner,ties,flag,entry,string) -# -# #[Bus name 1, Bus name 2, Bus name 3, machine ID, extended bus name 1, extended bus name 2, extended bus name 3, bus number 1, bus number 2, bus number 3] -# for i in range(len(iarray[0])): -# idname = 'Tr' + carray[6][i].strip() -### try: -### idname = 'Tr' + str(int(carray[4][i])) -### except: -### idname = 'Tr' + carray[4][i] -# tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + carray[2][i].strip() + "__" + idname -# tfoname = tfoname.replace(" ","_") -# tfoname = tfoname.replace("-","_") -# tfoname = tfoname.replace(".","_") -# tfoname = tfoname.replace("&","and") -# tfoname = tfoname.replace("%","pct") -# tfoname = tfoname.replace("=","eq") -# tfoname = tfoname.replace("#","_") -# tfoname = tfoname.replace("$","_") -# tfoname = tfoname.replace("/","_") -# tfoname = tfoname.replace("\\","_") -# try: -# int(tfoname[0]) -# tfoname="_" + tfoname -# except: -# pass -# TfoDico[tfoname]={} -# TfoDico[tfoname]['FROMNAME']=carray[0][i].strip() -# TfoDico[tfoname]['TONAME']=carray[1][i].strip() -# TfoDico[tfoname]['3NAME']=carray[2][i].strip() -# TfoDico[tfoname]['ID']=carray[6][i] -# TfoDico[tfoname]['FROMEXNAME']=carray[3][i] -# TfoDico[tfoname]['TOEXNAME']=carray[4][i] -# TfoDico[tfoname]['3EXNAME']=carray[5][i] -# TfoDico[tfoname]['FROMNUMBER']=iarray[0][i] -# TfoDico[tfoname]['TONUMBER']=iarray[1][i] -# TfoDico[tfoname]['3NUMBER']=iarray[2][i] -# TfoDico[tfoname]['#WIND']=3 -# print "Read 3-Winding Transfos" -# # path1 = os.getcwd() -# # import json -# # path_temp=os.path.dirname(NetworkFile) -# # # filew = open(path_temp+'/temp.txt', 'w') -# # json.dump(MachineDico, open("toto.txt", 'w')) -# # # filew.write(MachineDico) -# # # filew.close() -# filew = open('temp.txt', 'w') -# filew.write(NetworkFile + '\n') -# filew.write(PSSE_PATH + '\n') -# filew.close() -# -# return MachineDico, LoadDico, LineDico, TfoDico, MotorDico -# -# -#def PFExtractGeneratorLoadLineandTransfoDico(NetworkFile, PF_PATH,Python3_path): -# # PSEN sous PowerFactory Lecture les donnees de Generateur,Load,Line,Transfo -# import os,pickle -# import sys, subprocess -# import numpy as np -# path1=os.getcwd() -# # path_temp=os.path.dirname(NetworkFile) -# filew=open('temp.txt','w') -# filew.write(NetworkFile+'\n') -# filew.write(PF_PATH + '\n') -# filew.write(Python3_path + '\n') -# filew.close() -# print('changer le chemin de Python3 executable') -# lancer = [Python3_path+'/python.exe', path1+'/com.py']# changer le chemin de Python3 executable -# proc = subprocess.Popen(lancer) -# proc.wait() -# with open('Data_for_interface', 'rb') as fichier: -# mon_depickler = pickle.Unpickler(fichier) -# data_file = mon_depickler.load() -# -# import collections -# def convert(data): -# if isinstance(data, basestring): -# return str(data) -# elif isinstance(data, collections.Mapping): -# return dict(map(convert, data.iteritems())) -# elif isinstance(data, collections.Iterable): -# return type(data)(map(convert, data)) -# else: -# return data -# data=convert(data_file) -# MachineDico=data['MachineDico'] -# LoadDico = data['LoadDico'] -# LineDico = data['LineDico'] -# TfoDico = data['TransfoDico'] -# MotorDico = data['MotorDico'] -# os.remove('Data_for_interface') -# -# -# return MachineDico, LoadDico, LineDico, TfoDico, MotorDico -# -# -##NetworkFile=r"C:\Users\j15773\Documents\Projects\DEWA\Task 4\FEWA_GCCIA_SUMMAX2018_OPF_EQ2.sav" -# -##PSSE_PATH=r"C:\Program Files (x86)\PTI\PSSE34\PSSBIN" -##PSSPY_PATH=r"C:\Program Files (x86)\PTI\PSSE34\PSSPY27" -# -##PSSE_PATH=r"C:\Program Files (x86)\PTI\PSSE33\PSSBIN" -##PSSPY_PATH=r"C:\Program Files (x86)\PTI\PSSE33\PSSBIN" -# -##MachineDico, LoadDico, LineDico, TfoDico, MotorDico = ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH,PSSPY_PATH) +if __name__ == "__main__": + testNettoyeName() + testNettoyeNameAvecProfil() -- 2.39.2