1 votos

Motor de Google Earth - Establecer los valores de la banda nula como cero

Tengo una función que asigna una puntuación en función del valor de una banda, que luego asigno a una colección de imágenes.

Sin embargo, en algunos casos, tengo valores nulos, donde no se da ningún valor. En estos casos me gustaría convertir los valores nulos a 0. He intentado establecer los valores nulos como cero en el código, pero me da un error de imagen. Mi nuevo código, con la línea extra está abajo.

function currentHS_function(image){
  var currentHS = image.expression(
 "(b('current') < 0.13) ? 1.0" +
 ": (b('current') > 0.15) ? 0.0" +
 ": (b('current') = null) ? 0.0" + // new line - set null values as 0
 ": -50.0*current + 15.0/2.0 ",
 {"current" : image});
   return currentHS;
 }

// apply heath score function to image collection
var currentHS_collection = currentSpeed.map(currentHS_function);

1voto

hibbelig Puntos 176

Una cosa que puedes hacer es desenmascarar la imagen usando un valor proxy antes de la expresión y luego coger ese valor proxy:

function currentHS_function(image){
  var proxy = -999
  image = image.unmask(proxy)
  var currentHS = image.expression(
 "(b('current') == proxy) ? 0.0" +
 ": (b('current') < 0.13) ? 1.0" +
 ": (b('current') > 0.15) ? 0.0" +
 ": -50.0*current + 15.0/2.0 ",
 {"current" : image, "proxy": proxy});
   return currentHS;
 }

En este caso -999 es el valor proxy, pero puede utilizar uno propio

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