Nützliches

Möglicherweise werde ich hier nach und nach ein paar nützliche Hilfsmittel oder Methoden vorstellen oder verlinken, die ich gefunden oder entwickelt habe. Zunächst aber habe ich diese Seite vor allem deshalb eingerichtet, um hier meine nachstehende Maulwurfshügel-Anleitung veröffentlichen zu können, die auf gis.stackexchange.com nicht willkommen war.

Maulwurfshügel in QGIS

‚Maulwurfshügel‘ sind eine altertümliche Art der Reliefdarstellung, die verbreitet in Karten des 16. bis 18. Jahrhunderts begegnet sowie, inspiriert hiervon, in Karten des Fantasy-Genres. Diese Anleitung hier erläutert, wie sich als SVG-Grafiken vorbereitete Hügel anhand heruntergeladener Höhendaten mit etwas zusätzlicher Arbeit in QGIS automatisch auf der Karte anordnen lassen.

Maulwurfshügel in QGIS

Dateien herunterladen

Datei Beschreibung
Maulwurfshügel in QGIS.pdf Anleitung auf Deutsch
Molehills in QGIS.pdf Anleitung auf Englisch
Maulwurfshügel ∕ Molehills in QGIS.zip komplettes Paket mit Anleitungen, Maulwurfshügel-SVGs und benötigten Python-Skripten

Schraffen in QGIS

Nach der Sache mit den Maulwurfshügeln hätte ich als nächstes eine Methode finden wollen, wie man in QGIS Schraffen auf der Grundlage von Höhendaten erstellen kann. Wahrscheinlich hätte ich es aber nicht so gut hinbekommen wie Daniel Huffman, der mir gerade zuvorgekommen ist und ein Skript entwickelt hat, welches er auf seinem Blog somethingaboutmaps.wordpress.com beschreibt und auf GitHub zum Herunterladen bereithält.

Maulwurfshügel in QGIS

Links

Beschreibung auf Daniel Huffmans Blog
Download vom GitHub-Repositorium

Netzfragmente in QGIS geradlinig verknüpfen

Für meine Arbeit an einem historischen Atlas habe ich aus verschiedenen Quellen das Straßennetz des römischen Reiches heruntergeladen (z.B. von hier, von hier und von hier). Die Liniengeometrie war allerdings stark fragmentiert – keine Straßenlinie reichte weiter als bis zur nächsten Kreuzung, und auch dazwischen gab es viele Unterbrechungen. Für die weitere Verarbeitung schien es notwendig, die Geometrie zu verschmelzen, wobei ich es für wünschenswert hielt, an Kreuzungen vornehmlich die Straßen zu verknüpfen, die aus entgegengesetzter Richtung eintreffen, um möglichst strack durchgehende Linien zu erhalten. Ebenso erschien es mir wünschenswert, dies nicht von Hand tun zu müssen, und darum habe ich mit ChatGPT das nachstehende Skript geschrieben.

Netzfragmente verknüpfen

vorher: lauter kurze Fragmente
Straßennetz vor der Bearbeitung
nachher: lange, durchgehende Linien, die an Kreuzungen möglichst geradeaus verlaufen
Straßennetz nach der Bearbeitung

Um das Skript in QGIS einzubinden, kann man es entweder bei den Verarbeitungswerkzeugen als neues Skript abspeichern oder es vorm QGIS-Start im Ordner C:\Users\[Benutzername]\AppData\Roaming\QGIS\QGIS3\profiles\[Profilname, z.B. default]\processing\scripts\ ablegen.

Das Skript ist zweisprachig; es erscheint auf Deutsch, wenn QGIS auf deutsch gestellt ist, andernfalls auf Englisch.

Skript herunterladen

Netzfragmente_verknuepfen.py

Linienverdrängung in QGIS

Bei der Generalisierung eines Kartenbildes ergibt sich ja oft die Notwendigkeit der Verdrängung von Linien: Immer dann, wenn zwei Linien – z. B. Straße und Eisenbahn – einander in kleinen Maßstäben zu nahe kommen, steht man vor einem Dilemma: Bildet man beide Linien lagegenau ab, verdecken sie einander, wenn man nicht Strichstärken wählen will, die kaum sichtbar sind und nicht zu einem Kartenbild dieses Maßstabs passen. Man löst den Konflikt durch Verdrängung, d. h. dadurch, dass man entscheidet, welche Linie die wichtigere sei, und die unwichtigere dann von ihr abdrängt. Abstriche von der Lagegegenauigkeit werden zu Gunsten der Lesbarkeit hingenommen.

Soweit ich sehe, bietet QGIS bislang keine einfache Möglichkeit hierfür; deshalb habe ich mit ChatGPT dieses Plugin geschrieben. Es ermöglicht die Auswahl einer oder mehrerer Ebenen, deren Geometrie bleiben soll, und die Auswahl einer oder mehrerer Ebenen, deren Geometrie von der ersteren abgedrängt werden soll. Natürlich kann der gewünschte Verdrängungs-Abstand eingestellt werden sowie mancherlei weitere Optionen. Vor allem bietet das Plugin die Option, sich selbst entbehrlich zu machen, indem es bei der verdrängten Geometrie eine Symbolebene hinterlässt, deren Geometriegenerator künftig die Verdrängung steuern kann.

Grundsätzlich wird die verdrängte Geometrie geschrieben, entweder in eine neue temporäre Ebene oder in eine vorhandene. Dynamische Verdrängung ‚on the fly‘ ist ebenfalls möglich (man muss dafür die Debug-Stufe „pre_final“ wählen), doch dürfte sie wegen ihrer Rechenintensivität allenfalls für sehr einfache Geometrien in Betracht kommen.

Plugin zur Linienverdrängung

Hier sieht man ein Anwendungsbeispiel aus meiner aktuellen Arbeit: Die gepunkteten Linien sind die römischen Straßen aus dem Datensatz von Elijah Meeks, und wie man sieht, passen sie nicht recht zur Küstenlinie aus dem Natural-Earth-Datensatz – sie kommen dieser nicht nur recht nahe, sondern rutschen darüber hinaus teils ins Meer. Die rote Linie zeigt entlang der Küste die Verdrängung mit diesem Plugin.

Plugin zur Linienverdrängung

Um das Plugin in QGIS zu installieren, wählen Sie im Menü „Erweiterungen“ → „Erweiterungen verwalten und installieren …“ → „Aus ZIP installieren“.

Das Plugin ist zweisprachig; es erscheint auf Deutsch, wenn QGIS auf deutsch gestellt ist, andernfalls auf Englisch.

Plugin herunterladen

LineDisplacement.zip