From 4f5cdc7103f5cfbdbf6339d38a294fbdc081b4b2 Mon Sep 17 00:00:00 2001 From: Markus Rosenstihl Date: Thu, 20 Mar 2014 15:15:40 +0100 Subject: [PATCH] Fit shown calculated only within the selected region --- ConductivityGroupBox.py | 2 +- CustomWidgets.py | 6 +- PeakGroupBox.py | 2 +- PowerLawGroupBox.py | 2 +- QDS.py | 51 +- QDSMain.py | 4 +- QDSMain.ui | 2 +- StaticGroupBox.py | 2 +- data.py | 5 +- icons/add_eps_infty.png | Bin 23447 -> 17251 bytes icons/images.qrc | 4 +- icons/save_fit.png | Bin 15818 -> 18774 bytes images_rc.py | 3368 +++++++++++++++++++++++---------------- mathlib.py | 8 +- 14 files changed, 2031 insertions(+), 1425 deletions(-) diff --git a/ConductivityGroupBox.py b/ConductivityGroupBox.py index 812176a..c3d4139 100644 --- a/ConductivityGroupBox.py +++ b/ConductivityGroupBox.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'ConductivityGroupBox.ui' # -# Created: Thu Mar 20 13:41:01 2014 +# Created: Thu Mar 20 14:46:49 2014 # by: PyQt4 UI code generator 4.10.3 # # WARNING! All changes made in this file will be lost! diff --git a/CustomWidgets.py b/CustomWidgets.py index 970cd57..b0813fd 100644 --- a/CustomWidgets.py +++ b/CustomWidgets.py @@ -42,11 +42,13 @@ class ParameterWidget(QWidget): def __init__(self, parent = None): super(ParameterWidget, self).__init__(parent) self.vlayout = QVBoxLayout(self) - self.vlayout.addSpacerItem(QSpacerItem(10,10,QSizePolicy.Minimum, QSizePolicy.Expanding) ) + #self.vlayout.addSpacerItem(QSpacerItem(10,10,QSizePolicy.Minimum, QSizePolicy.Expanding) ) self.vlayout.addSpacerItem(QSpacerItem(10,10,QSizePolicy.Minimum, QSizePolicy.Expanding) ) #self.vlayout.addStretch(1) - + def add(self, wdgt): + self.vlayout.insertWidget(self.vlayout.count()-1, wdgt) + self.vlayout.update() if __name__ == "__main__": app = QApplication([]) diff --git a/PeakGroupBox.py b/PeakGroupBox.py index 0daf6fd..93b0e47 100644 --- a/PeakGroupBox.py +++ b/PeakGroupBox.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'PeakGroupBox.ui' # -# Created: Thu Mar 20 13:41:01 2014 +# Created: Thu Mar 20 14:46:49 2014 # by: PyQt4 UI code generator 4.10.3 # # WARNING! All changes made in this file will be lost! diff --git a/PowerLawGroupBox.py b/PowerLawGroupBox.py index a571f96..43fa9e5 100644 --- a/PowerLawGroupBox.py +++ b/PowerLawGroupBox.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'PowerLawGroupBox.ui' # -# Created: Thu Mar 20 13:41:01 2014 +# Created: Thu Mar 20 14:46:49 2014 # by: PyQt4 UI code generator 4.10.3 # # WARNING! All changes made in this file will be lost! diff --git a/QDS.py b/QDS.py index 307cf4b..c74178f 100755 --- a/QDS.py +++ b/QDS.py @@ -36,8 +36,6 @@ class AppWindow(QMainWindow): super(AppWindow, self).__init__(parent) self.ui = QDSMain.Ui_MainWindow() self.ui.setupUi(self) - self.picked_artist = None - self.data = None actions = { self.ui.actionAdd_Peak:self.addPeak, @@ -45,17 +43,13 @@ class AppWindow(QMainWindow): self.ui.actionAdd_PowerLaw:self.addPowerComplex, self.ui.actionAdd_Eps_Infty:self.addEpsInfty } + self.myActionGroup = QActionGroup(self) for a in actions.keys(): self.myActionGroup.addAction(a) self.function_registry = FunctionRegister() - self.Conductivity = None - - self._lines = dict() - self.peakId = 0 - self.peakBoxes = {} self.parameterWidget = ParameterWidget() self.ui.dockWidget_3.setWidget(self.parameterWidget) @@ -128,22 +122,17 @@ class AppWindow(QMainWindow): pltwidgt.setLogMode(x=True, y=True) pltwidgt.showGrid(x=True, y=True) pltwidgt.disableAutoRange() - pltwidgt.setLabel("bottom","Frequency",units="Hz") + pltwidgt.setLabel("bottom", "Frequency", units="Hz") self.ui.pgPlotWidget_imag.setLabel("left", "(I) Dielectric loss", units="Debye") self.ui.pgPlotWidget_real.setLabel("left", "(R) Dielectric loss", units="Debye") - #self.peak_box_layout = QGridLayout() - #self.ui.scrollAreaWidgetContents.setLayout(self.peak_box_layout) - ##self.huh = pg.SignalProxy(, slot=self.mPE) sc_real = self.ui.pgPlotWidget_real.scene() sc_real.sigMouseClicked.connect(self.mousePress) - sc_real.sigMouseMoved.connect(self.updateCrosshair) sc_imag = self.ui.pgPlotWidget_imag.scene() sc_imag.sigMouseClicked.connect(self.mousePress) - sc_imag.sigMouseMoved.connect(self.updateCrosshair) @@ -158,7 +147,7 @@ class AppWindow(QMainWindow): elif self.ui.pgPlotWidget_real.underMouse(): pos = vb_real.mapSceneToView(evt) else: - pos = QPointF(1.0,1.0) + pos = QPointF(0.0, 0.0) self.last_pos = pos @@ -286,9 +275,8 @@ class AppWindow(QMainWindow): cond_par = [10**(pos.y() + pos.x())*2*N.pi , 1.0] _conductivity.setParameter(beta=cond_par) - self.parameterWidget.vlayout.insertWidget(1,_conductivity.widget) + self.parameterWidget.add(_conductivity.widget) self.function_registry.register_function(_conductivity) - self.parameterWidget.vlayout.update() self.updatePlot() @@ -302,9 +290,8 @@ class AppWindow(QMainWindow): cond_par = [10**(pos.y() + pos.x())*2*N.pi , 1.0] _power_complex.setParameter(beta=cond_par) - self.parameterWidget.vlayout.insertWidget(1,_power_complex.widget) + self.parameterWidget.add(_power_complex.widget) self.function_registry.register_function(_power_complex) - self.parameterWidget.vlayout.update() self.updatePlot() def addEpsInfty(self, pos): @@ -317,21 +304,15 @@ class AppWindow(QMainWindow): cond_par = [10**pos.y()] _eps_infty.setParameter(beta=cond_par) - self.parameterWidget.vlayout.insertWidget(1,_eps_infty.widget) + self.parameterWidget.add(_eps_infty.widget) self.function_registry.register_function(_eps_infty) - self.parameterWidget.vlayout.update() self.updatePlot() - - def delParamterObject(self, obj): print "unregister",obj self.function_registry.unregister_function(obj) self.updatePlot() - - - def addPeak(self, pos): id_list = [ key.id_num for key in self.function_registry.get_registered_functions().keys() @@ -341,8 +322,11 @@ class AppWindow(QMainWindow): while self.peakId in id_list: self.peakId += 1 - _peak = Peak(id_num=self.peakId, plt_real=self.ui.pgPlotWidget_real, plt_imag=self.ui.pgPlotWidget_imag, + _peak = Peak(id_num=self.peakId, + plt_real=self.ui.pgPlotWidget_real, + plt_imag=self.ui.pgPlotWidget_imag, limits=self.data.fit_limits) + _peak.changedData.connect(self.updatePlot) _peak.removeObj.connect(self.delParamterObject) @@ -350,11 +334,7 @@ class AppWindow(QMainWindow): _peak.setParameter(beta = new_peak) self.function_registry.register_function(_peak) - self.peakBoxes[_peak] = self.peakId - - for i,pb in enumerate(self.peakBoxes.keys()): - self.parameterWidget.vlayout.insertWidget(1,pb.widget) - self.parameterWidget.vlayout.update() + self.parameterWidget.add(_peak.widget) self.updatePlot() @@ -371,8 +351,6 @@ class AppWindow(QMainWindow): self.updatePlot() def fitData(self, method): - log10fmin, log10fmax = self.fit_boundary.getRegion() - self.data.set_fit_xlimits(10**log10fmin, 10**log10fmax) fit_methods = [fit_odr_cmplx, fit_lbfgsb, fit_anneal] # build function list @@ -433,6 +411,8 @@ class AppWindow(QMainWindow): def updatePlot(self): + log10fmin, log10fmax = self.fit_boundary.getRegion() + self.data.set_fit_xlimits(10**log10fmin, 10**log10fmax) p0,funcs = [],[] for fcn in self.function_registry.get_registered_functions(): p0.extend(fcn.getParameter()) @@ -445,12 +425,13 @@ class AppWindow(QMainWindow): self.data.data_curve_imag.setData(self.data.frequency, self.data.epsilon.imag) if len(funcs)> 0: - self.data.fitted_curve_real.setData(self.data.frequency, self.data.epsilon_fit.real) - self.data.fitted_curve_imag.setData(self.data.frequency, self.data.epsilon_fit.imag) + self.data.fitted_curve_real.setData(self.data.frequency_fit, self.data.epsilon_fit.real) + self.data.fitted_curve_imag.setData(self.data.frequency_fit, self.data.epsilon_fit.imag) else: self.data.fitted_curve_real.setData([N.nan],[N.nan]) self.data.fitted_curve_imag.setData([N.nan],[N.nan]) + def sigint_handler(*args): """Handler for the SIGINT signal (CTRL + C). """ diff --git a/QDSMain.py b/QDSMain.py index 75e3dad..6cf811e 100644 --- a/QDSMain.py +++ b/QDSMain.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'QDSMain.ui' # -# Created: Thu Mar 20 13:41:01 2014 +# Created: Thu Mar 20 14:46:49 2014 # by: PyQt4 UI code generator 4.10.3 # # WARNING! All changes made in this file will be lost! @@ -94,7 +94,7 @@ class Ui_MainWindow(object): self.actionAdd_Cond.setObjectName(_fromUtf8("actionAdd_Cond")) self.actionSave_FitResult = QtGui.QAction(MainWindow) icon2 = QtGui.QIcon() - icon2.addPixmap(QtGui.QPixmap(_fromUtf8(":/icons/save_fit.svg")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + icon2.addPixmap(QtGui.QPixmap(_fromUtf8(":/icons/save_fit.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionSave_FitResult.setIcon(icon2) self.actionSave_FitResult.setObjectName(_fromUtf8("actionSave_FitResult")) self.actionAdd_PowerLaw = QtGui.QAction(MainWindow) diff --git a/QDSMain.ui b/QDSMain.ui index e243dc6..5ebe0a9 100644 --- a/QDSMain.ui +++ b/QDSMain.ui @@ -127,7 +127,7 @@ - :/icons/save_fit.svg:/icons/save_fit.svg + :/icons/save_fit.png:/icons/save_fit.png Save Fit diff --git a/StaticGroupBox.py b/StaticGroupBox.py index 8bebfbf..67e054f 100644 --- a/StaticGroupBox.py +++ b/StaticGroupBox.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'StaticGroupBox.ui' # -# Created: Thu Mar 20 13:41:01 2014 +# Created: Thu Mar 20 14:46:49 2014 # by: PyQt4 UI code generator 4.10.3 # # WARNING! All changes made in this file will be lost! diff --git a/data.py b/data.py index d8131f8..ffdb589 100644 --- a/data.py +++ b/data.py @@ -14,6 +14,7 @@ class Data: def __init__(self, frequency=N.zeros(1), die_real=N.zeros(1), die_imag=N.zeros(1)): self.frequency = frequency self.epsilon = die_real + 1j * die_imag + self.frequency_fit = frequency self.epsilon_fit = die_real*0 + 1j * die_imag*0 myPen_imag = pg.mkPen(width=3, color=(255,255,127)) myPen_real = pg.mkPen(width=3, color=(51,255,127)) @@ -35,7 +36,7 @@ class Data: def set_fit(self, param, funcs): self.fit_funcs = funcs self.fit_param = param - fit_real, fit_imag = FitFunctionCreator().fitfcn(param, self.frequency, *funcs) + fit_real, fit_imag = FitFunctionCreator().fitfcn(param, self.frequency_fit, *funcs) self.epsilon_fit = fit_real + 1j*fit_imag def __del__(self): @@ -54,6 +55,7 @@ class Data: def set_fit_xlimits(self, xmin, xmax): self.fit_limits[0] = xmin self.fit_limits[1] = xmax + self.frequency_fit = self.frequency[(self.frequency <= xmax) & (self.frequency >= xmin)] def set_fit_ylimits(self, ymin, ymax): self.fit_limits[2] = ymin @@ -127,7 +129,6 @@ class Conductivity(QObject): p = self.getParameter() y = self.f.cond_cmplx(p, self.frequency) - print p self.conductivity = y # imaginary part self.data_curve_real.setData(x=self.frequency, y=self.conductivity[0], label="Cond.") diff --git a/icons/add_eps_infty.png b/icons/add_eps_infty.png index c27f4055cfe518efcda675884c8eec7d97b80d63..b9a3e9f1976b16f4c9225e741dcd1659e84a1e5a 100644 GIT binary patch delta 11111 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 Ks}T9}>;C|HAlN(r diff --git a/icons/images.qrc b/icons/images.qrc index 5e910f9..7415305 100644 --- a/icons/images.qrc +++ b/icons/images.qrc @@ -1,9 +1,9 @@ - add_eps_infty.png add_cond.svg + add_eps_infty.png add_peak.svg - save_fit.svg fit_limits.png + save_fit.png diff --git a/icons/save_fit.png b/icons/save_fit.png index e8000c1f958188b10e4522611c31432a5b794152..f637340afc94149d0c2a40e4a5364435903b0f5e 100644 GIT binary patch literal 18774 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 B7t{a% literal 15818 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