Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
gf_informatik:daten:processing:maps [2022-06-13 13:07] – [Teil 2: Haltestellen-Daten einlesen und filtern] hof | gf_informatik:daten:processing:maps [2023-06-26 07:23] (aktuell) – hof | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
### Teil 1: Gemeindedaten in einem Dictionary speichern: | ### 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. | + | Die Gemeinde-Daten (Einwohner, Fläche) aus `gemeinden.csv` sollen über den Gemeindenamen als Schlüssel abrufbar sein. Verwende den Code von [[gf_informatik: |
Dazu gibt es zwei Möglichkeiten - welche gefällt dir besser? | Dazu gibt es zwei Möglichkeiten - welche gefällt dir besser? | ||
Zeile 26: | Zeile 26: | ||
#### Ein einziges, verschachteltes Dictionary | #### Ein einziges, verschachteltes Dictionary | ||
+ | |||
Das einzige Dictionary enthält für jede Gemeinde ein kleines Dictionary mit zwei Einträgen: | Das einzige Dictionary enthält für jede Gemeinde ein kleines Dictionary mit zwei Einträgen: | ||
+ | |||
<code python> | <code python> | ||
town_data = { | town_data = { | ||
Zeile 35: | Zeile 37: | ||
</ | </ | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
+ | |||
<code python> | <code python> | ||
def load_town_data(): | def load_town_data(): | ||
Zeile 48: | Zeile 51: | ||
population = int(values[2]) | population = int(values[2]) | ||
area = float(values[3]) | area = float(values[3]) | ||
- | data[town] = {' | + | data[town] = {' |
except ValueError: | except ValueError: | ||
pass | pass | ||
Zeile 58: | Zeile 61: | ||
### Teil 2: Haltestellen-Daten einlesen und filtern | ### Teil 2: Haltestellen-Daten einlesen und filtern | ||
- | Die Haltestellen-Daten der SBB sind in der Datei [[https:// | + | Die Haltestellen-Daten der SBB sind in der Datei [[https:// |
**Achtung**: | **Achtung**: | ||
``` | ``` | ||
- | Name,Latitude,Longitude | + | Name;Latitude;Longitude |
Frauenfeld; | Frauenfeld; | ||
Romanshorn, Bahnhof; | Romanshorn, Bahnhof; | ||
Zeile 70: | Zeile 73: | ||
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. | 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, | + | Damit Namen mit Kommas trotzdem richtig angezeigt werden, |
``` | ``` | ||
Zeile 82: | Zeile 85: | ||
* Ortschaften innerhalb eines geographischen Bereichs (Koordinaten innerhalb der unteren linken und der oberen rechten Ecke). | * Ortschaften innerhalb eines geographischen Bereichs (Koordinaten innerhalb der unteren linken und der oberen rechten Ecke). | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
+ | |||
+ | Mit der Funktion `load_town_data` von [[gf_informatik: | ||
<code python haltestellen.py> | <code python haltestellen.py> | ||
Zeile 99: | Zeile 104: | ||
if town_data[name][' | if town_data[name][' | ||
name = '"' | name = '"' | ||
- | filtered.write(',' | + | filtered.write(name |
except ValueError: | except ValueError: | ||
pass | pass | ||
Zeile 136: | Zeile 141: | ||
Teile deine Karte mit der Lehrperson! | Teile deine Karte mit der Lehrperson! | ||
+ | [[https:// | ||
+ | |||
+ | ### Teil 4: Optimieren | ||
+ | |||
+ | Zürich wird nie dargestellt, | ||
+ | |||
+ | ++++Lösung: | ||
+ | * Es gibt keine Haltestelle " | ||
+ | * Abhilfe: wir könnten jeweils nach dem ersten Wort des Haltestellennamens suchen (`name.split()[0]`)... | ||
+ | * ... und aufpassen, dass wir dann nicht alle Tramhaltestellen Zürichs darstellen | ||
+ | ++++ |