Denken Sie darüber nach, Ihr nächstes Auto elektrisch zu betreiben, zweifeln aber an den Lademöglichkeiten in Ihrer Nachbarschaft? Nun, ich schon. Und ich habe mich auch gerade als Google Cloud Professional Data Engineer zertifizieren lassen. Sind Sie neugierig, wie ich GCP zur Beantwortung meiner Frage eingesetzt habe? Lesen Sie weiter.
Daten sammeln
Das erste, was Sie brauchen, um eine Frage zu beantworten, sind Daten. Also machte ich mich daran, Informationen über die Nutzung der Elektroladestationen in meiner Nachbarschaft zu Hause in Utrecht und rund um das GDD-Büro in Amsterdam zu sammeln.
Sie können zum Beispiel die aktuell verfügbaren Ladestationen bei NewMotion finden. Sie haben vielleicht schon geahnt, dass ich diese Daten nicht manuell erfassen werde. Also habe ich eine Cloud-Funktion zum Sammeln und Speichern von Daten erstellt. Kurz gesagt, ich habe eine einfache Sammelfunktion geschrieben, die den aktuellen Status für die Ladestationen, die mich interessieren, abfragt und die Antwort als Blob in den Google Cloud-Speicher hochlädt. Mit einem Wörterbuch von Stationsnamen und -kennungen sieht diese Sammelfunktion wie folgt aus.
def sammeln(anfordern.): Stationen = {'station_name': 123456} für Name, uid in Stationen.Artikel(): jetzt = dt.datetime.jetzt().strftime('%Y%m%d-%H%M%S') upload_blob(eimer_name_str='Ladestatistiken', station_status_str=get_station_status(uid), ziel_blob_name_str=f'{Name}_{now}')
Dabei sendet get_station_status einfach eine Anfrage, die einige Textdaten zurückgibt, die wir in einem Bucket speichern. Wir verwenden hier einfach Google Cloud Storage, weil es billig ist. Außerdem ist die Größe dieser Daten nicht sehr groß, so dass wir keine optimierte Datenspeicherlösung benötigen. Wir werden in der Lage sein, alles in den Speicher zu laden. Die Funktion upload_blob sieht wie folgt aus.
def upload_blob(eimer_name_str, station_status_str, ziel_blob_name_str): """Lädt Daten in den Bucket hoch.""" storage_client = Lagerung.Kunde() Eimer = storage_client.get_bucket(eimer_name_str) Klecks = Eimer.Klecks(ziel_blob_name_str) Klecks.upload_from_string(station_status_str, inhalt_art='text/plain', Kunde=Keine, vordefiniert_akl=Keine)
Um Ihre eigene Cloud Function zu erstellen, fügen Sie einfach den obigen Python-Code in den Inline-Editor in main.py ein, nachdem Sie Python 3.7 als Runtime ausgewählt haben. Unter requirement.txt geben Sie die benötigten Pakete an, hier python, pandas, pytz, requests, google-cloud-storage. Und schließlich geben Sie collect als die auszuführende Funktion an.
Terminplanung
Der nächste Schritt besteht darin, dafür zu sorgen, dass diese Cloud-Funktion in einem festen Intervall ausgeführt wird, um tatsächlich mit der Datenerfassung zu beginnen. Cloud Scheduler ist die Rettung. Es ist ganz einfach: Sie müssen nur die Häufigkeit angeben, HTTP als Ziel wählen und die URL Ihrer Cloud Function angeben.
Der von mir erstellte Cloud-Storage-Bucket füllt sich automatisch mit vielen Blobs, die Informationen über die Nutzung der Ladestationen enthalten, die mich interessieren.
Daten vorbereiten
Der Storage Bucket enthält nun viele mit Zeitstempeln versehene Blobs, die ich zu einem Datensatz für die Untersuchung zusammenstellen muss. Um die Einrichtung von Richtlinien und Zugriffsrechten zu vermeiden, verwende ich die KI-Plattform von Google, um ein Notebook zu erstellen, mit dem ich die Daten schnell aus Google Storage laden und sofort mit der Untersuchung beginnen kann.
Nachdem ich mehr als zwei Monate lang jede Minute Daten für 14 Ladestationen erfasst habe, habe ich fast 1,5 Millionen Blobs gesammelt. Jeder Blob enthält json-Daten, aus denen ich den Stationsnamen, eine eindeutige Kennung für eine Säule an der Station (eine Station kann mehrere Säulen haben), den Status der Säule und den Zeitstempel auswähle.
Wenn ich alles zusammenfasse, sieht mein Datensatz folgendermaßen aus.
Daten erforschen
Wenn wir alles zusammennehmen, haben wir Informationen über die Nutzung von 5 Ladestationen in Utrecht und 9 in Amsterdam für etwa 2 Monate. Nach einigen schnellen Zählungen habe ich herausgefunden, dass bei 4 der Stationen in Amsterdam etwas Seltsames vor sich geht. Für diese Stationen wurden nur sehr wenige Zustandsänderungen aufgezeichnet, was für ihren Standort unerwartet ist. Ich vermute, dass entweder bei der Datenerfassung etwas schief gelaufen ist, die Stationen wegen Bauarbeiten nicht erreichbar waren oder etwas anderes vor sich geht. Wie auch immer, die Nutzung dieser Stationen war so unerwartet/gering und unterschied sich von den anderen, dass ich diese Stationen für die weitere Analyse entfernt habe.
Zeit für ein paar Fragen!
Wie oft werden die Ladesäulen benutzt?
Wenn wir uns alle Ladesäulen ansehen, stellen wir fest, dass sie nur zu etwa 39 Prozent der Zeit belegt sind. Allerdings gibt es große Unterschiede zwischen den einzelnen Stationen.
Wie lange dauern die Ladevorgänge?
Die durchschnittliche Ladedauer beträgt etwa 10 Stunden (Median 7 Stunden) und auch hier gibt es erhebliche Unterschiede zwischen den einzelnen Stationen. Vor allem unterscheiden sich die verschiedenen Masten an ein und derselben Station recht stark. Das deutlichste Beispiel für diesen Effekt ist AMS - weesperzijde 98, wo der Durchschnitt an einem Pol am höchsten und am anderen am niedrigsten ist.
Hinweis: Ein Ladevorgang ist die Zeit, in der ein Fahrzeug an den Mast angeschlossen ist (es kann also sein, dass die Batterie bereits voll ist).
Zu welcher Tageszeit werden die Gebühren erhoben?
Es ist klar zu erkennen, dass die meisten Menschen über Nacht aufladen und mit dem Aufladen wieder beginnen, wenn sie von der Arbeit zurückkommen, da der Verbrauch ab vier Uhr nachmittags wieder ansteigt.
Beim Heranzoomen auf bestimmte Pole sehen wir deutlich zwei verschiedene Muster. Das erste Muster ist das oben beschriebene: ein Ladetief während der Arbeitszeiten. Das zweite Muster ist die Umkehrung des ersten: Ladespitze während der Arbeitszeiten.
Kaufen oder nicht kaufen
Ich habe festgestellt, dass es sowohl in der Nähe der Arbeit als auch zu Hause mehr als genug Lademöglichkeiten für mich gibt. Vor allem in Utrecht sind die Ladesäulen die meiste Zeit über unbesetzt.
Ich werde die Nutzung beobachten, um zu sehen, ob Elektroautos beliebter werden und die Nutzung zunimmt. Im Moment würde ich sagen, dass es sicher ist, auf den EV-Zug aufzuspringen.
Wenn Sie Fragen zum Code oder zur verwendeten Technologie haben, können Sie uns gerne kontaktieren.
Verfasst von

Roel
Unsere Ideen
Weitere Blogs
Contact




