Modul cassy

Dieses Modul enthält die Funktionalität zum Einlesen von Daten, die mit einem Cassy-System geschrieben wurden (Dateiendungen .lab (Cassy-1), bzw. .labx oder .txt (Cassy-2)).

class praktikum.cassy.CassyDaten(cassydatei)[Quellcode]

Stellt die Gesamtheit der aus einer Cassy2-Datei eingelesenen Daten zur Verfügung.

Die Daten setzen sich aus einzelnen Messreihen (vom Typ Messung) zusammen.

Parameter

cassydatei (string) – Dateiname der einzulesenden Cassy-Datei (Dateiendung: .lab, .labx oder .txt)

anzahl_messungen()[Quellcode]

Anzahl der Messungen in der Datei.

info()[Quellcode]

Gebe Informationen über die enthaltenen Messungen aus.

messung(nummer)[Quellcode]

Zugriff auf einzelne Messung.

Parameter

nummer (int) – Nummer der gewünschten Messung (1..N)

Rückgabetyp

Messung

class praktikum.cassy.Datenreihe(werte, groesse, symbol, einheit)[Quellcode]

Eine Datenreihe enthält die Messwerte und weitere Informationen zu einer bestimmten bei einer Messung mit Cassy aufgezeichneten Größe.

Die Variable werte enthält die Liste der Messwerte. Daneben werden das während der Messung mit Cassy verwendete Formelzeichen (symbol), eine Beschreibung der Messgröße (groesse) und die Einheit der Messwerte (einheit) zur Verfügung gestellt.

werte

Numpy-Array, dass die während der Messung mit Cassy aufgezeichneten Messwerte enthält.

groesse

Beschreibung der Messgröße (z.B. „Stromstärke“).

symbol

Für den Zugriff auf die Datenreihe zu verwendendes Symbol (z.B. „I_A1“).

einheit

Einheit der Messwerte in werte (z.B. „mA“).

info()[Quellcode]

Gebe Messgröße, Symbol und Einheit der Datenreihe aus, ebenso wie Informationen zu den enthaltenen Messwerten (Anzahl, Minimum und Maximum).

class praktikum.cassy.Messung(zeitpunkt, beschreibung, nummer)[Quellcode]

Eine einzelne mit Cassy aufgezeichnete Messung.

Für jede bei der Messung aufgezeichnete Größe wird eine Datenreihe angelegt.

Darüber hinaus werden der Zeitpunkt der Messung und der während der Messung in der Cassy-Software eingegebene Kommentar gespeichert. (Nur bei Verwendung der .labx-Dateien.)

datenreihe(symbol)[Quellcode]

Zugriff auf die zum symbol gehörende Datenreihe.

Parameter

symbol (string) – Bei der Aufzeichnung mit Cassy verwendetes Symbol.

Rückgabetyp

Datenreihe

info()[Quellcode]

Gebe Zeitpunkt und Kommentar zu der Messung aus (soweit vorhanden), sowie die Symbole aller in der Messung enthaltenen Datenreihen.

Modul analyse

Dieses Modul enthält grundlegende Funktionen, die bei der Datenanalyse im Grundpraktikum Physik verwendet werden.

praktikum.analyse.exp_einhuellende(t, y, ey, sens=0.1)[Quellcode]

Exponentielle Einhüllende.

Parameter
  • t (array_like) – Zeitwerte der Datenpunkte

  • y (array_like) – y-Werte der Datenpunkte

  • ey (array_like Fehler auf die y-Werte der Datenpunkte) –

  • sens (float, optional) – Sensitivität, Wert zwischen 0 und 1

Die Funktion gibt auf der Basis der drei Argumente (Listen mit t- bzw. dazugehörigen y-Werten plus y-Fehler) der Kurve die Parameter A0 und delta samt Fehlern der Einhüllenden von der Form \(A=A_0\exp(-\delta{}t)\) (abfallende Exponentialfunktion) als Liste aus. Optional kann eine Sensitivität angegeben werden, die bestimmt, bis zu welchem Prozentsatz des höchsten Peaks der Kurve noch Peaks für die Berechnung berücksichtigt werden (voreingestellt: 10%).

Rückgabetyp

Liste [A0, sigmaA0, delta, sigmaDelta]

praktikum.analyse.fit_gedaempfte_schwingung(t, y, ey, plot_fit=False, einheit_x='s', symbol_y='y', einheit_y='[y]', fehler_skalierung=False, fig_name=None)[Quellcode]

Fit einer gedämpften Schwingung (mit Offset) an Datenpunkte als Funktion der Zeit.

Die Funktion passt auf der Basis der drei Argumente (Listen mit t- und dazugehörigen y-Werten plus y-Fehler) eine exponentiell gedämpfte Schwinung (einschließlich eines Offsets) der Form \(y=A\exp(-\delta{}t)\cos(2\pi{}t/T+\phi) + y_0\) mit der Methode der kleinsten Quadrate an die Datenpunkte an. Die Startwerte werden automatisch bestimmt.

Auf Wunsch werden die Datenpunkte und die angepasste Kurve zusammen mit einem Residuenplot in einer neuen Abbildung geplottet.

Parameter
  • t (array_like) – Zeitwerte der Datenpunkte

  • y (array_like) – y-Werte der Datenpunkte

  • ey (array_like) – Fehler auf die y-Werte der Datenpunkte

  • plot_fit (bool) – Sollen Datenpunkte, Fit und Residuenplot geplottet werden?

  • einheit_x (str) – Einheit der Zeit-Achse (für den Plot)

  • symbol_x (str) – Formelzeichen für die Größe auf der y-Achse (für den Plot)

  • einheit_y (str) – Einheit der y-Achse (für den Plot)

  • fehler_skalierung (bool) – Option, um die Unsicherheiten auf die Fit-Parameter so zu skalieren, dass sie den Werten entsprechen, die man erhalten würde, wenn man die Unsicherheiten auf die y-Werte so skaliert, dass man ein reduziertes Chi-Quadrat von 1 erhält. Nützlich für die Bestimmung von systematischen Unsicherheiten.

  • fig_name (str oder None) – Name für die Abbildung

Rückgabe

Amplitude \(A\), Periodendauer \(T\), Phase \(\phi\), Dämpfungskonstante \(\delta\), Offset \(y_0\), entsprechende Periodendauer der ungedämpften Schwingung \(T_0\) (berechnet aus \(\omega^2=\omega_0^2-\delta^2\)), \(\chi^2\) der Anpassung, Anzahl der Freiheitsgrade

Rückgabetyp

Tupel. Die Fit-Parameter werden als ufloat Objekte (Werte mit Unsicherheiten, aus dem uncertainties Paket) zurückgegeben.

praktikum.analyse.fourier(t, y)[Quellcode]

Fourier-Transformation.

Parameter
  • t (array_like) – Zeitwerte der Datenpunkte

  • y (array_like) – y-Werte der Datenpunkte

Rückgabetyp

Gibt das Fourierspektrum in Form zweier Listen (freq,amp) zurück, die die Fourieramplituden als Funktion der zugehörigen Frequenzen enthalten.

praktikum.analyse.fourier_fft(t, y)[Quellcode]

Schnelle Fourier-Transformation.

Parameter
  • t (array_like) – Zeitwerte der Datenpunkte

  • y (array_like) – y-Werte der Datenpunkte

Rückgabetyp

Gibt das Fourierspektrum in Form zweier Listen (freq,amp) zurück, die die Fourieramplituden als Funktion der zugehörigen Frequenzen enthalten.

praktikum.analyse.gewichtetes_mittel(y, ey)[Quellcode]

Berechnet den gewichteten Mittelwert der gegebenen Daten.

Parameter
  • y (array_like) – Datenpunkte

  • ey (array_like) – Zugehörige Messunsicherheiten.

Rückgabetyp

Gibt den gewichteten Mittelwert samt Fehler als Tupel (Mittelwert, Fehler) zurück.

praktikum.analyse.lineare_regression(x, y, ey)[Quellcode]

Lineare Regression.

Parameter
  • x (array_like) – x-Werte der Datenpunkte

  • y (array_like) – y-Werte der Datenpunkte

  • ey (array_like) – Fehler auf die y-Werte der Datenpunkte

Diese Funktion benötigt als Argumente drei Listen: x-Werte, y-Werte sowie eine mit den Fehlern der y-Werte. Sie fittet eine Gerade an die Werte und gibt die Steigung a und y-Achsenverschiebung b mit Fehlern sowie das \(\chi^2\) und die Korrelation von a und b aus.

Rückgabetyp

Liste der Fit-Ergebnisse in der Reihenfolge [a, ea, b, eb, chiq, corr]

praktikum.analyse.lineare_regression_xy(x, y, ex, ey)[Quellcode]

Lineare Regression mit Fehlern in x und y.

Parameter
  • x (array_like) – x-Werte der Datenpunkte

  • y (array_like) – y-Werte der Datenpunkte

  • ex (array_like) – Fehler auf die x-Werte der Datenpunkte

  • ey (array_like) – Fehler auf die y-Werte der Datenpunkte

Diese Funktion benötigt als Argumente vier Listen: x-Werte, y-Werte sowie jeweils eine mit den Fehlern der x- und y-Werte. Sie fittet eine Gerade an die Werte und gibt die Steigung a und y-Achsenverschiebung b mit Fehlern sowie das \(\chi^2\) und die Korrelation von a und b aus.

Die Funktion verwendet den ODR-Algorithmus von scipy.

Rückgabetyp

Liste der Fit-Ergebnisse in der Reihenfolge [a, ea, b, eb, chiq, corr]

praktikum.analyse.mittelwert_stdabw(daten)[Quellcode]

Berechnet das arithmetische Mittel und die empirische Standardabweichung der gegebenen Daten.

Der Mittelwert der Daten \(\{x_1, \ldots, x_N\}\) ist definiert als \(\overline{x} = \sum\limits_{i=1}^N x_i\). Die Standardabweichung ist gegeben durch \(\sigma_x = \sqrt{\frac{1}{N-1} \sum\limits_{i=1}^N (x_i-\bar{x})^2}\).

Parameter

daten (array_like) – Messwerte

Rückgabetyp

Tupel (Mittelwert, Standardabweichung)

praktikum.analyse.peak(x, y, x0, x1)[Quellcode]

Approximiere ein lokales Maximum in den Daten (x,y) zwischen x0 und x1. Die Quadrate der y-Werte werden dabei als Gewichte verwendet.

Parameter
  • x (array_like) – x-Werte des Eingangsdatensatzes

  • y (array_like) – Zugehörige y-Werte.

  • x0 (float) – Untergrenze für die Lages des Maximums

  • x1 (float) – Obergrenze für die Lages des Maximums

Rückgabetyp

Approximierte Lage des Maximums entlang x.

praktikum.analyse.peakfinder_schwerpunkt(x, y, schwelle=0.1)[Quellcode]

Finde Peak in den Daten (x,y) mit der Schwerpunktsmethode. Die Quadrate der y-Werte werden dabei als Gewichte verwendet. Es werden alle Datenpunkte verwendet, deren Amplitude oberhalb der gegebenen relativen Schwelle rund um das Maximum liegen.

Parameter
  • x (array_like) – x-Werte des Eingangsdatensatzes.

  • y (array_like) – Zugehörige y-Werte.

  • schwelle (float, optional) – Berechne Peak aus allen Datenpunkten, deren Amplitude mindestens \(schwelle\cdot\mathrm{max}(y)\) beträgt.

Rückgabetyp

Lage des Maximums entlang x.

praktikum.analyse.quadratische_regression(x, y, ey)[Quellcode]

Quadratische Regression mit Fehlern in y-Richtung.

Parameter
  • x (array_like) – x-Werte der Datenpunkte

  • y (array_like) – y-Werte der Datenpunkte

  • ey (array_like) – Fehler auf die y-Werte der Datenpunkte

Diese Funktion benötigt als Argumente drei Listen: x-Werte, y-Werte sowie eine mit den Fehlern der y-Werte.

Sie fittet eine Parabel der Form \(y=ax^2+bx+c\) an die Werte und gibt die Parameter a, b und c mit Fehlern sowie das \(\chi^2\) und die drei Korrelationskoeffizienten der Parameter aus.

Rückgabetyp

Liste der Fit-Ergebnisse in der Reihenfolge [a, ea, b, eb, c, ec, chiq, (corr_ab, corr_ac, corr_bc)]

praktikum.analyse.quadratische_regression_xy(x, y, ex, ey)[Quellcode]

Quadratische Regression mit Fehlern in x und y.

Parameter
  • x (array_like) – x-Werte der Datenpunkte

  • y (array_like) – y-Werte der Datenpunkte

  • ex (array_like) – Fehler auf die x-Werte der Datenpunkte

  • ey (array_like) – Fehler auf die y-Werte der Datenpunkte

Diese Funktion benötigt als Argumente vier Listen: x-Werte, y-Werte sowie jeweils eine mit den Fehlern der x- und y-Werte. Sie fittet eine Parabel der Form \(y=ax^2+bx+c\) an die Werte und gibt die Parameter a, b und c mit Fehlern sowie das \(\chi^2\) und die drei Korrelationskoeffizienten der Parameter aus.

Die Funktion verwendet den ODR-Algorithmus von scipy.

Rückgabetyp

Liste der Fit-Ergebnisse in der Reihenfolge [a, ea, b, eb, c, ec, chiq, (corr_ab, corr_ac, corr_bc)]

praktikum.analyse.untermenge_daten(x, y, x0, x1)[Quellcode]

Extrahiere kleinere Datensätze aus (x,y), so dass x0 <= x <= x1

Parameter
  • x (array_like) – x-Werte des Eingangsdatensatzes

  • y (array_like) – Zugehörige y-Werte.

  • x0 (float) – x-Wert, ab dem die Daten extrahiert werden sollen.

  • x1 (float) – x-Wert, bis zu dem die Daten extrahiert werden sollen.

Rückgabetyp

(xn,yn) wobei xn und yn die reduzierten x- und y-Listen sind.

Modul literaturwerte

Dieses Modul enthält Literaturwerte bzw. Herstellerangaben, die bei der Auswertung im Grundpraktikum Physik nützlich, aber nicht einfach anders zugänglich sind.

praktikum.literaturwerte.brechungsindex_luft(lambd, t=20.0, p=1013.25, e=13.33)[Quellcode]

Berechnung des Brechungsindex von Luft

Parameter
  • lambd – Vakuumwellenlänge der Lichtquelle in \(\mu{}m\)

  • t – Temperatur in °C

  • p – Luftdruck in mbar

  • e – Wasserdampfpartialdruck (Feuchtigkeit) in mbar

Quelle: Kohlrausch, Praktische Physik, 23. Auflage, Band 1, S. 461

Die Formel gilt in guter Näherung im Temperaturbereich von 15 bis 30 °C und im Druckbereich von 933 bis 1067 mbar, außerdem für ein CO2-Volumengehalt von 0,03%.

Mit der Formel lassen sich nicht die im Kohlrausch angegebenen beispielhaften Werte für einzelne Wellenlängen reproduzieren. Gleichwohl stimmen die Werte für trockene Luft mit denen überein, die sich nach dem CRC Handbook (78. Auflage, S. 10-259) berechnen lassen (das CRC Handbook gibt keine Formel für feuchte Luft an).

Rückgabetyp

Brechungsindex der Luft

praktikum.literaturwerte.dichte_luft(phi, p, t)[Quellcode]

Berechung der Dichte von (feuchter) Luft

Parameter
  • phi (float) – relative Luftfeuchtigkeit

  • p (float) – Luftdruck in mbar

  • t (float) – Temperatur in °C

Rückgabetyp

Dichte der feuchten Luft in \(kg/m^3\).

praktikum.literaturwerte.molare_masse_luft(phi, p, t)[Quellcode]

Berechung der molaren Masse von (feuchter) Luft

Parameter
  • phi (float) – relative Luftfeuchtigkeit

  • p (float) – Luftdruck in mbar

  • t (float) – Temperatur in °C

Rückgabetyp

Molare Masse der feuchten Luft in g/mol.

praktikum.literaturwerte.n_schott_f2(lambd)[Quellcode]

Formel für den Brechungsindex des Schott-Glases F2 (Flintglas)

Quelle: https://www.schott.com/d/advanced_optics/47d79895-2965-472d-83ed-af9e48ac72c0/1.1/schott-optisches-glas-datenblatt-sammlung-german-17012017.pdf

Parameter

lambd – Vakuumwellenlänge der Lichtquelle in \(\mu{}m\)

Rückgabetyp

Brechungsindex bei der gegebenen Wellenlänge.

praktikum.literaturwerte.n_schott_nsf10(lambd)[Quellcode]

Formel für den Brechungsindex des Schott-Glases N-SF10 (Schwerflintglas)

Quelle: https://www.schott.com/d/advanced_optics/47d79895-2965-472d-83ed-af9e48ac72c0/1.1/schott-optisches-glas-datenblatt-sammlung-german-17012017.pdf

Parameter

lambd – Vakuumwellenlänge der Lichtquelle in \(\mu{}m\)

Rückgabetyp

Brechungsindex bei der gegebenen Wellenlänge.

praktikum.literaturwerte.saettigungsdampfdruck_wasser(t)[Quellcode]

Näherungsformel nach Magnus für den Sättigungsdampfdruck über einer Wasseroberfläche

Parameter

t (float) – Temperatur in °C

Quelle: https://de.wikipedia.org/wiki/S%C3%A4ttigungsdampfdruck (abgerufen am 4.7.2019)

Rückgabetyp

Sättigungsdampfdruck in mbar (bzw. hPa)

praktikum.literaturwerte.schallgeschwindigkeit_luft(T)[Quellcode]

Näherungsformel für die Schallgeschwindigkeit in Luft

Quelle: Wikipedia, https://de.wikipedia.org/wiki/Schallgeschwindigkeit

Parameter

T – Temperatur in Kelvin

Rückgabetyp

Schallgeschwindigkeit in m/s.