Upload
chlotichilda-nennig
View
106
Download
0
Embed Size (px)
Citation preview
Grundlegende statistische Methoden der geowissenschaftlichen
Datenauswertung am Computer
Methodenkurs im SS 2006
Prof. Heiko Paeth
Wissenschaftliche Arbeitsschritte
Hypothese,Fragestellung,
Zielsetzung
Daten-akquisition(Messung,
Modellierung)
Datenanalyse(Qualitäts-kontrolle,Statistik)
Daten-visualisierung
(Graphiken,Karten)
Präsentation(Medien,Poster,
Vortrag, …)
1.
2.
3.
4.
5.
Schritt 1: Fragestellung
Beschreibung der charakteristischen Ausprägungen des Mittelmeer-klimas:
• mittlere Zustände
• typische Variabilität
• Extremwerte
• Instationaritäten
Klimadefinition
• Großraum
• Region
• Teilregion
• Gitterboxen
{
Schritt 2: Datenakquisition
in Ermangelung verfügbarer hochauflösender, vollständiger und homogener Beobachtungsreihen: Daten von einem regionalen Klimamodell (REMO)
• Sektor: 30°W-60°E ; 15°S-45°N• räumliche Auflösung: 0,5° horizontal; 20 Hybridlevel vertikal• zeitliche Auflösung: Tageswerte• Antriebsdaten: globale “Beobachtungsdaten“ bzw. Klimamodelldaten• Zeitraum 1: 1979-2003 (natürliche und anthropogene Antriebe)• Zeitraum 2: 2000-2025 (Treibhausgasanstieg, Landnutzungsänderungen)
Schritt 2: Datenakquisition
Jahresgangder solaren
Einstrahlung
atmosphärischerAntrieb aus6-stündigen
globalen Datensätzen
atmosphärischerAntrieb aus6-stündigen
globalen Datensätzen Meeres-
oberflächen-temperaturen
Boden-modell
Jahresgang vonVegetationsanteil
WaldanteilAlbedo
Orographie
Wolkenund
Nieder-schlag
Strahlungs-schema
mit CO2, CH4 , NOx,
FCKW
Parameterisierungen
...t
q;...
t
v;...
t
T;...
t
p
Druck, Temperatur,Wind, Feuchte …
die Parametrisierungen und unbekannten Anfangsbedingungen implizieren bei allen Modellen Unsicherheiten und Fehler
Beobachtungs- und Modelldaten verhalten sich wie folgt zueinander:
selbst in einem perfekten Modell gilt:
eine komplexe, nichtlineare Realität lässt sich niemals mathematisch exakt mit einem Modell reproduzieren
im vorliegenden Fall ist das regionale Klimamodell in hinreichendem Einklang mit dem beobachteten Klimasystem im Mittelmeerraum
Schritt 2: Datenakquisition
),,,(),,,(),,,(),,,( ' zyxtzyxtEEzyxtXzyxtY mmmmo
),,,(),,,(),,,( ' zyxtzyxtXzyxtY mmo
realerWert
simulierter Wert
systema-tischerFehler
raumzeit-abhängiger
Fehler
zufälligerFehler
Schritt 3: Datenanalyse
die statistische Auswertung der Daten soll mit der Programmiersprache FORTRAN in der Entwicklungsumgebung des Betriebssystems LINUX erfolgen:
• Karten der jährlichen und saisonalen Mittelwerte• Darstellung der synoptischen, saisonalen und interannuellen Variabilität• Zeitreihen der regionalen und großräumigen Entwicklung• Entwicklung von Klimadiagrammen• Berechnung von Hovmöller-Diagrammen• Cluster-Analyse • Hoch- und Tiefpassfilterung• Standardisierung von Zeitreihen• Berechnung von Zeitreihentrends• räumliche und zeitliche Korrelation• multiple Regression• Autokorrelation• Signifikanztests• Berechnung von Composites• geographische und orographische Profile• Bestimmung der Regenzeit• Darstellung von Verteilungsfunktionen• Bestimmung von Extremereignissen• Hauptkomponentenanalyse• …
konventionelle Programme: Maus-gesteuert, intuitiv, Windows-kompatibel, verbreitet, unflexibel, teuer, Nutzer-orientiert (z.B. Excel)
professionelle Programme: Skriptsprachen-basiert, lernaufwendig, Linux-kompatibel, hochflexibel, Freeware, Layout-orientiert (z.B. GMT)
Schritt 4: Datenvisualisierung
Schritt 5: Präsentation
Vortrag, Posterpräsentation, Zeitschrift, Internet:
Leistungsnachweise
Gruppenarbeit:
Einzelarbeit:
• Posterausstellung zum Thema Mittelmeerklima basierend auf den gemeinsam erarbeiteten statistischen Auswertungen und graphischen Darstellungen• Internetseiten mit Klimadiagrammen zu einzelnen Teilregionen
• Präsentation eines “Mini-Projektes“ durch jeden Kursteilnehmer in der letzten Sitzung auf der Grundlage der oben beschriebenen Arbeitsschritte
Literatur
Statistik:
Fortran:
Mittelmeerklima:
• Lionello, P.; Malanotte-Rizzoli, P. and Boscolo, R. (Eds.): The Mediterranean Climate: an Overview of the Main Characteristics and Issues. Elsevier, Amsterdam, 2006.
• Lamprecht, G.: Fortran77. Einführung in die Programmiersprache. Vieweg, Braunschweig, 1987.• Engeln-Müllges, G. und Niederdrenk, K.: Fortran90. Grundkurs Computerpraxis. Rowohlt, Hamburg, 1996.
• Bahrenberg, G.; Giese, E. und Nipper, J.: Statistische Methoden in der Geographie, Bd. 1+2. Teubner, Stuttgart, 1990/1992.• Schönwiese, C.-D.: Praktische Statistik für Meteorologen und Geowissenschaftler. Bornträger , Stuttgart, 1992.• Clauß, G.; Finze, F.-R. und Partzsch, L.: Statistik für Soziologen, Pädagogen, Psychologen und Mediziner. Harri Deutsch, Frankfurt/Main, 2004.• von Storch, H. and Zwiers, F.W.: Statistical Analysis in Climate Research. Cambridge University Press, 1999.
Rechnerlandschaft am GIUW
Geo-Pool: 13 PCs mit Betriebssystem Windows XP
CIP-Pool: 16 PCs mit Betriebssystem Windows XP:
die Partition k:\geozip\ ist als gemeinsame Plattform von allen Rechnern aus erreichbar und dient der Bereitstellung größerer Datenmengen
CIP : Computer Investitions Programme (Rechner zu Lehrzwecken an Hochschulen)
jeder Teilnehmer hat (hoffentlich) einen Account (Username, Password)
für Programmiersprache Fortran und Datenvisualisierungsprogramm GMT wird Betriebssystem Linux benötigt (vorläufig: Emulation (Wetteifer, Nachbildung) unter Windows)
Arbeitsablauf
bei der Bearbeitung wissenschaftlicher Fragestellungen werden meist verschiedene Prozesse und Programme am Computer genutzt:
Startendes Betriebs-
systems
Öffnen einer zu bearbeitenden
Datei mit einemEditor
Bearbeiteneines
Textdokuments,einer Graphik
oder einesProgramms
mit denEditorbefehlen
Abspeichernder
bearbeitetenDatei auf einem
Speicher-medium
(Festplatte, CD)
Übersetzen(Kompilieren)
des Programms
in Maschinen-sprache
Ausführendes
kompiliertenProgramms
Nach-bearbeitungdes berech-
netenErgebnisses
(weiteresProgramm,
Visualisierung)
Dokumentationoder
Präsentationdes berech-
netenErgebnisses(Ausdruck,
Datei)
Starten des Betriebssystems
Einschalten des Computers bewirkt automatisch Booten: Betriebs-system wird vom Master Boot Record auf der Festplatte in Hauptspeicher (RAM) geladen
nach Booten ist eine vollständige Konsole verfügbar: Eingabeeinheit (Maus+Tastatur) sowie Ausgabeeinheit (Bildschirm)
Eingabeoberfläche kann graphisch (Windows, Maus) oder befehls-zeilenorientiert (DOS, Tastatur) sein
Einloggen (Benutzername+Kennwort) führt auf die graphische Windows-Eingabeoberfläche, die selbst ein Programm ist und nun weitere Programme zugänglich macht
für Linux-Anwendungen wird Emulation gestartet mit Desktop-Icons
cygwin oder X
Betriebssystem Windows
folgende Anwendungen (Programme) werden im Verlaufe des Methodenkurses benötigt:
wichtigste Befehle im DOS-Eingabemodus:
DOS-Eingabeaufforderung (befehlszeilenorientiert): Dateiverwaltung, Kopieren
Excel-Tabellenkalkulation: Visualisierung der berechneten Ergebnisse
Editor: Öffnen, Bearbeiten und Speichern der Fortran-Programme
Powerpoint: Präsentation der Ergebnisse (Poster)
cd
md
rmdir
dir
copy
del
move
edit
Verzeichnis wechseln [change directory]: cd verz_name bzw. cd ..
Verzeichnis erstellen: md fortran
Verzeichnis löschen (muss leer sein)
Anzeigen der Dateien im aktuellen Verzeichnis
kopieren einer Datei: cp file1 ..\verz_name\file2
löschen einer Datei
verschieben bzw. umbennen einer Datei
einfacher ASCII-Editor mit Maussteuerung
Betriebssystem Linux
Starten der Linux-Emulation unter Windows öffnet eine befehlszeilen-orientierte Eingabeoberfläche (Shell) oder eine graphische Bedienerober-fläche (X-Window)
hier wird die sogenannte Bourne-Again Shell “bash“ verwendet
Einstellungen für das Erscheinungsbild der Shell werden in den Umgebungsdateien /etc/profile und /home/user/.bashrc getätigt (wirksam mit source .bashrc oder bei Neustart der Shell):
zu praktisch jedem Programm gibt es Hilfsseiten (Manual Pages), die im Befehlszeilenmodus über man befehl_name aufgerufen werden
Prompting
Aliasing
globale Pfadangaben
…
Betriebssystem Linux
wichtigste Befehle im Linux-Eingabemodus:
cd
mkdir
rmdir
cp
rm
mv
joe/vi
pwd
ls
chmod
df
du
find
more
grep
diff
whoami
date
ps
kill
wc
Verzeichnis wechseln [change directory]: cd verz_name bzw. cd ..
Verzeichnis erstellen: md fortran
Verzeichnis löschen (muss leer sein)
kopieren einer Datei: cp file1 ../verz_name/file2
löschen einer Datei
verschieben bzw. umbennen einer Datei
einfache ASCII-Editoren mit Tastensteuerung
Anzeigen des aktuellen Verzeichnisses
Anzeigen der Dateien im aktuellen Verzeichnis: ls –l , ls –la , ls –lrt
Änderung von Zugriffsrechten: chmod (u,g,o)(+,-)(r,w,x)
Abfrage der Speicherbelegung von Partitionen
Abfrage des Speicherbelegung von Verzeichnissen
Suchen von Dateien: find / -name file_name
seitenweise Ausgabe von Dateiinhalten am Bildschirm ohne Bearbeitungsoption
Durchsuchen von ASCII-Dateien nach Textmustern
Feststellung von Unterschieden zwischen Dateien
Ausgabe der aktuellen User-ID
Ausgabe von Datum und Zeit
Abfrage laufender Prozesse
Abbruch laufender Prozesse
Zählen von Dateien im aktuellen Verzeichnis
Bash-Shell
Start der Shell mit Mausklick auf den Button unter Windows
Beenden der Shell mit exit
Cursor auf / ab ruft letzte Befehle im Eingabemodus auf
Tabulatortaste |↔| ergänzt begonnene Befehle oder Dateinamen
nachgestelltes & schickt Programmausführung in den Hintergrund und gibt Shell frei
Pipe-Symbol | verbindet zwei Befehle, z.B.: ls –l | wc
Joker-Symbol * Platzhalter für Datei- und Verzeichnisnamen
einzelne Shell-Befehle können auch in Shellskripten gebündelt werden
joe-Editor praktischer ASCII-Editor unter Linux mit Tastensteuerung: Aufruf mit joe file_name
Befehle werden über Strg -Taste angesprochen (siehe ^KH), z.B.:
beim Abspeichern wird Sicherheitskopie file_name~ erzeugt
^KX
^C
^KU
^KV
^KB
^KK
^KC
^KM
^KY
^KF
^L
^KL
^_
^KO
^KE
Verlassen und Abspeichern
Verlassen ohne Abspeichern
in erste Zeile springen
in letzte Zeile springen
Anfang markierter Bereich
Ende markierter Bereich
Kopieren des markierten Bereichs
Verschieben des markierten Bereichs
Löschen des markierten Bereichs
Textstring in Datei suchen
nächsten Textstring anzeigen
in bestimmte Zeile springen
letzten Befehl rückgängig machen
Fenster teilen
neue Datei öffnen
Dateisystem
elektronische Speicherung von Informationen erfolgt binär mit den Zuständen 0 und 1 (Bit); 8 Bit-Informationen ergeben ein Zeichen (Byte)
Zahlen im Wertebereich ± 231=2·109 können mit 4 Bytes dargestellt werden, z.B.:
Vielzahl von Zeichen oder Zahlen in Dateien abgespeichert, die auf dem Computer einem Ordnungsprinzip (Dateisystem) unterliegen:
1 0 1 0 1 084 = 1·26 + 0·25 + 1·24 + 0·23 + 1·22 + 0·20
Partitionen,Stammverzeichnis:
c:\d:\
/verz1//verz2/
Verzeichnisbaum:
uverz1\uuverz1\... uuverz2\...uverz2\uuverz3\... uuverz4\...
uverz1/uuverz1/… uuverz2/…
Einzeldateien:
file_name.suffix
[Buchstaben Zahlen . - _ ]/[, / \ ? * : ; @ ~]
relative Adressierung von Verzeichnissen und Dateien:
absolute Adressierung von Verzeichnissen und Daten:
Dateiattribute unter Linux:
wichtigste Verzeichnisse für Methodenkurs:
Dateisystem
Windows & Linux : cd ../../uverz1/uuverz2
Windows : cd c:\uverz1\uuverz2
Linux : cd /verz1/uverz2/uuverz3
drwxr-xr-x 1 user group 1295382 Datum : Verzeichnis
-rwxr-xr-x 1 user group 1295382 Datum : Datei
readwrite fürexecute
UserGroupOthers
Linux Windows
Home-Verzeichnis:
Fortran-Verzeichnis:
Ergebnis-Verzeichnis:
Rohdaten-Verzeichnis:
/home/user/
/home/user/fortran/
/home/user/output/
/cygdrive/k/geozip/…/paeth/
c:\Programme\cygwin\home\user\
c:\Programme\cygwin\home\user\fortran\
c:\Programme\cygwin\home\user\output\
k:\geozip\...\paeth\
Fortran
Fortran steht für Formula Translator: speziell für formelmäßige Berechnungen mit dem Computer
Hochsprache: Sprachelemente sind an naturwissenschaftlich arbeitende Menschen angepasst (mathematische Funktionen etc.)
Versionen: Fortran77 (1978), Fortran90 (1991), Fortran95 (1995)
auch heute noch Basissprache für praktisch alle Modellanwendungen in den Naturwissenschaften
alternativ auch C und C++ (seit 1990): analoge Struktur, andere Syntax
Dateien mit Fortran-Quellcode haben die Dateiendung .f bzw. .for
Compiler
die Übersetzung vom für den Menschen verständlichen Quellcode zum maschinenlesbaren Executable wird von einem Compiler bewerkstelligt
Fortran-Compiler für Windows sind meist sehr teuer oder haben Eigenarten bzgl. des Quellcodes
deshalb hier kostenloser Fortran-Compiler von GNU unter Linux-Emulation
Aufruf des Compilers im Befehlszeilenmodus von Linux:
g77 –o file_name.exe file_name.f [Optionen, Bibliotheken]
mit alias-Befehl bzw. Shellskript:
g77 file_name
User erhält automatisch das Recht, das Executable auszuführen
Arbeitsschritte
das Arbeiten mit Fortran beinhaltet i.d.R. die folgenden Arbeitsschritte:
Starten einesbeliebigenTexteditors
(ASCII, nicht Word & Co.)
Bearbeitender Textdatei
mit demFortran-
Quellcode(“Program-
mieren“)
Abspeichernder
Quellcode-Datei
Aufrufdes Compilers
im Befehls-zeilenmodus
Ausführendes
Executablesim Befehls-
zeilenmodus
Editierenoder
Weiter-verarbeiten
der Ergebnis-datei
Allgemeine Form des Quelltextes
Fortran-Befehle werden im Quellcode zeilenweise in Datei geschrieben und nach dem Kompilieren auch zeilenweise ausgeführt
allgemein ist in der Quellcode-Datei zu beachten:
nur eine Anweisung pro Zeile
zwischen Groß- und Kleinschreibung wird nicht unterschieden
Spaltenbelegung:
1-5 : Anweisungsmarke (Label, Kommentarzeichen)
6 : Zeichen für Zeilenfortsetzung
7-72 : Raum für Anweisungen (Fortran-Befehle)
>73 : vom Compiler nicht interpretierter Raum für Kommentare
Sprachelemente
hier werden nur die wichtigsten Sprachelemente zusammengefasst; am besten lässt sich der Sprachumfang direkt beim Programmieren erweitern
end logisches Ende des Programms
program bezeichnet in erster Programmzeile den internen Programmnamen
implicit none schaltet implizite Variablendeklaration aus
real
integer
character
logical
Deklaration von Variablen als Fließkommazahl, ganze Zahl, Zeichenkette oder Binärwert (wahr, falsch)
+
-
*
/
**
sqrt()
exp()
log()
max()
cos()
sin()
arithmetische Operatoren
mathematische Funktionen
Sprachelemente
.LT.
.LE.
.EQ.
.GE.
.GT.
.NE.
arithmetische Vergleichsoperatoren
.AND.
.OR.
.NOT.
logische Operatoren
// Verkettung von Zeichenketten
parameter Zuweisung von Konstanten
data Zuweisung von Konstanten in einem Vektor
print Ausgabe von Ergebnissen auf Standardausgabe (Bildschirm)
open Öffnen von Dateien
close Schließen von vorab geöffneten Dateien
write Schreiben von Ergebnissen auf Bildschirm oder in Datei
read Lesen von INput vom Bildschirm oder aus Datei
do … enddo wiederholte Ausführung von Programmteilen
if … then … else … endif
bedingte Ausführung von Programmteilen
Beispielprogramm
program beispiel_fortran_programm implicit nonec **********************************************************c * - dieses Programm vereint beispielhaft einige der *c * wichtigsten Sprachelemente von Fortran *c * - das Programm liest Temperaturen in Grad Celsius ein *c * rechnet in Kelvin um und schreibt das Ergebnis in *c * eine neue Datei *c **********************************************************c---- Vereinbarungsteil ---------------------------------------- integer nt,ja,bs character infile*11,outfile*10 real kv parameter(infile='celsius.dat', ! Input-Datei mit Werten 1 nt=11, ! Anzahl der Zeitpunkte 1 kv=273.15, ! Umrechnungsgroesse 1 bs=1, ! 0=nicht ; 1=Bildschirmausgabe 1 outfile='kelvin.dat') ! Output-Datei fuer Ergebnisse integer jahr(nt) real temp(nt),neutemp(nt)c---- Temperaturzeitreihe aus ASCII-Datei einlesen ------------- open(11,file=infile,form='formatted') do ja=1,nt read(11,'(i6,f8.1)') jahr(ja),temp(ja) enddo close(11) write(6,*) 'Daten eingelesen !'c---- Input-Daten am Bildschirm ausgeben ----------------------- write(6,'(a19)') ' Eingelesene Daten:' do ja=1,nt write(6,'(2i6,f10.2)') ja,jahr(ja),temp(ja) enddo
Beispielprogramm
c---- Temperaturdaten umrechnen -------------------------------- do ja=1,nt neutemp(ja)=temp(ja)+kv enddo write(6,*) 'Daten umgerechnet !' c---- neue Temperaturdaten in Datei schreiben ------------------ open(21,file=outfile,form='formatted') do ja=1,nt write(21,'(i6,f8.1)') jahr(ja),neutemp(ja) enddo close(21) write(6,*) 'Neue Temperaturdaten in Datei geschrieben !'c---- ggf. neue Temperaturdaten auf Bildschirm schreiben ------- if (bs.eq.1) then write(6,'(a20)') ' Umgerechnete Daten:' do ja=1,nt write(6,'(2i6,f10.2)') ja,jahr(ja),neutemp(ja) enddo else write(6,'(a45)') ' Sie haben keine Ergebnisausgabe gewuenscht !' endifc---- Schluss -------------------------------------------------- write(6,*) 'Das Programm endet nun. Einen schoenen Tag noch!' end
Statistische Verfahren
arithmetisches Mittel:
Varianz:
Standardabweichung:
Variationskoeffizient:
Standardisierung:
Tiefpassfilterung:
Hochpassfilterung:
n
iixn
x1
1
n
ii xx
ns
1
22 )(1
1
n
ii xx
ns
1
2)(1
1
%100x
sv
s
xxx ii
ˆ
2
2
1'
fi
fij
ji xf
x
iii xxx '"
Statistische Verfahren
n
ii
n
iii
xx
yyxxb
1
2
1
)(
))(( linearer Trend:
y-Achsenabschnitt:
Regressionsgerade:
Korrelationskoeffizient:
Bestimmtheitsmaß:
xbya
iii
ii
axby
axby
ˆ
n
ii
n
ii
n
iii
yyxx
yyxxr
1
2
1
2
1
)()(
))((
%1002 rB
Statistische Verfahren
Autokorrelation:
Kreuzkorrelation:
multiple Regression:
n
i
ni
n
i
ni
n
i
ni
ni
A
xxxx
xxxxr
1
2..1
1
2..1
1
..1..1
)()(
))((
n
ii
n
ii
n
iii
C
yyxx
yyxxr
1
2
1
2
1
)()(
))((
yXXXa
xaay
TT
m
jijji
1
10
)(
ˆ
#-- Shell angeben -----------------------------------------------------------
#!/bin/sh
#-- Daten in ASCII einlesen und in GRID umwandeln ---------------------------
xyz2grd /home/heiko/hab/seminar/ypremedi.gmt -Gkarte.grd -R-10/40/30/44 -I0.5echo ' Daten umgewandelt !'
#-- Daten als Pixel oder interpolierte Pixel zeichnen -----------------------
#grdimage karte.grd -R-10/40/30/44 -JX8/2.3d -Ba5f5/a5f5WSne -Cfarbe200.cpt \# -X2 -Y3.3 -K > medi.psgrdview -Qs karte.grd -R-10/40/30/44 -JX8/2.3d -Ba5f5/a5f5WSne -Cfarbe200.cpt \ -X2 -Y3.3 -K > medi.psecho ' Pixel gezeichnet !'
#-- Karte mit Kuestenlinien und Laendergrenzen zeichnen ---------------------
pscoast -A1000 -N1 -R-10/40/30/44 -JX8/2.3d -W10 -O -K >> medi.psecho ' Karte gezeichnet !'
#-- Abbildung beschriften ---------------------------------------------------
pstext -N -Jx1 -R0/6/0/6.2 -O -K -N <<END>> medi.ps 4.0 2.6 16 0.0 1 2 Mittlerer Jahresniederschlag 4.0 -0.55 14 0 1 2 geogr. L\342nge -0.6 1.15 14 90 1 2 geogr. BreiteENDecho ' Abbildung beschriftet !'
#-- Legende zeichnen --------------------------------------------------------
psscale -Cfarbe200.cpt -L -D4/-0.8/8/0.2h -O >> medi.psecho ' Legende gezeichnet !‚
Gen
eric
Map
pin
g T
oo
l (G
MT
)