Zum Inhalt springen

Programmieren mit regionalen Daten - Baden-Württemberg

Aus MOOCsWiki Staging

Programmieren mit regionalen Daten - Baden-Württemberg




Programmieren mit regionalen Daten - Baden-Württemberg


Einleitung

Wie viele Menschen leben in verschiedenen Gemeinden? Wo liegen Schulen, Haltestellen oder Wochenmärkte? Wie unterscheiden sich Regionen bei Verkehr, Tourismus oder Bevölkerungsdichte? Solche Fragen lassen sich mit regionalen Daten untersuchen. In diesem aiMOOC lernst Du, Daten aus Baden-Württemberg mit Programmen zu lesen, zu prüfen, auszuwerten und verständlich darzustellen.

Der Schwerpunkt liegt auf Informatik, Datenanalyse, Programmierung und Open Data. Du arbeitest vor allem mit Python, kannst viele Ideen aber auch auf andere Programmiersprachen übertragen. Für die Klassen 7 bis 9 reichen einfache Tabellen, Schleifen und Diagramme. In den Klassen 10 bis 11 kommen Datenbereinigung und pandas hinzu. In den Klassen 12 bis 13 kannst Du außerdem Schnittstellen, GeoJSON, Geoinformationssysteme und Fragen zur Datenqualität untersuchen.

Wichtig: Regionale Daten zeigen reale Lebensräume. Deshalb gehört zu guter Datenarbeit nicht nur das Programmieren, sondern auch das Prüfen von Quellen, Lizenzen, Aktualität, Aussagekraft und Datenschutz.


Regionale Daten verstehen


Was sind regionale Daten?

Regionale Daten beziehen sich auf einen räumlich begrenzten Bereich, zum Beispiel auf eine Gemeinde, einen Stadtteil, einen Stadt- oder Landkreis, eine Region oder das ganze Land Baden-Württemberg. Ein Datensatz kann beispielsweise Einwohnerzahlen, Flächen, Messwerte, Schulstandorte, Verkehrsangaben oder Koordinaten enthalten.

Eine wichtige Frage lautet immer: Auf welche räumliche Einheit bezieht sich eine Zahl? Eine Einwohnerzahl für Stuttgart ist etwas anderes als eine Einwohnerzahl für einen Stadtbezirk. Auch Zeitpunkte müssen zusammenpassen. Ein Vergleich ist nur sinnvoll, wenn Du weißt, welche Gebiete, Jahre, Einheiten und Definitionen verwendet wurden.


Datenquellen in Baden-Württemberg

Für schulische Projekte eignen sich vor allem öffentliche und nachvollziehbare Quellen. Das zentrale Landesportal daten.bw macht Verwaltungsdaten auffindbar. Das Statistische Landesamt Baden-Württemberg stellt zahlreiche statistische Ergebnisse bereit, darunter Daten ab Gemeindeebene. Das Open GeoData-Portal des LGL bietet freie Geobasisdaten. Kommunale Portale ergänzen dies, zum Beispiel OpenData@Stuttgart oder das Transparenzportal Karlsruhe.

  1. Open Data: Suche nach Datensätzen, die maschinenlesbar und mit einer klaren Lizenz veröffentlicht sind.
  2. Amtliche Statistik: Nutze Tabellen, wenn Du Gemeinden, Kreise oder Zeitreihen vergleichen möchtest.
  3. Geodaten: Verwende Karten- und Grenzdaten, wenn räumliche Lage, Entfernungen oder Flächen wichtig sind.
  4. Metadaten: Lies immer Beschreibung, Quelle, Stand, Einheit und Lizenz, bevor Du programmierst.

Städtische Portale zeigen, wie unterschiedlich Themen sein können. In Stuttgart finden sich beispielsweise offene Daten aus Bereichen wie Verkehr, Umwelt oder Tourismus; Karlsruhe veröffentlicht unter anderem Datensätze in Formaten wie CSV, JSON oder GeoJSON. Welche Dateien gerade verfügbar und aktuell sind, musst Du jeweils direkt auf dem Portal prüfen.


Datenformate erkennen

Für den Einstieg ist CSV besonders praktisch. Eine CSV-Datei enthält tabellarische Daten als Text. Trennzeichen können Komma, Semikolon oder Tabulator sein. JSON speichert Daten in einer verschachtelten Struktur. GeoJSON ergänzt JSON um räumliche Geometrien wie Punkte oder Flächen. Geodienste wie WFS können Geodaten über das Netz bereitstellen.

Bevor Du Code schreibst, öffne die Datei zunächst in einem Texteditor oder Tabellenprogramm. Prüfe Spaltennamen, Trennzeichen, Dezimalzeichen, fehlende Werte und Zeichenkodierung. Umlaute funktionieren in der Regel zuverlässig, wenn die Datei als UTF-8 gespeichert ist.


Vom Datensatz zum Programm


Ein Arbeitsablauf für Datenprojekte

Ein gutes Datenprojekt beginnt nicht mit einem Diagramm, sondern mit einer Frage. Formuliere zuerst, was Du herausfinden möchtest. Danach wählst Du einen geeigneten Datensatz, prüfst die Metadaten und dokumentierst die Quelle. Erst dann folgen Einlesen, Bereinigen, Berechnen, Visualisieren und Interpretieren.

Ein sinnvoller Ablauf ist: Frage → Quelle → Lizenz → Daten prüfen → Code → Auswertung → Visualisierung → Interpretation → Dokumentation. Wenn Du später einen Fehler findest, kannst Du so nachvollziehen, an welcher Stelle er entstanden ist.


Einstieg mit Python und CSV

Für die Klassen 7 bis 9 kannst Du mit dem eingebauten Modul csv arbeiten. Das folgende Beispiel erwartet eine Datei mit dem Namen region_bw.csv. Die tatsächlichen Spalten hängen von Deinem Datensatz ab.

import csv

with open("region_bw.csv", encoding="utf-8") as datei:
    leser = csv.DictReader(datei, delimiter=";")
    daten = list(leser)

for zeile in daten[:5]:
    print(zeile)

Der Code liest jede Tabellenzeile als Wörterbuch ein. So kannst Du mit Spaltennamen statt mit Positionsnummern arbeiten. Falls Deine Datei ein Komma als Trennzeichen nutzt, musst Du delimiter="," einstellen.


Daten mit pandas untersuchen

Ab etwa Klasse 10 ist pandas hilfreich. Ein DataFrame verhält sich ähnlich wie eine Tabelle, kann aber direkt gefiltert, sortiert und berechnet werden.

import pandas as pd

df = pd.read_csv("region_bw.csv", sep=";")

print(df.head())
print(df.columns)
print(df.isna().sum())

Mit head() siehst Du erste Zeilen. columns zeigt die vorhandenen Spalten. isna().sum() hilft Dir, fehlende Werte zu erkennen. Passe im nächsten Schritt die Spaltennamen an Deinen echten Datensatz an.

Angenommen, Dein Datensatz enthält die Spalten Einwohner und Flaeche_km2. Dann lässt sich eine Bevölkerungsdichte berechnen:

df["Einwohner"] = pd.to_numeric(df["Einwohner"], errors="coerce")
df["Flaeche_km2"] = pd.to_numeric(df["Flaeche_km2"], errors="coerce")

df["Dichte"] = df["Einwohner"] / df["Flaeche_km2"]

print(df[["Gemeinde", "Dichte"]].sort_values("Dichte", ascending=False).head())

Diese Spaltennamen sind ein didaktisches Beispiel. Amtliche Dateien können anders aufgebaut sein. Prüfe deshalb immer die tatsächlichen Spalten und Einheiten.

Eine Dichtekarte macht sichtbar, dass ein absoluter Wert und ein Verhältnis unterschiedliche Fragen beantworten. Große Gemeinden können viele Einwohner haben, ohne die höchste Dichte zu besitzen. Genau deshalb sind geeignete Kennzahlen wichtig.


Diagramme erstellen und deuten

Mit Matplotlib oder den eingebauten Plot-Funktionen von pandas kannst Du Daten visualisieren. Ein Balkendiagramm eignet sich zum Vergleich weniger Kategorien; ein Liniendiagramm ist oft für Zeitreihen sinnvoll.

import matplotlib.pyplot as plt

auswahl = df.nlargest(10, "Dichte")

auswahl.plot.bar(x="Gemeinde", y="Dichte")
plt.ylabel("Einwohner pro km²")
plt.title("Beispiel: Gemeinden mit hoher Bevölkerungsdichte")
plt.tight_layout()
plt.show()

Ein Diagramm ist nur dann hilfreich, wenn Titel, Achsen, Einheiten und Datenquelle verständlich sind. Achte außerdem darauf, ob eine abgeschnittene Achse Unterschiede übertrieben erscheinen lässt. Frage Dich immer: Was zeigt die Grafik wirklich – und was zeigt sie nicht?


Städte vergleichen, ohne Äpfel mit Birnen zu vergleichen

Stuttgart, Karlsruhe, Freiburg, Mannheim oder Ulm unterscheiden sich in Fläche, Bevölkerungsstruktur, Verkehrssystem und räumlicher Lage. Ein fairer Vergleich braucht deshalb passende Bezugsgrößen. Statt nur die Zahl der Haltestellen zu vergleichen, könntest Du zum Beispiel Haltestellen pro Quadratkilometer oder pro Einwohner betrachten. Für Tourismusdaten kann eine Zeitreihe aussagekräftiger sein als ein einzelnes Jahr.

Datei:Aerial image of the Karlsruhe Palace.jpg

Diese Bilder zeigen unterschiedliche Stadträume. Beim Programmieren werden solche räumlichen Unterschiede in Tabellenwerten und Geometrien beschrieben. Deine Aufgabe ist es, aus Zahlen wieder eine nachvollziehbare Aussage über den Raum zu machen.


Geodaten und Karten

Für Klassen 11 bis 13 kannst Du Datentabellen mit Geodaten verbinden. Ein GeoJSON-Datensatz kann beispielsweise Gemeindegrenzen enthalten. Mit GeoPandas lässt er sich ähnlich wie eine Tabelle einlesen.

import geopandas as gpd

gebiete = gpd.read_file("gemeinden.geojson")

print(gebiete.head())
print(gebiete.crs)

Die Angabe crs beschreibt das Koordinatenreferenzsystem. Wenn zwei Geodatensätze unterschiedliche Koordinatensysteme verwenden, müssen sie vor räumlichen Vergleichen passend transformiert werden.

Alternativ kannst Du QGIS nutzen. QGIS ist ein freies Geoinformationssystem, mit dem Du Geodaten anzeigen, verbinden, filtern und kartieren kannst. Für OpenStreetMap-Daten oder offene Geodaten aus Baden-Württemberg ist das besonders nützlich.


Daten automatisch über Schnittstellen abrufen

In höheren Klassen kannst Du eine API nutzen. Eine API ermöglicht es einem Programm, Daten automatisiert abzufragen. Die konkrete Adresse und die erlaubten Abfragen hängen vom jeweiligen Portal ab. Lies deshalb immer zuerst die API-Dokumentation.

import requests

url = "HIER_DIE_DOKUMENTIERTE_API_URL_EINTRAGEN"
antwort = requests.get(url, timeout=20)
antwort.raise_for_status()

daten = antwort.json()
print(type(daten))

Verwende niemals zufällige oder undokumentierte Schnittstellen. Prüfe außerdem Nutzungsbedingungen, Abrufgrenzen und Lizenz. Bei amtlichen Statistikangeboten können Webservices oder JSON-Schnittstellen zusätzliche Funktionen bieten.


Datenqualität, Datenschutz und faire Interpretation

Daten sind nicht automatisch objektiv, nur weil sie Zahlen enthalten. Messstationen stehen an bestimmten Orten, Verwaltungsgrenzen verändern die räumliche Einteilung und Kategorien beruhen auf Definitionen. Fehlende Werte, veraltete Daten oder Änderungen der Erhebungsmethode können Ergebnisse verzerren.

Personenbezogene Daten gehören nicht in ein offenes Schulprojekt, wenn dafür keine rechtliche Grundlage und keine geeignete Einwilligung vorliegen. Nutze bevorzugt bereits veröffentlichte, aggregierte Daten. Auch bei offenen Daten gilt: Prüfe die Lizenz. Für viele offene Geobasisdaten des LGL gilt die Datenlizenz Deutschland – Namensnennung – Version 2.0, sofern beim Datensatz nichts anderes angegeben ist. Bei anderen Portalen kann die Lizenz abweichen.

Ein gutes Ergebnis enthält deshalb nicht nur Code und Grafik, sondern auch einen kurzen Methodenhinweis: Quelle, Stand, räumliche Ebene, verwendete Spalten, Berechnungen, Umgang mit fehlenden Werten und Grenzen der Aussage.


Niveaupfade für Klasse 7 bis 13

Klasse 7–9: Du liest eine kleine CSV-Datei ein, suchst Werte, berechnest Summen oder Mittelwerte und erstellst ein einfaches Diagramm. Wichtig sind verständliche Variablen, Schleifen, Bedingungen und das Prüfen der Ausgabe.

Klasse 10–11: Du arbeitest mit pandas, bereinigst Daten, vergleichst mehrere Gemeinden oder Jahre und begründest die Wahl einer Kennzahl. Du dokumentierst Quelle und Lizenz.

Klasse 12–13: Du kombinierst Datensätze, nutzt APIs oder GeoJSON, untersuchst räumliche Muster und diskutierst Datenqualität, Unsicherheit, Datenschutz und mögliche Verzerrungen. Ein reproduzierbares Notebook oder Projektbericht eignet sich als Lernprodukt.


Beispielprojekt: Eine regionale Datenfrage untersuchen

Wähle eine Frage, die zu Deinem Wohnort oder einer Region in Baden-Württemberg passt. Möglich sind zum Beispiel Verkehr, Bevölkerungsentwicklung, Tourismus, Luftqualität, Flächennutzung oder Schulstandorte. Lade einen geeigneten offenen Datensatz herunter, notiere Quelle und Lizenz und untersuche zuerst die Struktur.

Formuliere danach mindestens eine Kennzahl oder einen Vergleich. Erstelle eine Visualisierung und schreibe zwei Arten von Aussagen: eine Beobachtung, die direkt aus den Daten folgt, und eine Interpretation, die Du begründen musst. So trennst Du Ergebnis und Deutung.


Interaktive Aufgaben


Quiz: Teste Dein Wissen

Warum solltest Du vor dem Programmieren die Metadaten eines regionalen Datensatzes lesen? (Damit Du Quelle Stand Einheit räumliche Ebene und Lizenz kennst) (!Damit der Computer automatisch alle Fehler entfernt) (!Damit jede Datei zu GeoJSON wird) (!Damit Du keine Fragestellung mehr brauchst)




Welches Format eignet sich besonders gut für einfache tabellarische Daten? (CSV) (!PNG) (!MP3) (!SVG)




Was zeigt eine Bevölkerungsdichte? (Einwohner im Verhältnis zu einer Fläche) (!Nur die absolute Einwohnerzahl) (!Die geografische Länge einer Gemeinde) (!Die Anzahl aller Datenspalten)




Welche Aufgabe erfüllt pandas in einem Datenprojekt? (Tabellen einlesen filtern bereinigen und auswerten) (!Satelliten starten) (!Passwörter automatisch erzeugen) (!Bilder ohne Datenquelle lizenzieren)




Warum sind fehlende Werte bei einer Auswertung wichtig? (Sie können Berechnungen und Vergleiche beeinflussen) (!Sie erhöhen immer automatisch die Genauigkeit) (!Sie machen aus CSV eine Bilddatei) (!Sie ersetzen die Dokumentation)




Wofür wird GeoJSON typischerweise verwendet? (Für strukturierte Daten mit räumlichen Geometrien) (!Für Audiodateien) (!Für reine Textverarbeitung ohne Daten) (!Für verschlüsselte Passwörter)




Was ist bei einem Vergleich zweier Städte besonders wichtig? (Vergleichbare Bezugsgrößen Einheiten und Zeitstände) (!Möglichst unterschiedliche Definitionen) (!Eine Grafik ohne Achsenbeschriftung) (!Nur die größte Zahl auszuwählen)




Was ist eine API? (Eine Programmierschnittstelle zum strukturierten Datenaustausch) (!Eine Bilddatei für Karten) (!Eine Maßeinheit für Einwohner) (!Eine Art von Kreisgrenze)




Welche Aussage zu offenen Daten ist richtig? (Die konkrete Lizenz des Datensatzes muss geprüft werden) (!Alle Daten im Internet dürfen ohne Bedingungen genutzt werden) (!Offene Daten dürfen nie verändert werden) (!Bei offenen Daten ist die Quelle unwichtig)




Was gehört zu einer fairen Dateninterpretation? (Ergebnis und Deutung voneinander zu unterscheiden) (!Nur auffällige Werte zu zeigen) (!Fehlende Werte heimlich zu löschen) (!Die Quelle wegzulassen)





Memory

CSV tabellarisches Textformat
GeoJSON Format für räumliche Geometrien
Metadaten Informationen über Quelle Stand und Struktur
API Programmierschnittstelle für Datenabrufe
Median robuster mittlerer Lagewert
Lizenz Regeln für die erlaubte Datennutzung





Drag and Drop

Ordne die richtigen Begriffe zu. Thema
Datenquelle Herkunft eines Datensatzes
Datenbereinigung Korrigieren oder Kennzeichnen problematischer Werte
Visualisierung Grafische Darstellung von Ergebnissen
Koordinatensystem Bezugssystem für räumliche Positionen
Bezugsgröße Grundlage für einen fairen Vergleich
Dokumentation Nachvollziehbare Beschreibung des Vorgehens






Kreuzworträtsel

Pandas Welche Python-Bibliothek wird häufig für tabellarische Datenanalysen verwendet?
Lizenz Was legt Bedingungen für die Nutzung eines offenen Datensatzes fest?
GeoJSON Welches Format verbindet strukturierte Daten mit räumlichen Geometrien?
Metadaten Wie heißen Informationen über Quelle Stand Struktur und Einheit eines Datensatzes?
Median Welcher Lagewert ist gegenüber einzelnen Extremwerten oft robuster als der Mittelwert?
Anonymisierung Wie heißt ein Verfahren das Rückschlüsse auf einzelne Personen erschweren soll?





LearningApps


Lückentext

Vervollständige den Text.

Regionale Daten beziehen sich auf einen räumlich begrenzten

. Eine tabellarische Textdatei wird häufig im Format

gespeichert. Informationen über Quelle Stand und Einheit heißen

. Mit der Python-Bibliothek

lassen sich Tabellen komfortabel filtern und auswerten. Eine Bevölkerungsdichte setzt Einwohnerzahl und

zueinander ins Verhältnis. Räumliche Geometrien können im Format

gespeichert werden. Eine Programmierschnittstelle wird kurz

genannt. Vor der Weiterverwendung eines Datensatzes musst Du seine

prüfen. Fehlende Werte gehören zur Prüfung der

. Bei einem Vergleich mehrerer Städte müssen Bezugsgrößen und

zusammenpassen.




Offene Aufgaben


Leicht

  1. Datensatz: Suche auf daten.bw oder einem kommunalen Portal einen Datensatz aus Deiner Region und notiere Thema, Quelle, Stand und Lizenz.
  2. CSV: Öffne eine kleine CSV-Datei in einem Texteditor und markiere Spaltennamen, Trennzeichen und zwei mögliche Stolperstellen.
  3. Python: Schreibe ein Programm, das die ersten Zeilen eines regionalen Datensatzes einliest und verständlich ausgibt.
  4. Datenvisualisierung: Erstelle aus wenigen ausgewählten Werten ein Balkendiagramm und formuliere eine Beobachtung, die direkt aus der Grafik folgt.


Standard

  1. Datenbereinigung: Untersuche einen Datensatz auf fehlende Werte, uneinheitliche Schreibweisen oder falsche Datentypen und dokumentiere Deine Korrekturen.
  2. Vergleich: Vergleiche zwei Städte oder Kreise mit einer sinnvollen Bezugsgröße und begründe, warum Dein Vergleich fairer ist als der Vergleich absoluter Zahlen.
  3. Zeitreihe: Wähle Daten aus mehreren Jahren, programmiere eine Zeitreihe und beschreibe einen Trend sowie mindestens eine Unsicherheit der Deutung.
  4. Interview: Befrage eine Person aus Kommune, Schule oder Verwaltung dazu, welche Daten für lokale Entscheidungen nützlich sind, und vergleiche die Aussagen mit einem offenen Datensatz.


Schwer

  1. API: Nutze eine dokumentierte Schnittstelle eines Datenportals, rufe Daten automatisiert ab und speichere eine nachvollziehbare Auswahl für Deine Analyse.
  2. GeoJSON: Verbinde einen tabellarischen Datensatz mit räumlichen Gebieten und erstelle eine thematische Karte für eine Region in Baden-Württemberg.
  3. Datenkritik: Untersuche, wie sich Ergebnis und Aussage verändern, wenn Du eine andere Kennzahl, räumliche Ebene oder Zeitspanne wählst.
  4. Projektarbeit: Entwickle in einem Team ein kleines Datenprodukt für Eure Schule oder Gemeinde, zum Beispiel Dashboard, Karte, Erklärvideo oder interaktive Website, und dokumentiere Quelle, Lizenz, Code und Grenzen der Aussage.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

  1. Transfer: Eine Gemeinde meldet mehr Radverkehr als eine andere. Entwickle drei mögliche Erklärungen und beschreibe, welche zusätzlichen Daten Du brauchst, um sie zu prüfen.
  2. Vergleichbarkeit: Zwei Datensätze verwenden unterschiedliche Jahre und räumliche Abgrenzungen. Erkläre, wie Du vorgehen würdest, bevor Du sie gemeinsam auswertest.
  3. Datenqualität: In einer Tabelle fehlen Werte für mehrere Gemeinden. Entscheide, wann Löschen, Kennzeichnen oder Ersetzen sinnvoll sein könnte, und begründe Deine Entscheidung.
  4. Visualisierung: Entwirf für denselben Datensatz zwei unterschiedliche Diagrammtypen und beurteile, welche Aussage jeweils leichter oder schwerer zu erkennen ist.
  5. Datenschutz: Ein Schulprojekt möchte sehr kleinräumige Daten mit persönlichen Angaben kombinieren. Entwickle eine datenschutzfreundliche Alternative mit aggregierten oder bereits offenen Daten.
  6. Reproduzierbarkeit: Beschreibe, welche Informationen ein anderer Kurs benötigt, um Deine regionale Analyse mit denselben Daten erneut auszuführen und zu überprüfen.




Lernnachweis

Für einen Lernnachweis zu diesem Thema ist wichtig, dass Du nicht nur ein funktionierendes Programm abgibst, sondern den gesamten Datenweg nachvollziehbar machst.

  1. Fragestellung: Eine klare regionale Frage und eine begründete Auswahl der Daten.
  2. Quellenkritik: Quelle, Stand, räumliche Ebene, Einheit und Lizenz des Datensatzes.
  3. Programmcode: Lesbarer, kommentierter und funktionierender Code für Einlesen, Prüfen und Auswerten.
  4. Datenanalyse: Sinnvolle Kennzahlen, Filter oder Vergleiche mit begründetem Umgang mit fehlenden Werten.
  5. Visualisierung: Eine verständliche Grafik oder Karte mit Titel, Beschriftungen und Einheiten.
  6. Interpretation: Trennung von Beobachtung und Deutung sowie Benennung von Grenzen und Unsicherheiten.
  7. Dokumentation: So genaue Arbeitsschritte, dass eine andere Person die Analyse nachvollziehen kann.




OERs zum Thema

Als offene Ausgangspunkte eignen sich insbesondere die Wikipedia-Artikel zu Baden-Württemberg, Open Data, Python und Geodaten sowie die offiziellen Datenportale des Landes und der Kommunen.

  1. daten.bw – Open-Data-Portal Baden-Württemberg
  2. Statistikdatenbank Baden-Württemberg
  3. Open GeoData-Portal des LGL
  4. OpenData@Stuttgart
  5. Transparenzportal Karlsruhe


Verknüpfte Lernbereiche

Die Arbeit mit regionalen Daten verbindet Programmierung, Statistik, Geografie und Medienbildung. Du lernst, reale Datenquellen zu erschließen, Datenstrukturen zu verstehen, Berechnungen zu automatisieren, räumliche Muster sichtbar zu machen und Ergebnisse kritisch zu beurteilen.


aiMOOC-Projekte