====== Riassunto ====== Questa è una breve introduzione su come creare modelli digitali del terreno (DEM e/o DTM) da dare in input a Therion per produrre modelli 3D. Questo documento è in fieri (Gen. 2011). Pagina originale a cura di Wolfgang Zillig. ====== Dati di input ====== ===== Dati di quota (DEM) ===== Ci sono due insiemi di dati (dataset) liberamente scaricabili. Il primo è il dataset della NASA raccolto durante la campagna [[http://www2.jpl.nasa.gov/srtm/|SRTM]] (Shuttle Radar Topology Mission). Contiene dati di quota per tutto il mondo (esclusi i poli), con una risoluzione di 3 arcsec (circa 90 m). Solo per gli USA i dati sono forniti ad una risoluzione di 1 arcsec (circa 30 m). Entrambi i dataset hanno i dati di quota riferiti ad una griglia coordinata in latitudine/longitudine, perciò è necessaria una conversione di coordinate, per poterli usare. Il secondo dataset è [[http://www.viewfinderpanoramas.org|Viewfinderpanoramas]]. I dati coprono una zona limitata, ma, per le Alpi sono disponibili con una risoluzione di 1 arcsec (circa 30 m). ===== Modello del terreno (DTM) ===== Come immagini del terreno da sovraimporre al DEM sono disponibili diverse fonti: immagini satellitari, foto aeree, o mappa topografiche. Il problema è solo per dati non liberamente accessibili. I dati del satellite Landsat hanno una risoluzione massima di circa 15m/pixel (pan sharpened images). E non sono immagini a colori "veri" perché perte dell'informazione si è persa a causa dell'atmosfera. Alcune nazioni, come Germania e Austria, forniscono dati attraverso [[http://en.wikipedia.org/wiki/Web_Map_Service|WMS]] (Web Map Service). Altre nazioni rendono disponibili i dati con ECWP che è uno speciale protocollo per trasferire via rete mappe e ortofoto altamente compresse. Questo protocollo è stato introdotto da [[http://www.ermapper.com|Ermapper]]. Ci sono anche programmi freeware per accedere a questi dati (questo interessa principalmente Italia, Spagna e Regno Unito). ====== Background information ====== ===== Sistemi di coordinate ===== Per convertire i dati di input devi conoscere un minimo di background sui sistemi di coordinate. EPSG (European Petroleum Survey Group) ha codificato una lista di sistemi di coordinate, per cui se conosci il codice numerico EPSG dei sistemi di coordinate di input e output dei dati, è semplice fare la conversione. Ecco una lista dei codici di alcuni sistemi di coordinate: ^Sistema di coordinate ^Codice EPSG ^ | WGS84 lat/long | 4326 | | Gauss Krüger Zone 2 | 31466 | | GK3 | 31467 | | GK4 | 31468 | | Bundesmeldenetz BMN M28 | 31284 | | BMN M31 | 31285| | BMN M34 | 31286 | | WGS84 UTM Zone 31N | 32631 | | UTM 32N | 32632 | | UTM 33N | 32633 | | NZ Map Grid 1949 | 27200| | NZ Transverse Mercanter 2000 | 2193| Le ultime due cifre del UTM definiscono la zona. Un commento per BMN: il falso nord (5000000) non è incluso. ====== Programmi addizionali ====== Per preparare i dati per Therion/Loch hai bisogno di altri programmi. Ci sono programmi liberi che puoi usare per questo compito. ===== GDAL ===== [[http://www.gdal.org|GDAL]] è una collezione di programmi per elaborare dati geografici (raster). Qui si descrivono alcuni programmi; per maggiori dettagli consulta il manuale di GDAL che puoi trovare al link sotto. Per l'istallazione [[http://fwtools.maptools.org/|FWTools]] fornisce eseguibili precompilati. Gli esempi, sotto riportati, spiegano un poco l'uso di GDAL, ma la lettura delle pagine del manuale sul sito di GDAL sicuramente aiuterà. Ogni programma, se invocato com **--help**, riporta una succinta descrizione di come usarlo. ==== gdalinfo ==== [[http://gdal.org/gdalinfo.html|gdalinfo]] fornisce informazioni su un file. In particolare la georeferenziazione (e altre cose forse interessanti). ==== gdal_translate ==== [[http://gdal.org/gdal_translate.html|gdal_translate]] trasforma i dati da un formato immagine ad un altro. È anche possibile estrarre parte dell'immagine. ==== gdalwarp ==== [[http://gdal.org/gdalwarp.html|gdalwarp]] trasforma i dati e le immagini da un sistema di coordinate ad un altro. Può fare anche interpolazione, ed è possibile limitare l'output ad un'area definita. ==== gdal_merge ==== [[http://www.gdal.org/gdal_merge.html|gdal_merge]] permette di unire diversi input file in un unico output. Opera sia sui dati di quota (srtm) che su immagini (ortofoto, carte topografiche, ...), purché correttamente georeferenziate. ====== Primo esempio ====== Il primo esempio è un monte nella Germania meridionale, precisamente lo Sontagshorn. Come sistema di coordinate uso il sistema locale Gauss Grüger, zona 4, il cui codice EPSG è 31468. Il limite dell'area è, a Nord 5286980, a Sud 5279000, ad Ovest 4549000 e ad Est 4556980. Ha perciò dimensione 7980x7980 m. Larghezza ed altezza sono state scelte in modo da avere multipli di 30m che è la risoluzione dei dati. ===== Dati di quota (DEM) ===== La regione di questo esempio è contenuta nei dati [[http://www.viewfinderpanoramas.org/dem1/n47e012.zip|N47E012]]. Il file è compresso ZIP e devi decomprimerlo prima di continuare. Poi lo puoi convertire in immagine TIF gdalwarp -t_srs EPSG:31468 -te 4548985 5278985 4556995 5286995 -tr 30 30 -r cubic N47E012.hgt dem.tif Note. * **-t_srs EPSG:31468** specifica il sistema di coordinate di output * **-te x_min y_min x_max y_max** specifica l'area della regione di output * **-tr 30 30** è la risoluzione (qui 30 x 30 metri) * **-r cubic** interpolazione cubica (di solito produce risultati accettabili) Come puoi notare la regione è stata spostata di 15 metri (mezza risoluzione). Therion definisce il punto di una cella come il suo centro; quindi per avere la quota nel centro della cella bisogna specificare una griglia spostata di metà della dimensione della cella, sia in X che in Y. Con questo comando viene creato il file "dem.tif", perché gdalwarp non produce output in formato testo. La conversione viene fatta con un altro programma: gdal_translate -of AAIGrid dem.tif dem.txt Note. * **-of** specifica il formato di output format (qui ArcInfo Asci Grid) Per usare questo file con Therion devi rimuovere le prima quattro righe che contengono la descrizione della regione. ==== Inclusione in therion ==== surface # declaration of the height model grid 4549000 5279000 30 30 267 267 # grid x_min y_min x_resolution y_resolution n_cols n_rows # followed by the matrix of the elevation data (from dem.txt): 1123 1234 ... ... # (data not shown completely) endsurface Per specificare la generazioen del modello 3D devi editare il file di configurazione **.thconfig** e aggiungere la riga export model -o model.lox Note. * **-o** nome del file di output Se ora esegui therion, ottieni un file "model.lox" che puoi visualizzare con loch, e contiene la superficie in grigio. ===== Tessitura (DTM) ===== In Germania uno può accedere a dati geografici attraverso il WMS (web map service). Il link per il servizio in Bavaria (dove si trova il Sonntagshorn) è: [[http://deutschlandviewer.bayern.de/ogc/getogc.cgi?]] Per prima cosa devi chiedere al server quali mappe (layers) fornisce: [[http://deutschlandviewer.bayern.de/ogc/getogc.cgi?request=getcapabilities&Service=WMS]] Il risultato è un file XML (un file di testo). I formati di dati possibili sono elencati dopo la tag ****. Uso il formato **JPEG** (immagini compresse). La riga //EPSG:31468// ci dice che il server produce i dati già georeferenziati nel sistema di coordinate corretto. Se guardi nel file, troverai i nomi dei layer. Due di interesse sono i layer **DOP**, che sta per "Digital Ortho Photo", e **TK50**, carte topografiche in scala 1:50000. Puoi accedere ad una mappa con il seguente url [[http://deutschlandviewer.bayern.de/ogc/getogc.cgi?request=getmap&VERSION=1.1.1& REQUEST=GetMap&SERVICE=WMS&LAYERS=TK50&SRS=EPSG:31468&BBOX=4549000,5279000,4556980,5286980& WIDTH=1995&HEIGHT=1995&FORMAT=image/jpeg]] Note. * **REQUEST=GetMap** specifica che richiedi una mappa * **VERSION=1.1.1** versione del software * **SERVICE=WMS** quale servizio usare (Web Map Service) * **LAYERS=TK50** nome del layer * **SRS=EPSG:31468** sistema di coordinate * **BBOX=4549000,5279000,4556980,5286980** la regione di interesse * **WIDTH=1995** numero dei pixel nella direzione ovest-est (massimo 2000 pix, potrebbe esser diverso per altri server) * **HEIGHT=1995** umero dei pixel nella direzione sud-nord (massimo 2000 pix, potrebbe esser diverso per altri server) * **FORMAT=image/jpeg** formato grafico Salva l'immagine come file **overlay.jpg** ==== Inclusione in therion ==== Dobbiamo aggiungere una riga all'esempio precedente surface # declaration of the height model grid 4549000 5279000 30 30 267 267 # grid x_min y_min x_resolution y_resolution n_cols n_rows ## bitmap "file name" [ x y X Y xx yy XX YY] ## small letters in picture coordinates (0 0 is lower left) ## and capital letters in real coordinates (X Y) bitmap ./overlay.jpg [0 0 4549000 5279000 1995 1995 4556980 5286980] # followed by the matrix of the elevation data (from dem.txt): ... # (data not shown here) endsurface ====== Fusione di file DEM ====== Non è difficile metter insieme i dati di quota per regioni coperte da due o più file. Supponiamo per esempio di dover unire i file N47E012.hgt e N47E013.hgt. Per prima cosa usiamo gdal_merge (un'altra delle GDAL utilities) per unire i dati di questi due file in un solo file, poi estraiamo la regione di interesse: gdal_merge -o N47E012E013.tif N47E012.hgt N47E013.hgt Note. * **-o** none del file di output seguito dai nomi dei file di input Questo comando crea un file TIF con i dati di quota (numeri interi). La maggior parte degli editor di immagini non visualizzano questo file come ci si potrebbe aspettare, perché non contiene la definizione della mappa dei colori. Perciò appare quasi completamente nero. Non devi preoccuparti: infatti se esegui il comando sotto ottieni le informazioni geografiche del file (sistema di coordinate, ellissoide, limiti della regione coperta, risoluzione, ...) gdalinfo -mm N47E012E013.tif Note. * **-mm** mostra anche i valori minimo e masssimo A questo punto puoi usare questo file come input per estrarre la regione di interesse come descritto prima. ====== Altri formati di input ====== GDAL può leggere (e scrivere) diversi differenti formati di file. Usa il comando **gdalinfo** quando hai dei dati, per vedere se GDAL li riconosce. ====== Mappe scannerizzate ====== GDAL è utile per georeferenziare le mappe che hai scannerizzato tu stesso. Per cominciare devi conoscere le coordinate reali (nel sistema di riferimento) e in pixel (nell'immagine) di alcuni punti: aggiungi queste informazioni a **gdal_translate** con l'opzione **−gcp pixel line easting northing**. Puoi usare **OpenEV** (che trovi in **FWTools**) per ottenere questi numeri. Il secondo passo è il comando **gdalwarp** che "rettifica" l'immagine. Consulta la documentazione online per ulteriori dettagli. (Penso che questo vada un po' troppo in là per un wiki di Therion). ====== Domande & note ====== Prima di tutto, puoi modificare questa pagina! Poi, manda una email sulla lista di therion, oppure contattami direttamente wollez (äht) gmx (doht) net . [[:bds#some_examples|Un esempio]] ===== TerrainTool: un'alternativa ===== http://ubss.org.uk/terraintool/terraintool.php Fa tutte le cose complicate, e produce l'output come file .th. Certi offset potrebbero essere necessari a seconda del sistema di coordinate usato. Se si blocca, prova a cancellare il file "terrain.properties" dalla cartella che contiene i file *.jar del programma. La prossima volta che lo esegui ne crea uno nuovo che sembra funzionare (dovrai rimettere i tuoi valori di default). Bruce M. ===== hgt2th ===== Il formato dati dei file HGT è molto semplice. Personalmente uso un programma C che estrae il DEM dai file HGT. Produce file con sintassi Therion pronti da includere (col comando "input") nel progetto therion. Funziona solo per le Alpi e per certi sistemi di coordinate in uso in Italia. Richiede che i file HGT siano stati scaricati e decompressi preventivamente. (Magari dopo metto il link). Marco C.