Teil 2: Individuelle Diagramme mit MATLAB Visualization erstellen

By | 1. Juni 2019

Individuelle grafische Darstellungen können anhand vorgefertigter Beispiele oder generisch erzeugt werden, Grundkenntnisse in der Programmierung mit MATLAB vorausgesetzt.

Prinzipiell werden die Daten anhand von readAPIKey, ChannelID und FieldID eingelesen, danach ggf. bearbeitet und schließlich z.B. mit dem Plot Befehl visualisiert.

Mit Klick auf den Button „Save and Run“ wird der Code ausgeführt und die Ausgabe im Bereich „MATLAB Plot Output“ erzeugt. Eventuelle Fehlermeldungen werden im Bereich „Output from last evaluation“ angezeigt. Im Bereich „Display Settings“ kann man spezifizieren ob die Visualisierung im privaten oder öffentlichen Bereich, oder gar nicht angezeigt wird.

Unter Apps -> All Apps -> MATLAB Visualizations werden sämtliche Visualisierungen aufgeführt und können von hier aus verwaltet werden.

Im Folgenden stelle ich ein paar Beispiele vor, die ich recht informativ finde. Den MATLAB Quellcode stelle ich ebenfalls zur Verfügung, darin müssen lediglich die Variablen readAPIKey, ChannelID und FieldID angepasst werden.

Eine Schritt-für-Schritt Anleitung findet sich weiter unten.

Gewicht der letzten 3 Tage

In diesem Diagramm sind die übereinandergelegten Tagesverläufe des Gewichts der letzten 3 Tage gezeigt.

An Trachttagen ist hier besonders schön zu sehen, zu welcher Uhrzeit der Bienenflug beginnt und endet, wie das Gewicht vormittags ab- und im Tagesverlauf wieder zunimmt, wie das Gewicht abends höher ist als morgens, und wie das Gewicht nachts langsam wieder abnimmt. Die Intensität dieser Phasen ist natürlich stark vom Wetter und von den Trachtverhältnissen abhängig. An Tagen ohne Trachtflug lässt sich die Zehrung beobachten.

Tägliche Gewichtsveränderung

Die meisten Imker interessieren sich dafür wie viel Honig ihre fleißigen Bienen gesammelt haben. Eine einfache Balkengrafik gibt Aufschluss über die täglichen Gewichtszunahmen oder -abnehmen.

Anmerkung zum Algorithmus

Man kann darüber diskutieren, wie die dargestellen Werte am besten ermittelt werden. Im vorliegenden Matlab-Code wird für jeden Tag ein Gewicht berechnet und die Differenz zum Gewicht des Vortags (Ableitung) als Balken dargestellt.

Die spannende Frage ist welches die beste Methode zum Ermitteln des Gewichts eines Tages ist:

  • Die vielleicht einfachste Methode ist eine Maximalauswahl. Diese ist jedoch sehr anfällig auf Ausreisser – diese schlagen zu 100% durch.
  • Der Mittelwert oder auch der Median der Messwerte eines Tages erscheint auf den ersten Blick besser geeignet. Da jedoch das Gewicht der ausfliegenden Bienen durchaus 1 kg betragen kann, verfälscht dieser Effekt den Gewichtswert deutlich, vor allem dann wenn der Bienenflug von Tag zu Tag witterungsbedingt unterschiedlich in Intensität und Dauer ausfällt.
  • Die plausibelsten Ergebnisse liefert die Auswertung des Zeitraums abends nachdem der Bienenflug endet. Bei einem Messintervall von 15 Minuten können dafür die letzten 10 Messwerte herangezogen und darüber der Mittelwert gebildet werden.

Die gesamte Gewichtsveränderung wird über die Summe der Tageswerte ermittelt.

Außentemperatur und Gewicht heute

Diese Darstellung eignet sich um gewünschte und auch unerwünschte Korrelationen zwischen Temperatur und Gewicht zu erkennen.

Der Zusammenhang zwischen Temperatur und Trachtflug ist naheliegend und interessant zu verfolgen.

Wenn jedoch an Tagen ohne Bienenflug eine gegenläufige Korrelation zwischen Temperatur und Gewicht beobachtet werden kann, so liegt wohl eine unerwünschte, ggf. nicht kompensierte Verfälschung des gemessenen Gewichts durch die Temperatur vor. Tritt das trotz aktivierter und kalibrierter Temperaturkompensation auf, so ist möglicherweise der Temperatursensor an einer für diesen Zweck ungünstigen Stelle angebracht.

Außentemperatur und Gewicht (Langzeit)

Die Darstellung von Außentemperatur und Gewicht über einen längeren Zeitraum, z.B. über zwei Monate, liefert ebenfalls interessante Einblicke.

Deutlich sind Trachtphasen und Trachtlücken bzw. Schlechtwetterperioden erkennbar.

Min-/Max-Temperatur und Max-Gewicht

In diesem Diagramm sind die Tages-Höchst- und Tiefstwerte der Temperatur und der Höchstwert des Gewichts über einen längeren Zeitraum aufgetragen. Dies ist gewissermaßen eine vereinfachte und übersichtlichere Darstellung der oben beschriebenen Langzeitdarstellung.

Schritt-für-Schritt Anleitung

So erstellst du eine individuelle Visualisierung in ThingSpeak auf Basis einer der oben aufgeführten Vorlagen:

  1. Button „MATLAB Visualization“ drücken
  2. Template „Custom (no starter code)“ auswählen
  3. Code aus den Anhängen hineinkopieren
  4. Deine individuellen ChannelID, readAPIKey und FieldIDs eintragen (siehe rechts unter Channel Info)
  5. Button „Save and Run“ drücken und beobachten ob sich die Grafik wie gewünscht aufbaut, ggf. Fehlermeldung beachten
  6. Nach Belieben modifizieren, um das darzustellen, was du sehen möchtest
  7. Plot veröffentlichen: „Create a public URL“ aktivieren, „ Add/Edit view on a channel“ auswählen und Halken bei “Public View” setzen

Jetzt sollte der Plot auf Deinem öffentlichen ThingSpeak Channel erscheinen.

3 thoughts on “Teil 2: Individuelle Diagramme mit MATLAB Visualization erstellen

  1. aseufert

    super Anleitung mit sehr guten Beispielen. gute Arbeit.
    Hätte aber noch eine Frage:
    Hast du eine Idee wie man im Beispiel „Gewicht der letzten 3 Tage“
    für die x-ACHSE alle 3h eine Achsenbeschriftung bekommt?
    Der folgende zusätzlocje code funktioniert nicht:

    xlim([0 24]);
    xticks(0:3:24);

    für die Y-Achse funktioniert diese Schema für die X-Achse leider nicht.
    Es kommt eine Fehlermeldung das ein zweikomplement erwartet wird… ?

    Reply
    1. Johannes Post author

      Füge folgenden Code ein:

      tstart = datetime(year(timeStamps_Day3(1)),...
      month(timeStamps_Day3(1)),day(timeStamps_Day3(1)),0,0,0);
      tend = datetime(year(timeStamps_Day1(1)),...
      month(timeStamps_Day1(1)),day(timeStamps_Day1(1)),24,0,0);
      xticks(tstart:0.125:tend);

      Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.