Strumento open source per convertire un DEM in un modello 3D


11

Vorrei convertire un file DEM (Digitial Elevation Model) (ad es. Da SRTM) in un modello 3D che posso quindi modificare con i normali strumenti di modellazione 3D (ad es. Meshlab / Blender / ecc.). Comunque sto usando Ubuntu Linux.

Quindi, ci sono programmi / strumenti open source che possono farlo? E se è così, puoi darmi una semplice guida su come convertire un DEM in un modello 3D. (programmi della riga di comando assegnati)

Risposte:


7

Blender ha un'API Python. Pertanto, utilizzo Python in Blender e importare le librerie GDAL e costruire una mesh nativa di Blender direttamente dai dati GIS. L'unica cosa di cui devi fare attenzione è che la versione di GDAL che hai corrisponda alla versione di Python nella versione di Blender che stai usando.

EDIT Plugin:
se non vuoi scrivere il tuo script usando Blender Python API e GDAL, ci sono alcuni plugin disponibili come standard che possono aiutare:

  1. Importa DXF
  2. Esistono importatori per OBJ, X3D e VRML e alcuni sistemi GIS 3D esporteranno su questi (ad esempio ArcScene e NVIZ) anche se questo percorso è forse necessariamente strettamente gratuito.

C'è un componente aggiuntivo per i dati XYZ ma non è standard e si rivolge principalmente ai dati molecolari, anche se forse potresti piegarli alla tua volontà. Per una gamma completa di importatori standardizzati per Blender vedi qui . Esiste un importatore PDS .IMG in Blender ma GDAL può leggere solo file IMG PDS (da non confondere con i file IMG Erdas che sono diversi).

Quindi, davvero, la soluzione migliore se si dispone di un GeoTiff, ASC o di qualsiasi altro raster di dati di altezza è scrivere un piccolo script per iterare sul raster in quanto non esiste un plug-in pronto per la maggior parte dei casi d'uso, a meno che non sia possibile esporta il tuo DTM in DXF, VRML o OBJ.


Esiste un plug-in particolare o qualcosa con cui posso scaricare e giocare?
Rory,

1
Il tuo meglio è lo scripting tuo - vedi le mie modifiche.
MappaGnosis,

4

Ho scoperto che NVIZ (che fa parte del pacchetto GRASS) è uno strumento utile per visualizzare i dati DEM come modello 3D.

Per installare il plug-in GRASS (se hai già installato QGIS), vai su Plugin -> Gestisci e installa plug-in -> Ottieni di più e installa GRASS. Assicurati che sia selezionato nell'elenco Gestisci e installa plug-in!

  1. Dopo aver installato GRASS, inizia aggiungendo il tuo livello raster. Puoi farlo navigando su Livello -> Aggiungi livello raster -> Seleziona

  2. Quindi crea un nuovo mapset in GRASS. Fallo accedendo a Plugin -> GRASS -> New Mapset o usa la barra degli strumenti di GRASS che dovrebbe essere visibile. A. Seleziona una posizione per il tuo set di dati GRASS B. Inserisci un nuovo nome di posizione di tua scelta C. Seleziona la proiezione desiderata D. Seleziona una regione dall'elenco a discesa o selezionane una manualmente usando le coordinate lat / long (puoi cercare lat / long della posizione sul Web) E. Inserisci un nuovo nome per il mapset e fai clic su Fine.

  3. Successivamente, dovrai caricare il tuo livello DEM o raster in GRASS. Lo farai A. Navigando verso Plugin -> GRASS -> Apri gli strumenti GRASS B. In "Elenco moduli", seleziona "r.in.gdal.qgis" C. In "Livello caricato", seleziona il tuo livello dal elenco a discesa e denominare il file di output D. Fare clic su "Esegui"

  4. Ora devi aggiungere il livello raster GRASS al tuo set di mappe A. Passa a Plugin -> GRASS -> Aggiungi il livello raster GRASS o fai clic su. B. Seleziona la tua posizione e il set di mappe, quindi seleziona il tuo livello e fai clic su "OK"

  5. Potresti voler colorare il tuo raster. In tal caso, A. Assicurati di aver selezionato il livello raster di output corretto B. Passa a Plugin -> GRASS -> Apri gli strumenti GRASS C. In "Elenco moduli", fai clic su "r.colors.table". D. Seleziona il livello di input, quindi scegli un "Tipo di tabella dei colori" E. Premi "Esegui".

  6. Adesso per la parte divertente. Visualizzazione in 3D tramite NVIZ. Quindi ti consigliamo di A. Impostare una regione della mappa specifica per la modellazione 3D navigando su Plugin -> GRASS -> Modifica regione GRASS corrente. Quindi seleziona manualmente la regione desiderata disegnando una cornice rossa con il mouse o imposta le coordinate nella finestra di dialogo che appare. (Ciò consente a NVIZ di determinare quale risoluzione utilizzare) B. Passa a Plugin -> GRASS -> Apri gli strumenti GRASS C. In "Elenco moduli", seleziona "nviz" D. Seleziona il raster per Elevazione e Colore (possono essere gli stessi uno) e fai clic sulla casella a destra (che significa "Usa la regione di questa mappa") E. Premi "Esegui"

Quindi gioca con diversi punti di vista, altezze e illuminazione fino ad avere l'immagine desiderata!

Spero che questo aiuti e per favore fatemi sapere se avete domande!


Noterò che ho avuto problemi con la proiezione durante l'utilizzo di un livello SRTM. Qualcuno ha qualche suggerimento?
Zizah,

Che tipo di problemi?
markusN


1

nviz non è un'applicazione autonoma, fa parte di GRASS GIS , per la visualizzazione e l'animazione 3D. Se si desidera esportare raster, è necessario GRASS GIS (o GRASS in QGIS). Puoi esportare DEM in vari formati di file , inclusi Terragen Heightfield (.ter), VTK, PovRay, xyz, ecc.

Puoi anche usare Paraview per aprire i file VTK ed esportarli in altri vari formati

Ma Blender ha anche plugin per importare direttamente DEMS, come Blender Digital Elevation Importer o importare shapefile e raster ( import / export ESRI Shapefile e importatore raster georeferenziato ), per esempio.

Kodex presenta anche una soluzione per la visualizzazione dei dati QGIS con Blender con il formato SVG

Guarda anche Shaded Relief in Blender con dati SRTM


1

Puoi semplicemente aggiungere un file dem come * .tif nel frullatore con il componente aggiuntivo "importa immagine come piano". Vedi questo post dove puoi vedere come ho realizzato alcune mappe 3d ad alta risoluzione usando un dem in blender: -> /gis//a/80842/24809

Dopo aver caricato il dem nel frullatore puoi anche modificarlo in quanto puoi modificare un'immagine.



0

Alcuni screenshot (e nomi di file) in quella pagina lo fanno sembrare un programma MS Windows. Ho bisogno di qualcosa che possa funzionare su Linux.
Rory,

Non sono sicuro che funzioni su Linux o meno. Forse puoi controllare la loro documentazione per questo.
Catlover,


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.