Kartendaten mit Python
Wir verwenden unsere Data-Processing-Fertigkeiten, um Kartendaten zu modifizieren und darzustellen.
Teil 1: Gemeindedaten in einem Dictionary speichern:
Die Gemeinde-Daten (Einwohner, Fläche) aus gemeinden.csv
sollen über den Gemeindenamen als Schlüssel abrufbar sein. Verwende den Code von Dictionaries: Aufgabe 2 und ändere ihn so, dass die Gemeindedaten über Gemeindenamen erfragbar sind.
Dazu gibt es zwei Möglichkeiten - welche gefällt dir besser?
Zwei separate Dictionaries
population
speichert für jede Gemeinde die Anzahl Einwohner, area
die Fläche.
population = { 'Amriswil': 11365, 'Egnach': 4672, ... } area = { 'Amriswil': 9.83, 'Egnach': 12.74, ... }
Ein einziges, verschachteltes Dictionary
Das einzige Dictionary enthält für jede Gemeinde ein kleines Dictionary mit zwei Einträgen:
town_data = { 'Amriswil' : { 'population': 11365, 'area': 9.83 }, 'Egnach' : { 'population': 4672, 'area': 12.74 }, ... }
Teil 2: Haltestellen-Daten einlesen und filtern
Die Haltestellen-Daten der SBB sind in der Datei sbb.csv verfügbar. Die Daten enthalten den Namen der Haltestelle sowie deren Koordinaten als geographische Breite (Latitude
) und Länge (Longitude
).
Achtung: diese CSV-Datei benützt Semikolons als Separator, nicht Kommas (weil die Haltestellen oft mit Kommas getrennt sind: Romanshorn, Bahnhof
):
Name;Latitude;Longitude Frauenfeld;47.55606;8.89795 Romanshorn, Bahnhof;47.549999;9.300004
Wir filtern eine Anzahl Haltestellen heraus, und geben sie in einer neuen Datei im gleichen Format wieder aus. Damit Google Maps die Datei lesen kann, müssen wir wieder Kommas als Separator verwenden.
Damit Namen mit Kommas trotzdem richtig angezeigt werden, müssen sie in Anführungszeichen ("
) eingefasst werden:
Name,Latitude,Longitude Frauenfeld,47.55606,8.89795 "Romanshorn, Bahnhof",47.549999,9.300004
Zum Beispiel:
- Grosse Ortschaften mit mehr als 10000 Einwohnern (mit Lookup im Dictionary
town_data
/population
) - Ortschaften im Kanton Thurgau (mit Lookup - dazu muss neben Bevölkerungszahl und Fläche auch der Kanton gespeichert werden)
- Ortschaften innerhalb eines geographischen Bereichs (Koordinaten innerhalb der unteren linken und der oberen rechten Ecke).
Teil 3: Die generierte Datei in Google Maps importieren.
Erstelle eine neue Karte auf Google Maps und importiere deine CSV-Datei.
Teile deine Karte mit der Lehrperson!
Teil 4: Optimieren
Zürich wird nie dargestellt, wenn wir die Haltestellen mit den Gemeinde-Daten kombinieren. Weshalb? Wie könnten wir das Problem lösen?