2 votos

Del lado del cliente al lado del servidor en el motor de Google Earth

Tengo problemas para convertir un objeto del lado del cliente en un objeto del lado del servidor. A continuación he adaptado un extracto de mi script para ilustrar mi problema. Quiero hacer que el final de mi selección de filtros dependa de los valores de DOYend y DOYstart. La impresión de yearAdd y yearStr devuelve lo que espero, pero filterSelectEnd devuelve algo que no entiendo.

var DOYend = 10
var DOYstart = 13
var yearSelected = ee.String('2014')

    if(DOYend <= DOYstart) {
      var yearNum = ee.Number.parse(yearSelected)
      var yearAdd = yearNum.add(1)
      var yearStr = ee.String((yearAdd))
      var filterSelectEnd = ee.Algorithms.String(yearAdd + '-12-31')
    }

print('yearAdd',yearAdd)
print('yearStr',yearStr)
print('conditionResult',filterSelectEnd)

La salida:

conditionResult
ee.Number({
  "type": "Invocation",
  "arguments": {
    "left": {
      "type": "Invocation",
      "arguments": {
        "input": "2015"
      },
      "functionName": "Number.parse"
    },
    "right": 1
  },
  "functionName": "Number.add"
})-12-31

1voto

Jeyanth Kumar Puntos 142

Si esas entradas provienen de, digamos, un elemento de la interfaz de usuario, entonces sugiero encarecidamente mantener todo del lado del cliente:

var DOYend = 10
var DOYstart = 13
var yearSelected = '2014'

if(DOYend <= DOYstart) {
  var yearNum = Number(yearSelected)
  var yearAdd = yearNum + 1
  var yearStr = yearAdd + '-12-31'
}

print('yearAdd', yearAdd)
print('yearStr', yearStr)

(Como apunte, no entiendo muy bien la lógica aquí. ¿No se debería avanzar el año y luego el DOY y no ponerlo en el 12-31? Si es así, eso complicará las cosas, porque ahora vas a tener que jugar con un Fecha o un ee.Date Pero, de nuevo, mantén todo en el lado del cliente si es posible).

0voto

Meta Pixel Puntos 1

Vea los comentarios.

    if(DOYend <= DOYstart) { 
var yearNum = ee.Number.parse(yearSelected) 
var yearAdd = yearNum.add(1) 
var yearStr = ee.String(yearAdd) 
filterSelectEnd = ee.String(yearStr).cat('-12-31') }

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