tecnica:gps_cartografia_gis:gdal_raster
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tecnica:gps_cartografia_gis:gdal_raster [2010/10/12 17:34] – niccolo | tecnica:gps_cartografia_gis:gdal_raster [2013/10/01 23:08] (current) – [Overview Images (piramidi)] niccolo | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Raster con GDAL e MapServer ====== | ====== Raster con GDAL e MapServer ====== | ||
+ | |||
+ | ===== Raster type: Float32, Int16, Byte ===== | ||
La gestione dei **raster Tiff** con GDAL e MapServer non funziona sempre alla perfezione come si vorrebbe. Si deve fare sempre attenzione al tipo di raster con cui si ha a che fare, potrebbe trattarsi di **Float32**, | La gestione dei **raster Tiff** con GDAL e MapServer non funziona sempre alla perfezione come si vorrebbe. Si deve fare sempre attenzione al tipo di raster con cui si ha a che fare, potrebbe trattarsi di **Float32**, | ||
Line 68: | Line 70: | ||
===== Ottimizzare raster con gdal_translate ===== | ===== Ottimizzare raster con gdal_translate ===== | ||
- | Alcune caratteristiche di un file TIFF possono incidere sulle performance di MapServer. Su file molto grossi ad esempio la memorizzazione in blocchi (256x256) piuttosto che in righe di pixel può migliorare i tempi di accesso. Anche la compressione può incidere negativamente sulle prestazioni. | + | Alcune caratteristiche di un file TIFF possono incidere sulle performance di MapServer. Su file molto grossi ad esempio la **memorizzazione in blocchi** (256x256) piuttosto che in righe di pixel può migliorare i tempi di accesso. Anche la **compressione** può incidere negativamente sulle prestazioni. |
Ecco un comando che converte un file TIFF in un' | Ecco un comando che converte un file TIFF in un' | ||
Line 80: | Line 82: | ||
< | < | ||
Band 1 Block=256x256 Type=Byte, ColorInterp=Palette | Band 1 Block=256x256 Type=Byte, ColorInterp=Palette | ||
+ | </ | ||
+ | |||
+ | ===== Georiferire un file PNG ===== | ||
+ | |||
+ | Quei mattacchioni della NASA fanno [[http:// | ||
+ | |||
+ | Bisognerebbe creare un //world file// secondo la struttura documentata da [[http:// | ||
+ | < | ||
+ | gdalinfo TrueMarble.2km.21600x10800.tif | ||
+ | ... | ||
+ | Origin = (-180.000000000000000, | ||
+ | Pixel Size = (0.016666666666667, | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Un trucco per creare il world file a partire da un GeoTiff usando i tool gdal è il seguente: | ||
+ | |||
+ | < | ||
+ | gdal_translate -co " | ||
+ | mv temp.tfw TrueMarble.2km.21600x10800.tfw | ||
+ | rm temp.tif | ||
+ | </ | ||
+ | |||
+ | Creiamo il world file con lo stesso nome del file '' | ||
+ | |||
+ | < | ||
+ | 0.0166666667 | ||
+ | 0.0000000000 | ||
+ | 0.0000000000 | ||
+ | -0.0166666667 | ||
+ | -179.9916666667 | ||
+ | 89.9916666667 | ||
+ | </ | ||
+ | |||
+ | Peccato che la velocità di accesso non sia accettabile, | ||
+ | |||
+ | Una **soluzione non ottimale** è quella di convertire in Tiff non compresso con ImageMagick (il world file da usare rimane esattamente lo stesso): | ||
+ | |||
+ | < | ||
+ | convert world_topo_bathy.png -compress none world_topo_bathy.tif | ||
+ | </ | ||
+ | |||
+ | La **soluzione migliore** è creare un **GeoTiff completo**, che non ha bisogno del world file perché incorpora tutte le informazioni geografiche necessarie. A tale scopo si può usare il comando: | ||
+ | |||
+ | < | ||
+ | gdal_translate -a_srs EPSG:4326 world_topo_bathy.png world_topo_bathy.tif | ||
+ | </ | ||
+ | |||
+ | Nel GeoTiff risultante vengono incorporate sie le informazioni relative al sistema di riferimento che quelle contenute nel world file. | ||
+ | |||
+ | ===== Overview Images (piramidi) ===== | ||
+ | |||
+ | Se il file è troppo grande conviene creare le overview, dette anche // | ||
+ | |||
+ | In genere si generano delle copie dell' | ||
+ | |||
+ | < | ||
+ | gdaladdo TrueMarble.8km.5400x2700.tif 2 4 8 | ||
+ | </ | ||
+ | |||
+ | Se invece vogliamo tenere le overview in un file separato (che avrà estensione **'' | ||
+ | |||
+ | < | ||
+ | gdaladdo -ro -r gauss TrueMarble.8km.5400x2700.tif 2 4 8 | ||
+ | </ | ||
+ | |||
+ | Con le versioni di GDAL < 1.6.0 si deve usare una sintassi diversa, il file esterno con le overview avrà formato //Erdas Image// ed estensione **'' | ||
+ | |||
+ | < | ||
+ | gdaladdo --config USE_RRD YES TrueMarble.8km.5400x2700.tif 2 4 8 | ||
+ | </ | ||
+ | |||
+ | MapServer e la libreria Gdal accedono automaticamente alle overview anche se si trovano nel file separato **'' | ||
+ | |||
+ | ===== Creare una overview di una copertura tiled ===== | ||
+ | |||
+ | Anche se nelle tile sono state aggiunte le overview, ai fattori di scala maggiori (zoom minore) è necessario accedere a tutti i file (tile) della copertura per generare la mappa. Questo fa decadere di molto le prestazioni, | ||
+ | |||
+ | Tale file conviene che sia TIFF memorizzato a blocchi ed eventualmente deve comprendere le overview opportune. Ecco come usare **'' | ||
+ | |||
+ | < | ||
+ | gdal_merge.py -o output.tif -of GTiff -co TILED=YES -co TFW=YES -ps 0.9765625 0.9765625 2001/*.jpg | ||
+ | </ | ||
+ | |||
+ | La dimensione del pixel (in metri) viene calcolata dividento la larghezza della copertura per il numero di pixel desiderati. Ad esempio se si ha una superficie larga 16 km e si vuole creare un' | ||
+ | |||
+ | < | ||
+ | (670510 - 654510) / 16384 = 0.9765625 | ||
</ | </ |
tecnica/gps_cartografia_gis/gdal_raster.1286897660.txt.gz · Last modified: 2010/10/12 17:34 by niccolo