Computergestützte Datenauswertung - Vorlesung (Einführung in die) - KIT
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Vorlesung (Einführung in die) Computergestützte Datenauswertung Günter Quast, Andreas Poenicke Fakultät für Physik Institut für Experimentelle Kernphysik SS ‘19 KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu
Rechnernutzung in der Wissenschaft Einzelplatz-Rechner als Schnittstelle zum Datenerfassung Anwender (=Physiker) Moderne ModerneWissenschaft Wissenschaftohne ohneComputer Computernicht nichtdenkbar denkbar Server-Rack Worldwide LHC CERN Computer Centre computing Grid Weltumspannende Netzwerke: Grid(s) und Cloud
Rechnerhardware Rechner in der Physik heute meist auf PC-Architektur (PC=Personal Computer) d.h. Mikrocomputersysteme bestehend aus: - Mikroprozessor(en) - (flüchtigem) Halbleiter-Speicher - permanentem Magnet-Festplattenspeicher oder „SolidStateDisk“ (SSD) - Ein-Ausgabeschnittstellen -Tastatur, Bildschirm, Maus, Wechsellaufwerke, Drucker, Netzwerk, ... Verfügbar als Für diesen Kurs (und praktisch Ihr gesamtes - Einzelplatz-Desktop-PC / Studium) ist ein Notebook ideal: Notebook ● ≥2 GB Speicher - vernetzter Cluster aus ● ≥25 GB freier Desktop-PCs Plattenplatz - PC-Farm mit Fileservern ● ≥ core i3 - Multi-Prozessor-Installationen für „High-Performance-Computing“ andernfalls: PCs im CIP-Pool - vernetzte Rechenzentren („GRID“ & „Cloud“) dieser Kurs läuft sogar auf einem Raspberry Pi
Betriebssystem Direkter Zugriff von Anwenderprogrammen auf Hardware Anwendungs- nur in Ausnahmefällen programme sinnvoll / möglich: - ein-Prozess-Betrieb (z.B. Spiele!) - Echtzeit-Anwendungen Betriebssystem Treiber Windows, BIOS MacOSX, Linux, Android, ... Hardware Ansonsten: Zugriff auf Hardware nur über Betriebssystem
Verschiedene Anforderungen ... Mobiltelefon, Windows …. Arbeit an Projekten App_2 App_1 App_2 App_3 App_1 App_3 App2- App1- Data App3- GUI 1 GUI 2 GUI 3 Data Data AppData 1 AppData 2 AppData 3 App_4 App_4 App4- Projekt- GUI 4 Gemeinsame Data Daten Daten Projekt- AppData 4 ziel z.B. Foto-App, Projektziel: Produkt (Dokument, App, ...) E-Mail-Programm Android Daten: Grafiken, Tabellen, Textbausteine, Telefon-App Windows Messdaten, Ergebnisse von Auswertungen ... …. Mac OS X Linux … erfordern unterschiedliche
Interaktion mit dem Computer ... Es gibt viele Wege: grafisch mit Finger und Gesten grafisch klicki-bunti mit Maus Grafik & Textkonsole Shell auf der Textkonsole
Steuerung von Arbeitsabläufen Arbeitsabläufe sind meist mehrschrittig und komplex Beispiel: Vergleich von (Mess-)Daten mit Modell - Berechnung der Modellvorhersage(n) - Datenaufnahme und Korrekturen - Statistische Datenanalyse und Cross-Checks, Systematische Fehler - Dokumentation und Sicherstellung der Reproduzierbarkeit der Ergebnisse interaktiv / Maus versus Script ++ sehr intuitiv 0 erfordert Einarbeitung + leicht erlernbar - kaum Reproduzierbarkeit bei + relativ leicht erlernbar komplexen „Workflows“ ++ Skript enthält alle relevanten - - spezielle Menü-Optionen nicht Schritte: vollständige Doku- im Ergebnis dokumentiert mentation des Arbeitsablaufs - - keine permanente Dokumentation ++ vollständig reproduzierbar der Vorgehensweise ++ einfache Nutzung verschiedener - - in der Regel auf eine Anwendung Programm-Pakete und Tools und deren Tools festgelegt
Interaktion mit dem Betriebssystem Wir empfehlen: & friends: - numpy - scipy - matplotlib python ist eine – moderne – objektorientierte – interpretierte – intuitive – leicht zu erlernende – effiziente Skript- und Programmier-Sprache mit – Unterstützung praktisch aller Funktionen des Betriebssystems, – eigenen Modulen insb. auch für wissenschaftliches Rechnen – Anbindung von Bibliotheken wichtiger Programmpakete – Einbindung von selbst-programmierter Funktionalität python ist verfügbar für Windows, Mac OSX und Linux: Platform-übergreifend !
Betriebssystem für Wissenschaftliches Arbeiten Spezielle Empfehlung: Nutzen Sie Linux für wissenschaftliches Arbeiten ! Linux ist eine Re-Implementierung (Open Source) von Unix (begonnen Anfang der 90er von Linus Torvalds) LINUX ist (wie UNIX) ein portables (in C programmiertes), recht einfach aufgebautes Betriebssystem, mit folgenden wesentlichen Eigenschaften: -Multitasking (Prozess-Scheduling, Prozess-Kommunikation) - Multiuser (Zugangskontrolle und Abrechnung) - dialogorientiert - ein Werkzeugkasten mit vielen hundert Dienstprogrammen - (mehrere) Shell(s) mit mächtiger Script-Sprache; Scripte laufen als Unterprozesse des startenden Prozesses - Dateisystem mit Baum-artiger Struktur, Rechtekontrolle für Datei-Zugriff - graphische Oberfläche X-Windows (X11) - volle Netzwerkunterstützung, incl. Netzwerk-Laufwerken, remote shells etc. Linux bietet viele Vorteile – der Einstieg über die virtuelle Maschine (s. unten) ist leicht. Probieren Sie es aus !
python „Appetizers“
python appetizer http://docs.python.org/2/tutorial/
Visualisierung und Auswertung von Daten mit & friends: - numpy - scipy - matplotlib numpy: effizientes und komfortables Arbeiten mit „arrays“ als Datenstruktur matplotlib: Erstellen von Grafiken in „Publikationsqualität“ http://www.matplotlib.org matplotlib user guide: „ making plots should be easy!“
Beispiel 1 Darstellung einer Funktion x=np.linspace(0.,10, 200) y=np.sin(np.pi*x)/x i.w. das Ergebnis dieses plt.plot(x,y,label='example function') kurzen Programms: plt.legend() siehe simplePlot.py plt.show()
Beispiel 2 Datenpunkte mit Fehlerbalken und einer Geraden ym=[2.31,1.27,4.40,4.98,5.40,6.98,7.53,8.54,9.65,10.15] xm=range(1,11) plt.errorbar(xm,ym,yerr=0.5,fmt='ro') x=np.linspace(0.,11.,100) y=x+0.5 plt.plot(x,y) plt.show() simpleData.py
Beispiel 3 Bestimmung von π mit Zufallszahlen pi.py s. auch animate_pi.py
Beispiel 4: 3d Funktionen von zwei Variablen in 3d plot3dfunction.py
noch mehr Beispiele animate_wave.py animated_Gauss.py playDice.py Beispiele unter http://matplotlib.org
Lernen von python und matplotlib Konzept dieses Kurses: – python lernen am Beispiel der Darstellung von Daten mit matplotlib – statistische Einsichten gewinnen durch „Ausprobieren“ („the python way“) – Aufgeklappte Notebook-Deckel ausdrücklich erwünscht !!! (direktes Ausprobieren der Vorlesungs-Beispiele) – aktive Teilnahme an den Kleingruppen-Übungen unerlässlich (Programmieren lernt man durch Programmieren) – Recherche in online Dokumentation erforderlich (Listen mit Befehlen und Optionen in der Vorlesung sind laaangweilig ) – Bilden von Lerngruppen, Diskutieren von Lösungsmöglichkeiten (Programmieren ist ein kreativer Prozess) Das Ziel: Kreative Nutzung des Computers zur Lösung von Problemen
Empfohlene Software
nützliche Software-Pakete Die nachfolgenden Software-Pakete sind quelloffen (Open Source) und frei unter Linux, MS Windows (10) und Mac OSX verfügbar • Textdokumente erstellen mit LaTeX siehe z.B. http://www.dante.de/ • (Vektor-)Grafik mit INKSCAPE https://inkscape.org/de/ • Ausführen von virtuellen Maschinen: VirtualBox https://www.virtualbox.org/ • Programmiersprache python unter Linux (meist) schon installiert Windows siehe http://winpython.sourceforge.net/ • Entwicklungsumgebung für python: IDLE (einfache) Integrated Dvelopment and LEarning • interaktives Arbeiten mit python: IPython http://ipython.org/notebook.html • grafische Darstellung mit python: matplotlib • python-Bibliotheken für wissenschaftliches Arbeiten: numpy und scipy • Funktionsanpassung mit python: kafe http://www.ekp.kit.edu/~quast • man braucht noch einen Texteditor ( das ist „Geschmackssache“ , etwas komfortabler als MS Notepad darf's schon sein) In diesem Kurs werden wir hauptsächlich mit python, numpy & matplotlib arbeiten nach dem Konzept: „Learning by Doing“
Virtuelle Hardware Software-Emulation von Hardware auf Wirts-System seit langem bei Großrechnern alte Rechner auf moderner Hardware/OS, z.B. Atari, V24, Apple II Windows- oder Linux-Betriebssystem auf Linux und/oder Windows aktuell empfohlen: VirtualBox, freie Virtualisierungslösung für Linux, Windows, Mac siehe http://www.virtualbox.org Virtualisierung erlaubt Standard-Umgebung auf unterschiedlichster Hardware bzw. OS Virtuelle Maschine mit aller notwendigen Software zum Kurs und Dokumentation finden Sie unter: http://www.ekp.kit.edu/~quast/VM-DaA
Virtuelle Maschine zum Kurs: VM-DaA Virtuelle Maschine VM-DaA (Vers. SS19) für VirtualBox (http://www.virtualbox.org) auf Basis von kubuntu 168.04.2 LTS 32 bit Installationsanleitung: http://www.ekp.kit.edu/~quast/VM-DaA Enthaltene Software diverse Editoren zur Erstellung von Text / Programmcode Libreoffice (Textbearbeitung, Tabellenkalkulation und Präsentation) inc. texmath-Erweiterung zur Einbindung von Formeln mit LaTeX Textsatzsystem LaTeX Vektorgrafik inkscape C und C++ Compiler gcc / g++ python mit numpy, scipy und matplotlib gnuplot und qtiplot zur Datenanalyse und Visualisierung Datenanalyseframework ROOT RooFiLab zur interaktiven Funktionsanpassung mit Root python-Paket kafe zur Funktionsanpassung weitere Pakete problemlos nachladbar
Virtuelles Linux unter Windows VirtualBox herunterladen und installieren → https://www.virtualbox.org/ für Windows (alle Versionen), Mac OSX und Linux virtuelle Maschine herunterladen → http://www.ekp.kit.edu/~quast/VM-DaA Virtuelle Maschine über das Menü von VirtualBox starten → Arbeiten in kompletter Linux-Umgebung ideal zum Ausprobieren und Gewöhnen
Software unter Windows Um ein Windows-System (getestet unter Windows10) zu nutzen, muss einiges an zusätzlicher Software installiert werden: Hier die getesteten (und empfohlenen) Pakete mit Download-Links: – WinPython (32 bit Version): WinPython32-3.5.4.2Qt5.exe eine komplette Python-Umgebung mit diversen IDEs – DANTE LaTeX „texlive“: install-tl-windows.exe – iminuit (vers. 1.3) zur Funktionsanpassung iminuit für Windows wird in der python-shell mit Hilfe von „pip“ installiert: >>> pip install future >>> pip install iminuit.1.3.whl – putty und filezilla zum Datei-Transfer von / zu anderen Systemen – ein Ent- / Packprogramm, z.B. 7zip zum Packen und Entpacken von Archiven in Standard-Formaten (.zip oder auch .tar.gz oder .tgz) – Paket kafe zur Funktionsanpassung kafe (Ves. 1.3) >>> pip install kafe – evlt. das mächtige Datenanalyse-Framework root vom CERN: root_v5.34.34.win32.vc12.exe
Software unter Windows (2) Damit alles reibungslos zusammen spielt, müssen noch Pfade über die Systemsteuerung gesetzt werden: über das Menü (rechte Maustaste in Windows 10) Systemsteuerung > System und Sicherheit > System > Erweiterte Systemeinstellungen im sich dann öffnenden Fenster Doppelklick auf Path im sich darauf öffnenden Fenster folgende Pfade hinzufügen: X:\DAsoft\texlive\2017\bin\win32 X:\DAsoft\WinPython\python-3.5.4 X:\DAsoft bezeichet den Pfad zur Zusatzsoftware Evtl. einen Wert für root anlegen (falls es installiert ist) X:\DAsoft\root_v5.34.34\bin und eine neue Umgebungsvariable anlegen: PYTHONPATH mit dem Wert X:\DAsoft\root_v5.34.34\bin damit kann root unter python verwendet werden Der Beqeumlichkeit halber noch Dateien vom Typ .py mit python.exe verknüpfen: Rechtsklick auf Datei.py → Öffnen mit → andere App auswählen X:\DAsoft\WinPython\python-3.5.4\python.exe
Vorbereitete Software für Windows Um das Herunterladen der Pakete zu vereinfachen, gibt es eine nützliche Sammlung unter: http://www.ekp.kit.edu/~quast/vorlesung/CgDA/Software Nutzer: Students Passwort: only ● die Datei Win10/Dasoft.exe ist ein selbsentpackendes Verzeichnis mit allen Dateien für LaTeX, WinPython (incl. kafe) und Root („portable“ Versionen) Ohne Installation nach Setzen der Umgebungsvariablen lauffähig (z.B. auch von einem (schnellen) USB-Stick)
Software unter Linux/Mac OSx Viele Pakete sind unter Linux standardmäßig schon vorhanden, fehlende werden einfach über die Paketverwaltung zusätzlich installiert: LaTeX: texlive, texlive-science, texlive-extra-utils Python, python-numpy, python-matplotlib, python-scipy (wir arbeiten mit Version 3.5) mit idle-python3 Software zur Funktionsanpassung kafe: http://www.ekp.kit.edu/~quast/kafe Ich wünsche Ihnen Erfolg beim Installieren, viel Spaß beim Ausprobieren und uns allen ein gutes Gelingen des Kurses !
Tipp: Nutzerfreundliches Linux Mint https://linuxmint.com/ ● speziell für „Einsteiger“ ● basiert auf Ubuntu-Version mit Langzeit-Support ● grafische Oberfläche an Windows angelehnt ● kann parallel zu einer vorhandene Windows-Installation betrieben werden ● Umfangreiche Dokumentation im Internet und in (Computer-) Zeitschriften Praxis c't 9/2019, Seite 20 Linux Mint parallel neben Software zu diesem Windows installieren Kurs kann leicht Installieren Sie beide Betriebs- Nachinstalliert werden ! systeme nebeneinander. Dann profitieren Sie von den Vorteilen des Open- (Anleitung analog Source-Betriebssystems und die vertraute zu Ubuntu) Windows-Installation ist nur einen Neustart entfernt.
Sie können auch lesen