2. Methode
Als erstes habe ich mir ein paar Daten vom Rechner der Wetterstation auf eine Diskette ko-piert.
Danach habe ich mir die Daten mit einem Viewer angesehen. Dabei habe ich festgestellt dass die Datendateien der Wetterstation
ein eigenes mir unbekanntes Binärformat ent-halten. Das erste Problem, was jetzt zu lösen war:
Es gibt keine Beschreibung des Daten-formates der Wetterdatendateien. Ich muss einen Weg finden,
dieses Problem irgendwie zu lösen oder zu umgehen.
Wxt00105.dat
Zum Anzeigen der Wetterdaten gibt es ei DOS-Programm "WXTREND.EXE". Das habe ich als erstes ausprobiert.
Um dieses zum Laufen zu bringen, habe ich mit einem Viewer die EXE angesehen und erkannt, das dieses Programm eine
bestimmte Verzeichnisstruktur ver-langt. Diese Struktur habe ich mir auf meinem PC angelegt. Im weiteren wird das Vorhandensein
einer Konfigurationsdatei "WXTREND.CNF" vorausgesetzt. Diese lag mir leider nicht vor.
Deshalb habe ich es mit einer leeren Datei dieses Na-mens versucht, und hatte Erfolg.
Verzeichnisstruktur:
C:\wetter
C:\wetter\dat <== gehören die Dateien vom Tage rein ( nur ein Jahrzehnt !!!! )
C:\wetter\log
C:\wetter\TREND.EXE
C:\wetter\TRENDED.EXE
C:\wetter\WXCONF.CNF
C:\wetter\WXTREND.EXE
Nachdem ich alles angelegt hatte, funktionierte das Programm und entschlüsselte mir die Datei eines Tages.
Daten eines Tages
Leider erfolgte die Ausgabe nur auf dem Bildschirm, und ich muss das Programm für jeden Tag einzeln aufrufen.
Mein zweites Problem bestand jetzt darin: Wie kann ich einen ganzen Konvoi von Dateien entschlüsseln, ohne ständig das Programm
aufzurufen, und wie bekom-me ich die entschlüsselten Daten in eine neue Datei, ohne sie vom Bildschirm abschreiben zu müssen.
Nach einigem Probieren ist es mir gelungen, mit den alten DOS-Umleitungskommandos die Bildschirmausgabe in eine Textdatei zu verwandeln.
Als nächstes habe ich mich daran gemacht, eine Lösung für das Aufrufen des Programms WXTREND zu finden,
ohne jeden Tag einzeln eingeben zu müssen.
Dazu haben ich mir mit Excel eine Spalte mit den Datums vom 1.1.1990-31.12.2010
angelegt und diese in eine Textdatei exportiert. (Wetter.bat.org)
Mit einem Spalteneditor habe ich die Datei so umgeformt und erweitert,
das folgende Zeilen entstanden.
Eröffnungszeile nur einmal nötig
echo Wetterdaten >wetter1990.txt
Zeile für jeden Tag nötig
echo DATUM:01.01.1990 INDEX:19900101 >>wetter1990.txt;wxtrend 01.01.90 >>wetter 1990.txt
echo DATUM:02.01.1990 INDEX:19900102 >>wetter1990.txt;wxtrend 02.01.90 >>wetter 1990.txt
Bedeutungen:
echo = Textausgabe
> = Bildschirmausgabe umleiten in eine Datei (neue Datei erstellen)
>> = Bildschirmausgabe umleiten in eine Datei (an vorhandene Datei anhängen)
DATUM:01.01.1990 INDEX:19900101 = zur Wiedererkennung der Tage
Danach haben ich bei ";" die Zeilen umgebrochen, und es entstand eine ausführbare Stapel-datei.
echo Wetterdaten >wetter1990.txt (Eröffnungszeile)
echo DATUM:01.01.1990 INDEX:19900101 >>wetter1990.txt
wxtrend 01.01.90 >>wetter1990.txt
Weil Dateinamen nur das Jahr und kein Jahrzehnt enthalten (Wxt30502.dat) und somit nur die Dateien eines Jahrzehntes in das \dat- Verzeichnis
kopiert werden können musste ich die Dateien in Wetter1990.bat und Wetter2000.bat aufteilen.
Nach dem Ausführen der Stapeldateien Wetter1990.bat und
Wetter2000.bat wurden die Wetterdaten der Jahre 1996-1999 in der Datei "1990.txt" und die der Jahre von 2000-2003 in der Datei "2000.txt" geschrieben.
Beim Betrachten der enstandenen Textdatei erkannte ich mein nächstes Problem: Wie be-komme ich die ganzen überflüssigen Zeilen aus
dem Text. Wie kann ich die Daten vom Vor-tage entfernen.
Überflüssige Zeilen:
Zeilen vom Vortag:
Dazu wurde ein bereits vorhandenes kleines Delphi-Programm verwendet, welches Textda-teien zeilenweise lesen und schreiben kann.
Hier mussten die Kriterien zum Schreiben eines Datensatzes eingebaut werden. Die Kriterien haben sich bei der Umsetzung des
gesamten Datenbestandes und bei den ersten Versuchen der Datenbankauswertung ständig erweitert.
Ich habe hier Fehler, fehlende oder kaputte datensätze erkannt und versucht diese zu Mar-kieren.
Eine komplette Datenzeile besteht jetzt aus:
Index;Datum;Jahr;Monat;Tag;Stunde;Temperatur;Luftfeuchte;Luftdruck;Niederschlag;Bemerkung;Status;Faktor;
Kriterien:
- die überflüssigen Zeilen und die Zeilen vom Vortage löschen
- den Index, (z.B. 20000101_23) Datum, Jahr, Monat, Tag, Stunde vor der Temperatur, Luftfeuchte,
Luftdruck und Niederschlag einfügen Bemerkung, Status und Faktor an den Datensatz anhängen - Fehlende Daten erkennen
- Kaputte Sätze erkennen
- Unglaubwürdige Datensätze markieren
Dieses Programm habe ich WetterTxtNachImport.exe genannt. Bei der Ausführung des Pro-gramms wird die
Wetter1990.txt-Datei gelesen und alle relevanten Zeilen in eine neue Datei "WetterImport.txt" geschrieben.
Programm: WetterTxtNachImport.exe
20000101_24;01.01.2000;2000;01;01;24; 9,2; 50;1017; 0,0;DatenVomTage;0;1;
20000102_00;02.01.2000;2000;01;02;;;;;;;1;24;
20011224_00;24.12.2001;2001;12;24;;;;;;;2;1;
20030206_00;06.02.2003;2003;02;06;;;;;;;3;1;
Um ein solches Format zu erhalten zu erhalten, wurde das Programm ständig erweitert, und präzisiert.
Am Anfang habe ich das Datenformat mit dem Spalteneditor nachbearbeitet, mittlerweile er-zeugt das Programm alles von alleine,
so das die WetterImport.txt, sofort importfähig ist.
Anfängliche Struktur:
Index | Datum | Stunde | Temperatur | Luftfeuchte | Luftdruck | Niederschlag | Messtag | Status |
20000101_23 | 01.01.2000 | 23 | 13.5 °C | 52 % | 1011 hPa | 0.0 mm | DatenVomVortag | 0 |
20000101_00 | 01.01.2000 | 0 | 11.7 °C | 55 % | 1011 hPa | 0.0 mm | DatenVomTage | |
XX | X | XXX | XX |
Danach habe ich mit einem Editor Spalte löschen XXX(z.B. °C) und Trennzeichen ";" für die Trennung der Spalten eingefügt.
Neue Struktur:
Index | Datum | Stunde | Temperatur | Luftfeuchte | Luftdruck | Niederschlag | Messtag | Status |
20000101_23 | 01.01.2000 | 23 | 13.5 | 52 | 1011 | 0.0 | DatenVomVortag | 0 |
20000101_00 | 01.01.2000 | 0 | 11.7 | 55 | 1011 | 0.0 | DatenVomTage |
Später habe ich in unser Programm "WetterTxtNachImport.exe" das löschen von XXX (z.B. °C) und das Einfügen der Trennzeichen ";" für die
Trennung der Spalten, den Status, sowie einen Wichtungsfaktor hinzugefügt.
Die oben mit XXX gekennzeichneten Spalten werden jetzt für die Erkennung von fehlerhaften Zeilen ausgewertet, Zeilen in denen diese
Zeichen nicht an der entsprechenden Stelle ste-hen, erweisen sich als fehlerhaft und werden mit dem Code=2 markiert.
Zeilen in denen alle Messwerte=0 sind werden angezweifelt und mit dem Code=3 versehen. Folgen in den Daten zwei Zeilen mit DATUM
und INDEX aufeinander, fehlt die Datei eines Tages und es wird ein Satz mit dem Code=1 eingefügt.
Da es bei der Übernahme der gesamten Wetterdateien zu einer ganzen Menge von neuen Erkenntnissen und Gesichtspunkten kam,
unterlag die Entwicklung der des Umsetzungspro-gramms einer ständigen Änderung und Weiterentwicklung.
Die letzte Erkenntnis war, dass das fehlen einer Tagesdatei eigentlich 24 fehlenden Daten-sätzen entspricht, deshalb wurde noch zusätzlich
eine Datenspalte eingeführt, so das Daten-sätzen mit Code=1 einen Faktor von 24 enthalten.
Alle anderen Sätze erhalten bis jetzt einen Faktor von eins. Datensätze die komplett in Ordnung sind erhalten den Status=0 und werden
bei der Auswertung im Datenbanksystem herangezogen.
Die Datei WetterImport.txt hat jetzt einen Zustand, mit der man sie in die meisten Daten-banksysteme importieren kann. Ich habe mich für
einen Import nach Access entschieden, da wir dieses Programm nächstes Jahr in der Schule behandeln..
weiter zu Ergebnisse