Hektarrasterzellen zu Postleitzahlen

Der Titel klingt ähnlich wie Schwerter zu Pflugscharen, aber technisch geht’s nur darum, die knapp 340’000 Hektarrasterzellen vom BfS (mit Bevölkerung/Haushalten) bestimmten Postleitzahlen zuzuordnen. Sicher gibt’s die Zuordnung schon irgendwo, aber man kann sie ja auch berechnen. Ein Anwendungsfall wäre, dass man pro Postleitzahl die Bevölkerung ausrechnen möchte, aber nur die Zählung pro Hektarrasterzelle hat. Ein weiterer Anwendungsfall, etwas allgemeiner: ich möchte für einen beliebigen Flächenumriss wissen, wieviele Leute dort wohnen, das könnten also auch Gemeindegrenzen, Kantonsgrenzen, Verkaufsgebiete o.ä. sein.

Erstmal brauchen wir wieder Daten:

Damit lässt sich schon mal eine Karte der PLZ erstellen. Im QGIS sind das drei Layer: PLZ-Polygone, Wasserwege und Bahnlinien, bisschen Transparenz, passende Farben, fertig.

polygone-plz-plus-layers

Dazu kommen dann die BfS-Hektarrasterzellendaten z.B. aus STATPOP, wie bereits hier schon verlinkt: Grenznäheberechnung mit R. Erstmal gucken wir uns die Hektarrasterzellendaten im GIS an und stellen ein Problem fest:

PLZ-Polygone und Hektarrasterzellen als Punkte.
PLZ-Polygone und Hektarrasterzellen als Punkte.

Die Hektarrasterzellen sind aber Zellen von 100x100m, also geometrische Flächen, keine Punkte. Dementsprechend ungeeignet sind sie für die Berechnung eines Verschnitts von HR-Zellen und Postleitzahl-Polygonen. Eine Umwandlung der Hektarraster-Punkte in Hektarraster-Polygone ist notwendig. “Klingt komisch, is aber so”, um es mal mit der Sendung mit der Maus zu sagen.

Nach ein bisschen Berechnung und Umwandlung (auch in R, kombiniertes Skript s.u.) sieht die Karte schon viel schöner aus:

PLZ-Polygone und Hektarrasterzellen als Polygone.
PLZ-Polygone und Hektarrasterzellen als Polygone. Grossraum Zürich.

Ein Kartenausschnitt zeigt es noch deutlicher, dass die Punkte jetzt Polygone mit scharfen Grenzen sind:

Kartenausschnitt Zürich Hardbrücke, PLZ und Hektarrasterpolygone.
Kartenausschnitt Zürich Hardbrücke, PLZ und Hektarrasterpolygone.

Jetzt sind die PLZ-Polygone und die Hektarrasterzellen-Polygone in der Form, die es braucht, um eine Überschneidung zu berechnen. Da treten wieder zwei Fälle auf: einerseits kann eine HR-Zelle vollständig in einer Postleitzahl liegen; andererseits kann sie zu mehreren PLZ gehören. Der Einfachheit halber wird am Ende also eine Tabelle ausgegeben, die zu jeder HR-Zelle eine Postleitzahl aufführt und den Zugehörigkeitsgrad zu dieser PLZ. Den flächenmässigen Verschnitt habe ich nicht weiter berücksichtigt. D.h. wenn eine HR-Zelle sich mit drei PLZ überschneidet, dann bekommt sie einen Zugehörigkeitsgrad von jeweils 1/3 zu jeder der PLZ.

Für die Berechnung des Verschnitts gibt es die R-Funktion “over” aus dem allseits bekannten sp-package. Die scheint nicht besonders effizient zu sein oder es dauert einfach ziemlich lange. Aber mit Parallelisierung geht’s wiederum in akzeptabler Zeit und auch hier muss man das ja nicht permanent neu berechnen, sondern macht es nur einmal.

Selektion von Hektarrasterzellen nach Postleitzahl jetzt möglich.
Selektion von Hektarrasterzellen nach Postleitzahl jetzt möglich.

Eine Beispielausgabe des Skripts kann jetzt so aussehen: CSV-File (Sample). RELI der HR-Zelle, PLZ, Zugehörigkeitsgrad und als Zahlenbeispiel die Totalbevölkerung der Zelle (gewichtet und ungewichtet).

Hier die beiden R-Skripte:

Your Mileage May Vary 🙂

Leave a Reply