pip install mag413 Präsenzphase
xxx
13.1 Installation & erste, einfache Programme
13.1.1 Rechne Oxid-Gew% in Element-Gew% um – und umgekehrt
Ordne den beiden Variablen mg und o mit dem ›Assign‹ (=) Operator die jeweilige Atommasse zu. Lasse zwischen Variable/Operator/Wert jeweils ein Leerzeichen.
Bestimme nun den Umrechnungsfaktor von MgO Gew% nach Mg Gew% und ordne diesen der Variablen oxElFactor zu. Berechne damit die Mg Gew% folgender 3 MgO Gew% und gib das Ergebnis mit dem Befehl print() aus:
24.38 – 3.21 – 9.99
kommt nach der Übung
Bestimme dann den Umrechnungsfaktor von Mg Gew% nach MgO Gew% und ordne diesen der Variablen oxElFactor zu. Berechne damit die MgO Gew% folgender 3 Mg Gew% und gib das Ergebnis mit dem Befehl print() aus:
1.11 – 31.08 – 22.14
kommt nach der Übung
Die mg Variable soll nun allgemeiner geschrieben werden, damit man nicht verwirrt ist, wenn man statt MgO in Mg, z.B., MnO in Mn umrechnen will. Kopiere Deinen Code in eine neue Zelle und ersetze mg durch den allgemeineren Variablennamen el (für ›Element‹).
kommt nach der Übung
Gib dem gesamten notebook einen Titel und eine kurze Beschreibung vor den einzelnen Zellen. Füge Kommentare in den Code ein. Das gelingt mit # Dies ist ein Kommentar.
13.1.2 Installiere das mag4 Package
Zuerst installieren wir ein Package, mit dessen Hilfe wir einfach auf Dateien zugreifen können:
Bei JupyterDesktop oder Anaconda muss das nur einmal gemacht werden. Bei Colab jedes Mal. Dann importieren wir das Package mit:
import mag4 as mgMit mg.available_datasets() können wir nachschauen, welche Datensätze vorhanden sind:
mg.available_datasets().head(3)
# Die Methdoe .head(3) kann weggelassen werden, das verkürzt die Anazahl der Zeilen auf lediglich 3.| dois | Upload Date | Name | Description | Version | Licence | Keywords | Type | Comments | Short Title | Comment | ORCID | Creation Date | References | Title | Request doi | Source | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | NaN | 21.01.2024 | Dominik Hezel | xxx | NaN | CC-BY-SA | xxx | Database Dataset | NaN | eastsearid | NaN | 0000-0002-5059-2281 | NaN | NaN | Easter Seamount Chain Salas Y Gomez Ridge | NaN | Georoc |
| 1 | NaN | 21.01.2024 | Dominik Hezel | xxx | NaN | CC-BY-SA | xxx | basic | NaN | chondprop | NaN | 0000-0002-5059-2281 | NaN | NaN | Chondrite Properties | NaN | NaN |
| 2 | NaN | 2025-05-16 | Dominik C. Hezel | example dataset | NaN | CCO | chondrules, Fe, isotopes, example data | Example | NaN | chdfeisoexdat | NaN | https://orcid.org/0000-0002-5059-2281 | NaN | NaN | chondrule Fe isotope example data | no | NaN |
Und mit mg.get_data('name') können wir einen Datensatz laden:
mg.get_data('bastcrat').head(3)| Citations | Tectonic Setting | Location | Location Comment | Latitude (Min) | Latitude (Max) | Longitude (Min) | Longitude (Max) | Land or Sea | Elevation (Min) | ... | RE187_OS188 | HF176_HF177 | HE3_HE4 | HE3_HE4(R/R(A)) | HE4_HE3 | HE4_HE3(R/R(A)) | K40_AR40 | AR40_K40 | Unique Id | Unnamed: 171 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | [9689] | ARCHEAN CRATON (INCLUDING GREENSTONE BELTS) | BASTAR CRATON / SOUTHERN BASTAR CRATON / CHAND... | NaN | 18.8 | 18.9 | 81.25 | 81.7 | SUBAERIAL | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 268341 | NaN |
| 1 | [9689] | ARCHEAN CRATON (INCLUDING GREENSTONE BELTS) | BASTAR CRATON / SOUTHERN BASTAR CRATON / CHAND... | NaN | 18.8 | 18.9 | 81.25 | 81.7 | SUBAERIAL | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 268342 | NaN |
| 2 | [9689] | ARCHEAN CRATON (INCLUDING GREENSTONE BELTS) | BASTAR CRATON / SOUTHERN BASTAR CRATON / CHAND... | NaN | 18.8 | 18.9 | 81.25 | 81.7 | SUBAERIAL | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 268343 | NaN |
3 rows × 172 columns
13.1.3 Rechne jegliche Oxid-Gew% in Element-Gew% um – und umgekehrt
Bevor man ein Programm schreiben kann muss man gut überlegen, was wie gerechnet werden soll. Auch dafür ist die Umrechnung von Oxid in Element ein gutes Beispiel, denn, es gibt nicht nur MgO oder MnO, sondern auch SiO2, Al2O3, P2O5, usw. D.h., die Anzahl der Kationen und Anionen ist nicht immer identisch. Überlege wie ein Programm aussehen muss, um auf möglichst einfache Weise, d.h. mit möglichst wenig Aufwand/Eingaben alle Oxide in Elemente umzurechnen (und umgekehrt). Verwende die Valenz eines Kations, um das korrespondierende Oxid heraus zu finden, bzw. um damit zu rechnen (z.B.: Al3+, daher Al2O3).
13.2 Rufe eine selbst geschriebene Mischungs-Funktion auf
13.2.1 Erweitere das mineralogyModule
Wir wollen unser mineralogyModule erweitern, um ein kleines Package mit nützlichen Befehlen für mineralogische Prozesse zu erhalten. Natürlich sollen die Befehle verständlich sein – auch noch in ein paar Wochen oder Monaten – und entsprechend kommentiert. Die Formeln findest Du im Internet oder kannst sie Dir selbst herleiten.
Folgende Befehle wollen wir erstellen und dem Package hinzufügen:
Fraktionierte Kristallisation (Batch Melting). Such Dir die Formel dazu aus dem Internet, es spielt keine Rolle, ob das jetzt die exakt richtige Formel ist oder nicht.
Aus einer Reihe von Messungen soll automatisch der Mittelwert, sowie die Standardabweichung berechnet werden. Ein Parameter im Befehl ist der Faktor für die Standardabweichung, also ob 1 mal Standardabweichung, 2 mal Standardabweichung, usw. Such Dir die Formel dazu aus dem Internet
Schreibe den Befehl von Aufgabe zwei in einer Variante: diesmal sollen alle Standardabweichungen (also: 1 mal Standardabweichung, 2 mal Standardabweichung, usw.) ausgegeben werden, bis hin zu der x-ten Standardabweichung, die als Parameter Input in den Befehl ist. Such Dir die Formel dazu aus dem Internet
Prolog Mit z.B. der Mikrosonde lässt sich die chemische Zusammensetzung aller Minerale in einem Schliff bestimmen. Außerdem lässt sich aus BSE-Bildern oder element maps der Modalbestand der Minerale bestimmen. Aus der chemischen Zusammensetzung der Elemente, sowie dem Modalbestand der Minerale lässt sich dann die Gesamtzusammensetzung der Probe berechnen. Das ganze nennt sich dann ›Modal Recombination‹.
Aufgabe Erstelle einen Befehl für Modal Recombination und beachte, dass die Minerale unterschiedliche Dichten haben. (Am Besten selbst herleiten.)
Überlege Dir schließlich noch ein bis zwei weitere Prozesse o.ä., für welche Du Dir die Formel heraus suchst, und füge sie dem Modul hinzu. Es muss nichts Kompliziertes sein, im Vordergrund steht die Übung das hinzubekommen.
kommt nach der Übung
13.3 Erste Schritte in ›Data Science‹
13.3.1 Cheat Sheet für Pandas
Als erstes wollen wir uns ein kleine ›Cheat Sheet‹ erstellen. Kennt man von Klausuren: ein Spickzettel, jedoch in dem Fall ein erlaubter.
Nimm ein Din A4 Blatt und einen Stift
Zeichne eine erste, einfache Tabelle (z.B. Tab. A unten), in der nur eine Spalte markiert ist. Schreibe daneben den pandas-Befehl, um die Werte aus der markierten Spalte zu extrahieren.
Mache das dann auch für eine Zeile, … und immer komplexere Extraktionsmöglichkeiten (z.B. Tab. B), bis Du so ein halbes bis ein Dutzend Möglichkeiten beisammen hast.
13.3.2 Darstellung selektierter Daten aus einer Datenbank in Diagrammen
Nun wollen wir verschiedene Datensätze aus zwei Datenbanken extrahieren und in einem Diagramm darstellen. Versuche die Aufgaben zu lösen, ohne im Unterrichtsmaterial nachzusehen – außer dem Skript. Versucht das gemeinsam zu lösen.
Verwende mag4 um die beiden Dateien ›Tanzania Craton Archean.csv‹ und ›West African Craton.csv‹ zu importieren.
Nun sollen in einem Diagramm Daten aus beiden Datensätzen in einem Scatter-Plot dargestellt werden. Also auf jeder Achse ein Element, das über eine Variable gewählt werden kann.Auf den Achsen soll das Element und die Einheit stehen.Im Diagramm soll eine Legende Auskunft geben, welche Daten dargestellt sind.
Im gleichen Diagramm sollen für Tanzania nur die Referenzen [11947], [12698], [13777] dargestellt werden, und für West Africa nur die Referenz [8624].
Im gleichen Diagramm soll Mg gegen Si dargestellt werden, jedoch nur Mg-Konzentrationen im Bereich von 12 bis 22 Gew%, und Si-Konzentrationen zwischen 21 und 25 Gew%.
Recherchiere im Internet, wie man den Punkten andere Farben geben kann.
13.4 Interaktive Elemente & erste Programme
Laden einer Datei
Verwende mag4 um die Datei ›Bastar Craton.csv‹ einzulesen:
import mag4 as mg
df = mg.get_data('bastcrat')Schreibe ein Programm für ein interaktives Diagramm
Schreibe nun ein Programm welches ein Diagramm zeichnet. Es sollen die Daten von zwei Regionen gleichzeitig dargestellt werden können, dabei soll es folgende, interaktive Möglichkeiten geben:
- Welche Daten/Dateien dargestellt werden, soll über zwei DropDown Menüs ausgewählt werden. Die zur Auswahl stehenden Daten/Dateien sollen sein: Bastar Craton, Tanzania Craton Archean, West African Craton.
- Das Element, welches auf der jeweiligen Achse dargestellt wird, soll über zwei DropDown Menüs frei gewählt werden können.
- Es soll ausgewählt werden können, ob wt% oder wt-ppm als Einheit angegeben wird.
- Automatisch soll in der Legende der korrekte Daten-/Datei-Name stehen.
- Es soll über ein Dropdown-Menü ausgewählt werden können, ob diese Legende rechts oben, rechts unten, links oben oder links unten angezeigt wird.
- Schließlich sollen über einen Schieberegel nur die Daten dargestellt werden, welche größer als der mit dem Schieberegler ausgewählte Wert sind.
13.5 Komplexeres Plotten & Statistik I
List Comprehension
Verwende list comprehensions um Listen mit:
- Quadratzahlen der Zahlen von 0 bis 20
- den Mittelwert der Quadratzahlen der Zahlen von 0 bis 20
- den Mittelwert der ersten 8 Quadratzahlen der Zahlen von 0 bis 20
zu erstellen.
Practise von 5.5
Mache die Practise von Einheit 5.5 und verwende weitere/andere Datensätze von Berkeley Earth Global Temperature.
13.6 Statistik II – Regression & Darstellung von Fehlerbalken
Lade einen Georoc Datensatz von mag4. Wähle 2 Elemente aus und stelle diese gegeneinander dar. Die Analytik hat einen relativen Fehler von 2%, der für jeden Messpunkt mit dargestellt werden soll. Zeichne schließlich noch eine Regression durch die Punkte.
Bonus Gestalte das Diagramm interaktiv mit Checkboxes, um die Fehlerbalken sowie die Regression ein- und ausblenden zu können. Biete dazu verschiedene Möglichkeiten der Regression an: linear, quadratisch, logarithmisch, ..
13.7 API Requests und Auswertung
Diagramme mit Pyrolite
Für Deine Abschlussarbeit willst Du ein paar ternäre Diagramme darstellen, sowie Gesteinsanalysen im TAS-Diagramm darstellen, und anschließend die Klassifikation für die verschiedenen Gesteine ausgeben lassen. Nach etwas Recherche findest Du im Internet folgende Python Library für Geochemiker:innen:
https://pyrolite.readthedocs.io
Installiere zunächst die Library. Schreibe dann ein Programm, mit dem Du ein ternäres Diagramm darstellen lässt – z.B. für eine GeoROC Datei die Du von mag4 lädst. Da Du verschiedene Elemente auf den Ecken darstellen willst, schreibe ein interaktives Diagramm, in dem über Dropdown Menüs ausgesucht werden kann, welches Element in welcher Ecke dargestellt wird. Verwende im nächsten Schritt den Befehl für TAS-Diagramme, um die Daten im TAS Diagramm darzustellen. Gib außerdem eine Liste aus, in der die Gesteine klassifiziert werden.
Wenn noch Zeit bleibt, schaue Dich ein wenig in der Pyrolite-Library um – und experimentiere mit ein paar weiteren Befehlen.
13.8 Digital Literacy [als Vorlesung]
Keine Übung
13.9 Ausfall wegen Geländeübung
Keine Übung
13.10 Statistik III – Beschreibende Statistik
13.10.1 Untersuchung eines Datensatzes
Lade von mag4 einen Georoc Datensatz, z.B. Banda Arc. Berechne den interquartil-range (iqr) von Si, Ti, Al, Cr, Mg, Fe, oder gleich von allen chemischen Elementen.
Ein Ausreißer aus einem Datensatz soll definiert sein als ein Wert der außerhalb des Bereichs von 25% Quantil-Werts minus 1.5 x iqr bis 75% Quantil-Werts plus 1.5 x iqr. Wie viele Werte von jedem chemischen Element sind Ausreißer? Stelle diese Anzahl in einem Plot dar, mit den chemischen Elementen auf der x-Achse und der Anzahl der Ausreißer auf der y-Achse.
Bonus Schreibe Obiges in einen Befehl, in den der Faktor vor dem iqr als Argument eingeht. Ändere dann den Faktor und schaue im Diagramme, wie sich die Anzahl der Ausreißer ändert.
Stelle die Variation der chemischen Elemente in einem Boxplot dar.
13.10.2 Gleitender Durchschnitt der San Andreas Plattenverschiebung
Lade von mag4 die Datei San Andreas Creep. Stelle die Plattenbewegung gegen die Zeit dar. Plotte zusätzlich den gleitenden Durchschnitt der Plattenbewegung.
13.11 Statistik IV - Verteilungen & Fits
Lade von mit pd.read_csv({url}) von Berkeley Earth Global Temperature einen Datensatz.
- Stelle die Variation des Fehlers in einem Line-Plot dar
- Stelle die Variation des Fehlers in Histogramm dar
Macht es Sinn die Variation des Fehlers über den gesamten Berichtszeitraum in einem Histogramm darzustellen? Was wäre eine bessere Lösung?
Lade eine Georoc Datei von mag4.
- Filter den Datensatz nach nur einer Lokalität
- Wähle ein Element und stelle dessen Variation in einem Histogramm dar
- Stelle die Variation mehrerer Elemente im selben Histogram dar, verwende ein alpha für etwas Transparenz der Histogramm-Balken
Welche absolute und welche relative Variationen haben die Daten einer einzelnen Lokalität? Sind das Messschwankungen oder echte Unterschiede?
13.12 GitHub & Streamlit – Einführung in interaktive Web-Tools
Web-Interface Erstelle eine Streamlit-Webseite mit folgenden Elementen:
- Ein Dropdown Menü, aus dem eine Georoc-Datei ausgewählt werden kann, die von mag4 geladen wird.
- Ein Scatter-Plot, bei dem über Drop-Down Menüs ausgewählt wird, welche Elemente auf den Achsen geplottet werden.
- Eine Checkbox. Wird diese angeklickt soll der Mittelwert der dargestellten Daten mit geplottet werden, inkl. Fehlerbalken, welche den 2 s.d. Des Mittelwerts anzeigen.
- Eine zweite Checkbox, die den Median anzeigt.
Bonus
- Einen Line-Plot, der die Häufigkeiten der seltenen Erd-Elemente auf der y- und SEE auf der x-Achse darstellt.
- Verwende ChatGPT, um die Probenlokalitäten auf einer interaktiven Karte (z.B. leaflet) darzustellen.
- Füge Unterseiten hinzu (‚Multipage’ – schaue dazu in der streamlit Dokumentation nach)