4 votos

El cambio de valor de píxel en capa de trama en QGIS usando Python?

Me gustaría cambiar el valor de un píxel en una de QGIS capa de trama. Pero el siguiente código en Python no puede hacerlo.

r_layer = iface.activeLayer()
provider = r_layer.dataProvider()
from osgeo import gdal 
raster = gdal.Open(str(provider.dataSourceUri()))
np_array = raster.ReadAsArray()

np_array[1,2] = 5 

raster.GetRasterBand(1).WriteArray(np_array, 0, 0)
raster.GetRasterBand(1).FlushCache()

5voto

MasterFX Puntos 11

Finalmente encontré la solución para mi problema. La matriz puede ser escrita después he añadido la opción gdal.GA_Update a Open(...)

r_layer = iface.activeLayer()
provider = r_layer.dataProvider()
from osgeo import gdal 
raster = gdal.Open(str(provider.dataSourceUri()), gdal.GA_Update)
band = raster.GetRasterBand(1)

np_array = band.ReadAsArray()
np_array[0,0] =255
band.WriteArray(np_array)

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