KvFG Wiki

Karl-von-Frisch-Gymnasium Dußlingen

Benutzer-Werkzeuge

Webseiten-Werkzeuge


ag:wetterserver:export

Rohdatenexport

Für eine tiefergehende Analyse der Wetterdaten - z.B. mit Hilfe von Calc, Gretl oder PSPP - müssen die Daten aus der Hauptdatenbank des Servers exportiert und bearbeitet werden. Hier steht, wie das funktioniert.

Auf dem Wetterserver

Die folgenden Schritte müssen vom Serverbetreuer durchgeführt werden.

Weewx Archive auslesen

Für einen Blick auf die Rohdaten muss zuerst als root / sudo die Datenbank in das CLI von sqlite3 geladen werden:

sudo sqlite3 /var/lib/weewx/weewx.sdb

sqlite wird dann in den Exportmodus gebracht:

sqlite> .mode list
sqlite> .separator |
sqlite> .output rohdatenexport.csv
sqlite> select * from archive;
sqlite> .exit

Die CSV Datei wird dann in das Verzeichnis eines lokalen Benutzers geschoben und die Rechte so geändert, dass die Datendatei mit SCP von Karl heruntergeladen werden kann.

Datenstruktur

Die Struktur der Datenbank selbst kann mit den folgenden Befehlen eruiert werden:

sqlite> .schema archive

sqlite3 zeigt einem dann den Befehl an, mit dem die Tabelle angelegt wurde - was einer Ausgabe der Tabellenstruktur dann ja entspricht:

<sxh sql> CREATE TABLE archive (

dateTime INTEGER NOT NULL UNIQUE PRIMARY KEY,
usUnits INTEGER NOT NULL,
interval INTEGER NOT NULL,
barometer REAL,
pressure REAL,
altimeter REAL,
inTemp REAL,
outTemp REAL,
inHumidity REAL,
outHumidity REAL,
windSpeed REAL,
windDir REAL,
windGust REAL,
windGustDir REAL,
rainRate REAL,
rain REAL,
dewpoint REAL,
windchill REAL,
heatindex REAL,
ET REAL,
radiation REAL,
UV REAL,
extraTemp1 REAL,
extraTemp2 REAL,
extraTemp3 REAL,
soilTemp1 REAL,
soilTemp2 REAL,
soilTemp3 REAL,
soilTemp4 REAL,
leafTemp1 REAL,
leafTemp2 REAL,
extraHumid1 REAL,
extraHumid2 REAL,
soilMoist1 REAL,
soilMoist2 REAL,
soilMoist3 REAL,
soilMoist4 REAL,
leafWet1 REAL,
leafWet2 REAL,
rxCheckPercent REAL,
txBatteryStatus REAL,
consBatteryVoltage REAL,
hail REAL,
hailRate REAL,
heatingTemp REAL,
heatingVoltage REAL,
supplyVoltage REAL,
referenceVoltage REAL,
windBatteryStatus REAL,
rainBatteryStatus REAL,
outTempBatteryStatus REAL,
inTempBatteryStatus REAL

); </sxh>

Lokal

Die folgenden Schritte können von jedem Nutzer, der die Datendatei vom Serverbetreuer erhalten hat, durchgeführt werden.

Import nach OOo

Die CSV Datei wird dann mit LibreOffice Calc geöffnet. Im Importdialog muss als Feldtrenner die Pipe (also das Zeichen |) gewählt werden.

Die Feldbeschreibungen aus der Datenbank (siehe oben zur internen Struktur) können aus der folgenden Datei kopiert und mit OOo Calc eingelesen werden. Ich habe dies hier schon einmal vorbereitet und die Felder dann auch gleich in die Horizontale transponiert, damit es einfacher wird, diese Feldbeschreibungen mit dem Datenexport zusammen in eine Tabelle zu bekommen:

wview_sqlite-db_felderbeschreibung.ods [14.1 KB]

Jetzt fügt man in die Tabelle mit den Daten (siehe oben - die CSV Datei) ganz oben eine Leerzeile ein und kopiert die in die Waagrechte transponierte Feldbeschreibung (siehe oben - die Feldbeschreibung) hinein.

Jetzt sollte die Datei nicht mehr im CSV Format, sondern als ODS gespeichert werden, damit die Arbeit nicht verloren geht.

Datenkorrekturen

Bei Wartungsarbeiten werden stellenweise fehlerhafte Daten aufgezeichnet. Sofern dies bekannt ist, werden derartige Daten seit dem 01.09.2013 auf der folgenden Seite der Wetterstation gesammelt und Korrekturhinweise geliefert:

http://www.dugone.de/doku.php?id=start:datenkorrekturen

Diese Fehler sind in der Calc-Tabelle händisch zu korrigieren.

Datendateien

Die folgenden Datenpäckchen mit einer Auflösung von 30 Minuten stehen zur Verfügung:

Das 30'-Datenpaket vom 06.01.2015 ist das letzte mit vor-aufbereiteten Datums- und Zeitfeldern. Ab jetzt gibt es diese Rohdaten nur noch als CSV mit Unix-Timestamps.

Weitere 30'-Datenpakete können beim Serverbetreuer angefordert werden. Bitte etwas Vorlauf einplanen!

Wer nur eine Auflösung von 1-Monat benötigt, kann sich die Datendateien selbst erstellen. Wie das geht ist hier dokumentiert: 2015-01-09_datendatei-wetterserver-1m.pdf

Werteangaben in den Zellen

Um die Daten richtig zu interpretieren ist die Lektüre des weewx Handbuchs Pflicht: http://www.weewx.com/docs/usersguide.htm

Die Angaben im Datenexport liegen meist im imperialen System vor. Außerdem muss man verstehen :!: wie das System arbeitet - sonst kann man auch mit den Daten nichts anfangen.

Man kommt der Logik von weewx immer mal wieder auf die Schliche, wenn man die Werte in der exportierten Tabelle mit den Angaben im NOAA und ARC Speicher vergleicht, der Unten auf der Startseite des Wetterservers abgerufen werden kann: http://www.dugone.de/wetter

Eine Beispielaufbereitung für die Regendaten:

  • Die Daten liegen in unserem Datenexport im Feld rain im imperialen System vor - also in Inch und nicht in Millimeter oder Zentimeter. Wir müssen den Wert umrechnen. Die imperiale Angabe 0.007874 in einer Zelle bedeutet dann 0.007874 * 25.4 = 0.199999 mm
  • Der Sensor misst, wie viel Wasser pro Stunde durch ihn hindurch läuft - ist also keine Summenangabe. Die Angabe 0.007874 bedeutet demnach, dass 0.007874 inch Wasser durchgelaufen sind - oder eben die gerundeten 0.2 mm Regen. Wer Summen pro Tag will, muss sich diese errechnen.

Um richtig mit diesen Daten arbeiten zu können, kann man nun hinter der Spalte rain eine neue Spalte rain_hour(mm) einfügen und die dortigen Zellen mit der Formel =NameDerZelleRain*25,4 füllen. Für die eigene Arbeit wird dann nur noch die neue Spalte verwendet.

Übrigens: Google und Wolfram Alpha helfen einem bei der Umrechnung und liefern auch Formeln z.B. für die Umrechnung von Fahrenheit in Celsius = (Fahrenheit - 32) * 5/9

Weitere Anpassungsbeispiele

Zeit und Datum

Die Tabelle enthält die Uhrzeiten und Datumsangaben als Unix Time, was Rechner verstehen, Menschen aber nicht. Ergo: Wir müssen die Unix Time in „human Time“ umrechnen.

Wir fügen zuerst zwei Spalten vor der Unix Time Spalte ein und nennen diese so, dass unsere Kolleg/innen was damit anfangen können.

In die erste Spalte humanTclock kommt die Formel =C2/86400+25569

In die zweite Spalte humanTdate kommt die Formel =C2/86400+DATUM(1970;1;1)

Dann müssen die Calc Zellen noch richtig formatiert werden, damit auch Zeit / Datumsangaben erscheinen - siehe die beiden Bilder:

Jetzt jeweils die erste Zelle in der Spalte (also die mit der Formel und der richtigen Formatierung der Zeit) markieren, STRG C drücken und auf die gesamte Spalte ausbreiten.

Text-Zahl Konvertierung

LibreOffice und evtl. auch OpenOffice wollen die Zahlen in der Tabelle nicht unbedingt immer auch als Zahlen interpretieren. Dies ist in der Tabellenansicht nicht offensichtlich - markiert man jedoch eine Zelle mit einer Zahl, sieht man im großen Feld oben evtl. ein der Zahl vorangestelltes Hochkomma (also ein '). Dieses Zeichen ist ein Steuerzeichen und teilt LibreOffice mit, dass die Zahl als Text zu lesen sei. Berechnungen mit derartigen Zellen schlagen immer fehl - LibreOffice zeigt dann nur die Meldung #WERT! an.

Das Steuerzeichen ' kann wie folgt entfernt werden:

kann es mit Suchen&Ersetzen gefunden und entfernt werden. Dazu wird nach ^.*$ gesucht und durch & ersetzt bei aktivierter Option [x] regulärer Ausdruck.

Quelle: http://www.ooowiki.de/ZahlenFormatierenInCalc#Das_Hochkomma_als_Steuerzeichen

Durch die Nutzung unserer Seiten erklären Sie sich mit der Verarbeitung Ihrer Daten in der in unserer Datenschutzerklärung niedergelegten Form einverstanden. Datenschutzerklärung ansehen
ag/wetterserver/export.txt · Zuletzt geändert: 2016/12/26 21:17 von d.weller