Computergestützte Datenauswertung - Vorlesung (Einführung in die) - KIT

Die Seite wird erstellt Niklas-Daniel Heller
 
WEITER LESEN
Computergestützte Datenauswertung - Vorlesung (Einführung in die) - KIT
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
Computergestützte Datenauswertung - Vorlesung (Einführung in die) - KIT
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
Computergestützte Datenauswertung - Vorlesung (Einführung in die) - KIT
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
Computergestützte Datenauswertung - Vorlesung (Einführung in die) - KIT
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
Computergestützte Datenauswertung - Vorlesung (Einführung in die) - KIT
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
Computergestützte Datenauswertung - Vorlesung (Einführung in die) - KIT
Interaktion mit dem Computer ...
Es gibt viele Wege:

                                      grafisch mit Finger und Gesten

     grafisch klicki-bunti mit Maus

                                                   Grafik & Textkonsole
       Shell auf der Textkonsole
Computergestützte Datenauswertung - Vorlesung (Einführung in die) - KIT
Arbeitsumgebung für diesen Kurs
Computergestützte Datenauswertung - Vorlesung (Einführung in die) - KIT
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
Computergestützte Datenauswertung - Vorlesung (Einführung in die) - KIT
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 !
Computergestützte Datenauswertung - Vorlesung (Einführung in die) - KIT
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