import xml.etree.ElementTree as ET
import numpy as np
import pandas as pd
import math
def xy_to_Magphase_Mag(x,y):
Mag=math.sqrt(x*x+y*y)
return Mag
def xy_to_Magphase_phase(x,y):
if x==0:
phase=90
else:
phase = math.atan(y / x)
Mag=math.sqrt(x*x+y*y)
if Mag==0:
phase=0
#phase = math.degrees(phase)
if x>=0:
phase=phase
else:
phase =phase-(math.pi)
return phase
def data_converter(data):
mag_data=[]
phase_data=[]
data=data.astype('float64')
reals=data[0,:]
imags=data[1,:]
i=0
for real in reals:
mag=xy_to_Magphase_Mag(real,imags[i])
i=i+1
mag_data.append(mag)
i=0
for real in reals:
phase=xy_to_Magphase_phase(real,imags[i])
i=i+1
phase_data.append(phase)
data = np.array([mag_data, phase_data])
return data
def read_open_data(tree,path):
RE = []
IM = []
for FreqList in tree.iterfind(path):
for Real in FreqList.iter('Real'):
# print(Real.text)
RE.append(Real.text)
for Imaginary in FreqList.iter('Imaginary'):
# print(Imaginary.text)
IM.append(Imaginary.text)
data = np.array([RE, IM])
return data
def read_data(tree,path):
data=[]
for FreqList in tree.iterfind(path):
for double in FreqList.iter('double'):
data.append(double.text)
return data
Freq=[]
RE=[]
IM=[]
tree = ET.parse('cal-2_03_29_2018.xml')
for FreqList in tree.iterfind('CalMsmtData/FreqList'):
for double in FreqList.iter('double'):
Freq.append(double.text)
data=read_open_data(tree,'CalMsmtData/port1_OpenA')
new_data=read_open_data(tree,'CalMsmtData/port1_OpenB')
data=np.concatenate([data,new_data])
new_data=read_open_data(tree,'CalMsmtData/port2_OpenA')
data=np.concatenate([data,new_data])
new_data=read_open_data(tree,'CalMsmtData/port2_OpenB')
data=np.concatenate([data,new_data])
new_data=read_data(tree,'CalMsmtData/Mag_PowerMeterReading')
data=np.row_stack([data,new_data])
data=data.astype('float64')
new_data=read_open_data(tree,'CalMsmtData/e00')
new_data=data_converter(new_data)
data=np.concatenate([data,new_data])
new_data=read_open_data(tree,'CalMsmtData/e11')
new_data=data_converter(new_data)
data=np.concatenate([data,new_data])
new_data=read_open_data(tree,'CalMsmtData/e01e10')
new_data=data_converter(new_data)
data=np.concatenate([data,new_data])
new_data=read_open_data(tree,'CalMsmtData/e22')
new_data=data_converter(new_data)
data=np.concatenate([data,new_data])
new_data=read_open_data(tree,'CalMsmtData/e33')
new_data=data_converter(new_data)
data=np.concatenate([data,new_data])
new_data=read_open_data(tree,'CalMsmtData/e23e32')
new_data=data_converter(new_data)
data=np.concatenate([data,new_data])
new_data=read_open_data(tree,'CalMsmtData/e32e10')
new_data=data_converter(new_data)
data=np.concatenate([data,new_data])
new_data=read_open_data(tree,'CalMsmtData/e23e01')
new_data=data_converter(new_data)
data=np.concatenate([data,new_data])
data=data.T
print(data)
datas=pd.DataFrame(data,columns=['port1_OpenA_re','port1_OpenA_im','port1_OpenB_re','port1_OpenB_im'\
,'port2_OpenA_re','port2_OpenA_im','port2_OpenB_re','port2_OpenB_im'\
,'PowerMeterReading','e00_mag','e00_phase','e11_mag','e11_phase','e01e10_mag','e01e10_phase'
, 'e22_mag', 'e22_phase', 'e33_mag', 'e33_phase', 'e23e32_mag', 'e23e32_phase' \
, 'e32e10_mag', 'e32e10_phase', 'e23e01_mag', 'e23e01_phase'],index=Freq)
a=datas['e23e01_phase']
a=a['18']
print(a)
datas.to_csv('6-17.csv',sep=',')
评论0