7 votos

Cambiar el valor del píxel NODATA en el raster a un valor arbitrario

Quiero cambiar el valor en todos los píxeles que actualmente son 0 a 800 en QGIS 2.6.1. 0 aparece como el valor sin datos en Propiedades > Transparencia. Allí he desmarcado la casilla Valor sin datos. Luego he probado lo siguiente.

1) Establezca Configuración > Opción > Fuentes de datos > Representación para valores nulos = 800. Guardar como... para hacer una nueva capa rasterizada .tif, CON y SIN especificar un rango para Valores sin datos en el diálogo Guardar como.... Pensé que tal vez un rango de -1 a 1 manejaría mejor los ceros de representación real. De cualquier manera, el raster devuelto es igual que el original, sin cambios en los píxeles sin datos (valor=0).

2) Caja de herramientas de procesamiento > Geoalgoritmos > Raster > Herramientas generales > Calculadora de Raster, con expresión: ifelse(lt(a,1), (800) , a). Todavía no hay dados, el valor sin datos es ahora -99999 .

3) Menú Raster > Calculadora Raster, con expresión: ("my layer here@1" >= 0) * "my layer here@1" . Curiosamente, ahora el valor sin datos es -3.40282...E+38 .

4) Caja de herramientas de procesamiento > Geoalgoritmos > Raster > Edición > Reclasificar valores de cuadrícula. Esta herramienta no funcionó en absoluto. Probé las opciones [0] Individual, [1] Rango y [2] Tabla simple, con y sin guardar en un archivo. El registro dio un montón de errores sobre la imposibilidad de cargar los módulos. La ruta de acceso a las .dlls es correcta.

5) Caja de herramientas de procesamiento > Geoalgoritmos > Raster > Edición > Reclasificar (Simple), con la opción de rango -1 a 1. Devuelve un raster con el valor sin datos = -99999.

Para que conste, todas las pruebas se hicieron con la representación Null = 800, pero también probé varios de los métodos con la representación por defecto de NULL. Los resultados fueron los mismos. También he exportado el raster como formato XYZ y lo he mirado en CloudCompare; los valores nulos se están expresando como el valor informado en Propiedades > Transparencia.

6voto

Mue Puntos 2469

Puede utilizar el r.null.to a través de GRASS para transformar todas las celdas de valor NULL en un valor definido por el usuario, que en su caso es 800:

r.null.to

Nota: Tendrá que crear un Mapset de GRASS antes de poder utilizar r.null.to ya que no está disponible en el Caja de herramientas de procesamiento . Una vez creado un mapset, utilice la opción GRASS para añadir una capa rasterizada, seleccione Abrir las herramientas de GRASS y buscar en la lista de módulos:

GRASS Tools

Module list

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