Regularmente creo mis propios rásteres GeoTIFF con GDAL en Python, por ejemplo:
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
sin embargo, cuando el resultado se ve con ArcCatalog / ArcGIS, se ve negro o gris, ya que no tiene estadísticas. Esto se resuelve haciendo clic derecho en el ráster y eligiendo "Calcular estadísticas ..." en ArcCatalog (hay varias otras formas de hacerlo), o usando gdalinfo en un símbolo del sistema:
gdalinfo -stats MyRaster.tif
generará MyRaster.tif.aux.xml
, que ArcGIS utiliza para escalar correctamente el ráster. El archivo PAM (metadatos auxiliares persistentes) contiene las estadísticas, especialmente los valores mínimos y máximos:
<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>
Mi pregunta: ¿hay una forma integrada de hacer que GDAL cree un archivo de estadísticas (que no sea usar el gdalinfo -stats
comando)? ¿O necesito escribir el mío?
band.GetStatistics(0,1)
realmente calculará las estadísticas y las agregará a los metadatos de GeoTIFF en el archivo único. No se requieren otros archivos. Sin embargo, a partir de las pruebas con productos Esri, solo funciona con ArcGIS 10.0 y versiones posteriores, no con ArcGIS 9.3 o anteriores.