Open Source Tool zum Konvertieren eines DEM in ein 3D-Modell


11

Ich möchte eine DEM-Datei (Digitial Elevation Model) (z. B. von SRTM) in ein 3D-Modell konvertieren, das ich dann mit regulären 3D-Modellierungswerkzeugen (z. B. Meshlab / Blender / etc.) Bearbeiten kann. Ich benutze jedoch Ubuntu Linux.

Gibt es Open Source-Programme / Tools, die dies tun können? Wenn ja, können Sie mir eine einfache Anleitung zum Konvertieren eines DEM in ein 3D-Modell geben. (Befehlszeilenprogramme bevorzugt)

Antworten:


7

Blender hat eine Python-API. Daher verwende ich Python in Blender und importiere die GDAL-Bibliotheken und erstelle ein Blender-natives Netz direkt aus den GIS-Daten. Das einzige, worauf Sie achten müssen, ist, dass die Version von GDAL, die Sie haben, mit der Version von Python in der von Ihnen verwendeten Blender-Version übereinstimmt.

EDIT-Plugins:
Wenn Sie kein eigenes Skript mit der Blender Python-API und GDAL schreiben möchten, sind standardmäßig einige Plugins verfügbar, die möglicherweise hilfreich sind:

  1. Import DXF
  2. Es gibt Importeure für OBJ, X3D und VRML, und einige 3D-GIS-Systeme exportieren in diese (z. B. ArcScene und NVIZ), obwohl diese Route möglicherweise unbedingt kostenlos ist.

Es gibt ein Add-On für XYZ-Daten, das jedoch nicht dem Standard entspricht und hauptsächlich auf molekulare Daten abzielt, obwohl Sie es möglicherweise nach Ihrem Willen biegen könnten. Eine vollständige Auswahl an Standardimporteuren für Blender finden Sie hier . Es gibt einen PDS .IMG-Importer in Blender, aber GDAL kann nur PDS-IMG-Dateien lesen (nicht zu verwechseln mit Erdas IMG-Dateien, die unterschiedlich sind).

Wenn Sie also über ein GeoTiff-, ASC- oder ein anderes Raster für Höhendaten verfügen, schreiben Sie am besten ein kleines Skript, um das Raster zu durchlaufen, da es für die meisten Anwendungsfälle kein fertiges Plugin gibt, es sei denn, Sie können Exportieren Sie Ihren DTM nach DXF, VRML oder OBJ.


Gibt es ein bestimmtes Plugin oder etwas, das ich herunterladen und damit spielen kann?
Rory

1
Am besten schreiben Sie Ihre eigenen Skripte - siehe meine Änderungen.
MappaGnosis

4

Ich habe festgestellt, dass NVIZ (das Teil des GRASS-Pakets ist) ein nützliches Werkzeug zur Visualisierung von DEM-Daten als 3D-Modell ist.

Um das GRASS-Plugin zu installieren (falls Sie QGIS bereits installiert haben), navigieren Sie einfach zu Plugins -> Plugins verwalten und installieren -> Get More und installieren Sie GRASS. Stellen Sie sicher, dass es in Ihrer Liste Plugins verwalten und installieren aktiviert ist!

  1. Sobald Sie GRASS installiert haben, fügen Sie zunächst Ihre Rasterebene hinzu. Sie können dies tun, indem Sie zu Ebene -> Rasterebene hinzufügen -> Auswählen navigieren

  2. Erstellen Sie dann ein neues Mapset in GRASS. Navigieren Sie dazu zu Plugins -> GRASS -> New Mapset oder verwenden Sie die GRASS-Symbolleiste, die sichtbar sein sollte. A. Wählen Sie einen Ort für Ihr GRASS-Dataset aus. B. Geben Sie einen neuen Standortnamen Ihrer Wahl ein. C. Wählen Sie die gewünschte Projektion aus. D. Wählen Sie eine Region aus der Dropdown-Liste aus oder wählen Sie manuell eine Region mit Lat / Long-Koordinaten aus (Sie können die nachschlagen) lat / long Ihres Standorts im Web) E. Geben Sie einen neuen Kartensatznamen ein und klicken Sie dann auf Fertig stellen.

  3. Als nächstes möchten Sie Ihre DEM- oder Rasterebene in GRASS laden. Gehen Sie dazu wie folgt vor: A. Navigieren Sie zu Plugins -> GRASS -> GRASS-Tools öffnen. B. Wählen Sie unter "Modulliste" die Option "r.in.gdal.qgis" aus. C. Wählen Sie unter "Geladene Ebene" Ihre Ebene aus der Liste aus Dropdown-Liste und benennen Sie die Ausgabedatei D. Klicken Sie auf "Ausführen".

  4. Jetzt müssen Sie Ihrem Mapset A die GRASS-Rasterebene hinzufügen. Navigieren Sie zu Plugins -> GRASS -> GRASS-Rasterebene hinzufügen oder klicken Sie auf. B. Wählen Sie Ihren Standort und Ihr Kartenset aus, wählen Sie dann Ihre Ebene aus und klicken Sie auf „OK“.

  5. Vielleicht möchten Sie Ihr Raster ausmalen. Wenn ja, A. Stellen Sie sicher, dass Sie die richtige Ausgabe-Rasterebene ausgewählt haben. B. Navigieren Sie zu Plugins -> GRASS -> GRASS-Tools öffnen. C. Klicken Sie in der „Modulliste“ auf „r.colors.table“. D. Wählen Sie die Eingabeebene aus und wählen Sie dann eine „Art der Farbtabelle“. E. Klicken Sie auf „Ausführen“.

  6. JETZT für den lustigen Teil. Visualisierung in 3D mit NVIZ. Sie sollten also A festlegen. Legen Sie einen bestimmten Kartenbereich für die 3D-Modellierung fest, indem Sie zu Plugins -> GRASS -> Aktuelle GRASS-Region bearbeiten navigieren. Wählen Sie dann entweder manuell den gewünschten Bereich aus, indem Sie mit der Maus einen roten Rahmen zeichnen, oder legen Sie die Koordinaten im angezeigten Dialogfeld fest. (Auf diese Weise kann NVIZ bestimmen, welche Auflösung verwendet werden soll.) B. Navigieren Sie zu Plugins -> GRASS -> GRASS-Tools öffnen. C. Wählen Sie unter „Modulliste“ die Option „nviz“ aus. D. Wählen Sie das Raster für Höhe und Farbe aus (diese können identisch sein eins) und klicken Sie auf das Quadrat rechts (was "Region dieser Karte verwenden" bedeutet). E. Klicken Sie auf "Ausführen".

Spielen Sie dann mit verschiedenen Ansichten, Höhen und Lichtverhältnissen herum, bis Sie das gewünschte Bild haben!

Hoffe das hilft und bitte lass es mich wissen wenn du irgendwelche Fragen hast!


Ich werde feststellen, dass ich Probleme mit der Projektion hatte, wenn ich eine SRTM-Schicht verwendete. Hat jemand irgendwelche Vorschläge?
Zizah

Was für Probleme?
MarkusN


1

nviz ist keine eigenständige Anwendung, sondern Teil von GRASS GIS für die 3D-Visualisierung und -Animation. Wenn Sie Raster exportieren möchten, benötigen Sie GRASS GIS (oder GRASS in QGIS). Sie können DEMs in verschiedenen Dateiformaten exportieren , einschließlich Terragen Heightfield (.ter), VTK, PovRay, xyz usw.

Sie können Paraview auch verwenden , um die VTK-Dateien zu öffnen und in andere verschiedene Formate zu exportieren

Blender verfügt jedoch auch über Plugins zum direkten Importieren von DEMS, beispielsweise als Blender Digital Elevation Importer oder zum Importieren von Shapefiles und Raster ( ESRI Shapefile-Import / Export und georeferenzierter Rasterimporter ).

Kodex präsentiert auch eine Lösung zur Visualisierung von QGIS-Daten mit Blender im SVG-Format

Schauen Sie sich auch Shaded Relief in Blender mit SRTM-Daten an


1

Sie können einfach eine Dem-Datei als * .tif im Mixer mit dem Addon "Bild als Ebene importieren" hinzufügen. In diesem Beitrag können Sie sehen, wie ich mit einem Dem in Blender einige hochauflösende 3D-Karten erstellt habe: -> /gis//a/80842/24809

Nachdem Sie das Dem in den Mixer geladen haben, können Sie es auch bearbeiten, da Sie ein Bild bearbeiten können.



0

Einige der Screenshots (und Dateinamen) auf dieser Seite lassen es wie ein MS Windows-Programm aussehen. Ich brauche etwas, das unter Linux funktionieren kann.
Rory

Ich bin nicht sicher, ob es unter Linux funktioniert oder nicht. Vielleicht können Sie ihre Dokumentation dafür überprüfen.
Catlover

0

IMO sollte eine Kombination aus gdal2xyz.py und triangle und eine Neukonfiguration der Ausgabedateien von triangle (.node, .ele) in einem der unterstützten Textformate von Blender oder Meshlab funktionieren.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.