Quando formatto il mio PC, e devo reinstallare tutte le applicazioni, inizio da quelle “fondamentali ed insostituibili”. Ognuno ha le proprie, e la scelta si basa su criteri pratici mescolati spesso con pulsazioni da tifoso. Nella mia Top Ten c’è proprio FWTools, un kit di applicazioni sviluppato da Frank Warmerdam (FW), disponibile sia per Linux che per Windows, che non può mancare tra le applicazione di chiunque si occupi di GIS e cartografia numerica.
E’ composto dai seguenti pacchetti:
- OpenEV: A high performance raster/vector desktop data viewer and analysis tool.
- MapServer: A web mapping package.
- GDAL/OGR: A library and set of commandline utility applications for reading and writing a variety of geospatial raster (GDAL) and vector (OGR) formats.
- PROJ.4: A cartographic projections library with commandline utilities.
- OGDI: a multi-format raster and vector reading techology noteworthy for inclusion of support for various military formats including VPF (ie. VMAP, VITD), RPF (ie. CADRG, CIB), and ADRG.
- Python: a scripting language.
Con questo post, voglio inaugurare una serie di piccolissimi tutorial dedicata a FWTools ed in particolare alle librerie GDAL/OGR. L’installazione di FWTools è molto semplice e non ne parlerò. Le operazione che andremo a svolgere, le faremo tutte da “riga di comando”.
Come ricavare le metainformazioni disponibili in un file GeoTiff?
Per ottenere queste informazioni utilizzerò le librerie GDAL, ed in particolare l’utility gdalinfo. Ecco i passi da seguire:
- aprire la shell di sistema
- scrivere un comando con la seguente sintassi
"
gdalinfo /percorso_file_geotiff/file_geottif.tif
"
- premere invio
Otterrò un’output di questo tipo:
Driver: GTiff/GeoTIFF Size is 7520, 5800 Coordinate System is: PROJCS[\"unnamed\", GEOGCS[\"unnamed\", DATUM[\"unknown\", SPHEROID[\"unnamed\",6378388,297.0000000000014, AUTHORITY[\"EPSG\",\"7022\"]], AUTHORITY[\"EPSG\",\"6265\"]], PRIMEM[\"Greenwich\",0], UNIT[\"degree\",0.0174532925199433], AUTHORITY[\"EPSG\",\"4265\"]], UNIT[\"metre\",1, AUTHORITY[\"EPSG\",\"9001\"]], AUTHORITY[\"EPSG\",\"3004\"]] Origin = (2366320.000000,4218280.000000) Pixel Size = (1.00000000,-1.00000000) Metadata: AREA_OR_POINT=Area TIFFTAG_XRESOLUTION=300 TIFFTAG_YRESOLUTION=300 TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch) Corner Coordinates: Upper Left ( 2366320.000, 4218280.000) Lower Left ( 2366320.000, 4212480.000) Upper Right ( 2373840.000, 4218280.000) Lower Right ( 2373840.000, 4212480.000) Center ( 2370080.000, 4215380.000) Band 1 Block=7520x16 Type=Byte, ColorInterp=Red Band 2 Block=7520x16 Type=Byte, ColorInterp=Green Band 3 Block=7520x16 Type=Byte, ColorInterp=Blue
Magari a voi non suscita alcun emozione, ma questo semplicissimo comando ci restituisce un’informazione spaziale strutturata utilissima. Se vorrete creare un file .txt, basterà scrivere sulla shell la seguente stringa:
\"gdalinfo /percorso_file_geotiff/file_geottif.tif > /percorso_export/nomefile.txt\"
Il comando esegue anche operazioni più sofisticate, per le quali troverete informazioni sulla pagina ufficiale di questa utility e anche cercando un po’ sul web.
I contenuti potrebbero non essere più adeguati ai tempi!
By Osvaldo on apr 9, 2008
Grazie tanto per i consigli. Cerca di non dare per scontato tante cose che il principiante non conosce e che talvolta teme di domandare per non far figure
By Andrea Borruso on apr 9, 2008
Ciao Osvaldo, grazie a te per averci visitato e per le critiche.
Scrivere un articolo per “tutti” richiede sforzi che è difficile sostenere; se ci riuscissimo, questo blog sarebbe sicuramente migliore.
Mi dispiace che tu abbia incontrato delle difficoltà, ma non avere alcun timore a scriverci: se saremo in grado di risponderti lo faremo con piacere.
Alla prossima,
a
By stuppolo on nov 18, 2012
Ciao, interessante blog… mi domandavo se è possibile ricavare le coordinate da un file .kmz analogamente a quanto qui mostrato per i files di estensione .tif
By Andrea Borruso on nov 18, 2012
Ciao stuppolo,
e benvenuto. Questo post è un po’ vecchio e FWTools non è aggiornato da un po’ di tempo. In ogni caso dovrebbe essere in grado di leggere le informazioni che chiedi.
Però non da un kmz, ma da un kml, ovvero la versione non compressa.
Invece di “gdalinfo”, dovrai usare il comando analogo per file vettoriali, ovvero “ogrinfo”. La sintassi è molto simile:
ogrinfo input.kml
Ti restituirà qualcosa come:
INFO: Open of `input.kml' using driver `KML' successful.
1: Layer_test (3D Point)
Se vuoi un output, simile a quello che leggi sopra per una tif, dovrai scrivere:
ogrinfo input.kml "Layer_test"
Avrai
Layer name: Layer_test
Geometry: 3D Point
Feature Count: 2
Extent: (10.325631, 42.442331) - (13.409650, 48.543378)
Layer SRS WKT:
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
TOWGS84[0,0,0,0,0,0,0],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9108"]],
AUTHORITY["EPSG","4326"]]
Name: String (0.0)
Description: String (0.0)
OGRFeature(Layer_test):0
Name (String) = Segnaposto senza titolo
Description (String) =
POINT (13.409650063138001 42.442330963104538 0)
OGRFeature(Layer_test):1
Name (String) = Segnaposto senza titolo
Description (String) =
POINT (10.32563140720638 48.543377564231768 0)
Per avere le librerie GDAL OGR aggiornate io di solito uso l’installer “gdal-XX-XXXX-core.msi” che trovi qui: http://goo.gl/0htEj
Alla prossima