Ich stand kürzlich vor dem Problem, eine sogenannte Heightmap (Höhenfeld) eines realen Terrains von 2x1km zu erstellen. Zuerst fragte ich mich, ob ich nicht irgendwie das Relief aus Google Earth extrahieren könnte, fand dazu aber kaum etwas im Netz. Erst als ich das Dateiformat .tga gestoßen bin, konnte ich die Suche eingrenzen.
SRTM und MicroDEM
Ich fand entsprechende Tutorials zum Exportieren der Höhendaten der Shuttle Radar Topography Mission, deren Daten man als geotiff Datei von folgender Webseite laden kann. Mit der Software MicroDEM kann man diese dann Anzeigen und in verschiedenen Varianten darstellen lassen:

Stellt man die Höhendaten via Rechtsklick ⇒ Display Parameters ⇒ Elevation als Graustufen dar, erhält man die für eine .tga Datei gewünschte Darstellung.

Jedoch haben diese Karten lediglich eine Auflösung von 90m pro Pixel. Recht ungenau für einen Ausschnitt von 2000x1000m.
Digitaler Atlas
Auf der Suche nach einem detailiert Relief, erinnerte ich mich an den Digitalen Atlas des Land Steiermark. Unter „KartenCenter :: Alle Karten“ kann man „Höhen- & Reliefkaren der Steiermark laden, welche unter anderem Laserscans aus der Luft enthalten. Diese Scans können durch geschicktes Filtern die Vegetation als auch Gebäude ausblenden.


Diese Scans sind zwar in beeindruckender Qualität, jedoch ist es mir nicht möglich aus den Reliefdarstellungen ein Höhenprofil zu extrahieren. Deshalb kam ich wieder auf meine ursprüngliche Idee, die Daten aus Google Earth zu extrahieren, zurück.
Google Earth – manuelle Extraktion
Google Earth simuliert einem das Höhenprofil, in, für meine Zwecke ausreichender Genauigkeit und zeigt einem auch 3D Renderings von Gebäuden. Jedoch bietet es keine offensichtliche Möglichkeit diese Informationen irgendwie zu extrahieren.
Nach etwas herumprobieren mit der Funktion „Polygon hinzufügen“, kam ich auf eine recht umständliche, jedoch zuverlässig funktionierende Möglichkeit, ein Höhenprofil eines Terrains als .tga zu extrahieren. Da ich jedoch stark bezweifle, dass sich bisher irgend jemand die Mühe gemacht hat, ein Höhenprofil auf diese Art und Weise zu extrahieren, dachte ich, dass es klug wäre diese Möglichkeit zu dokumentieren.
Übersicht
Die Methode basiert auf folgender Idee: Man kann ein in Google Earth gezeichnetes Polygon frei nach Wahl einfärben und in beliebiger Seehöhe platzieren. Diese Polygone schneiden sich dann mit der 3D Umgebung und geben entweder die Farbe des Polygons oder das Satellitenbild der Oberfläche preis. Zusätzlich lässt sich so ein Polygon einfach duplizieren (durch Kopieren und Einfügen) als auch als .kmz Datei am Computer sichern.

Hat man erst ein mal ein Set aus mehreren Flächen, mit jeweils einem Höhenunterschied von z.B.: 5 Metern, erstellt, kann man diese einzeln von oben betrachtet mittels Screenshot als Bild aufzeichnen.
Die Screenshots kann man dann in einem Bildbearbeitungsprogramm als Ebenen einfügen und alle Bildteile, welche nicht das Polygon darstellen, weiß einfärben. Hat man den verschieden hoch platzieren Polygonen noch keine Farbe (Graustufe) gegeben, färbt man sie zuvor nun so ein, dass das Oberste am hellsten und das Unterste am dunkelsten ist. Anschließend blendet man alle Ebenen mittels „nur Abdunkeln“ zu einem Höhenprofil.
Schritt 1 – Polygone anlegen
Das Erste Polygon legt man durch Einzeichnen der Eckpunkte (diese können später noch durch Klicken und ziehen verschoben werden) an und legt es auf die Seehöhe, bei der gerade noch etwas vom Polygon sichtbar ist.

Es lassen sich nun mehrere Polygone, mit den selben Eckpunkten, durch kopieren des Ersten erstellen. Die duplizierten Flächen werden einfach umbenannt und die Seehöhe um die Ausgewählte Schrittweite, von in diesem Test 5m, angepasst.

In meinem Beispiel des Grazer Schlossbergs und dessen Umgebung, müssen, bei einer vertikalen Schrittweite von 5m, 31 Polygone angelegt werden, um eine Höhendifferenz von 150m, zwischen tiefsten und höchsten Punkt, darstellen zu können.
Schritt 2 – Blickwinkel einstellen und Screenshots anfertigen
Um einen parallaxen Fehler zu vermeiden und die Genauigkeit der Screenshots zu erhöhen, ist es vorteilhaft wenn man das Sichtfeld der Kamera in Google Earth von 60° auf 10° reduziert. Wie das funktioniert kann hier nachgelesen werden.
Danach wird die Kameraposition festgelegt und diese Ansicht durch den Befehl „Zu meiner Startpostion machen“ gespeichert. Sollte die Kameraposition aus Versehen verschoben werden, kann so immer wieder in die gewünschte Ansicht zurückgekehrt werden. Die Screenshots werden mit der Seehöhe im Namen gespeichert.
Schritt 3 – Umfärben der Flächen
In Gimp werden nun via Datei ⇒ Als Ebenen öffnen, alle Bilder als Ebenen eingefügt. Die oberste Ebenen sollte der höchste Terrainschnitt sein (ganz oder fast ganz weißes Bild). Danach schneidet man das Bild auf die Größe des Polygons zu und verwendet das Werkzeug „Nach Farbe auswählen“ um alles was zur Fläche des Polygons gehört auszwählen.
Die Fläche wird dann mit dem „Füllen“ Werkzeug und der Option „Ganze Auswahl füllen“, in einem Grauton eingefärbt. Ähnlich wie bei den Höhenschichten geht man auch hier so vor, dass man die RGB Werte stets um eine konstante Schrittweite, z.B. 5 pro Ebene, verkleinert.
Bevor man mit dem Einfärben der nächsten Ebene fortsetzt, invertiert man noch die Auswahl und setzt alle Bereiche, welche nicht vom Polygon bedeckt waren, auf weiß.

Schritt 4 – Zusammenblenden der Ebenen
Werden nun alle Ebenen außer der untersten auf den Blend-Modus „Nur Abdunkeln“ gesetzt ergibt sich folgendes Höhenprofil.

Mit „Sichtbare Ebenen vereinen“ werden nun alle Ebenen auf eine Einzige reduziert und der Kontrast des Bildes angepasst.
Dies ist deshalb notwendig, weil die Helligkeit jeder Ebene, jeweils nur um die RGB Schrittweite von fünf (~2%) verändert wurde. Wird bei einer Helligkeit von 100% begonnen, ist das letzte Bild einer Serie von 31 Bildern auf einer Helligkeit von 40%.

Ergebnis und Fazit
Zwar war es nicht ganz clever von, die Gebäude bei der Konvertierung dieses weitläufigen Raumes zu inkludieren, die entwickelte Methode jedoch funktioniert und liefert ein gutes Ergebnis. Je nach Bildausschnitt und Anzahl der Ebenen lässt sich das Höhenprofil eventuell noch etwas verbessern.
Das erstellte Höhenfeld des Grazer Stadtzentrums.
Ohne 3D Gebäude ist der Detailgrad zwar wesentlich geringer, jedoch stören dann Gebäude und Vegetation nicht mehr beim Erfassen des darunterliegenden Terrains.

Bestimmt ließen sich einige dieser Schritte mit diversen Scripts automatisieren, aber an diesem Punkt steige ich mal aus und hoffe, dass diese Anleitung für jemanden nützlich ist.
Für ein 3D-Rendering habe ich nach einem günstigen Modell der makanten Buttes aus dem Monument Valley gesucht – vergeblich. Dabei bin ich auf diese Anleitung gestoßen und habe mit ihrer Hilfe ein erstes brauchbares, wenn auch noch grobes Modell erstellen können. Ich habe dafür 25 Screenshots in Höhenschritten von anfangs 10 m, später im steileren Bereich sogar von 20 m erstellt und auch auf die Änderung des Blickwinkels verzichtet. Das Ergebnis lässt sich durchaus sehen! Vielen Dank für diese Anleitung, sie war sehr nützlich.
Eine Anmerkung noch: Es ist gar nicht nötig, mehr als ein Polygon zu erstellen, es genügt, nach jedem Screenshot über die Eigenschaften im Polygonmenue die Höhe jeweils um einen Schritt anzuheben.
LikeGefällt 1 Person