Berechnung der Länge von Linien und Statistiken (QGSI3)¶
QGIS hat integrierte Funktionen, um verschiedene Featureeigenschaften, z.B. Länge, Fläche, Umfang usw., basierend auf dem Geometrietyp des Features zu berechnen. In dieser Anleitung lernt man die Benutzung des Tools Geometrieattribute hinzufügen, um eine Spalte hinzuzufügen, die die Länge jedes Features enthält.
Aufgabenübersicht¶
Mit Hilfe eines polyline layers der Eisenbahnstrecken in Nord Amerika werden wir die Gesamtlänge der Strecken in den USA bestimmen.
Weitere Fähigkeiten, die wir erlernen¶
Ausdrücke verwenden, um Features zu filtern.
Benutzung der Statistik Schaltfläche, um Statistiken für Spalten zu berechnen und anzuzeigen.
Beschaffung der Daten¶
Bei Natural Earth gibt es einen frei verügbaren Datensatz zu Eisenbahnstrecken.
Lade die Zip-Datei North America supplement vom Portal herunter.
Der Einfachheit halber kannst du auch eine Kopie des Datensatzes unter folgendem link herunterladen:
ne_10m_railroads_north_america..zip
Datenquelle [NATURALEARTH]
Arbeitsablauf¶
Suche den heruntergeladenen Datensatz
ne_10m_railroads_north_america.zip
im Browser Bereich und entpacke ihn. Ziehe die shape-Dateine_10m_railroads_north_america.shp
in den Arbeitsbereich.
Man sieht nun den neuen Layer
ne_10m_railroads_north_america
, der im Bereich Layers angezeigt wird. Man sieht, dass der Layer Linien für die Bahnstrecken Nordamerikas enthält. Als nächstes werden wir die Länge jedes einzelnen Linien-Features berechnen. Gehe zu .
Suche und finde den
Algorithmus. Starte ihn mit einem Doppelklick.
Wähle im Fenster Geometrieattribute hinzufügen
ne_10m_railroads_north_america
als Eingabelayer. Das Koordinatenreferenzsystem (CRS) des Eingabelayers ist EPSG:4326 WGS84. Das ist ein geographisches Koordinatensystem mit Breite und Länge als Koordinatenwert, WGS84 als Ellipsoid und Grad als Einheit. Da Breiten- und Längengrade keine Standardlängenangaben enthalten, kann man mit Funktionen aus kartesischen Systemen den Abstand oder die Fläche nicht genau berechnen. Zum Glück stellt QGIS durch Nutzung eines Kugelkoordinatensystems einen besseren, d.h. genaueren Weg zur Ermittlung von großen Abständen bereit. WähleEllipsenförmig
im Feld Berechne mit. Klicke Starte. Nachdem der Prozess beendet ist, klicke Close.
Bemerkung
If your input layer is in a Projected CRS, you may choose Layer CRS
option for calculation. Local or Regional projected coordinate systems are designed to minimize distortions over their region of interest, and thus are more accurate for such computation. Ellipsoidal
is preferred for layers in a Geographic CRS (i.e. Lat/Lon). The default unit for ellipsoidal length calculation is **Meters* and can be changed by going to .
Man sieht nun einen neuen Layer
Added geom info
im Bereich Layers. Dies ist eine Kopie des Eingabelayers mit einer zusätzlichen Spalte für die Längenangabe. Klicke mit rechts auf den LayerAdded geom info
und wähle Open Attribute Table aus.
Bemerkung
Das Tool Geometrieattribute hinzufügen fügt dem Eingabelayer, abhängig davon ob es sich um Punkte, Linien oder Polygone handelt, verschiedene Attribute hinzu. Unter QGIS documentation findet man weitere Details.
In the Attribute Table, you will see a new column called length. This contains the length of each line feature in meters. Also note that the sov_a3 attribute which contains the country code for each feature. Close the Attribute Table window.
Da wir jetzt die Längen der einzelnen Features kennen, können wir diese aufsummieren und so die Gesamtlänge der Eisenbahnstrecken herausfinden. Da aber die Problemstellung ist, nur die Länge der Eisenbahnstrecken in den USA zu ermitteln, dürfen wir nur diese Streckenlängen aufsummieren. Wir können den Wert des Ländercodes in der Spalte sov_a3 zum Filtern des Layers verwenden. Klicke mit der rechten Maustaste auf den Layer
Added geom info
und wähle Filter.
Gib nun folgenden Ausdruck im Fenster Query Builder ein und klicke auf OK.
"sov_a3" = 'USA'![]()
Man sieht nun ein Filter Icon neben dem
Added geom info
Layer im Layers Bereich, der anzeigt, dass ein Filter auf den Layer angewendet wird. Man kann außerdem sehen, dass der Layer jetzt nur noch die Eisenbahnlinien der USA darstellt. Jetzt sind wir soweit, die Streckenlängen aufzusummieren. Klicke auf den Knopf Show statistical summary auf der Attributes Toolbar.
Es öffnet sich ein neuer Bereich Statistics. Wähle den
Added geom info
Layer und die Spaltelength
aus.
Es werden verschiedene Statistiken angezeigt. Die Einheit der Statistiken ist dieselbe wie die der
length
Spalte - Meter. Wir können die Berechnung auch in Kilometer durchführen. Klicke auf das Expression Icon neben der Feldauswahl im Statistics Bereich.
Gib folgenden Ausdruck, der die Längenangabe nach Kilometer umrechnet, im Fenster Expression Dialog ein.
length / 1000![]()
Der unter Sum angezeigt Wert entspricht der Gesamtlänge der Eisenbahnstrecken in den USA.
If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)