Creo regolarmente i miei raster GeoTIFF con GDAL in Python, ad esempio:
from osgeo import gdal
from numpy import random
data = random.uniform(0, 10, (300, 200))
driver = gdal.GetDriverByName('GTiff')
ds = driver.Create('MyRaster.tif', 200, 300)
band = ds.GetRasterBand(1)
band.WriteArray(data)
ds = band = None # save, close
tuttavia, quando il risultato viene visualizzato con ArcCatalog / ArcGIS, appare nero o grigio, poiché non ha statistiche. Questo può essere risolto facendo clic con il tasto destro del mouse sul raster e scegliendo "Calcola statistiche ..." in ArcCatalog (ci sono molti altri modi per farlo), oppure usando gdalinfo nel prompt dei comandi:
gdalinfo -stats MyRaster.tif
genererà MyRaster.tif.aux.xml
, che viene utilizzato da ArcGIS per ridimensionare correttamente il raster. Il file PAM (Persistent Auxiliare Metadata) contiene le statistiche, in particolare i valori minimo e massimo:
<PAMDataset>
<PAMRasterBand band="1">
<Metadata>
<MDI key="STATISTICS_MINIMUM">0</MDI>
<MDI key="STATISTICS_MAXIMUM">10</MDI>
<MDI key="STATISTICS_MEAN">5.0189833333333</MDI>
<MDI key="STATISTICS_STDDEV">2.9131294111984</MDI>
</Metadata>
</PAMRasterBand>
</PAMDataset>
La mia domanda: esiste un modo integrato per ottenere GDAL per creare un file statistico (diverso dall'uso del gdalinfo -stats
comando)? O devo scrivere il mio?
band.GetStatistics(0,1)
in realtà calcolerà le statistiche e le aggiungerà ai metadati GeoTIFF nel singolo file. Nessun altro file richiesto. Tuttavia, dai test con i prodotti Esri, funziona solo con ArcGIS 10.0 e versioni successive, non ArcGIS 9.3 o versioni precedenti.