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)
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 )
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 test_format(self): from SpeckView import Format from SpeckView.BE.Ergebnis import Ergebnis c = gwy.Container() debug = "debug" original = [Ergebnis(3, 5, 7, 11, 1, 1, 1)] Format.set_custom(c, debug, original) resultat = Format.get_custom(c, debug) """ :type: list[Ergebnis.Ergebnis] """ self.assertEqual(len(resultat), len(original)) for n in range(len(original)): alt = original[n] neu = resultat[n] self.assertEqual(neu.amp, alt.amp) self.assertEqual(neu.resfreq, alt.resfreq) self.assertEqual(neu.guete_amp, alt.guete_amp) self.assertEqual(neu.untergrund, alt.untergrund)
def test_format(self): from SpeckView import Format from SpeckView.BE.Ergebnis import Ergebnis c = gwy.Container() debug = "debug" original = [Ergebnis(3, 5, 7, 11)] Format.set_custom(c, debug, original) resultat = Format.get_custom(c, debug) """ :type: list[Ergebnis.Ergebnis] """ self.assertEqual(len(resultat), len(original)) for n in range(len(original)): alt = original[n] neu = resultat[n] self.assertEqual(neu.amp, alt.amp) self.assertEqual(neu.resfreq, alt.resfreq) self.assertEqual(neu.guete_amp, alt.guete_amp) self.assertEqual(neu.untergrund, alt.untergrund)
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='' )
def __init__(self, glade, c): """ :type glade: str :type c: gwy.Container.Container """ gtk.Builder.__init__(self) self.add_from_file(glade + 'spektrum.glade') self.ui = self.get_object('fenster_spektrum') """ :type: gtk.Window """ self.x = self.spinbutton('x') self.y = self.spinbutton('y') self.plotter = Plotter("Frequenz (Hz)", "Amplitude (V)") self.get_object('vorschau').add(self.plotter) try: self.erg = Format.get_custom(c, ERGEBNIS) """ :type: list[SpeckView.BE.Ergebnis.Ergebnis] """ self.par = Format.get_custom(c, PARAMETER) """ :type: SpeckView.BE.Parameter.Parameter """ self.amplitude = [] self.phase = [] self.messwerte_lesen() except Exception as f: stderr.write("Spektroskopiedaten konnten nicht gelesen werden:\n" + f.message) return self.connect_signals({ 'ende': gtk.main_quit, 'aktualisieren': self.aktualisieren }) self.ui.show_all() gtk.main()
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()