Zielsetzung

In diesem Artikel möchte ich zeigen, wie man ausgehend von einem Weg und einem Digitalen Geländemodell jeweils die Bergseite und die Talseite des Weges mit Hilfe von GIS bestimmt. Dies bezeichnet man als Uphill/Downhill-Berechnung. In der Forstwirtschaft ist es beispielsweise interessant, ob das geschlagene Holz eines Bestandes bergauf oder bergab auf den Weg gerückt (transportiert) wird. Bergab wird die Reichweite der Rückung bei relativ gleichbleibenden Rückekosten und somit auch die Erschließungswirkung eines Weges mit ca. 300m angenommen. Bergauf jedoch kann man für vergleichbare Rückekosten nur bis maximal 150m kalkulieren. Daher ist es interessant, die Berg – und Talseite eines Weges zu bestimmen. Die Methoden wurden dem Dokument „Predicting wood skidding direction on Steep Terrain by DEM and Forest Road Network Extension“ entnommen und auf die Software  SAGA GIS in der Version 2.0.6 übertragen.

Datenbeschaffung

Das Landesamt für Vermessung und Geoinformation (LVG) Bayern stellt auf seiner Webseite verschiedene Testdaten zum Download bereit. Darunter findet man Digitale Geländemodelle (DGM) in der Auflösung von 2,5,10,25 und 50m, und auch ATKIS-Geometrien.
Wir können uns hier am DGM10m und den ATKIS-Daten für ein Testgebiet gütlich tun und haben damit schon alles, was wir für die Demonstrationsberechnung der Berg- und Talseite benötigen.
Die ATKIS-Daten beinhalten unter anderem auch Straßen und Verkehrswege, das DGM10m liefert unser Geländemodell in der Auflösung von 10m.

Import der Daten in SAGA GIS

Das Importieren des DGMs erfolgt am komfortabelsten mit dem GDAL-Treiber unter „Import/Export – GDAL/OGR, GDAL: Import Raster“. Dabei ist es egal, welche Form das DGMs eingelesen wird (ASCII-Grid, ASCII-Text oder Binary).
Die ATKIS-Daten können als Shapefiles mit „File – Shapes -Load Shapes“ geladen werden, wobei wir nur die Straßen und Wege benötigen. Diese Daten findet man nach dem beiliegenden PDF in „ver_01_l.shp“.

Verarbeitung

Die Verarbeitungsschritte sind im kurzen:

  • Hillshade erzeugen
  • Shapefile auf OBA=3102 filtern und daraus Layer „Wege“ erzeugen
  • Rastern des Wegelayers
  • Grid Buffer des Wegerasters
  • Verschneiden der Höhen des DGM mit den Wegverläufen
  • Proximity Buffer des mit Höhen angereicherten Wegelayers inkl. Allokation der Höhenwerte
  • Maskieren der Allokation mit dem Buffer
  • Verschneiden der Höhen des DGM mit der maskierten Allokation

Zunächst einmal erzeugen wir uns ein Schummerungsbild des DGMs mit dem Werkzeug „Terrain Analysis – Lighting, Visibility: Analytical Hillshading“. Die Standardeinstellungen können dabei belassen werden.

Nach dem ATKIS Objektartenkatalog sind alle Wege (Feld und Waldwege) mit der Objektart 3102 gekennzeichnet. Deshalb extrahieren wir nur die Objektart „Wege“ des Layers „ver_01_l“, in dem wir mit dem Tool „Shapes – Tools, Query Builder for Shapes“ eine Selektion nach 3102 erstellen (Expression: e=3102).


Zur Erläuterung: Die Attributspalten der Shapefiles werden in SAGA GIS in der Expression alphabetisch adressiert. Die Spalte OBA enthält die Information über die Objektart als Ganzzahl (LONG INTEGER) und ist an fünfter Stelle der Attributtabelle zu finden. (Ein Blick auf die Settings des Layers, Reiter Description zeigt die Reihenfolge der Attribute). Daher muss die Expression „e=3102“ heissen. Noch eins: Dieses Werkzeug funktioniert nur mit Zahlen – Text-Selektionen müssen über das Tool „Search in attributes table“ getätigt werden.

Anschließend kann über „Shapes – Tools, New Layer from selected shapes“ ein neuer Layer mit den Wegen erzeugt werden. Dieser wird über die Eigenschaftsanzeige (Settings) umbenannt zu „Wege“.

Nun erfolgt das Konvertieren der Vektorgeometrien (Wege) in Rastereinheiten. Dabei bedienen wir uns dem Werkzeug „Grid – Gridding, Shapes to Grid“ und nehmen die folgenden Einstellungen vor.

Im zweiten Dialog muss nur noch das Grid System angewählt wurden, in dem auch das DGM10m steckt und als Option bei „<< Grid [create]“ gewählt werden.

Achtung: Man sollte sich den Output hier einmal ansehen, da bei einer Selektion auf dem Eingangslayer bei diesem Tool auch nur die Selektion gerastert wird. Genau das machen wir jetzt auch.

Nun gehts weiter mit dem Puffern des Wegerasters. Beim Werkzeug „Grid – Tools, Grid Buffer“ kann man nicht viel falsch machen. Der Input ist der Wegeraster, bei der Buffer size wählen wir 50 (m) und geben dies als „Fixed“ an. Die 50m sind deshalb so klein gewählt, weil das Untersuchungsgebiet mit relativ vielen Wegen ausgestattet ist, jedoch flächig recht klein ist. Ein interessanter Wert aus forstwirtschaftlicher Sicht wäre hier eher 300m. Ich nenne den Puffer „Wege_Buf_50m“.

Anschließend wollen wir den Wegen die Höhen des DGM zuweisen. Dies können wir mit dem „Grid – Calculus, Grid Calculator“ erledigen. Beim Grid Calculator können Rasterdatensätze mit Funktionen oder mathematischen Ausdrücken bearbeitet werden. Wichtig ist, dass die Reihenfolge der Grids bei der Formel beachtet wird:

ifelse(a>0,b,-99999)

Die Formel heisst nichts anderes wie: „Schau nach wo ein Wert im ersten Grid über 0 ist, wenn ja, dann nimm den Wert für diese Rasterzelle aus dem zweiten Grid und schreib sie in das neue Grid. Ansonsten schreib -99999 rein, was NoData entspricht.“

Nun werden wir die Höhen, die wir nun im erzeugten WEGE_HOEHE-Raster haben auf die Pufferweite von 50m um die Wege herum expandieren. Dies geschieht in zwei Schritten. Zunächst bedienen wir uns dem Werkzeug „Grid – Tools, Proximity Grid“. Hier geben wir folgende Einstellungen an:

  • Features: WEGE_HOEHE
  • Distance: [create]
  • Direction: [not set]
  • Allocation: [create]

Damit erhalten wir zwei Ergebnisraster: „Distance“ und „Allocation“. Wir benötigen nur die Rasterebene „Allocation“, bei der nun alle Rasterzellen den Höhenwerten der Wegeverläufe über das gesamte Raster zugeordnet wurden. Diese muss jedoch mit dem Wegepuffer von 50m verschnitten bzw. maskiert werden, da wir nur den gepufferten Bereich bezüglich der Berg- oder Talseite überprüfen wollen.

Hier ist das Tool „Grid Tools, Masking“ genau das, was wir brauchen. Mit den folgenden Einstellungen wird die Höhen-Allokation nur noch auf den Puffer von 50m beschränkt:

  • Grid: Allocation
  • Masked Grid: [create]
  • Mask: Wege_Buf_50m

Den Output können wir nun von „Masked Grid“ zu „Buf_50m_HOEHE“ umbenennen.

Der letzte Schritt bei der Berechnung ist nun, die Ebene „Buf_50m_HOEHE“ mit dem DGM zu vergleichen. Dabei gilt folgende Logik:

  • Höhe Weg > Höhe DGM –> Talseite
  • Höhe Weg < Höhe DGM –> Bergseite
  • Höhe Weg = Höhe DGM –> Flach (Weg)

Umgesetzt wird dies auch wieder mit dem Grid Calculator, wobei hier die Formel folgendermaßen aussieht:

ifelse(a>b,-1,ifelse(a<b,1,0))

Auch hier ist wieder auf die Reihenfolge der Grids zu achten: a=Buf_50m_HOEHE, b=DGM10m.

Bei einer entsprechenden Einfärbung der Werte (-1: Talseite, 0:Ebene, 1:Bergseite) kann man mit der 3D-Ansicht die Ergebnisse hübsch aufbereiten.

Wegeverläufe im DGM:

Wegeverläufe mit Berg (rot) und Talseite (gelb) im DGM: