Behandeln Sie Umgebungsdaten in Python

Wir werden ein Beispiel für das Lesen der Daten des Sensordaten-Visualisierungsdienstes "Ambient" in Python vorstellen, sie in einen DataFrame von Pandas konvertieren und grafisch darstellen. Bei den als Beispiel behandelten Daten handelt es sich um Daten wie Temperatur, Luftfeuchtigkeit und Druck, die von ESP8266 Arduino und "Veranda Environmental Monitor @ Setagaya Sakuragaoka" gemessen wurden. ) Wird veröffentlicht als.

Die Umgebung, in der Python ausgeführt wurde

Ambient

Ambient ist ein IoT-Datenvisualisierungsdienst, der von Mikrocomputern gesendete Sensordaten empfängt, speichert und visualisiert (grafisch darstellt). Sie können problemlos Sensordaten von Arduino, mbed, Raspberry Pi usw. an Ambient senden und grafisch darstellen.

Ambient structure

Informationen zur Verwendung von Ambient finden Sie unter "Versuch, Ambient zu verwenden". Ein Beispiel für den Umgebungsmonitor finden Sie unter "Erstellen eines Heimumgebungsmonitors mit ESPr Developer + Ambient".

Installieren der Ambient Python-Bibliothek

Die Python-Bibliothek von Ambient bietet die Möglichkeit, Daten an Ambient zu senden und die in Ambient gespeicherten Daten zu lesen.

Sie können die Bibliothek von Github wie folgt installieren.

$ pip install git+https://github.com/TakehikoShimojima/ambient-python-lib.git

Einzelheiten zur Bibliothek finden Sie unter "Python-Bibliothek".

Bibliothek laden

Von hier an laufe ich auf einem Jupyter-Notebook. Laden Sie die Bibliothek wie folgt.

import

Daten aus Ambient lesen

Geben Sie zunächst die Kanal-ID, den Schreibschlüssel und den Leseschlüssel an, um eine Instanz von Ambient zu erstellen. Wenn Sie nur lesen möchten, können Sie "Schreibschlüssel" angeben. Bei öffentlichen Kanälen kann der Leseschlüssel weggelassen werden. Die diesmal als Beispiel behandelten Daten werden als "Veranda Environment Monitor @ Setagaya Sakuraoka" veröffentlicht. Die Kanal-ID lautet 102, sodass Sie eine Instanz wie folgt erstellen können.

instance

Es gibt zwei Möglichkeiten, Daten zu lesen: Geben Sie die Anzahl der Datenelemente, das Datum und den Zeitraum an.

Beide Methoden geben ein Array im Wörterbuchformat (JSON-Format) zurück, das folgendermaßen aussieht:

[
    {'created': '2017-02-25T15:01:48.000Z', 'd1':Numerischer Wert, 'd2':Numerischer Wert, 'd3':Numerischer Wert},
    {'created': '2017-02-25T15:06:47.000Z', 'd1':Numerischer Wert, 'd2':Numerischer Wert, 'd3':Numerischer Wert},
    ...
]

Die Datenerstellungszeit "erstellt" wird in Agreement World Time (UTC) angezeigt. Die Daten sind in aufsteigender Reihenfolge der Generierungszeit (älteste bis neueste) angeordnet.

read

In Pandas DataFrame konvertieren

Laden Sie die Module, die Sie in Zukunft benötigen werden.

pandas

Konvertieren Sie diese Daten dann in einen Pandas DataFrame. Es ist wirklich einfach, machen Sie einfach Folgendes:

dataframe

Die Datengenerierungszeit df ['created'] ist die Zeichenfolge. Wenn dies unverändert bleibt, ist die nachfolgende Verarbeitung unpraktisch. Konvertieren Sie dies in einen Pandas-Zeitstempel.

type created

convert

Die Zeichenfolge wird mit strptime () in Datetime konvertiert, und Japan ('Asia / Tokyo') wird als Zeitzone festgelegt.

Da read_csv von pandas eine Funktion hat, um die Zeit im Zeichenfolgenformat zu analysieren und in den Zeitstempel zu konvertieren, gibt es meiner Meinung nach eine ähnliche Funktion beim Erstellen eines DataFrame aus einem Array im Wörterbuchformat, aber ich konnte sie nicht finden. Ich habe es selbst wie oben konvertiert. Wenn jemand einen einfacheren Weg kennt, lassen Sie es mich bitte wissen.

Zeichnen Sie die Daten mit matplotlib

Als nächstes zeichnen wir die Daten mit matplotlib grafisch auf.

matplotlib

Lassen Sie uns zunächst am 3. März ein gestricheltes Diagramm der Lesetemperatur erstellen.

temp graph

Lassen Sie uns als nächstes die Korrelation zwischen Temperatur und Luftfeuchtigkeit grafisch darstellen.

scatter

Lassen Sie uns die Änderungen der täglichen Temperatur und Luftfeuchtigkeit mit der Temperatur auf der linken Achse und der Luftfeuchtigkeit auf der rechten Achse grafisch darstellen.

two axes

Bis zu diesem Punkt können Sie mit der Umgebungsfunktion grafisch darstellen, aber mit Python + Pandas + Matplotlib können Sie flexibler grafisch darstellen.

Lassen Sie uns den gleichen gleitenden Durchschnitt von Temperatur und Luftfeuchtigkeit wie oben berechnen und grafisch darstellen. Sie können den gleitenden Durchschnitt der Breite 7 berechnen, indem Sie df ['d1']. Rolling (Fenster = 7, min_period = 1) .mean () anstelle von df ['d1'] als Daten verwenden.

rolling

Erstellen wir eine Streudiagrammmatrix aus Temperatur, Luftfeuchtigkeit, Druck, Versorgungsspannung und Beleuchtungsstärke.

scattermatrix

Zusammenfassung

Durch die Kombination von Ambient mit Python, Pandas und Matplotlib können von einem Mikrocomputer gesteuerte Sensordaten akkumuliert, mit Ambient eine einfache Visualisierung (grafische Darstellung) und mit Python eine flexiblere Analyse und Visualisierung durchgeführt werden. Ich hoffe, es ist hilfreich bei der Analyse der tatsächlichen Sensordaten mit Python.

Recommended Posts

Behandeln Sie Umgebungsdaten in Python
Behandeln Sie Daten im NetCDF-Format mit Python
Markdown mit Python behandeln
Zeigen Sie UTM-30LX-Daten in Python an
Behandeln Sie Umgebungsvariablen in Python
Behandeln Sie komplexe Zahlen in Python
Holen Sie sich LeapMotion-Daten in Python.
Lesen Sie die Protokollpufferdaten mit Python3
Behandeln Sie Posix-Nachrichtenwarteschlangen in Python
Behandeln Sie das GDS II-Format mit Python
Hashing von Daten in R und Python
Umgang mit Japanisch mit Python
Behandeln Sie mehrere Python-Versionen in einem Jupyter
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Quadtree in Python --2
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Dateneingabe / -ausgabe in Python (CSV, JSON)
Metaanalyse in Python
Ali Buch in Python: Abschnitt 2-4, Datenstruktur
Unittest in Python
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Datenanalyse Python
Epoche in Python
Zwietracht in Python
Holen Sie sich Google Fit API-Daten in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Python: Vorverarbeitung beim maschinellen Lernen: Datenerfassung
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
Plink in Python
Konstante in Python
Zeichnen Sie Daten einfach in Shell und Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Python: Vorverarbeitung beim maschinellen Lernen: Datenkonvertierung
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python