Nun würde ich gerne die Daten der Wetterstationen miteinander vergleichen (konkret, wie hoch ist die Abweichung der Temperatur zwischen Wetterstation 1 und Wetterstation 2).
Hintergrund: Die Messwertzeitdaten sind verschieden, z.B.:
Von Wetterstation A liegen Daten von 2005-2013 vor und Wetterstation B liegen Daten von 2000-2012 vor. Manchmal fehlen Messzeitpunkte, da die Wetterstation nicht in Betrieb war.
Welchen Befehl oder Funktion gibt es, die einen solche Operation durchführ? Ich würde gerne auf for-schleifen oä. verzichten.
Wie würdet Ihr das Problem lösen?
Oder soll ich wie folgt vorgehen:
1. Dritte Matrix mit Zeitstempel erstellen. Länge und Werte werden aus (min/max) Berechnung der Wetterstation vorgegeben, aus obiges Beispiel von 2005-2012.
2. 1 Zeile von 2005-2012 in stündlicher Auflösung füllen.
3. zweite Spalte mit Wetterstation A und dritte Spalte mit Wetterstation B füllen (mit gültigem Zeitstempel).
Wie kann ein solcher Vergleich progammiert werden?
4. Abweichung berechnen
Vielen dank im Vorraus
Gesplittet: 04.05.2015, 13:28 Uhr von Winkow Von Beitrag Wetterdaten einlesen vom DWD aus dem Forum Programmierung
hallo. bitte hänge keine neuen fragen an ein abgeschlossenes thema an. der beantwortet status wird dadurch hinfällig. wenn du auf etwas verweisen willst kannst du einfach einen link zur verfügung stellen.
Zitat:
Ich würde gerne auf for-schleifen oä. verzichten.
warum? kommt es bei deinem programm so sehr auf laufzeit an? werden die berechnungne sehr oft durchgeführt? oder verbrauchst du mehr zeit beim erdenken einer schnelleren lösung als du dadurch einspaarst? laufzeitoptimierung ist immer eine frage von aufwand und nutzen. außerdem sind for schleifen nicht immer langsamer dank jita.
Zitat:
1. Dritte Matrix mit Zeitstempel erstellen. Länge und Werte werden aus (min/max) Berechnung der Wetterstation vorgegeben, aus obiges Beispiel von 2005-2012.
2. 1 Zeile von 2005-2012 in stündlicher Auflösung füllen.
3. zweite Spalte mit Wetterstation A und dritte Spalte mit Wetterstation B füllen (mit gültigem Zeitstempel).
versteh ich nicht. ein kleines code beispiel ist da hilfreicher um zu sehen was du meinst.
an. vieleicht hilft das oder die see also befehle.
sonst musst du nochmal genauer beschreiben was du vergleichen willst. zb
Zitat:
Von Wetterstation A liegen Daten von 2005-2013 vor und Wetterstation B liegen Daten von 2000-2012 vor. Manchmal fehlen Messzeitpunkte, da die Wetterstation nicht in Betrieb war.
was soll an den stellen passieren wo nur das ergebniss von einer station vorliegt?
_________________
Werde nun eine dritte Matrix erstellen (als Referenzzeitstempel) und die Werte der Wetterstationen auf die Referenzliste übertragen. Falls der Wert nicht vorhanden ist, soll das Feld leer bleiben.
Wenn ich die Stunden hinzubeziehe dann steigt die Zahl nicht mehr um den Wert 1, siehe Beispielergebnis. Lasse ich die Stunden weg, dann funktioniert alles prima. Ich benötige aber die Stunden...
Warum sollte der Wert wie bei Tagen auch um eins steigen? Dann wären ja Stunden und Tage identisch und man kann es nicht mehr auseinander halten. Der Wert steigt genau um 1/24. Das ist die Funktionsweise und auch sinnvoll. Wenn du etwas anderes willst musst du das nochmal erklären.
_________________
warum multiplizierst du alles mit 24 ? damit machst du aus vernüftigen daten komische daten die sich so nicht mehr ordentlich druch datestr wieder zurück rechnen lassen. ich versteh den sinn dahinter nicht... aber egal
Zitat:
Mit der Funktion intersect komm ich nicht weiter, oder?
hmm denkst du ich hab den befehl nur als beispiel gegeben um dich zu verwirren?
ich denke intersect löst dein problem ohne die erzeugung einer "referenzliste" was auch immer das bewirken soll ^^
p.s. der bbcode muss im post aktiviert sein damit die code umgebung funktioniert.
_________________
Ich hab jetzt aber ein neues Problem. Bei den Daten (Wetterdaten vom DWD (öffentlich zugänglich)) sind manche Messwerte Fehlerhaft, diese werden mit dem Wert -999 belegt, siehe temperatur_meppen.txt. Diese müssen im Vorfeld aussortiert werden.
Kann man bei intersect eine Logic hinzufügen, bitte für y1 und y2 den Wertebereich -40°C bis +50° betrachten?
Wieviele "%f" soll ich schreiben? Also wie wird der Doppelpunkt bearbeitet. Die Zahlenwerte nach dem Doppelpunkt benötige ich nicht (obiges Beispiel 24).
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.