Kartendaten mit Python

Wir verwenden unsere Data-Processing-Fertigkeiten, um Kartendaten zu modifizieren und darzustellen.

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 },
    ...
}

Lösung:

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).

Lösung:

Erstelle eine neue Karte auf Google Maps und importiere deine CSV-Datei.

Teile deine Karte mit der Lehrperson!

Beispiel

Zürich wird nie dargestellt, wenn wir die Haltestellen mit den Gemeinde-Daten kombinieren. Weshalb? Wie könnten wir das Problem lösen?

Lösung:

  • gf_informatik/daten/processing/maps.txt
  • Zuletzt geändert: 2023-06-26 07:23
  • von hof