Einsicht in Fitfunktionen #107
Labels
No Label
Kind/Breaking
Kind/Bug
Kind/Crash
Kind/Documentation
Kind/Enhancement
Kind/Feature
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Priority
Very low
Reviewed
Duplicate
Reviewed
Invalid
Reviewed/Won't Fix
Status
Need More Info
Status
On Hold
Status
Stale
Type/BDS
Type/DSC
Type/Fit
Type/General
Type/NMR
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: IPKM/nmreval#107
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ich würde gerne nachschauen können wie die verschiedenen Fitfunktionen definiert sind. Dann könnte ich, wenn ich eine eigene Funktion (z.B. eine Spektraldichte) schreibe, sicherstellen, dass die Normierung davon zum restlichen BPP passt und die Variablen so benannt sind, dass die Umrechnungen und Auswahlmöglichkeiten (die in der Choice-Liste) funktionieren.
Habe versucht in https://gitea.pkm.physik.tu-darmstadt.de/IPKM/nmreval/src/branch/master/src/nmreval/nmr nachzuschauen, habe aber nach eine halben Stunde aufgegeben das nachzuvollziehen zu versuchen.
Die Fitfunktionen befinden sich in der Datei src/nmreval/models/fieldcycling.py.
Spektrale Dichten sind alle so normiert, dass das Integral von 0 bis Unendlich pi/2 ergibt, d.h. Debye hat keinen Faktor 2 im Zähler (Ausnahme zur Normierung könnte FFHS sein, müsste ich nochmal nachschauen...).
Die spektralen Dichten sind bei der entsprechenden Verteilung im Order src/nmreval/distributions.
Ich möchte eine Reihe an (1/T1 vs Freq)-Datensätzen fitten, bei denen die Spektraldichte je nach Temperatur durch ein oder zwei Cole-Davidsons modelliert wird. Als physikalische Bedinung würde ich gerne verwenden, dass u.a. die Summe der beiden Spektraldichten normiert sein muss, sehe aber keine Möglichkeit das mit den vorhandenen Fitfunktionen umzusetzen.
Beim Erstellen von Fitfunktionen haben sich dann folgende Fragen ergeben:
-Wenn ich eine bereits erstellte Funktion abändern oder löschen möchte, geht das innerhalb des Auswerteprogramms / wo finde ich den Code dafür?
-Wie funktioniert in der 'Create fit function' Maske das Verwenden der 'Available Functions'?
(-Gibt es einen klügeren Weg um zweistufige Spektraldichten zu fitten?)
Die Datei für benutzerdefinierte Funktionen findest du in ~/.auswerten/usermodels.py, innerhalb des Programms kannst du darauf auch über Fit/Function Editor zugreifen.
Neue Fitfunktionen werden dir nach dem Abspeichern angezeigt, wenn du Änderungen an bestehenden Funktionen, werden die für Anwendungen, die danach kommen, übernommen.
Setz den Cursor in func an die Stelle, wo die Funktion auftauschen soll und doppelklick auf die Funktion in der Tabelle, ist der Cursor an einer anderen Position außerhalb von func, wird nur der Import durchgeführt.
In Create fit function gibt es einen bug, was optionale Argumente betrifft, den muss ich noch korrigieren
Wenn ich dich richtig verstanden habe, willst du eine Amplitude, die du notfalls festhalten kannst und dafür relative Anteile:
Das bringt aber nur mit fester Amplitude einen Mehrwert gegenüber der Summe von zwei Cole-Davidson, bei freier Amplitude ist das ja äquivalent.
Prima, die Funktion macht genau das was ich mir gewünscht habe :)
Habe auch meine verpfuschten Fitfunktionen finden und löschen können.
Fun Fact: wenn man eine Funktion mit ungültigem Klassennamen erstellt, wie z.B.
class Cole-DavidsonRelative
(man beachte das Minus) startet das Auswerteprogramm nicht mehr.