Scraper fuer Geodaten der Pendlerstatistik der Arbeitsagentur
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Norwin Roosen bf170b1f5c
update to 2017 data, fix interrupt handling
9 months ago
README.md update to 2017 data, fix interrupt handling 9 months ago
fetch-kreise.py commit 10 months ago
fetch-pendler.py update to 2017 data, fix interrupt handling 9 months ago
summarize-pendler.py commit 10 months ago

README.md

Pendleratlas Scraper

Die Bundesagentur fuer Arbeit stellt die Pendlerstatistik von 2016 - 2017 als interaktive Karte auf ihrer Website bereit.

Diese Statistik bietet die detailliertesten Informationen zu Pendlern auf Bundesebene welche ich finden konnte: Es werden kreisuebergreifende Ein- / Auspendler fuer jeden Kreis, gegliedert nach Pendler-Ziel sowie Geschlecht geliefert. Ebenfalls ist die Wohnpopulation und Gesamt-Pendlermenge jedes Kreises angegeben. Anders als in den Veroeffentlichungen von DeStatis werden hier also auch die exakten Ziel-Kreise der Pendler, sowie exakte Angaben gemacht.

Daten auf Gemeinde-Ebene mit zusaetzlichen Attributen (Beschaeftigungsart, Wirtschaftsbereich) wie im Pendleratlas-NRW liegen leider nicht vor.

PendlerDaten API

Um selbst mit den Daten arbeiten zu koennen kann es nuetzlich sein, sie nicht nur auf einer Karte zu betrachten. Diese python Skripte laden die Pendlerstatistik automatisiert herunter und exportiert sie als GeoJSON bzw Shapefile. Die zugehoerige API liegt unter https://statistik.arbeitsagentur.de/PendlerDaten? (Beispiel).

Disclaimer: Dieses Projekt ist in keiner Weise mit destatis oder der Arbeitsagentur verbunden. Ich garantiere und hafte fuer nichts bezueglich der hier bereitgestellten Daten und Skripte. Es wurden ausschliesslich oeffentlich zugaengliche APIs dokumentiert.

IDs der Kreise

Die API referenziert die Kreise ueber IDs welche von einem ESRI ArcGIS MapServer (?) unter http://geois.arbeitsagentur.de/arcgis/rest/services/Gebietsstrukturen/MapServer/3 liegen.

Dieses Layer laesst sich als GeoJSON mitsamt Kreis IDs, Geometrien und Namen mit folgendem Befehl beziehen:

wget "http://geois.arbeitsagentur.de/arcgis/rest/services/Gebietsstrukturen/MapServer/3/query?f=geojson&where=valid_from <= CURRENT_DATE AND valid_to >= CURRENT_DATE&returnGeometry=true&spatialRel=esriSpatialRelIntersects&outFields=ID,region,OBJECTID,parentID&outSR=4326" -O kreise.json

# oder 
python fetch-kreise.py > kreise.json

Es stellt sich heraus, dass die von der PendlerDaten API erwarteten Kreis IDs aus dem Attribut RS der Verwaltungsgrenzen (vg250_krs) des Geodatenzentrums sind. Falls also die exakte Geometrie der Kreise benoetigt wird, kann man das sicherlich auch diesen Datensatz als Grundlage wahlen.

Pendlerdaten

Das Skript fetch-pendler.py erwartet die Gemeindegrenzen kreise.json im selben Ordner, und fragt die API der Arbeitsagentur fuer jeden Kreis ab. Das Jahr kann im Kopf des Skripts gewaehlt werden, Daten sind jeweils nur fuer den Juni verfuegbar. Dies dauert ne ganze Weile, da die API langsam und instabil ist. Fehlgeschlagene Requests werden wiederholt bis alles da ist. Das Skript augmentiert das zuvor bezogene kreise.json und speichert als pendler.json

Es werden die Attribute einpendler und auspendler in den Properties jedes Features angelegt. Diese sehen dann wie folgt aus:

"properties": {
  "ID": "05910",
  "region": "Hömmelebömmele",

  // einpendler je kreis ID
  "einpendler": {
    "05913": {
      "frauen": 1838,
      "anzahl": 4573,
      "maenner": 2735
    },
    "05911": {
      "frauen": 1265,
      "anzahl": 3220,
      "maenner": 1955
    },

    // .... alle anderen kreise

    // gesamt pendler
    "gesamt": {
      "frauen": 19865,
      "anzahl": 52456,
      "maenner": 32591
    },
    // wohnbevoelkerung des kreises
    "svb": {
      "frauen": 95155,
      "anzahl": 211028,
      "maenner": 115873
    }
  },

  "einpendler": { ... }
}

Shapefile

Eine Zusammenfassung der Daten (Pendlergesamtaufkommmen pro Kreis) als Shapefile laesst sich folgendermassen generieren:

python summarize-pendler.py
ogr2ogr pendler.shp pendler-summary.json

Lizenz

  • Code: public domain
  • pendler.shp, pendler.json, kreise.json: © GeoBasis-DE / BKG 2016 (Daten verändert)
  • Pendlerdaten: unbekannt