Estoy creando un script JS en GoogleEarthEngine. Estoy automatizando el código durante muchos años para obtener un índice de vegetación (Índice de vegetación mejorado (EVI)) para cada año. El código en el que estoy trabajando es mucho más complejo, por eso acabo de agregar uno aquí para esta pregunta ( código aquí ).
Estoy tratando de obtener el nombre de la capa en la clave del objeto JS. Así sería:
buffer_size: 500 class: 0 EVI_2021_mean: MEAN_VALUE_FOR_THIS_YEARy tener al final, otras columnas siguiendo la misma idea, solo cambiando el valor del año en la Clave del objeto y su valor medio por el Valor del objeto
Es importante que el formato en sí sea así para poder exportarlo a KML después y continuar con el análisis.
En cambio, lo que obtengo es la cadena 'key' como Key y la cadena EVI_2021_mean como Value .
features: List (4 elements) 0: Feature 0 (Polygon, 3 properties) type: Feature id: 1 geometry: Polygon, 24 vertices properties: Object (3 properties) buffer_size: 500 class: 0 key: EVI_2021_meanObs: estoy configurando el valor medio dentro de la función GetMean:
var GetMean = function (fc, img, nome_img) { print(nome_img); var dict = []; var ZS_mean = img.reduceRegion({ reducer: ee.Reducer.mean() ,geometry: POI ,scale: 30 }); dict.push({ key: nome_img+'_'+'mean', value: ZS_mean.constant }); print(ZS_mean); var SetMean = function(f) { return f.set(dict[0]); }; return POI.map(SetMean); };Puede establecer claves dinámicas para objetos de JavaScript usando la siguiente notación:
const myKey = 'someKey' const myObj = { [myKey]: 'myValue' } console.log(myObj) // => { someKey: 'myValue' }Además, puede establecer una propiedad dinámica en un objeto existente de esta manera:
const myKey = 'someKey' const myObj = {} myObj[myKey] = 'myValue' console.log(myObj) // => { someKey: 'myValue' } Sugeriría modificar su código para hacer que dict sea un objeto (como dict = {} ) y donde dict.push({ ... }) para hacer como dict[nome_img+'_mean'] = ZS_mean.constant .