¿Cómo configurar todos los píxeles con valor = 0 en “nodata” en el ráster DEM?

22

Tengo un ráster DEM con valores de píxeles entre aproximadamente 3000 y -0.0003. Necesito configurar todos los píxeles con un valor de 0 y smaler (< = 0) a "nodata" (para cálculos de ráster posteriores y para reducir el tamaño del archivo).

Me parece que esta es una tarea para la calculadora ráster (establecer el valor de los píxeles < = 0 a "nodata") o una reclasificación (establecer el valor de los píxeles < = 0 a "nodata" y mantener el resto valores) pero no sé cómo.

    
pregunta MAP 30.12.2013 - 21:18

7 respuestas

27

No encontré una solución de una sola herramienta, pero primero puedes usar la calculadora raster para convertir todos los valores por debajo de un cierto umbral a cero y luego usar gdal_translate con -a_nodata 0 para convertir el 0 en nodata.

    
respondido por el underdark 31.12.2013 - 14:53
14

Aquí están las expresiones de GRASS mapcalc para establecer un rango en NULO:

r.mapcalc "dem_corrected = if(dem<=0, null(), dem)"
    
respondido por el Micha 01.01.2014 - 23:46
9

Muchas gracias a Dominik. Mi primera respuesta no es correcta para QGIS 2.8.3 (la expresión "[email protected]" > 0 devuelve 0 o 1 para la entrada no nodata , para la entrada nodata devuelve nodata ).

La siguiente expresión de QGIS Raster Calculator debería ser suficiente (capa ráster llamada "myraster"), desde la Calculadora ráster establece todos los píxeles que no satisfacen la condición en nodata :

("[email protected]" > 0) * "[email protected]"

La siguiente solución se basa en enlace , y funciona para QGIS 2.8 .3 con SAGA 2.1.2.

En el procesamiento de QGIS, use la Calculadora ráster de SAGA e ingrese lo siguiente en Fórmula :

ifelse(g1=0, 0/0, ifelse(g1<0, 0/0, g1))

o

ifelse(a=0, 0/0, ifelse(a<0, 0/0, a))

Esto hará que todos los valores menores o iguales a 0 se conviertan en nodata (0/0).

    
respondido por el Håvard Tveite 09.01.2015 - 10:06
5

Tuve un problema similar, pero tenía valores AMBOS que quería convertir a valores sin datos Y existentes en el ráster.

Vineaestapáginaenbuscadeayuda,perocreoquehayunaadvertenciaalosenfoquesaquí.Losmé[email protected]@Michasoloparecenfuncionardondenohayvaloressindatosexistentesenelráster.

Paraevitaresto,debeconvertirtantolosvaloressindatoscomolosvaloresquedeseaconvertirendatossindatos,aunnúmeroconsistente.Entoncesestá[email protected]

Parahaceresto,uselaCajadeherramientasdeprocesamiento>Reclasifiquelosvaloresdecuadrícula(SAGA)paraconvertirlosvaloresylosvaloressindatosenunnúmerocomún(porejemplo,-999),almismotiempo.Específicamente,useelmétodo"rango" y especifique el rango. Luego, al reemplazar los valores sin datos, elija este mismo valor (por ejemplo, -999). Desmarque reemplazar otros valores. Esto funciona para un solo cambio de valor o cambios más complejos también.

Luego, siga el método de @underdark y guarde el ráster usando Raster > Conversión > Traducir, y marque sin datos, ingresando el valor que utilizó (por ejemplo, -999).

    
respondido por el Sarracenia 16.10.2015 - 14:49
3

También puede guardar la capa (clic derecho, guardar como ...) y especificar un rango de nodata. Esto mantendrá las nodatas originales y creará nuevas nodatas para el rango de valores especificado.

    
respondido por el Joost Beckers 03.09.2018 - 18:41
3

Se puede hacer en un solo paso en QGIS en la calculadora raster.

En QGIS3, para una capa raster llamada "x", use la siguiente expresión:

(("x">0)*"x") / (("x">0)*1 + ("x"<=0)*0)

Este truco mapea los valores ráster x > 0 en la relación x / 1 = x, y los valores ráster x < = 0 en la relación 0/0 = NaN. Este NaN se representa como FLOAT_MIN (también conocido como -3.402832 ... e + 38) si el ráster es de 4 bytes flotante.

Extrañamente, esta pregunta parece haber existido por un tiempo, y la mayoría de los encuestados (en la medida en que mi rápida búsqueda de Google muestra hoy) muestra que no se puede hacer en un solo paso. Ciertamente no debería ser necesario ser hackeado de esta manera. La documentación de QGIS también podría ser mejor.

    
respondido por el Colin Stark 05.09.2018 - 08:22
-1

Haga clic con el botón derecho en el ráster, vaya a las propiedades del ráster, seleccione la tercera opción "transparencia", en la pestaña sin valor de datos, agregue el valor adicional 0 y haga clic en aplicar. Esta es la opción similar "mostrar el valor de fondo" en arcgis. / p>     

respondido por el Bharadwaj A K 17.12.2015 - 13:06

Lea otras preguntas en las etiquetas