Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:daten:processing:maps [2022-06-20 11:34] – [Teil 2: Haltestellen-Daten einlesen und filtern] hofgf_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:daten:processing:dictionaries#aufgabe_2csv_in_ein_dictionary_einlesen|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? 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:
 </code> </code>
  
-<nodisp 2>+<nodisp 1>
 ++++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] = {'name': town, 'canton': canton, 'population' : population, 'area': area}+                data[town] = {'canton': canton, 'population' : population, 'area': area}
             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://kantonsschuleromanshorn.sharepoint.com/:x:/r/sites/FSInformatik/Freigegebene%20Dokumente/OFI2/Daten/Processing/Beispieldaten/sbb.csv?download=1|sbb.csv]] verfügbar. Die Daten enthalten den Namen der Haltestelle sowie deren Koordinaten als geographische Breite (`Latitude`) und Länge (`Longitude`).+Die Haltestellen-Daten der SBB sind in der Datei [[https://kantonsschuleromanshorn.sharepoint.com/:x:/s/FSInformatik/Ee--2g8cf1FJqSwr9V-WVOMB4CiKukEqXjMQi7jhdojD3Q?download=1|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`): **Achtung**: diese CSV-Datei benützt Semikolons als Separator, nicht Kommas (weil die Haltestellen oft mit Kommas getrennt sind: `Romanshorn, Bahnhof`):
  
 ``` ```
-Name,Latitude,Longitude+Name;Latitude;Longitude
 Frauenfeld;47.55606;8.89795 Frauenfeld;47.55606;8.89795
 Romanshorn, Bahnhof;47.549999;9.300004 Romanshorn, Bahnhof;47.549999;9.300004
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).
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 +
 +Mit der Funktion `load_town_data` von [[gf_informatik:daten:processing:maps#ein_einziges_verschachteltes_dictionary|Teil 1]]:
  
 <code python haltestellen.py> <code python haltestellen.py>
Zeile 99: Zeile 104:
                     if town_data[name]['population'] >= min_pop:                     if town_data[name]['population'] >= min_pop:
                         name = '"' + name + '"'  # Namen in "" einpacken                         name = '"' + name + '"'  # Namen in "" einpacken
-                        filtered.write(','.join([name,str(lat),str(lng)]) + '\n')+                        filtered.write(name + "," + str(lat) + "," + str(lng) + '\n')
             except ValueError:             except ValueError:
                 pass                 pass
  • gf_informatik/daten/processing/maps.1655724851.txt.gz
  • Zuletzt geändert: 2022-06-20 11:34
  • von hof