Moin
brauche mal eine Idee, Anregung o.ä.
Ich speicher meine Daten aus meteohub in eine mySQL DB auf meinem Webserver.
Anbei ein Screenshot.
Nun will ich ein Balkendiagramm für die Regenmenge erstellen, mir fehlt da aber die
Idee wie ich diese Daten erfassen kann. Die Regenmenge soll stundenweise dargestellt
werden.
Bisher siehts so aus
http://www.schatthaus-wetter.de/jqplot_0.php
Temp und Wind sind soweit ok, aber der Regen..... :oops:
Gruss
[gelöscht durch Administrator]
Hallo Noxx
Ich berechne die Regenmenge direkt in der sql query. Etwa so:
SELECT SUM(regenfeld) FROM tabellenname GROUP BY DATE(datumfeld), HOUR(datumfeld)
grüsse, fredy
Mit Sum werde ich wohl keinen Erfolg haben, da alle 10 Minuten die Gesamt Regenmenge geschrieben wird.
Er müsste irgendwie ab 0 Uhr stundenweise gruppieren und mir aus dieser Gruppe den Max-Min (Max minus Min) Wert ausgeben.
In deiner Tabelle sehe ich ein Feld Regenrate und Regenmenge. Ich ging davon aus, dass das Feld Regenrate die 10min Summe speichert. Nach stunden gruppiert würde ein SUM(regenrate) die Summe der jeweiligen stunden ausgeben.
Was für Werte, werden den genau in deinen Feldern Regenrate und Regenmenge gespeichert ?
zz speicher ich folgende werte per php alle 10 Minuten in meine db
$var7 = 'actual_rain0_rate_mm'; // Regenrate
$var8 = 'day1_rain0_total_mm'; // Regenmenge (Tag)
Die Daten werden aus diesem File geladen
http://www.schatthaus-wetter.de/all_sensors.txt
welches alle 5 Minuten von meteohub erzeugt wird.
Evtl gibt bessere Daten für die erfassung der Regenmenge pro Stunde
In der Variable "seqhour1_rain0_total_mm" werden die Stundenwerte der letzten 24 Std. angezeigt
(neuester Wert zuerst).
Genauer gesagt: wenn du die "all-sensors.txt" um 9:30 aufrufst,
ist in der "seqhour1_rain0_total_mm" der erste Wert von 8:00 - 9:00, der zweite Wert von 07:00 - 8:00 usw.
Zitat von: noxx am 14.06.2013, 07:02:50
$var7 = 'actual_rain0_rate_mm'; // Regenrate
$var8 = 'day1_rain0_total_mm'; // Regenmenge (Tag)
Ich kenne mich mit meteohub nicht aus, aber 'actual_rain0_rate_mm' scheint die aktuelle Regenmenge zu enthalten. In deinem Beispiel würde die Abfrage dann in etwa so Aussehen:
http://sqlfiddle.com/#!2/274fe/3
So kannst du auch andere Summen (woche, monat, jahr etc.) einfach ausrechnen.
Aber wenn ich dich richtig verstehe, wird die Meteohub Datei alle 5 Minuten erstellt. Aber die Datenbank nur alle 10minuten aktualisiert. Fehlt dann nicht jeder 2. Datensatz? Das Summieren würde dann natürlich nicht mehr richtig Funktionieren. (Werden so nicht auch andere allfällige Spitzenwerte ausgelassen?)
Grüsse Fredy
Mit der Regenrate ist das so eine Sache...
Ohne Angabe des Bezugszeitraumes ist sie ziemlich nutzlos.
Rechne ich die Zeit zwischen 2 Wippenschlägen auf 1 Stunde hoch? Wäre bei jeder Station anders.
Oder rechne ich die Regenmenge von 5 Minuten auf 1 Stunde hoch?
Docbee (Entwickler von Meteohub) hatte hier mal in die Runde gefragt, welcher Algorithmus
zur Berechnung der Regenrate herangezogen werden soll. Soweit ich noch weiß, kam nichts dabei heraus.
Ich persönlich bevorzuge eine Angabe wie "Regenmenge in den letzten 60 Minuten".
In Meteohub ist dies durch die Variable "last60m_rain0_total_mm" implementiert.
@Fredy: Spitzenwerte können in Meteohub immer mit ausgegeben werden, z.B. mit "hour1_th0_tempmax_c",
das ist die max. Temp. der letzten vollen Stunde.
a) habe nun erstmal das einlesen in die DB auf 5 Minuten umgestellt, macht durchaus Sinn.
ich gucke mir das mal zuhause in ruhe an, irgendwie muss es ja gehen, auch mit
day1_rain0_total_mm.
Eine andere Frage am Rand. Wie macht ihr das beim Umstellung auf Winterzeit. Daten zwischen 2.00 Uhr und 3.00 Uhr sind ja dann doppelt. :confused:
Zitat von: noxx am 14.06.2013, 14:30:13
... irgendwie muss es ja gehen, auch mit
day1_rain0_total_mm.
Wenn schon, dann hour1_rain0_total_mm, gibt die Regenmenge der letzten vollen Stunde zurück.
Den Wert dann nur 1x pro Stunde in der DB ablegen.
Z.B. immer zu einer bestimmten Zeit abfragen und in der Stunde davor ablegen:
Um 14:10 abfragen und bei 13:30 in der DB ablegen. Ist dann die Regenmenge von 13:00 - 14:00
Ich probiere es.
Trotzdem nochmal die Frage wie ihr das bei dir Winterzeit Umstellung macht?
Beiträge zusammengeführt, weil der Autor sich selbst geantwortet hat statt seinen letzten Beitrag zu ändern: 15.06.2013, 17:21:59
Mit der Winterzeit habe ich zwar keine Antwort, aber das mit dem Regen habe ich hinfummeln können
http://www.schatthaus-wetter.de/index.php?/page/wettergrafiken_jqplot_test
Zeitwerte auf x-Achse fehlen noch, aber soll auch wohl klappen...
SELECT Max(Regenmenge), Min(Regenmenge) FROM meteohub_1 WHERE DATE_FORMAT(Datum,'%Y-%m-%d') = (DATE_SUB(CURDATE())) GROUP BY HOUR (Datum) ORDER BY Datum DESC