Commit 5ad56d3131ed866b5c83789163f0217d3e5d8c7a

Authored by bmarechal
1 parent 216c27103e
Exists in master

resolve bug with empty value

Showing 1 changed file with 1 additions and 1 deletions Inline Diff

#!/usr/bin/python 1 1 #!/usr/bin/python
# -*- coding: utf-8 -*- 2 2 # -*- coding: utf-8 -*-
3 3
from PyQt4 import QtGui, QtCore 4 4 from PyQt4 import QtGui, QtCore
import sys, csv, numpy, allantools, pyqtgraph 5 5 import sys, csv, numpy, allantools, pyqtgraph
import allanplotUI 6 6 import allanplotUI
7 7
class allanplot(QtGui.QMainWindow, allanplotUI.Ui_MainWindow): 8 8 class allanplot(QtGui.QMainWindow, allanplotUI.Ui_MainWindow):
def __init__(self, parent=None): 9 9 def __init__(self, parent=None):
super(allanplot, self).__init__(parent) 10 10 super(allanplot, self).__init__(parent)
self.setupUi(self) 11 11 self.setupUi(self)
self.connectActions() 12 12 self.connectActions()
self.pqg_widget(self.frame) 13 13 self.pqg_widget(self.frame)
14 14
def pqg_widget(self, frame): 15 15 def pqg_widget(self, frame):
pyqtgraph.setConfigOption('background', 'w') 16 16 pyqtgraph.setConfigOption('background', 'w')
pyqtgraph.setConfigOption('foreground', 'k') 17 17 pyqtgraph.setConfigOption('foreground', 'k')
self.plot_widget = pyqtgraph.PlotWidget() 18 18 self.plot_widget = pyqtgraph.PlotWidget()
self.layout_pqg = QtGui.QVBoxLayout(frame) 19 19 self.layout_pqg = QtGui.QVBoxLayout(frame)
self.layout_pqg.addWidget(self.plot_widget) 20 20 self.layout_pqg.addWidget(self.plot_widget)
self.plot_widget.showGrid(True, True, 0.5) 21 21 self.plot_widget.showGrid(True, True, 0.5)
self.plot_widget.addLegend() 22 22 self.plot_widget.addLegend()
self.plot_widget.getViewBox().setMouseMode(pyqtgraph.ViewBox.RectMode) 23 23 self.plot_widget.getViewBox().setMouseMode(pyqtgraph.ViewBox.RectMode)
24 24
def connectActions(self): 25 25 def connectActions(self):
self.pushQuit.clicked.connect(QtGui.qApp.quit) 26 26 self.pushQuit.clicked.connect(QtGui.qApp.quit)
self.pushOpen.clicked.connect(self.openDat) 27 27 self.pushOpen.clicked.connect(self.openDat)
self.pushTimePlot.clicked.connect(self.timePlot) 28 28 self.pushTimePlot.clicked.connect(self.timePlot)
self.pushAdevPlot.clicked.connect(self.adevPlot) 29 29 self.pushAdevPlot.clicked.connect(self.adevPlot)
self.pushRelativeTimePlot.clicked.connect(self.relativeTimePlot) 30 30 self.pushRelativeTimePlot.clicked.connect(self.relativeTimePlot)
self.pushRelativeAdevPlot.clicked.connect(self.relativeAdevPlot) 31 31 self.pushRelativeAdevPlot.clicked.connect(self.relativeAdevPlot)
32 32
def openDat(self): 33 33 def openDat(self):
fileNames = QtGui.QFileDialog.getOpenFileNames(self, "Open datafile", QtCore.QDir.homePath(), "data files (*.dat)") 34 34 fileNames = QtGui.QFileDialog.getOpenFileNames(self, "Open datafile", QtCore.QDir.homePath(), "data files (*.dat)")
if fileNames: 35 35 if fileNames:
fileList = sorted([str(f) for f in fileNames]) 36 36 fileList = sorted([str(f) for f in fileNames])
self.data = [] 37 37 self.data = []
textList = '' 38 38 textList = ''
for f in fileList: 39 39 for f in fileList:
if textList=='': 40 40 if textList=='':
textList = str(f) 41 41 textList = str(f)
else: 42 42 else:
textList = textList+'\n'+str(f) 43 43 textList = textList+'\n'+str(f)
with open(f, 'r') as dest_f: 44 44 with open(f, 'r') as dest_f:
data_iter = csv.reader(dest_f, delimiter = '\t', quotechar = '"') 45 45 data_iter = csv.reader(dest_f, delimiter = '\t', quotechar = '"')
temp_data = [value for value in data_iter] 46 46 temp_data = [filter(None, value) for value in data_iter]
self.data.extend(temp_data) 47 47 self.data.extend(temp_data)
self.data = numpy.asarray(self.data, dtype = float) 48 48 self.data = numpy.asarray(self.data, dtype = float)
self.textFileList.setText(textList) 49 49 self.textFileList.setText(textList)
self.textValue.setText(str(self.data[:])) 50 50 self.textValue.setText(str(self.data[:]))
51 51
def timePlot(self): 52 52 def timePlot(self):
self.plot_widget.clear() 53 53 self.plot_widget.clear()
self.plot_widget.setTitle('time plot') 54 54 self.plot_widget.setTitle('time plot')
self.plot_widget.setLabel('bottom', "Time", "s") 55 55 self.plot_widget.setLabel('bottom', "Time", "s")
self.plot_widget.setLabel('left', "y") 56 56 self.plot_widget.setLabel('left', "y")
self.plot_widget.setLogMode(False, False) 57 57 self.plot_widget.setLogMode(False, False)
for i in range(2, self.data.shape[1]): 58 58 for i in range(2, self.data.shape[1]):
self.curve = self.plot_widget.plot() 59 59 self.curve = self.plot_widget.plot()
self.curve.setData(self.data[:,0], self.data[:,i], pen=5*i, name='#%s'%i) 60 60 self.curve.setData(self.data[:,0], self.data[:,i], pen=5*i, name='#%s'%i)
61 61
def relativeTimePlot(self): 62 62 def relativeTimePlot(self):
self.plot_widget.clear() 63 63 self.plot_widget.clear()
self.plot_widget.setTitle('relative time plot') 64 64 self.plot_widget.setTitle('relative time plot')
self.plot_widget.setLabel('bottom', "Time", "s") 65 65 self.plot_widget.setLabel('bottom', "Time", "s")
self.plot_widget.setLabel('left', "y") 66 66 self.plot_widget.setLabel('left', "y")
self.plot_widget.setLogMode(False, False) 67 67 self.plot_widget.setLogMode(False, False)
for i in range(2, self.data.shape[1]): 68 68 for i in range(2, self.data.shape[1]):
self.curve = self.plot_widget.plot() 69 69 self.curve = self.plot_widget.plot()
self.curve.setData(self.data[:,0], self.data[:,i]/self.data[:,i].mean(), pen=5*i, name='#%s'%i) 70 70 self.curve.setData(self.data[:,0], self.data[:,i]/self.data[:,i].mean(), pen=5*i, name='#%s'%i)
71 71
def adevPlot(self): 72 72 def adevPlot(self):
self.plot_widget.clear() 73 73 self.plot_widget.clear()
self.plot_widget.setTitle('adev plot') 74 74 self.plot_widget.setTitle('adev plot')
self.plot_widget.setLabel('bottom', "Tau", "s") 75 75 self.plot_widget.setLabel('bottom', "Tau", "s")
self.plot_widget.setLabel('left', "adev") 76 76 self.plot_widget.setLabel('left', "adev")
self.plot_widget.setLogMode(True, True) 77 77 self.plot_widget.setLogMode(True, True)
for i in range(2, self.data.shape[1]): 78 78 for i in range(2, self.data.shape[1]):
(tau2, ad, ade, adn) = allantools.adev(self.data[:,i], rate=1, data_type="freq", taus='decade') 79 79 (tau2, ad, ade, adn) = allantools.adev(self.data[:,i], rate=1, data_type="freq", taus='decade')
self.curve = self.plot_widget.plot() 80 80 self.curve = self.plot_widget.plot()
self.curve.setData(tau2, ad, pen=5*i, name='#%s'%i) 81 81 self.curve.setData(tau2, ad, pen=5*i, name='#%s'%i)
82 82
def relativeAdevPlot(self): 83 83 def relativeAdevPlot(self):
self.plot_widget.clear() 84 84 self.plot_widget.clear()
self.plot_widget.setTitle('relative adev plot') 85 85 self.plot_widget.setTitle('relative adev plot')
self.plot_widget.setLabel('bottom', "Tau", "s") 86 86 self.plot_widget.setLabel('bottom', "Tau", "s")
self.plot_widget.setLabel('left', "relative adev") 87 87 self.plot_widget.setLabel('left', "relative adev")
self.plot_widget.setLogMode(True, True) 88 88 self.plot_widget.setLogMode(True, True)
for i in range(2, self.data.shape[1]): 89 89 for i in range(2, self.data.shape[1]):
(tau2, ad, ade, adn) = allantools.adev(self.data[:,i]/self.data[:,i].mean(), rate=1, data_type="freq", taus='decade') 90 90 (tau2, ad, ade, adn) = allantools.adev(self.data[:,i]/self.data[:,i].mean(), rate=1, data_type="freq", taus='decade')
self.curve = self.plot_widget.plot() 91 91 self.curve = self.plot_widget.plot()