QGIS Basics: Lektion 7

Einführung Feldrechner (Längenberechnung für Bahnstrecken)

Beschreibung:

In dieser Lektion werden wir die Länge von Bahnstrecken berechnen. Außerdem werden wir herausfinden, was die Gesamtlänge aller Bahnstrecken ist und wie viele Streckenkilometer jeweils die unterschiedlichen Bahnarten haben (Hauptbahn, Nebenbahn). Zum Schluss verwenden wir das in dieser Lektion berechnete Längen-Attribut, um den Layer zu filtern.

Lernziele:

  • Berechnung der Länge von Linien-Geometrien
  • Umgang mit dem Feldrechner
  • Verwendung zweier Werkzeuge zur Statistik

Los geht’s:

  1. Starte ein neues Projekt, z.B. durch Klick in der Menüleiste auf Projekt → Neu

qgis, tutorial, maptransfer, lektion6, neues projekt starten

  1. Navigiere zur Datenbank „brd.gpkg“ und lade den Layer „bahnstrecken“ in das Projekt ein, z.B. per Drag & Drop in das Kartenfenster.

qgis, tutorial, maptransfer, lektion6, daten einladen, bahnstrecken, deutsche bahn, db, open data

  1. Stelle die Anzahl der Bahnstrecken dar: Rechtsklick im Layerfenster auf den Layer „bahnstrecken“ → Objektanzahl anzeigen. Hinter dem Layernamen wird die Gesamtzahl aller Bahnstrecken angezeigt (1557).

qgis, tutorial, maptransfer, lektion6, bahnstrecken, deutsche bahn, db, open data, objektanzahl anzeigen, 1557 bahnstrecken

  1. Öffne die Attributtabelle des Layers: Rechtsklick im Layerfenster auf den Layer „bahnstrecken“ → Attributtabelle öffnen

qgis, tutorial, maptransfer, lektion6, bahnstrecken, deutsche bahn, db, open data, attributtabelle öffnen

  1. Da die Attributtabelle kein Attribut zur Länge der jeweiligen Bahnstrecken aufweist, werden wir dies mithilfe des Feldrechners selber erstellen. Klicke in der Menüleiste der Attributtabelle auf das Symbol für „Feldrechner öffnen“.

qgis, tutorial, maptransfer, lektion6, bahnstrecken, deutsche bahn, db, open data, feldrechner öffnen

  1. Führe im Feldrechner folgende Einstellungen durch:
  • Ausgabefeldname: laenge_km
  • Ausgabefeldtyp: Dezimalzahl (real)
  • Erstelle den folgenden Ausdruck: $length / 1000

Die „$length“-Funktion kannst du im mittleren Fenster finden. Dort sind unter „Geometrie“ viele Funktionen aufgelistet, die du im Feldrechner verwenden kannst. Durch Doppelklick auf „Geometrie“ öffnen sich alle verfügbaren Funktionen. Schiebe den Balken nach unten, bis du die „$length“-Funktion findest. Doppelklicke auf$length“, sodass sie im Ausdrucksfenster erscheint. Anschließend kannst du mithilfe des Zeichens für Division und deiner Tastatur den Rest unserer kleinen Formel eingeben. Bestätige mit OK.

qgis, tutorial, maptransfer, lektion6, bahnstrecken, deutsche bahn, db, open data, feldrechner, längenberechnung

Hinweis Feldrechner: Der Feldrechner ist ein mächtiges Werkzeug, mit dem neue Attributwerte berechnet werden können („Neues Feld anlegen“) oder die Werte bereits existierender Attribute verändert werden können („Vorhandenes Feld erneuern“). Als Ausgabefeldnamen sollte immer ein maschinenlesbarer Name gewählt werden, also keine Leerzeichen, Sonderzeichen, Umlaute. Je nach Kontext sollte ein passender Ausgabefeldtyp ausgewählt werden (Ganzzahl, Kommazahl, Text). Die jeweiligen Funktionen im mittleren Fenster (z.B. die Funktionen unter „Geometrie“) werden alle jeweils im rechten Fenster beschrieben. Die geometrischen Funktionen berechnen die Werte immer in Metern, wenn das Koordinatensystem der Daten ein UTM-Koordinatensystem ist. Da dies in unserem Beispiel der Fall ist, teilen wir den Wert durch 1000, um Kilometerangaben als Attributwerte zu erhalten.

  1. Betrachte die Attributtabelle. Ein neues Attribut wurde erstellt. Sortiere die Attributtabelle nach dem neuen Attribut (Klick auf „laenge_km“), um ein Gefühl für die Werte zu bekommen. Die absteigende Sortierung zeigt, dass die längste Bahnstrecke in Deutschland Strecke Mannheim – Basel – Konstanz (Nr. 4000) ist (zumindest laut dem Datensatz). Wähle die erste Zeile aus (Klick auf „1“), um die Strecke im Kartenfenster angezeigt zu bekommen.

qgis, tutorial, maptransfer, lektion6, bahnstrecken, deutsche bahn, db, open data, feldrechner, längenberechnung, längste bahnstrecke in deutschland, 4300, mannheim - basel - konstanz

  1. Sortiere anschließend die Werte in aufsteigender Reihenfolge (Klick auf „laenge_km“), sodass die kürzesten Bahnstrecken in der Attributtabelle oben erscheinen. Wähle die erste Zeile in der Attributtabelle aus durch (Klick auf „1“). Durch Klick auf das Lupen-Symbol „Zu ausgewählten Objekten zoomen“ zoomt das Kartenfenster automatisch auf die ausgewählte kürzeste Bahnstrecke.

qgis, tutorial, maptransfer, lektion6, bahnstrecken, deutsche bahn, db, open data,  längenberechnung, auf ausgewähltes objekt zoomen

  1. Das Verwenden des Feldrechners führt immer dazu, dass der jeweilige Layer in den Bearbeitungsmodus versetzt wird. (Mehr dazu in der Lektion 10). Schalte den Bearbeitungsmodus aus, durch Klick auf das Symbol mit dem gelben Stift, z.B. in der Menüleiste der Attributtabelle und bestätige mit „Speichern“. Schließe die Attributtabelle.

qgis, tutorial, maptransfer, lektion6, bahnstrecken, deutsche bahn, db, open data, editiermodus, bearbeitungsmodus, speichern

  1. Öffne das Fenster „Verarbeitungswerkzeuge“, z.B. durch Klick auf das Zahnrad-Symbol in der Attribute-Werkzeugleiste.

qgis, tutorial, maptransfer, lektion6, verarbeitungswerkzeuge

  1. Gebe im Suchfeld „statistik“ ein. Selbst wenn du nur „statis“ eingibst, erscheinen schon alle statistischen Werkzeuge. Doppelklicke auf das Werkzeug „Grundstatistik für Felder“.

qgis, tutorial, maptransfer, lektion6, verarbeitungswerkzeuge, toolbox, suche, grundstatistik für felder

  1. Gebe bei „Feld für Statistikberechnung“ das Attribut „laenge_km“ ein. Führe das Werkzeug aus mit „Starte“ und anschließend auf „Schließen“.

qgis, tutorial, maptransfer, lektion6, verarbeitungswerkzeuge, toolbox, grundstatistik für felder

  1. Irgendwo auf deiner Benutzeroberfläche müsste ein blauer Link erscheinen, wahrscheinlich am rechten Rand. Dies ist eine temporäre HTML-Datei, die wieder gelöscht wird, sobald du das aktuelle QGIS-Projekt schließt. Klicke auf den blauen Link, um dir das Ergebnis anzeigen zu lassen.

qgis, tutorial, maptransfer, verarbeitungswerkzeuge, toolbox, grundstatistik für felder, html-datei, link

  1. Dein Standard-Internetbrowser (z.B. Chrome) öffnet sich und zeigt dir die Statistiken für das Feld an. Die Anzahl der Werte (1557), den Minimalwert (0.024…) und den Maximalwert kennen wir schon. Aber die Summe kannten wir noch nicht. Jetzt wissen wir, dass es in Deutschland zurzeit insgesamt ca. 34200 km Bahnstrecken gibt, jedenfalls laut diesem Datensatz.

qgis, tutorial, maptransfer, lektion6, verarbeitungswerkzeuge, toolbox, grundstatistik für felder, html-datei, link, ergebnis, summe, sum

  1. Als Nächstes werden wir herausfinden, wie viele Kilometer jede Bahnart (Hauptbahn, Nebenbahn) insgesamt aufweist. Öffne dafür das Werkzeug „Statistik nach Kategorien“. Wähle im „Feld für Statistikberechnung“ das Attribut „laenge_km“ aus. Klicke bei „Felder mit Kategorien“ auf das Symbol mit den drei Punkten und wähle dort die „bahnart“ aus und bestätige mit OK. Führe das Werkzeug aus mit „Starte“ und klicke anschließend auf „Schließen“.

qgis, tutorial, maptransfer, lektion6, verarbeitungswerkzeuge, toolbox, statistik nach kategorien, werkzeug, einstellungen, group stats, feldstatistik

  1. Deinem Layerfenster wurde eine Tabelle hinzugefügt. Öffne die Attributtabelle durch Rechtsklick → Attributtabelle öffnen

qgis, tutorial, maptransfer, lektion6, tabelle, statistik nach kategorie, attributtabelle öffnen, ergebnis

  1. Der Tabelle kann man zum Beispiel folgendes entnehmen: Es gibt in unserem Datensatz 1066 Hauptbahnen mit einer Gesamtlänge von 28021 km. Außerdem gibt es 487 Nebenbahnen mit einer Gesamtlänge 6170 km. Schließe die Attributtabelle wieder.

qgis, tutorial, maptransfer, lektion6, tabelle, statistik nach kategorie, attributtabelle, ergebnis, summe, hauptbahn, nebenbahn, db, deutsche bahn, bahnstrecken, gesamtlänge, open data

  1. Manchmal ist es praktisch, Layer nach einem Flächen oder einem Längen-Attribut zu filtern (Rechtsklick auf den Layernamen im Layerfenster → Filter). Angenommen, man braucht für eine Kartendarstellung oder eine Analyse nur diejenigen Bahnstrecken, die länger als 25 km sind. Mit dem einfachen Filterausdruck "laenge_km" > 25 werden nur noch diejenigen Bahnstrecken dargestellt, die länger als 25 Kilometer sind. Dies resultiert z.B. in einem Layer mit nur noch 366 Bahnstrecken.

qgis, tutorial, maptransfer, lektion6, filtern, sql, länge, bahnstrecken, deutsche bahn, db, open data

  1. Der umgekehrte Filterausdruck würde genau das Gegenteil liefern. Einen Layer mit 1191 Bahnstrecken unter 25 km Länge.

qgis, tutorial, maptransfer, lektion6, filtern, sql, länge, bahnstrecken, deutsche bahn, db, open data

Wir sind am Ende dieser Lektion angekommen. Du brauchst dein Projekt nicht zu speichern, da wir keine Stile und Drucklayouts erstellt haben. In der nächsten Lektion werden wir weitere Möglichkeiten des Feldrechners kennenlernen.

Zusatzaufgabe:

Berechne die Summe der Länge aller Bahnstrecken im Bundesland Nordrhein-Westfalen auf Grundlage unserer Daten.

Skizze des Lösungswegs:

Filtere die Bundesländer so, dass nur das Bundesland NRW übrig bleibt. Clippe die Bahnlinien auf das Bundesland NRW. Berechne im neuen Temporärlayer die Länge der Bahnstrecken mithilfe des Feldrechners. Verwende das Werkzeug "Grundstatistik für Felder", um die Summe der Länge aller Bahnlinien in NRW zu berechnen.

Das richtige Ergebnis auf Grundlage unserer Daten ist ca. 4889 km.

Hier ein Screenshot zum skizzierten Lösungsweg:

"qgis,