tag:forum.selfhtml.org,2005:/self Verdichtung von Messdaten, "Trendkurve" – SELFHTML-Forum 2020-02-16T17:15:24Z https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765248#m1765248 TS ts-self@online.de https://bitworks.de/ 2020-02-15T14:15:11Z 2020-02-15T14:15:11Z Verdichtung von Messdaten, "Trendkurve" <p>Hello,</p> <p>ich logge seit Mai 2019 Temperaturdaten mit einem Raspi. Alle fünf Minuten wird ein Datenset erstellt. Zur Zeit wird jeder Fühler noch in einem eigenen Flatfile direkt auf dem Raspi gespeichert.</p> <p>Neben der Verlagerung der Messdaten per "Post2Host" auf meinen Root-Webserver werden die Daten dort dann auch in einer MySQL/Maria-DB gespeichert. Es ist dann leichter möglich, das Anzeigefenster mit 36 Stunden Breite über die Datenmenge zu verschieben.</p> <p>Nun möchte ich aber in Zukunft auch mehrere komprimierte Sichten (Eine Woche, ein Monat, ein Quartal, ... ) mit der gleichen Viewportbreite anzeigen können. Wie komprimiere/konsolidiere ich die Daten am besten für die Sicht? Ich möchte dabei Spitzenwerte (plötzliche Extremwerte) nichg verlieren, ohne allerdings die Umgebung dieser Werte zu verzerren. Außerdem kann der Datenbestand Lücken enthalten (Ausfall der Messeinrichtung), die auch erkannt und bei der Anzeige gekennzeichnet werden sollen.</p> <p>Wie kann ich vorgehen?</p> <p>Glück Auf<br> Tom vom Berg</p> <div class="signature">-- <br> Es gibt nichts Gutes, außer man tut es!<br> Das Leben selbst ist der Sinn. </div> https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765266#m1765266 Raketenwiwi 2020-02-15T16:13:30Z 2020-02-15T16:13:30Z Verdichtung von Messdaten, "Trendkurve" <blockquote> <p>Ich möchte dabei Spitzenwerte (plötzliche Extremwerte) nichg verlieren, ohne allerdings die Umgebung dieser Werte zu verzerren.</p> </blockquote> <p>Naja.</p> <p><a href="https://en.wikipedia.org/wiki/Candlestick_chart" rel="nofollow noopener noreferrer">https://en.wikipedia.org/wiki/Candlestick_chart</a></p> <p>Musst es ja nicht übertreiben, aber Du könntest Deine Daten z.B. auf Tageshöchst-, Mittel- und Niedrigstwert verdichten.</p> https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765269#m1765269 Der Martin 2020-02-15T16:39:31Z 2020-02-15T16:39:31Z Verdichtung von Messdaten, "Trendkurve" <p>Hallo Tom,</p> <blockquote> <p>ich logge seit Mai 2019 Temperaturdaten mit einem Raspi.</p> </blockquote> <p>derzeit bin ich dabei, etwas Ähnliches zu realisieren. Das Herz meiner künftigen Wetterstation ist auch ein Raspi; ich will aber nicht nur Temperaturen erfassen, sondern auch Luftdruck, Luftfeuchte, Regenmenge und Wind.<br> Im Moment habe ich noch die Minimalfassung, der einzige Sensor ist ein BME280, der Luftdruck, Luftfeuchte und Temperatur in der Wohnung misst und I²C spricht. Ein zweiter BME280 wird das Außenwetter erfassen.</p> <blockquote> <p>Alle fünf Minuten wird ein Datenset erstellt.</p> </blockquote> <p>Okay, ich habe mich für ein 10min-Grobraster entschieden (ist aber noch konfigurierbar). Nur die Wind-Daten werde ich wohl in kürzeren Intervallen erfassen (z.B. 10s) und im 10min-Datensatz mit repräsentativen Werten abbilden, voraussichtlich Mittelwert und Maximum (Bö). Speichern möchte ich direkt in eine mySQL-Datenbank, die ohnehin auf meinem Home-Server läuft (das ist aber noch lange nicht realisiert).</p> <blockquote> <p>Nun möchte ich aber in Zukunft auch mehrere komprimierte Sichten (Eine Woche, ein Monat, ein Quartal, ... ) mit der gleichen Viewportbreite anzeigen können. Wie komprimiere/konsolidiere ich die Daten am besten für die Sicht?</p> </blockquote> <p>Diese Aufgabenstellung kommt auf mich auch noch zu. Ich denke mir das so: Wenn die gemessenen Werte (graphisch oder tabellarisch) in einem komprimierten Format angezeigt werden sollen, z.B. nur 1 Datensatz je Stunde für eine Monats-Ansicht oder 1 Datensatz je Tag für eine Jahres-Ansicht, dann werden aus jeder Messreihe drei: Mittelwert, Minimum und Maximum im Intervall.</p> <blockquote> <p>Ich möchte dabei Spitzenwerte (plötzliche Extremwerte) nichg verlieren, ohne allerdings die Umgebung dieser Werte zu verzerren.</p> </blockquote> <p>Das wäre mit der Min/Max-Lösung gewährleistet.</p> <blockquote> <p>Außerdem kann der Datenbestand Lücken enthalten (Ausfall der Messeinrichtung), die auch erkannt und bei der Anzeige gekennzeichnet werden sollen.</p> </blockquote> <p>Das ist IMO ein bisschen kniffliger. Du könntest für die Messzyklen, in denen kein gültiger Messwert verfügbar ist, einen eindeutigen Fehlerwert speichern (z.B. eine Temperatur von -300°C). Diesen Wert könntest du bei der Auswertung entsprechend als Sonderfall abfragen und visualisieren.</p> <p>Schönes Wochenende,<br>  Martin</p> <div class="signature">-- <br> Ich stamme aus Ironien, einem Land am sarkastischen Ozean. </div> https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765274#m1765274 dedlfix 2020-02-16T01:04:01Z 2020-02-16T01:04:01Z Verdichtung von Messdaten, "Trendkurve" <p>Tach!</p> <blockquote> <p>Wie kann ich vorgehen?</p> </blockquote> <p><a href="http://munin-monitoring.org/" rel="nofollow noopener noreferrer">Munin</a>. Damit kann man nicht nur das System überwachen, auch eigene Sensoren kann man schreiben. Ist aber für Langzeit-Daten weniger geeignet, da es nur 1.5 Jahre die Daten vorhält. Vielleicht hilft auch das von Munin verwendete RRDTool weiter.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765281#m1765281 pl https://rolfrost.de/tapi 2020-02-16T09:35:22Z 2020-02-16T09:35:22Z Verdichtung von Messdaten, "Trendkurve" <blockquote> <p>Nun möchte ich aber in Zukunft auch mehrere komprimierte Sichten (Eine Woche, ein Monat, ein Quartal, ... ) mit der gleichen Viewportbreite anzeigen können.</p> </blockquote> <p>Dafür nimmst Du die dementsprechenden Funktionen die eine DB dafür bereitstellt. Voraussetzung dafür ist, daß Deine Zeitangaben so gespeichert sind daß das DBMS mit dem Datum rechnen kann. Welche Datentypen dafür in Frage kommen kannst Du im Handbuch zu Deinem RDBMS nachlesen.</p> <p>MFG</p> https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765286#m1765286 JürgenB https://www.j-berkemeier.de 2020-02-16T12:18:10Z 2020-02-20T12:00:06Z Verdichtung von Messdaten, "Trendkurve" <p>Hallo Tom,</p> <p>zur Darstellungen hast du ja schon Antworten bekommen. Ich würde hier drei Kurven zeigen mit Min-, Max- und Mittelwerten.</p> <p>Zu den Aussetzern:</p> <p>Hier unterscheide ich zwischen Werten, die sich nur langsam ändern, bei dir Temperatur und Luftdruck, und Werten, die sich schnell ändern und auch „Peaks“ zeigen, wie z.B. Niederschlag und Windgeschwindigkeit. Schnell/langsam bezieht sich dabei auf die Messgeschwindigkeit.</p> <p>Bei sich schnell ändernden Werten würde ich die Aussetzer einfach weg lassen und die Kurven an der Stelle unterbrechen.</p> <p>Bei sich langsam ändernden Werten prüfe ich, wie lange der Ausfall gedauert hat. Wenn sinnvoll möglich, berechne ich die fehlenden Werte durch lineare Interpolation. Ein Ausfall der Temperatur- oder Luftdruckmessung von ca. einer Stunde dürfte mMn durch Interpolation aufgefüllt werden können, ohne die Messdaten zu verfälschen. Aber du hast ja schon Daten und kannst so prüfen, wie große Lücken noch so geschlossen werden können.</p> <p>Du hast auch noch nach Vorhersagen gefragt, und wie das die Wetterfrösche machen. Die habem als Datenbasis die Werte von „tausenden“ Messtationen und berechnen daraus mit ausgeklügelten Algorithmen, wie das Wetter wohl werden könnte. Dazu benötigen Sie extrem leistungsstarke Rechner, um das Wetter schneller zu berechnen, als es kommt.</p> <p>Gruß<br> Jürgen</p> <p>PS Wir haben im WIKI einen Artikel zum Thema Plotten mit <a href="https://wiki.selfhtml.org/wiki/SVG/Tutorials/Funktionsplotter" rel="nofollow noopener noreferrer">SVG</a> oder <a href="https://wiki.selfhtml.org/wiki/JavaScript/Tutorials/Funktionsplotter" rel="nofollow noopener noreferrer">Canvas</a>.</p> https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765283#m1765283 TS ts-self@online.de https://bitworks.de 2020-02-16T10:03:18Z 2020-02-16T10:03:18Z Verdichtung von Messdaten, "Trendkurve" <p>Hello,</p> <blockquote> <blockquote> <p>Nun möchte ich aber in Zukunft auch mehrere komprimierte Sichten (Eine Woche, ein Monat, ein Quartal, ... ) mit der gleichen Viewportbreite anzeigen können.</p> </blockquote> <p>Dafür nimmst Du die dementsprechenden Funktionen die eine DB dafür bereitstellt. Voraussetzung dafür ist, daß Deine Zeitangaben so gespeichert sind daß das DBMS mit dem Datum rechnen kann. Welche Datentypen dafür in Frage kommen kannst Du im Handbuch zu Deinem RDBMS nachlesen.</p> </blockquote> <p>Und welche sind das, bzw. wie muss man sie kombinieren, um einen Trend auszurechnen?</p> <ul> <li>avg</li> <li>min</li> <li>max</li> </ul> <p>?</p> <p>Wie machen das denn die Wetterfrösche?</p> <p>Ich möchte keinen Streubereich anzeigen, sondern eine eindeutige Linie.</p> <p>Glück Auf<br> Tom vom Berg</p> <div class="signature">-- <br> Es gibt nichts Gutes, außer man tut es!<br> Das Leben selbst ist der Sinn. </div> https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765288#m1765288 Der Martin 2020-02-16T12:48:27Z 2020-02-16T12:52:46Z Verdichtung von Messdaten, "Trendkurve" <p>Hallo Jürgen,</p> <blockquote> <p>zur Darstellungen hast du ja schon Antworten bekommen. Ich würde hier drei Kurven zeigen mit Min-, Max- und Mittelwerten.</p> </blockquote> <p>das war ja auch schon mein Vorschlag.</p> <blockquote> <p>Zu den Aussetzern:</p> <p>Hier unterscheide ich zwischen Werten, die sich nur langsam ändern, bei dir Temperatur und Luftdruck, und Werten, die sich schnell ändern und auch „Peaks“ zeigen, wie z.B. Niederschlag und Windgeschwindigkeit. Schnell/langsam bezieht sich dabei auf die Messgeschwindigkeit.</p> </blockquote> <p>Richtig, die "typischen" Wetterdaten wie Luftdruck, Temperatur und Luftfeuchte ändern sich in der Regel nur langsam. Aber ein Temperaturanstieg von 15° innerhalb einer Stunde ist durchaus drin, z.B. an einem klaren Sommermorgen. Auch ein Luftdruckabfall um 20mbar in einer Stunde ist bei einer ankommenden Sturmfront nicht auszuschließen. <em>Schnell</em> bzw. <em>langsam</em> ist also relativ.</p> <p>Beim Niederschlag habe ich mich zunächst gewundert, warum du den auch zu den "schnellen" Messgrößen zählst. Niederschläge von mehr als 5mm/h sind zumindest hier in der Region eine Seltenheit. Aber ich gebe zu, ein plötzlicher, heftiger Wolkenbruch kann da schon ordentlich reinhauen.</p> <blockquote> <p>Bei sich schnell ändernden Werten würde ich die Aussetzer einfach weg lassen und die Kurven an der Stelle unterbrechen.</p> </blockquote> <p>Ja. Und im Fall von tabellarischer Darstellung die entsprechenden Felder auch leer lassen (oder mit "fehlt" markieren).</p> <blockquote> <p>Bei sich langsam ändernden Werten prüfe ich, wie lange der Ausfall gedauert hat. Wenn sinnvoll möglich, berechne ich die fehlenden Werte durch lineare Interpolation. Ein Ausfall der Temperatur- oder Luftdruckmessung von ca. einer Stunde dürfte mMn durch Interpolation aufgefüllt werden können, ohne die Messdaten zu verfälschen. Aber du hast ja schon Daten und kannst so prüfen, wie große Lücken noch so geschlossen werden können.</p> </blockquote> <p>Bei graphischer Darstellung ergibt sich die Interpolation von selbst, wenn man stur die Messpunkte verbindet. Länger andauernde Ausfälle fallen dann dadurch auf, dass die natürlichen Kleinsignal-Schwankungen fehlen.</p> <blockquote> <p>Du hast auch noch nach Vorhersagen gefragt, und wie das die Wetterfrösche machen. Die habem als Datenbasis die Werte von „tausenden“ Messtationen und berechnen daraus mit ausgeklügelten Algorithmen, wie das Wetter wohl werden könnte. Dazu benötigen Sie extrem leistungsstarke Rechner, um das Wetter schneller zu berechnen, als es kommt.</p> </blockquote> <p>Ich habe Tom eher so verstanden, dass er eine Trendlinie für einzelne Größen berechnen will, etwa: Wie hat sich der Luftdruck in den letzten 12 Stunden verändert, wenn man die kleinen Schwankungen mal ignoriert? Oder: Wie hat sich die Tages-Höchsttemperatur in den letzten 30 Tagen entwickelt?<br> Da geht man doch AFAIR von einer Geraden y = ax + b aus und bestimmt die Koeffizienten a und b so, dass die Summe der Abweichungen zwischen der Geraden und den tatsächlichen Messwerten minimal wird. Das ist 'ne ziemliche Rechnerei ...</p> <p>Dass eine ausgewachsene Wettervorhersage die Möglichkeiten eines Amateurs um mehrere Größenordnungen übersteigt, dürfte klar sein.</p> <p>Schönen Sonntag noch,<br>  Martin</p> <div class="signature">-- <br> Ich stamme aus Ironien, einem Land am sarkastischen Ozean. </div> https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765290#m1765290 JürgenB https://www.j-berkemeier.de 2020-02-16T13:07:50Z 2020-02-16T13:07:50Z Verdichtung von Messdaten, "Trendkurve" <p>Hallo Martin,</p> <blockquote> <blockquote> <p>zur Darstellungen hast du ja schon Antworten bekommen. Ich würde hier drei Kurven zeigen mit Min-, Max- und Mittelwerten.</p> </blockquote> </blockquote> <blockquote> <p>das war ja auch schon mein Vorschlag.</p> </blockquote> <p>den ich noch mal bekräftigen wollte.</p> <blockquote> <p>Richtig, die "typischen" Wetterdaten wie Luftdruck, Temperatur und Luftfeuchte ändern sich in der Regel nur langsam. Aber ein Temperaturanstieg von 15° innerhalb einer Stunde ist durchaus drin, z.B. an einem klaren Sommermorgen. Auch ein Luftdruckabfall um 20mbar in einer Stunde ist bei einer ankommenden Sturmfront nicht auszuschließen. <em>Schnell</em> bzw. <em>langsam</em> ist also relativ.</p> </blockquote> <p>aber solche Veränderungen verlaufen monoton und können durch Interpolation genähert werden. Einen Anstieg um 15° und direkt danach einen Abfall um 15° habe ich nicht in Erinnerung. Und bei so seltenen Fällen muss man entscheiden, was bei einem Sensorausfall schlechter ist: keine Daten oder ganz selten zu grob genäherte Daten.</p> <p>Gruß<br> Jürgen</p> https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765298#m1765298 TS ts-self@online.de https://bitworks.de 2020-02-16T14:52:46Z 2020-02-16T14:52:46Z Verdichtung von Messdaten, "Trendkurve" <p>Hello,</p> <p>ich werde also erstmal die "igendwie Mittelwertkurven" erzeugen und zwar nach folgendem Algorithmus:</p> <ol> <li>Intervallbreite bestimmen, für das der Mittelwert gebildet werden soll (z.B. 288 Mw = 1 Tag, 168 Std. = 1 Woche, ...).</li> <li>prüfen, ob alle Messwerte vorhanden sind, sonst Sonderbehandlung</li> <li>Mittelwert bilden</li> <li>Halbe Intervallbreite weiter schreiten</li> <li>Schritte 1 - 4 wiederholen.</li> </ol> <p>Dto. mit den relativen Höchsttemperaturen im Intervall.<br> Dto. mit den relativen Tiefsttemperaturen im Intervall.</p> <p>Das ist sicherlich keine Aufgabe für die Datenbank!?<br> Mir fallen jedenfalls keine Funktionen ein, die das leisten könnten (Grenzkurven-/Hüllkurvenbestimmung).</p> <p>Wie man das nun exakt mathemathisch machen würde, interessiert mich trotzdem noch.</p> <p>Glück Auf<br> Tom vom Berg</p> <div class="signature">-- <br> Es gibt nichts Gutes, außer man tut es!<br> Das Leben selbst ist der Sinn. </div> https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765299#m1765299 Matthias Apsel matthias.apsel@selfhtml.org https://brückentage.info 2020-02-16T15:09:38Z 2020-02-16T15:09:38Z Verdichtung von Messdaten, "Trendkurve" <p>Hallo TS,</p> <blockquote> <p>Wie man das nun exakt mathemathisch machen würde, interessiert mich trotzdem noch.</p> </blockquote> <p><a href="https://de.wikipedia.org/wiki/Spline-Interpolation" rel="nofollow noopener noreferrer">Spline-Interpolation</a>?</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Du kannst das Projekt SELFHTML unterstützen,<br> indem du bei Amazon-Einkäufen <a href="https://smile.amazon.de/ch/314-570-45498" rel="nofollow noopener noreferrer">Amazon smile</a> (<a href="https://www.amazon.de/gp/help/customer/display.html?ie=UTF8&nodeId=202035970%5D" rel="nofollow noopener noreferrer">Was ist das?</a>) nutzt. </div> https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765300#m1765300 TS ts-self@online.de https://bitworks.de 2020-02-16T15:16:51Z 2020-02-16T15:16:51Z Verdichtung von Messdaten, "Trendkurve" <p>Hello,</p> <blockquote> <p>Hallo TS,</p> <blockquote> <p>Wie man das nun exakt mathemathisch machen würde, interessiert mich trotzdem noch.</p> </blockquote> <p><a href="https://de.wikipedia.org/wiki/Spline-Interpolation" rel="nofollow noopener noreferrer">Spline-Interpolation</a>?</p> </blockquote> <p>Danke. Liest sich passend.<br> Überschreitet aber wohl meine Fähigkeiten :-O</p> <p>Kann SVG das vielleicht sogar schon von alleine für die Darstellung?</p> <p>Glück Auf<br> Tom vom Berg</p> <div class="signature">-- <br> Es gibt nichts Gutes, außer man tut es!<br> Das Leben selbst ist der Sinn. </div> https://forum.selfhtml.org/self/2020/feb/15/verdichtung-von-messdaten-trendkurve/1765306#m1765306 Matthias Apsel matthias.apsel@selfhtml.org https://brückentage.info 2020-02-16T17:15:24Z 2020-02-16T17:15:24Z Verdichtung von Messdaten, "Trendkurve" <p>Hallo TS,</p> <blockquote> <blockquote> <p><a href="https://de.wikipedia.org/wiki/Spline-Interpolation" rel="nofollow noopener noreferrer">Spline-Interpolation</a>?</p> </blockquote> <p>Danke. Liest sich passend.<br> Überschreitet aber wohl meine Fähigkeiten :-O</p> </blockquote> <p>Es ist ja nicht so, dass es nicht schon was fertiges gibt:</p> <ul> <li>Beispiel: <a href="https://forum.selfhtml.org/all/stats" rel="noopener noreferrer">Forumsstatistik</a></li> <li><a href="https://www.highcharts.com/" rel="nofollow noopener noreferrer">https://www.highcharts.com/</a></li> </ul> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Du kannst das Projekt SELFHTML unterstützen,<br> indem du bei Amazon-Einkäufen <a href="https://smile.amazon.de/ch/314-570-45498" rel="nofollow noopener noreferrer">Amazon smile</a> (<a href="https://www.amazon.de/gp/help/customer/display.html?ie=UTF8&nodeId=202035970%5D" rel="nofollow noopener noreferrer">Was ist das?</a>) nutzt. </div>