Strumenti Utente

Strumenti Sito


formazione:web_programming:gdal_tools

Tool GDAL e MapServer

ogrinfo

Per avere informazioni su un file OGR (formati vettoriali; es. shapefile, gpx, ecc.) si usa il programma ogrinfo (fornito dal pacchetto gdal-bin). Prima lo si esegue sul file stesso, per avere informazioni sui layer contenuti:

ogrinfo track.gpx
Had to open data source read-only.
INFO: Open of `track.gpx'
      using driver `GPX' successful.
1: waypoints (Point)
2: routes (Line String)
3: tracks (Multi Line String)
4: route_points (Point)
5: track_points (Point)

Si vede che esistono diversi layer al suo interno, a noi interessa quello di nome tracks. Per avere informazioni sul layer si esegue:

ogrinfo -summary track.gpx tracks
Had to open data source read-only.
INFO: Open of `track.gpx'
      using driver `GPX' successful.

Layer name: tracks
Geometry: Multi Line String
Feature Count: 5
Extent: (11.128482, 43.626412) - (11.553594, 43.829166)
Layer SRS WKT:
GEOGCS["WGS 84",
    DATUM["WGS_1984",
        ...

Utilissimo ad esempio per avere la EXTENT.

gdalinfo

Il programma gdalinfo (fornito dal pacchetto gdal-bin) è analogo a ogrinfo, consente di avere informazioni su file raster supportati dalla libreria GDAL:

gdalinfo 1353.tif
Driver: GTiff/GeoTIFF
Files: 1353.tif
Size is 5071, 8851
Coordinate System is `'
Origin = (1670696.939930999884382,4707728.060069000348449)
Pixel Size = (2.120138000000000,-2.120138000000000)
...
Corner Coordinates:
Upper Left  ( 1670696.940, 4707728.060)
Lower Left  ( 1670696.940, 4688962.719)
Upper Right ( 1681448.160, 4707728.060)
Lower Right ( 1681448.160, 4688962.719)
...

Usare path relativi!

Mai usare path assoluti nei file map! Nella peggiore delle ipotesi l'unico path assoluto può essere contenuto in SHAPEPATH.

SHAPEPATH Directory in cui sono memorizzati gli shapefile, compresi i tileindex (indici) per i raster. Si intende relativa alla directory del file map.
TILEINDEX In generale i file raster potrebbero trovarsi in sottodirectory della SHAPEPATH, tuttavia conviene che i file indice siano tutti direttamente nella SHAPEPATH.
tileindex.shp L'indice contiene il path dei file raster, MapServer interpreta il percorso come relativo allo SHAPEPATH, non relativo alla posizione del file indice stesso.

Ad esempio nella directory /usr/local/share/shape/ abbiamo la sottodirectory toscana/ctr25/ con i raster della Carta Tecnica Regionale. Il file map contiene:

SHAPEPATH "/usr/local/share/shape"

LAYER
  TYPE RASTER
  TILEINDEX "toscana_ctr25k_tindex.shp"
END

L'indice deve contenere il percorso relativo toscana/ctr_25k/ e quindi deve essere costruito in questo modo:

cd /usr/local/share/shape
gdaltindex toscana_ctr_25k_index toscana/ctr_25k/*.tif

tile4ms

Il programma tile4ms fornito dal pacchetto mapserver-bin serve a creare un indice di shapefile.

Prima di usare tile4ms bisogna creare un elenco dei file che devono essere indicizzati, può tornare utile il comando find o simili. L'elenco creato viene dato in pasto a tile4ms che produce l'indice.

In questo esempio si cercano tutti gli shapefile relativi alla medesima feature elementi lineari, contraddistinti dal nome *el.shp e contenuti in varie sottodirectory, l'elenco viene scritto in un metafile. Il comando tile4ms crea l'indice leggendo dal metafile:

cd /usr/local/share/gisdata
find shape/geofesta2008/firenze10k/ -name "*el.shp" > firenze10k_el_metafile
tile4ms firenze10k_el_metafile firenze10k_el_index

La porzione di mapfile corrispondente è del tipo:

SHAPEPATH "/usr/local/share/gisdata"

LAYER
  NAME "EL entità lineari"
  STATUS DEFAULT
  TYPE LINE
  TILEINDEX "firenze10k_el_index"
  TILEITEM "Location"
  CLASS
    COLOR 120 120 120
  END
END

gdaltindex

Il programma gdaltindex fornito dal pacchetto gdal-bin serve per creare un indice di raster.

cd /usr/local/share/gisdata
gdaltindex toscana_ctr25k_index.shp raster/toscana_ctr25k/*.tif

Il file indice è uno shapefile, analogamente a quanto visto con tile4ms. Va indicato con la direttiva TILEINDEX che si intende relativa a SHAPEPATH. L'indice deve contenere il percorso dei file raster relativi a SHAPEPATH, non al file indice.

SHAPEPATH "/usr/local/share/gisdata"

LAYER
  NAME "ctr25k"
  STATUS DEFAULT
  TYPE RASTER
  TILEINDEX "toscana_ctr25k_index.dbf"
  TILEITEM "Location"
  PROCESSING "RESAMPLE=AVERAGE"
  OFFSITE 255 255 255
END

Legende

  • Font: sono supportati i caratteri TrueType.
  • Etichette: viene utilizzato il contenuto del tag LAYER.CLASS.NAME.
  • Codifica caratteri: si indica con il tag ENCODING, fortemente consigliato UTF-8.

Per il corretto funzionamento delle LABEL sono necessarie diverse librerie, tra cui freetype e iconv. Per vedere se MapServer è stato compilato con il supporto FreeType digitare:

/usr/lib/cgi-bin/mapserv -v
MapServer version 5.0.3 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP
OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER
SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS INPUT=EPPL7 INPUT=POSTGIS
INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE

Overview Images (piramidi)

Se il file è troppo grande conviene creare le overview, dette anche piramidi, altrimenti uno zoom alla massima estensione obbliga a leggere e ridimensionare al volo tutto il raster.

In genere si generano delle copie dell'immagine con risoluzione 1/2, 1/4, 1/8, … dell'originale. Le overview possono essere contenute all'interno dello stesso GeoTiff:

gdaladdo TrueMarble.8km.5400x2700.tif 2 4 8

Se invece vogliamo tenere le overview in un file separato (avrà formato Erdas Image ed estensione .aux):

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 .aux.

formazione/web_programming/gdal_tools.txt · Ultima modifica: 2010/11/13 00:39 (modifica esterna)