11 votos

GeoTIFF hecho en don de GDAL ' t tienen rango mín/máx carga en arco/QGIS

Estoy creando algunos de punto flotante de rásteres en GDAL con el GeoTIFF conductor. Cuando me carga las imágenes resultantes en QGIS o Arco de la simbología por defecto pone el min -3.40282e38 y max a 3.40282e38, por lo que la trama se ve exactamente gris. Hay una manera que puedo escribir el rango real en el GeoTIFF directamente, por lo que cuando su carga en un programa SIG se escala automáticamente el histograma bien? He intentado crear un valor predeterminado histograma como este:

rasterMin, rasterMax = raster.GetRasterBand(1).ComputeRasterMinMax()
raster.GetRasterBand(1).SetDefaultHistogram(rasterMin, rasterMax, 255)

Pero me da un error de que se parece a una unión problema:

  File "/usr/lib/python2.6/dist-packages/osgeo/gdal.py", line 846, in SetDefaultHistogram
    return _gdal.Band_SetDefaultHistogram(self, *args)
TypeError: not a sequence

Cualquier sugerencias sobre lo que podría hacer, o si he cometido un error?

10voto

Symmetric Puntos 158

Si eres de la generación de los datos, entonces usted puede mantener un seguimiento de min y max en la marcha. Si usted no tiene el control directo de la fuente de datos, por ejemplo si se está realizando la composición de los datos existentes, a continuación, utilizando ComputeRasterMinMax(0) está bien.

De cualquier manera, después de que tienes tus valores min y max, usted debe llamar a SetStatistics() sobre la banda, y asegúrese de establecer el conjunto de datos a None cuando hayas terminado para asegurarse de que todo se escriben en el disco.

También, algo en el fondo de mi mente me está diciendo usando dataset.GetRasterBand(1).<some band function> no funciona correctamente debido a la forma en GDAL Python maneja la banda de referencias. No recuerdo los detalles, pero había algo en el GDALDev lista de correo de hace algún tiempo. Así que lo mejor es crear una banda variable de forma explícita: band = dataset.GetRasterBand(1), luego llame a band.SetStatistics(min, max, mean, stddev).

1voto

Angelo Puntos 473

No conozco una manera de hacerlo usando GDAL, pero puede usar python para llamar a la herramienta 'calcular estadísticas' en arco.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X