Más

Agregar color a la banda ráster de salida de GTiff

Agregar color a la banda ráster de salida de GTiff


Estoy usando GDAL en Python para crear un ráster tiff de datos que es originalmente de un shapefile. Tengo un canal de datos auxiliar, que me gustaría usar para colorear los píxeles del tif. Me he asegurado de que mis datos (yield_grid) tengan el mismo tamaño y forma que mi ráster tif, pero hasta ahora no puedo obtener nada más que un cuadrado completamente negro de mi ráster.

¿Alguien tiene alguna sugerencia de lo que podría estar haciendo mal al asignar mis datos a mi banda de ráster?

# Defina pixel_size y el valor NoData del nuevo ráster pixel_size = 0.00005 NoData_value = -99 # Nombre de archivo del archivo OGR de entrada vector_fn = inShapeFile # Nombre de archivo del ráster Tiff que se creará raster_fn = 'test.tif' # Abra la fuente de datos y lea la extensión source_ds = ogr.Open (vector_fn) source_layer = source_ds.GetLayer () source_srs = source_layer.GetSpatialRef () x_min, x_max, y_min, y_max = source_layer.GetExtent () # Crea la fuente de datos de destino x_res = int ((x_max - x_min) / pixel_size) y_res = int ((y_max - y_min) / pixel_size) # Obtener controlador y crear destino de salida target_ds = gdal.GetDriverByName ('GTiff'). Create (raster_fn, x_res, y_res, 1, gdal.GDT_Byte) # Establecer Geo Transform target_ds.SetGeoTransform ((x_min, pixel_size, 0, y_max, 0, -pixel_size)) # Escribir matriz en banda ráster, normalizar por max y escalar a 1024 target_ds.GetRasterBand (1) .WriteArray (np.transpose ( yield_grid / np.max (yield_grid)) * 1024) # Establecer referencia espacial y proyección outRasterSRS = osr.SpatialReference () outRasterSRS.ImportFromEPSG (4326) target_ds.SetProjection (outRasterSRS.ExportToWkt ()) #Flush Cache para la banda ráster target_ds.GetRasterBand (1) .FlushCache () # Imprimiendo la banda ráster para asegurarme de que no estoy loco imprime target_ds. GetRasterBand (1) .ReadAsArray () [[0 0 0…, 39 2 0] [0 0 0…, 80 37 0] [0 0 0…, 85 32 0]…, [0 58119…, 0 0 0 ] [0 0 82…, 0 0 0] [0 0 0…, 0 0 0]]

El resultado al final del código muestra que, de hecho, estoy poniendo valores en la banda de ráster, pero no estoy seguro de por qué el tiff no muestra ningún color.


No cerré correctamente el destino de salida, entonces este código funciona ... Vea la respuesta aquí

https://gis.stackexchange.com/a/93244/59644


Ver el vídeo: ArcGis How to remove Nodata from Landsat using Raster Calculator