def fit_starten(self, _): par = self.fitparameter() # Fortschrittsanzeige: self.fortschritt.set_value(0) self.fortschritt.set_pulse_step(1 / par.pixel) self.ui.hide_all() self.ff.show_all() while gtk.events_pending(): gtk.main_iteration_do(True) pass # Messwerte einlesen: self.messwerte_lesen(par) # Fitten: fit = Fit(par, self.amplitude, self.phase, self.fortschritt.pulse) erg = fit.start() # Gwyddion-Datenfeld: self.container = Container() xy = Format.si_unit("m") def anlegen(inhalt, titel, einheit): Format.volume_data( c=self.container, inhalt=inhalt, einheit_xy=xy, einheit_z=Format.si_unit(einheit), titel=titel, dim=par.dim, pixel=par.pixel ) anlegen([n.amp for n in erg], "Amplitude (V)", "V") anlegen([n.phase for n in erg], "Phase (°)", "°") anlegen([n.resfreq for n in erg], "Resonanzfrequenz (Hz)", "Hz") anlegen([n.guete_amp for n in erg], u"Güte (Amplitudenfit)", "") anlegen([n.amp_fhlr for n in erg], "Fehler Amp. (V)", "V") anlegen([n.phase_fhlr for n in erg], "Fehler Phase (°)", "°") anlegen([n.resfreq_fhlr for n in erg], "Fehler Resfreq. (Hz)", "Hz") anlegen([n.guete_amp_fhlr for n in erg], u"Fehler Güte (Ampfit.)", "") anlegen([n.guete_ph for n in erg], u"Güte (Phasenfit)", "") anlegen([n.untergrund for n in erg], "Untergrund (V)", "V") anlegen([n.phase_rel for n in erg], "Phasenversatz (°)", "°") Format.set_custom(self.container, ERGEBNIS, erg) Format.set_custom(self.container, PARAMETER, par) self.ff.hide_all() gtk.main_quit()
def fit_starten(self, _): par = self.fitparameter() # Fortschrittsanzeige: self.fortschritt.set_value(0) self.fortschritt.set_pulse_step(1 / par.pixel) self.ui.hide_all() self.ff.show_all() while gtk.events_pending(): gtk.main_iteration_do(True) pass # Messwerte einlesen: self.messwerte_lesen(par) # Fitten: fit = Fit(par, self.amplitude, self.phase, self.fortschritt.pulse) erg = fit.start() # Gwyddion-Datenfeld: self.container = Container() xy = Format.si_unit("m") def anlegen(inhalt, titel, einheit): Format.volume_data(c=self.container, inhalt=inhalt, einheit_xy=xy, einheit_z=Format.si_unit(einheit), titel=titel, dim=par.dim, pixel=par.pixel) anlegen([n.amp for n in erg], "Amplitude (V)", "V") anlegen([n.phase for n in erg], "Phase (°)", "°") anlegen([n.resfreq for n in erg], "Resonanzfrequenz (Hz)", "Hz") anlegen([n.guete_amp for n in erg], u"Güte (Amplitudenfit)", "") anlegen([n.amp_fhlr for n in erg], "Fehler Amp. (V)", "V") anlegen([n.phase_fhlr for n in erg], "Fehler Phase (°)", "°") anlegen([n.resfreq_fhlr for n in erg], "Fehler Resfreq. (Hz)", "Hz") anlegen([n.guete_amp_fhlr for n in erg], u"Fehler Güte (Ampfit.)", "") anlegen([n.guete_ph for n in erg], u"Güte (Phasenfit)", "") anlegen([n.untergrund for n in erg], "Untergrund (V)", "V") anlegen([n.phase_rel for n in erg], "Phasenversatz (°)", "°") Format.set_custom(self.container, ERGEBNIS, erg) Format.set_custom(self.container, PARAMETER, par) self.ff.hide_all() gtk.main_quit()
def fit_starten(self, _): par = self.fitparameter() # Messwerte einlesen: self.messwerte_lesen(par) self.ui.hide_all() self.ff.show_all() q = Queue() # Fitten: fit = Fit(par, self.amplitude, self.phase, q.put) erg = fit.start() x = 0.0 while not erg.ready(): gtk.main_iteration_do(False) try: q.get_nowait() x += 1.0 / par.spektren self.fortschritt.set_fraction(x) except Empty: pass if hasattr(os, 'fork'): q.close() erg = erg.get() """ :type: list[Ergebnis] """ del self.amplitude, self.phase, fit # Gwyddion-Datenfeld: self.container = Container() def anlegen(inhalt, titel, einheit): if par.raster: Format.channel_data( c=self.container, inhalt=inhalt, einheit_xy=SIUnit('m'), einheit_z=SIUnit(einheit), titel=titel, dim=par.dim, pixel=par.pixel # TODO geht nur, wenn kein Spektrum ) else: Format.spectra_data( c=self.container, x=hysterese(par.dcmin, par.dcmax, par.ddc), y=inhalt, label_x='', label_y='' ) if par.spektroskopie: # TODO Notlösung entfernen datei = open(par.konf.rsplit('.be', 1)[0] + ".fit", 'w') dc = hysterese(par.dcmin, par.dcmax, par.ddc) datei.write('DC/V,A/V,dA/V,f0/Hz,df0/Hz,Q,dQ,Phase\n') for n in range(par.spektren): datei.write( str(dc[n]) + ',' + str(erg[n].amp) + ',' + str(erg[n].amp_fhlr) + ',' + str(erg[n].resfreq) + ',' + str(erg[n].resfreq_fhlr) + ',' + str(erg[n].guete_amp) + ',' + str(erg[n].guete_amp_fhlr) + ',' + str(erg[n].phase) + '\n' ) datei.close() Dialog(self.sv).info("Gespeichert", "Fit gespeichert in " + datei.name) else: anlegen([n.amp for n in erg], "Amplitude", 'V') anlegen([n.phase for n in erg], "Phase", '°') anlegen([n.resfreq for n in erg], "Resonanzfrequenz", 'Hz') anlegen([n.guete_amp for n in erg], u"Güte (Amplitudenfit)", '') anlegen([n.amp_fhlr for n in erg], "Fehler Amp.", 'V') anlegen([n.phase_fhlr for n in erg], "Fehler Phase", '°') anlegen([n.resfreq_fhlr for n in erg], "Fehler Resfreq.", 'Hz') anlegen([n.guete_amp_fhlr for n in erg], u"Fehler Güte (Ampfit.)", '') anlegen([n.guete_ph for n in erg], u"Güte (Phasenfit)", '') anlegen([n.untergrund for n in erg], "Untergrund", 'V') anlegen([n.phase_rel for n in erg], "Phasenversatz", '°') Format.set_custom(self.container, ERGEBNIS, erg) Format.set_custom(self.container, PARAMETER, par) self.ff.hide_all() gtk.main_quit()