Tutorium: Datenauswertung während des Praktikums Ziele Gewinnung der relevanten physikalischen Größen und ihrer Messunsicherheiten aus den (z.B. mit CASSY) aufgezeichneten Daten Für Protokoll und Vortrag benötigt: Darstellung der Rohdaten: Tabelle Histogramm Graph Analyse der Daten: Kurvenanpassung Fourier-Transformation Fehlerrechnung: Fehlerfortpflanzung, Statistik Präsentation der Ergebnisse Heute: Lösung einiger dieser Aufgaben mit Standardwerkzeugen für das Praktikum. Henning Gast, RWTH Aachen • p2 Programmieren im Praktikum (und darüber hinaus) Datenauswertung wird in der Physik sehr häufig mit Hilfe eines Computers durchgeführt. Dazu ist die Kenntnis einer geeigneten (und gängigen) Programmiersprache und ggfs eines Computeralgebrasystems unerlässlich. Vorkenntnisse: Vorlesung zur Datenverarbeitung und Programmierkurs. Wichtig: Die Physik steht im Mittelpunkt, der Computer und zu schreibende Programme sind nur Werkzeuge. Das Praktikum ist kein Programmierkurs. Geeignete Werkzeuge: python ← unsere Empfehlung und Thema für heute ROOT Maple ... Henning Gast, RWTH Aachen • p3 Python Voll entwickelte Programmiersprache Vorteile: sehr klare Syntax flache Lernkurve extrem gute Dokumentation (weite Verbreitung, googlen!) viele Pakete verfügbar, einschließlich für Datenanalyse frei verfügbar Nachteile: nur eingeschränkt für Analyse sehr großer Datenmengen geeignegt (noch) nicht in allen Gebieten der Physik in Aachen verbreitet Henning Gast, RWTH Aachen • p4 ROOT Analyseumgebung für C++, entwickelt am CERN Vorteile: von Physikern für Physiker Standardwerkzeug in der Teilchenphysik schnelle Lösungen für typische Aufgaben in der Datenanalyse Nachteile: erfordert (gute) C++ Kenntnisse Dokumentation lückenhaft hält den Benutzer zum Teil zu schlechtem Programmieren an Henning Gast, RWTH Aachen • p5 Maple Computeralgebrasystem Vorteile: symbolisches Rechnen kein Erlernen einer Programmiersprache notwendig schneller Zugang zu vielen Werkzeugen Nachteile: nicht primär für Datenanalyse gedacht Programmierung für komplexere Aufgaben möglich, aber umständlich nicht kostenlos Henning Gast, RWTH Aachen • p6 Python: Installation auf den Praktikumslaptops: ipython über Startmenü aufrufen Skripte und Dateien sollten hier gespeichert werden: C:\Dokumente und Einstellungen\praktikum\Eigene Dateien\Python Scripts auf dem eigenen Laptop: python 2.7 ipython numpy, scipy, matplotlib Konfiguration von matplotlib: ~/.config/matplotlib/matplotlibrc: backend: Qt4Agg font.size: 16.0 Henning Gast, RWTH Aachen • p7 Python Programme ausführen Durch Aufruf von python: python skript.py Aus einer ipython Sitzung: ipython In [1]: %run skript.py Als standalone executable: 1. Zeile in skript.py: #! /usr/bin/env python Ausführbar machen: chmod u+x skript.py Laufen lassen: ./skript.py Tipp: schnelle interaktive Analyse mit ipython ­pylab Henning Gast, RWTH Aachen • p8 Praktikumsbibliothek (python) Download: http://accms04.physik.rwth­aachen.de/~praktapp/pgp_semester/python Nützliche Routinen für das Praktikum, die Sie nachvollziehen können (und sollen). Zur Benutzung: import Praktikum Inhalt: CASSY-lab Dateien einlesen Lineare Regression Fourier-Transformation Peaksuche (Schwerpunktsberechnung) Gewichteter Mittelwert Tests / Beispiele: Tests.py Dokumentation: z.B. in ipython: help(Praktikum) Grafische Datendarstellung (Plots, Histogramme, Graphen, …) wird mit Hilfe von matplotlib durchgeführt. Henning Gast, RWTH Aachen • p9 CASSY Daten einlesen Blick in eine CASSY-lab Datei: Einlesen mit Praktikum.lese_lab_datei Datenreihen entsprechen einzelnen Spalten in dem Array. Array slicing: t=data[:,0] p=data[:,2] ein erster Plot: plot(t,p) → Tests.test_datenlesen() Henning Gast, RWTH Aachen • p 10 Einfache Plots Dokumentation: http://matplotlib.org/api/pyplot_api.html Histogramm: hist(p,bins=1000,range=(1000.,1020.),color='green') Graph: plot(x,y) Plot mit Fehlerbalken: errorbar(Tinv,logP,xerr=sigma_Tinv,yerr=sigma_logP,fmt='.') Tipp: Plots als Vektorgrafik (eps, pdf) abspeichern und im Protokoll einbinden! Henning Gast, RWTH Aachen • p 11 Beispiel: Pendelversuch Mathematisches Pendel der Länge L: ϕ (t )= A cos(ω t )+B sin (ω t ) Bestimmung der Erdbeschleunigung g über ω2 = g L → Beispiel_Pendel.py Henning Gast, RWTH Aachen • p 12 Beispiel: Dampfdruckkurve Clausius-Clapeyron-Gleichung, mit geeigneten Näherungen: 1 1 log( p / p0 )=− Λ − R T T0 ( ) → Beispiel_Thermodynamik.py Henning Gast, RWTH Aachen • p 13