def calculate(self): attr1=[] attr2=[] for fileName in self.fileName: error=False try: value1=readHdf5.getAttr(fileName,self.attr1.text(),self.env) if isinstance(value1,float) or isinstance(value1,int): attr1.append(value1) else: attr1.append(value1[0]) error=True value2=readHdf5.getAttr(fileName,self.attr2.text(),self.env) if isinstance(value2,float) or isinstance(value2,int): print value2 attr2.append(value2) else: attr2.append(value2[0]) except: if error: attr2.append(0.0) continue #print attr1,attr2[0] #print attr1,attr2 self.p1.plot(attr1,attr2,pen=None,symbol='o') fit = np.polyfit(attr1,attr2,1) xx=np.linspace(min(attr1),max(attr1),200) self.p1.plot(xx,np.poly1d(fit)(xx)) print fit
def start(self): smallcoils=float(self.smallC.text()) addcoil=float(self.addC.text()) text=self.bigC.text() if text=='auto': try: bigcoil=readHdf5.getAttr(self.fileName,'magnetic',self.env) except: text='2000' self.smallC.setText('2000') if not(text=='auto'): bigcoil=float(text) file = open('2015_07_22_MFC_003_adBcoil.FEM', 'r') i=1 for line in file: if i==55: line=line.split('=')[0]+'='+str(smallcoils)+'\n' if i==61: line=line.split('=')[0]+'='+str(-smallcoils)+'\n' if i==67: line=line.split('=')[0]+'='+str(bigcoil)+'\n' if i==73: line=line.split('=')[0]+'='+str(-bigcoil)+'\n' if i==79: line=line.split('=')[0]+'='+str(addcoil)+'\n' if i==85: line=line.split('=')[0]+'='+str(-addcoil)+'\n' i=i+1 command="C:"+os.sep+"femm42"+os.sep+"bin"+os.sep+"femm.exe" path=r"D:"+os.sep+"DATA"+os.sep+"IShTAR_Process" script1="-lua-script="+path+os.sep+"LUA_code_003.lua" script2=" -windowhide" command=command+' '+script1+' '+script2 print command print script1,script2 call(command,shell=True)
def start(self): def calibr(x): slope=(76.-23.)/(400.-1400.) return (x-400.)*slope+76.-33 def calibr2(x): return 10**(((x-0.02- 2.2503)/0.0520+10)/10) pos=[] data1=[] data2=[] data3=[] data4=[] data1max=[] data2max=[] data3max=[] data4max=[] data1min=[] data2min=[] data3min=[] data4min=[] for x in self.fileName: try: pos.append(readHdf5.getAttr(x,'positionSpace',self.env)) except: continue try: attr=self.l1.text() print attr if attr=='': data1.append(0.) data1min.append(0.) data1max.append(0.) else: # attr2=attr # if attr=='VplasmaHP' or attr=='VplasmaLP': # attr2='density'+attr[-1:-2] # if attr=='VfloatHP' or attr=='VfloatLP': # # attr2='density'+attr[-1:-2] # if attr=='tempHP' or attr=='tempLP': # attr2='density'+attr[-1:-2] # data=readHdf5.getAttr(x,attr2,self.env) # attr=attr2 data=readHdf5.getAttr(x,attr,self.env) # if (attr=='fastHP' or attr=='fastLP' or attr=='slowLP' or attr=='slowHP'): # data=calibr2(data[0]) # if attr=='densityHP' or attr=='densityLP': # data=data[1] # if attr=='vplasmaHP' or attr=='vplasmaLP': # data=data[3] # if attr=='vfloatHP' or attr=='vfloatLP': # # data=data[2] # if attr=='tempHP' or attr=='tempLP': # data=data[0] data1.append(data[0]) data1max.append(data[1]) data1min.append(data[2]) except: pass try: attr=self.l2.text() if attr=='': data2.append(0.) data2min.append(0.) data2max.append(0.) else: data=readHdf5.getAttr(x,attr,self.env) data2.append(data[0]) data2max.append(data[1]) data2min.append(data[2]) except: pass try: attr=self.l3.text() if attr=='': data3.append(0.) data3min.append(0.) data3max.append(0.) else: data=readHdf5.getAttr(x,attr,self.env) data3.append(data[0]) data3max.append(data[1]) data3min.append(data[2]) except: pass try: attr=self.l4.text() if attr=='': data4.append(0.) data4min.append(0.) data4max.append(0.) else: data=readHdf5.getAttr(x,attr,self.env) data4.append(data[0]) data4max.append(data[1]) data4min.append(data[2]) except: pass #self.p1.plot(title='Fast Wave profile High Power') self.p0.clear() self.p0.plot(pos,data1,pen=None,symbolPen='w') self.p0.setLabel('bottom', "Position/Center (cm)") self.p1.clear() self.p1.plot(pos,data2,pen=None,symbolPen='w') self.p1.setLabel('bottom', "Position/Center (cm)") self.p2.clear() self.p2.plot(pos,data3,pen=None,symbolPen='w') self.p2.setLabel('bottom', "Position/Center (cm)") self.p3.clear() self.p3.plot(pos,data4,pen=None,symbolPen='w') self.p3.setLabel('bottom', "Position/Center (cm)") self.p1.setXLink(self.p0) self.p2.setXLink(self.p0) self.p3.setXLink(self.p0) err = pg.ErrorBarItem(x=np.array(pos), y=np.array(data1), top=np.array(data1max), bottom=np.array(data1min), beam=0.5) self.p0.addItem(err) err = pg.ErrorBarItem(x=np.array(pos), y=np.array(data2), top=np.array(data2max), bottom=np.array(data2min), beam=0.5) self.p1.addItem(err) err = pg.ErrorBarItem(x=np.array(pos), y=np.array(data3), top=np.array(data3max), bottom=np.array(data3min), beam=0.5) self.p2.addItem(err) err = pg.ErrorBarItem(x=np.array(pos), y=np.array(data4), top=np.array(data4max), bottom=np.array(data4min), beam=0.5) self.p3.addItem(err) # indices = np.argsort(pos) # pos=np.array(pos)[indices] # pos,idx=np.unique(pos,return_index=True) # fast=np.array(fast)[indices] # fast=fast[idx] # tck = splrep(pos,fast,s=100 ) # x2 = np.linspace(pos[0], pos[-1], 200) # y2 = splev(x2, tck) # p1.plot(x2,y2,pen=(255,0,0)) self.show()
def convertGenerator(fileN, firstShot, lastShot, env): # filename=r'D:\DATA\IShTAR_Process\data_20150119_20150715.csv' filename = os.path.normpath(fileN) shotstart = firstShot shotend = lastShot included_cols = [1, 2, 3, 11, 12] df = pd.read_csv(filename, sep="\t", parse_dates=[0]) print df.dtypes df.loc[df["ForwardPower[W]"] != 0, "Run"] = 1 # df["block"] = (df.Run.shift(1) != df.Run).astype(int).cumsum() df.reset_index().groupby(["Run", "block"])["index"].apply(lambda x: np.array(x)) df = df[df["Run"] == 1] nbr = np.max(df["block"]) / 2 # print nbr liste = np.arange(shotstart, shotend) listefile = [] for x in liste: listefile.append(str(x).zfill(5) + "_Data") # print listefile j = 2 timediff = datetime.timedelta(minutes=1, seconds=0) timecorrection = datetime.timedelta(minutes=11, seconds=10) # path=r"D:"+os.sep+"DATA"+os.sep+"Acquired_data" path = env.path for x in listefile: # timei=datetime.datetime.strptime(time.ctime(os.path.getmtime(path+os.sep+x+'.h5')),"%a %b %d %H:%M:%S %Y") try: timea = readHdf5.getAttr(x, "date", env) timei = datetime.datetime.strptime(timea, "%d.%m.%Y %H:%M:%S") # print x matched = False while not (matched): data0 = df[df["block"] == j]["Time"].values timef = datetime.datetime.utcfromtimestamp( (data0[0] - np.datetime64("1970-01-01T00:00:00Z")) / np.timedelta64(1, "s") ) print timei, (timef + timecorrection), timef timef = timef + timecorrection if timei > timef: deltat = timei - timef else: deltat = timef - timei print deltat if deltat <= timediff: data = df[df["block"] == j]["ForwardPower[W]"].values data2 = df[df["block"] == j]["ReflectedPower[W]"].values sampling = 1 / (float((data0[1] - data0[0]).item()) * 1e-9) hdf5 = h5py.File(path + os.sep + x + ".h5", "a") grouph = hdf5.create_group("Generator") grouph.create_dataset("Fpower", data=data, compression="gzip") grouph.create_dataset("Rpower", data=data2, compression="gzip") grouph.attrs["sampling"] = sampling j = j + 2 matched = True print "Generator for " + x if (deltat > timediff) and (timei > timef) and (j < nbr): j = j + 2 print "Power without discharge" if (deltat > timediff) and (timei > timef) and (j >= nbr): matched = True if (deltat > timediff) and (timei < timef): matched = True print "No generator for " + x except: pass