From f13b8305e755c2821ca0765b03db118d0ad82486 Mon Sep 17 00:00:00 2001 From: Marcel Schwarz Date: Sun, 17 Jan 2021 19:20:06 +0000 Subject: [PATCH] Update Vorgehensweise --- Projektarbeit-3/Vorgehensweise.md | 32 ++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/Projektarbeit-3/Vorgehensweise.md b/Projektarbeit-3/Vorgehensweise.md index d05306e..4cb30ec 100644 --- a/Projektarbeit-3/Vorgehensweise.md +++ b/Projektarbeit-3/Vorgehensweise.md @@ -27,11 +27,33 @@ Zuletzt können Filterungen der London-API-Daten bereits im Backend erledigt wer Das Backend bietet alle Endpoints über eine Swagger UI als Dokumentation an. Dort können alle Datenbeschreibungen abgerufen werden und Anfragen können vorab getestet werden. Die Spezifikation kann auch ganz einfach als openapi.json abgerufen werden, mehr dazu aber in einem späteren Kapitel. ## Datenaufbereitung (Theorie) -* Analyse, was ist wichtig, was kann weg -* Schlechter Datensatz - * Viele Duplikate - * Kaputte Datensätze -* Aufbauen der lokalen Relationen zu den "upstream" Daten +Zunächst war es wichtig, welche Daten wir für unsere Diagramme überhaupt auswerten müssen. Der [OpenData Export](https://cycling.data.tfl.gov.uk/) bietet zwei Arten von großen Datensätzen an. +1. CycleCounters + * Blackfrairs + * Embankment +2. Usage Stats + * Jan. 2015 - Sep. 2020 + +Unsere Diagramme lassen sich alle aus den Usage Stats Exports ableiten, deshalb haben wir auch nur diese ausgewertet. + +Ein Beispieldatensatz sieht wie folgt aus: +``` +Rental Id,Duration,Bike Id,End Date,EndStation Id,EndStation Name,Start Date,StartStation Id,StartStation Name +-------------------------------------------------------------------------------------------------------------------------- +75376347,120,1801,08/05/2018 15:55,322,"Palissy Street, Shoreditch",08/05/2018 15:53,533,"Wellington Row, Bethnal Green" +``` +Bis auf die Bike Id haben wir alle Spalten in unsere eigene Datenhaltung übernommen. + +Zusätzlich dazu wurden noch die Accidents und die Bikepoints aus der Live API gecached, dazu aber mehr in der Implementierung. + +**Anmerkung:** Der Datensatz der "Usage Stats" war sehr unsauber exportiert, weshalb ein einfaches Parsing nicht möglich war. Folgende Probleme sind mehrfach beim Import aufgetreten: +* Eine Datei wurde mehrfach mit anderen Namen hochgeladen. Daraus folgt, dass die unique Constraint der "Rental Id" Spalte fehlschlägt. +* Spalten waren in den CSV-Dateien nicht immer gleich benannt, oder sogar gar nicht vorhanden. Sollte dies vorkommen wurden die Spalten beim Parsing umbenannt, oder die ganze Datei wurde weggelassen. +* Weiter wurden nachträglich Bikepoint Id geändert, was es nötig gemacht hat, dass die aktuellen Bikepoint Ids über den Namen angepasst werden mussten. + +**Anmerkung:** Der Datensatz der Accidents war ebenfalls fehlerhaft. Dort wurde jeder Unfall doppelt zurückgegeben. + +**Anmerkung:** Allgemein lässt sich sagen, dass die Datensätze und Exports sich in einem sehr schlechten Zustand befinden. ## API-Framework * FastAPI