2933 views
 owned this note
Erstellen von Ausschnitten aus Vektordaten mit QGIS ("QGIS Vector Cutting") === **Dies ist ein Tutorial wie man mit dem QGIS-Desktop-Programm (Open Source) aus Vektordaten einzelne Ausschnitte ausschneiden (cut, clip, extract) kann.** _Autoren: Felix Reiniger und Stefan Keller, beide Geometa Lab OST. Dokumenten-Lizenz CC0 1.0. Fragen oder Feedback an [Stefan Keller](mailto:stefan.keller@ost.ch)._ Dieses Tutorial richtet sich an Nutzer:innen mit einfachen Kenntnissen über Geodaten und Geoinformations-Technologien. ::: success **HINWEIS**: Wenn Sie an Rasterdaten interessiert sind, dann gibt es dazu folgendes Online-Tutorial "[Erstellen von Ausschnitten aus Rasterbildern mit QGIS (“QGIS Raster Cutter” Plugin)](https://md.coredump.ch/s/eiLVdmDGk#)". ::: ## 1. Einführung Dieses Dokument ist wie folgt aufgebaut: 1. (Diese) Einführung 1. Problem und Lösungsansatz 1. Technische Information: Vektor-Dateiformate und -Services 1. Lösungsvariante 1 Vektordaten-Export mit Rechteck 1. Beispiel von Lösungsvariante 1 1. Lösungsvariante 2 Vektordaten-Export mit freiem Polygon 1. [Ausblick](#7-Ausblick) Folgende Software muss vorbereitet sein für dieses Tutorial: QGIS 3, ein Webbrowser. Wenn nötig, muss QGIS (aktuell ist Version 3.22, mind. QGIS 3.16 LTR) installiert werden. :::info **HINWEIS**: Installation von QGIS 3: Öffnen Sie diesen Link [qgis.org](https://www.qgis.org/de/site/forusers/download.html#) und wählen Sie das passende Betriebssystem aus (z.B. Windows 64bit). Eine Setup-Datei namens osgeo4w-setup.exe wird heruntergeladen und kann geöffnet werden. Nach dem Ausführen der Datei die _Express Installation_ und _QGIS_ auswählen. ::: ## 2. Problem und Lösungsvarianten ### 2.1 Das Problem Ausgangslage ist, dass Vektordaten existieren. Gesucht davon, wird ein verkleinerter Ausschnitt, wie z.B. ein Industriegebiet, ein Park oder eine Siedlung. Der Ausschnitt soll ebenfalls wieder im Vektordatenformat abgespeichert werden. ### 2.2 Lösungsansätze All dies kann in QGIS ohne zusätzliche Plugins getan werden. Als Ausschnitt kommt entweder ein Rechteck ("Bounding Box") in Frage __(= Variante 1)__ oder ein Polygon __(= Variante 2)__. Um einen Ausschnitt anhand eines bereits bestehenden Polygons oder einer anderen komplexeren Form auszuschneiden, eignet sie die Variante 2 besser. ### 2.3 Vorbereitung 1. QGIS starten und ein neues Projekt eröffnen. 2. Das QGIS-Projekt auf ein entsprechendes Koordinatenreferenzsytsem umstellen ## 3. Technische Information: Vektor-Dateiformate und -Services Beim Umgang mit Vektordaten gibt es einige technische Feinheiten zu beachten. Nicht alle Formate unterstützten Vektordaten, darum ist es wichtig, ein passendes Format zu wählen. Im Folgenden werden mögliche Vektor-Dateiformate vorgestellt. ### 3.1 GeoPackage Eines der gängisten und flexibelsten Dateiformate, welches im Gegensatz zu den meisten anderen Datenformaten, sowohl Vektor als auch Rasterdaten speichern kann. Gespeichert werden die Elemente dabei im SQLite DB-Format. Zudem ist GeoPackage Plattformunabhängig und wird deshalb von den meisten Programmen akzeptiert. ### 3.2 ESRI Shapefiles ESRI Shapefile ist ein immer noch weit verbreites Dateiformat in QGIS. Besser wäre die Verwendung von GeoPackage wie im vorherigen Kapitel beschrieben. :::warning **HINWEIS**: Shapefiles kommen mit einigen Einschränkungen, welche andere Datei-Formate (z.B. GeoPackage) nicht haben. Mehr zu den Einschränkungen sind auf der Webseite [switchfromshapefile.org](http://switchfromshapefile.org/) beschrieben. ::: Ein Shapefile besteht im wesentlichen aus den Folgenden drei Dateien: 1. `.shp` Datei - Enthält die Geometrien 2. `.dbf` Datei - Enthält die Sachattribute im [dBase-Format](https://de.wikipedia.org/wiki/DBASE) 3. `.shx` Datei - Enthält einen Index ### 3.3 Delimited Text Files (CSV) Bei Delimited Text Files handelt es sich um Tabellen im `.csv`-Format. Diese Files können mit einem einfachen Texteditor geöffnet und bearbeitet werden. Die einzelnen Spalten sind jeweils mit einem definierten Zeichen (z.B. `,` oder `;`) und neue Zeilen, mit einem Zeilenumbruch, voneinander getrennt. In den Datensätzen sind dann jeweils entweder: * `Punktkoordianten` - In getrennten Spalten zur zuordnung des Punkts * `WKT-Daten` - Zur darstellung von Geometrien dargestellt. QGIS stellt jedoch folgende Anforderungen an Delimited Text Files, damit diese eingelesen werden können: 1. Die Datei muss in der ersten Zeile eine Kopfzeile mit Spaltennamen besitzen. 2. In der Kopfspalte müssen Felder mit Geometriedefinitionen vorhanden sein. 3. Wenn die Geodaten in X & Y angegeben werden, müssen diese in Nummern angegeben sein. Beispiel für eine `.csv`-Datei: ```csv X,Y,DATA -1303400,1233450,13 -632123,1321123,24 1343,1212340,34 [...] ``` :::info **TIPP**: Wenn die Umlaute nicht richtig dargestellt werden, dann gibt es ein Kodierungs-Problem, beginnend mit der Datei selber bis zum verwendeten Editor und GIS. Als Tipp kann nicht genügend betont werden, dass möglichst durchgehend die sogenannte 'UTF-8'-Kodierung (Kodierung engl. Encoding) eingestellt werden sollte. ::: ### 3.4 Services - OGC Web Feature Service (WFS) Web Feature Service (WFS) bezeichnet den Internet-gestützten Zugriff auf Geodaten innerhalb eines verteilten GIS. Der WFS beschränkt sich dabei ausschliesslich auf Vektordaten, wie sie in Datenbanken abgelegt werden können. Das Hauptproblem einfacher GIS-User ist u.a. die Basis-URL richtig eingeben zu können – was aber geschult werden kann. Ein Ansatz ist das QMS-Plugin (https://qms.nextgis.com/about ) bei dem die WxS-Service-Suche integriert und es nur ein Klick braucht, um den Layer zu laden. Der Nachteil von QMS ist, dass dort die kantonalen und viele GeoAdmin-Services bis auf weiteres fehlen, weil sie dort kaum nachführt werden. Wenn die zu grosse Datenmenge des WFS bei ausgezoomtem Zustand das Problem ist, dann gibt es folgende Möglichkeiten: * In der WFS-Konfiguration (auch von QGIS) "Max. no. of features" auf z.B. auf 100'000 setzen, um ganz grosse Datenmengen zu vermeiden: Beim reinzoomen kommen dann ja alle. * In der WFS-Konfiguration (auch von QGIS) das "Enable feature paging" (hier mit Page size 1000) verwenden. Damit kann ich in QGIS wunderbar z.B. alle Shops der Schweiz wählen (bei CH-OSM "magosm:shops_point" genannt) – und es lädt schön immer 1000 für 1000 Feautures nach. * Wenn die Menge immer noch ein Problem ist, dann kannst du im WFS-Filter "shop=supermarket" nur Supermärkte auswählen.... ## 4. Lösungsvariante 1 Vektordaten-Export mit Rechteck 1. Unter ```Verarbeitung > Werkzeugkiste``` kann der 'Werkzeugkasten' eingeblendet werden. 2. Im 'Werkzeugkasten' kann unter ```GDAL > Vektorgeoverarbeitung > Vektor auf Ausdehnung zuschneiden``` aufgerufen werden, welches das Werkzeug ist, welches zum Extrahieren vom Ausschnitt benutzt wird. 3. Im neuen Fenster muss nun der auszuschneidene Layer ausgewählt werden. 4. Im Folgenden kann ein Ausschnitt ausgewählt werden. Hierzu kann der Knopf neben dem Feld ```Clipping extent``` gedrückt werden. 5. Nun gibt es verschiedene Möglichkeiten, den Ausschnitt auszuwählen. Im Folgen werden alle drei Varianten beschrieben. * ```Calculate from Layer```: Hier kann ein Layer ausgewählt werden, anhand deren Ausmasse dann der Ausschnitt ausgewählt wird. * ```Use Map Canvas Extent```: In dieser Auswahl wird der gesamte Umfang der zur Zeit sichtbaren Karte als Ausschnitt genommen. * ```Draw on Canvas```: Mit der Option kann man mit der Maus eine Selektion auf dem Bildschirm machen und so den Ausschnitt auswählen. 6. *Optional:* Unter ```Clipped (extent)``` kann ein File ausgewählt werden, als welches der neue Ausschnitt gespeichert werden soll. Im Speichermenü kann dann noch das gewünschte Datei-Format ausgewählt werden. :::warning **HINWEIS**: Es ist wichtig, dass ein Dateiformat gewählt wird, welche Vektordaten unterstützt. Welche Formate das sind, kann im Kapitel [Technische Information](3-Technische-Information) nachgelesen werden. ::: 7. Anschliessend kann mit einem Klick auf ```Run``` der Prozess gestartet werden. ## 5. Beispiel von Lösungsvariante 1 Nun wird der Prozess des Ausschneidens noch einmal am Beispiel von Gebäudedaten aufgezeigt. Für den Prozess wird der Layer `T48_DKM25_GEBAEUDE` aus dem GeoPackage von [Swisstopo - Swiss Map Vector 25](https://www.swisstopo.admin.ch/en/geodata/maps/smv/smv25.html) genutzt. 1. QGIS Starten und ein `Neues Projekt` erstellen. 2. Die Basiskarte “OpenStreetMap Standard”, subbvia Browser-Tab von QGIS unter “XYZ Tiles”, laden. :::info **HINWEIS**: Das QGIS-Plugin [Quick Map Services](https://plugins.qgis.org/plugins/quick_map_services/) bietet eine Vielzahl an Basis-Karten von verschiednenen Anbietern an. Diese können mit nur wenigen Klicks direkt in QGIS geladen werden. ::: 3. Den Layer `T48_DKM25_GEBAUDE` aus den Daten laden. 4. Im Karten-Fenster rechts unten auf das Koordinatensystem (CRS) klicken und im Dialog “EPSG:2056” wählen. ![](https://md.coredump.ch/uploads/upload_36fe121408e704a8c8456116f08004a2.png) _Abbildung 2: Verktordaten mit einer OSM-Basemap im Hintergrund._ 4. Die Werkzeugkiste aufrufen ```Verarbeitung > Werkzeugkiste``` und dort das GDAL Programm starten ```GDAL > Vektorgeoverarbeitung > Vektor auf Ausdehnung zuschneiden``` 6. Nun muss auf der Karte der Ausschnitt markiert werden, welcher Ausgeschnitten werden soll. In diesem Beispiel wird der Ausschnitt direkt auf die Karte gezeichnet. Mit einem Klick auf `Starte` wird der gewählte ausschnitt extrahiert. ![](https://md.coredump.ch/uploads/upload_7eab19bbdea4f5c5b9bdaea17fde885c.png) _Abbildung 3: Eingabefeld des GDAL-Tools._ 7. Das Fertige Produkt wurde nun in einen neuen Layer geschrieben ![](https://md.coredump.ch/uploads/upload_3208fa60a3ca7427f1e13da648877304.png) _Abbildung 4: Die ausgeschnittenen Gebäude der OST._ ## 6. Lösungsvariante 2 Vektordaten-Export mit freiem Polygon Alternativ zur oben genannten Lösung kann man das Problem auch noch auf eine alternative Art und Weise lösen. Hierzu kommen die Booleschen-Operatoren für Vektor-Daten zur Anwendung. 1. Als Ausgangslage haben wir eine Sammlung an Vektordaten, aus welchen wir einen Teilbereich ausschneiden wollen. ![](https://md.coredump.ch/uploads/upload_154506312c53690f814f08040cbbd902.png) _Abbildung 5: Ausschnitt zeigt den Flugplatz Dübendorf im Vektorformat._ 2. Nun kann ein temorärer Layer erstellt werden, welcher den Ausschnitt ausmacht, welchen wir schlussendlich ausschneiden wollen. Via ![](https://md.coredump.ch/uploads/upload_b590e2aae9adbc22fe0252e5a41e87ea.png) ```Neuer Virtueller Layer``` kann ein temporärer Layer erstellt werden. :::info **HINWEIS**: Es kann auch ein bereit ersteller Layer mit Polygonen benutzt werden oder ein neuer "permanenter" Layer erstellt werden, in welchen die Daten gespeichert werden. So kann der Maske auch für andere Projekte oder Operationen verwendet werden. ::: 3. Anschliessend muss dem neuen Layer ein Name gegeben werden und der Geoemetrie Typ auf Polygon ![](https://md.coredump.ch/uploads/upload_8b41ba61a320c166dce2d76d40f797b6.png) _Abbildung 6: Neuer temporärer Layer wird erstellt._ 4. Nun kann nach einem Klick auf ![](https://md.coredump.ch/uploads/upload_2d4b5b3213ac67f8192ab47c24853906.png) `Add Polygon` angefangen werden der gewünschte Ausschnitt zu markieren. 5. Nachdem der gewünschte Bereich ausgewählt ist - in diesem Fall die noch erhaltene Lande und Startbahm - kann die Auswahl mit einem Rechtsklick bestätigt werden. ![](https://md.coredump.ch/uploads/upload_911163fb289b46bc3e1281e428705113.png) _Abbildung 7: Die Start- und Landebahn wurde markiert_ 6. Nun kann unter `Vector > Geoprocessing Tools > Clip...` das Tool zum ausschneiden aufgerufen werden. 7. Nun muss oben der Layer mit den Vektordaten und unten der temporär erstellte Layer ausgewählt werden. ![](https://md.coredump.ch/uploads/upload_481bd22b46ed9f5c3282b28337d0f921.png) _Abbildung 8: Einstellungen für das Clipping_ 8. Wenn alles ausgewählt ist, kann via `Run` der Prozess gestartet werden. 9. Nun kann der tempräre Layer augeschaltet werden. Der neu erstellte Layer sollte dann sichtbar sein. ![](https://md.coredump.ch/uploads/upload_14b1a857e682ec1795434cdfcd77f887.png) _Abbildung 9: Die ausgeschnittene Start- und Landebahn._ ## 7. Ausblick In diesem Informationsblatt haben wir gelernt wie man Vektordaten zuschneiden kann. Die Welt der Geodaten besteht jedoch nicht nur aus Vektordaten. Ein weiteres Datenformat sind Rasterdaten zu welchen wir ebenfalls einen Artikel geschrieben haben. ["Erstellen von Ausschnitten aus Rasterbildern mit QGIS"](https://md.coredump.ch/2H-jGnDTSbuBk7ai0xWIxA#) <!-- TODOs: * An einem Praktischen Beispiel das Ausschneiden von Vektoren beschreiben. * Sollen aus den Vektoren auch Bilder erstellt werden? * Weitere Kapitel? * Einführung ausführlicher gestallten * Rechtschreibung prüfen (z.B. https://languagetool.org/de) -- End of TODOs -->