Introducción a Javascript para Google Earth Engine (GEE)

18
Título de la Publicación: Texto Normal | 1. Introducción a Javascript para Google Earth Engine (GEE) Ficha Técnica #1

Transcript of Introducción a Javascript para Google Earth Engine (GEE)

Page 1: Introducción a Javascript para Google Earth Engine (GEE)

Título de la Publicación: Texto Normal | 1.

Introducción a Javascript para Google Earth Engine (GEE)

Ficha Técnica #1

Page 2: Introducción a Javascript para Google Earth Engine (GEE)

Publicado por Deutsche Gesellschaft für Internationale Zusammenarbeit (GIZ) GmbH

Domicilios de la empresa

Bonn y Eschborn, Alemania Programa Regional Reducción de Emisiones por Deforestación y Degradación de Bosques en Centroamérica y República Dominicana (REDD/CCAD-GIZ) Agencia de la GIZ Bulevar Orden de Malta, Casa de la Cooperación Alemana Urbanización Santa Elena, Antiguo Cuscatlán, La Libertad El Salvador, C.A. Tel +503 2121-5100 Fax +503 2121-5101 E-Mail [email protected] www.giz.de www.reddccadgiz.org Versión Diciembre 2018 Diseño Oscar Rodríguez, Asesor Técnico en Comunicación Estratégica Programa Regional REDD/CCAD-GIZ [email protected] Créditos fotográficos Todas las fotos: Programa Regional REDD/CCAD-GIZ Autores Fabio Casco Consultor, Especialista en Tecnologías de Información Geográfica Supervisión Abner Jiménez, Especialista Sectorial Programa Regional REDD/CCAD-GIZ [email protected] Componente Monitoreo Forestal La GIZ es responsable del contenido de la presente publicación. El Programa Regional Reducción de Emisiones de la Deforestación y Degradación de Bosques en Centroamérica y República Dominicana (REDD III) es un programa financiado por el Ministerio Federal de Desarrollo Económico y Cooperación de Alemania (BMZ) y ejecutado por la GIZ en coordinación con la Comisión Centroamericana de Ambiente y Desarrollo (CCAD).

Introducción a Javascript para Google Earth Engine (GEE) By Programa Regional Programa Regional Reducción de Emisiones por Deforestación y Degradación de Bosques en Centroamérica y República Dominicana (REDD/CCAD-GIZ) is licensed under a Creative Commons Reconocimiento-NoComercial 4.0 Internacional License Creado a partir de la obra en www.reddccadgiz.org

Page 3: Introducción a Javascript para Google Earth Engine (GEE)

1

CONTENIDO

CAPÍTULO I. PLANTEAMIENTO ............................................................................................................................ 3

1.1 INTRODUCCIÓN .......................................................................................................................................... 3

1.2 OBJETIVO ................................................................................................................................................... 4

1.2.1 OBJETIVO GENERAL ............................................................................................................ 4

1.2.2 OBJETIVOS ESPECÍFICO ...................................................................................................... 4

CAPÍTULO II. MARCO TEÓRICO ........................................................................................................................... 4

2.1 JAVASCRIPT .......................................................................................................................... 4

2.2 JAVA vs JAVASCRIPT ............................................................................................................. 4

CAPÍTULO III. FICHA TÉCNICA .............................................................................................................................. 6

3.1.1 CADENA DE CARACTERES .............................................................................................. 6

3.1.2 VARIABLES ...................................................................................................................... 6

3.1.3 COMENTARIOS ................................................................................................................ 7

3.1.4 OPERADORES.................................................................................................................. 7

3.1.5 CONDICIONALES ............................................................................................................. 8

3.1.6 FUNCIONES...................................................................................................................... 8

3.1.7 ARREGLOS O LISTAS ...................................................................................................... 9

3.1.8 OBJETOS ......................................................................................................................... 9

3.2.1 NÚMEROS O CONSTANTES ........................................................................................... 10

3.2.2 LISTAS ........................................................................................................................... 11

3.2.3 OBTENER VALORES DE LISTAS .................................................................................... 11

3.2.4 DICCIONARIOS ............................................................................................................... 11

3.2.5 FECHAS ......................................................................................................................... 12

3.3 RECURSOS ADICIONALES ................................................................................................. 13

CAPÍTULO IV. PUNTOS CLAVES ......................................................................................................................... 14

BIBLIOGRAFÍA ................................................................................................................................................... 15

Page 4: Introducción a Javascript para Google Earth Engine (GEE)

2 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

RESUMEN

Javascript es un lenguaje de programación usado para las páginas web, compatible con todos los

navegadores y que forma un estándar de desarrollo que ahora también se extiende a dispositivos o

programas de propósito general multiplataforma. Dentro de la estructura del sistema de Google Earth

Engine (GEE), el lenguaje de JavaScript se conforma como una parte fundamental para EL desarrollo

y ejecución de procesos geoespaciales en función de bases de datos globales que operan bajos

servidores potentes en la nube.

Este manual de Javascript está dividido en dos partes. La primera parte se denota las características

fundamentales del lenguaje, como sintaxis, definición de variables, estructuras de control, funciones,

arreglos, etc. Toda la información que se describe en la primera parte servirá para programar

Javascript a nivel general, indistintamente del entorno de ejecución del programa.

En la segunda parte, se denota el uso de Javascript en el ámbito de GEE, el cual explica cómo manejar

los recursos que ofrece la plataforma de Earth Engine para realizar análisis de datos ambientales a

escala planetaria.

Esta ficha técnica introductoria sobre JavaScript y el uso introductorio sobre GEE, serán suficientes

para comenzar a escribir un script en Earth Engine.

Page 5: Introducción a Javascript para Google Earth Engine (GEE)

3 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

CAPÍTULO I. PLANTEAMIENTO

1.1 INTRODUCCIÓN

Hoy en día la gestión y planificación de los estudios ambientales requiere de técnicas que manejen

información geográfica que permitan representar y visualizar los problemas que se suceden a nivel

local, regional y mundial. Este conjunto de técnicas actualmente están referidas a los avances de los

desarrollos teóricos, tecnológicos y metodológicos, proporcionados por los Sistemas de Información

Geográfica (SIG), que han permitido el uso masivo de las tecnologías de la información, relacionadas

con la adquisición y análisis de datos geográficos e información espacial (Bosque, J., y Zamora L,.

2002 citado por Lozano, s. f.).

Ahora con el avance tecnológico y la nueva tendencia con la Computación en la Nube (Cloud

Computing) se ha abierto un campo muy interesante para la provisión e intercambio de geo-

información a través del Internet. Los modelos de Computación en la Nube introducen la ventaja de la

ubicuidad (todo disponible desde cualquier lugar), fomentando la colaboración, intercambio de

información geográfica y comunicación entre usuarios desde cualquier lugar y dispositivo. El estudio

y aplicación de las Infraestructuras de Datos Espaciales se centra en la provisión e intercambio de

geo-información a través de Internet. Las necesidades actuales de procesamiento de datos y las

capacidades de procesamiento se han vuelto un desafío para muchos usuarios debido a la

disponibilidad de recursos y acceso a la información.

Desafortunadamente, aprovechar al máximo estos recursos aún requiere considerable experiencia

técnica y esfuerzo. Uno de los principales obstáculos es la gestión de la tecnología básica de la

información (TI): adquisición y almacenamiento de datos; analizar formatos de archivo oscuros;

administración de bases de datos, asignaciones de máquinas, trabajos y colas de trabajos, CPU, GPU

y redes; y usando cualquiera de las multitudes de marcos de procesamiento de datos geoespaciales.

En referencia a lo anterior, con este estudio se pretende documentar diferentes algoritmos informáticos

relacionados a la detección de pérdidas y ganancias de la cobertura arbórea en el paisaje utilizando

plataformas de “cloud computing” en un formato adecuado para que pueda ser replicado por los

técnicos nacionales responsables de monitorear el cambio de la cobertura forestal y otros usos de la

tierra en los países de la región SICA.

Page 6: Introducción a Javascript para Google Earth Engine (GEE)

4 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

1.2 OBJETIVO

1.2.1 OBJETIVO GENERAL

Documentar cuales son los conceptos y principios básico en el manejo del lenguaje JavaScript para

el uso de la plataforma de Google Earth Engine.

1.2.2 OBJETIVOS ESPECÍFICO

❖ Explicar los fundamentos y funciones básicas del lenguaje JavaScript para comprender mejor

su funcionamiento.

❖ Explicar a través de ejemplos prácticos las diferentes líneas de códigos que conforman una

función, un arreglo, un argumento, condiciones y objetos.

❖ Describir sobre documentación de soporte existente y guías de referencia que sirvan de apoyo

en el proceso de aprendizaje.

CAPÍTULO II. MARCO TEÓRICO

2.1 JAVASCRIPT

JavaScript es un lenguaje de programación dinámico que soporta construcción de objetos basado en

prototipos. Asimismo, es un lenguaje dialecto del estándar ECMAScript. Se define como orientado a

objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. Fue inventado por Brendan

Eich, co-fundador del proyecto Mozilla, Mozilla Foundation y la Corporación Mozilla (MDN Web Docs,

2018).

Java script es un lenguaje de programación que permite a los desarrolladores crear acciones en sus

páginas web. Java script es un lenguaje que puede ser utilizado por profesionales y para quienes se

inician en el desarrollo y diseño de sitios web. No requiere de compilación ya que el lenguaje funciona

del lado del cliente, los navegadores son los encargados de interpretar estos códigos (Joreteg, 2014).

2.2 JAVA vs JAVASCRIPT

Muchos confunden el Java script con el Java, pero ambos lenguajes son diferentes y tienes sus

características singulares. Java script tiene la ventaja de ser incorporado en cualquier página web,

puede ser ejecutado sin la necesidad de instalar otro programa para ser visualizado. Java por su parte

tiene como principal característica ser un lenguaje independiente de la plataforma (Alvarez, 2015).

Page 7: Introducción a Javascript para Google Earth Engine (GEE)

5 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

2.2.1 ARQUITECTURA DEL SISTEMA DE GEE

Earth Engine está construido sobre una colección de tecnologías habilitadoras que están disponibles

dentro del entorno del centro de datos de Google, incluido el sistema de gestión de clúster Borg (Verma

et al., 2015); The Bigtable (Chang et al., 2006) y Spanner (Corbett et al., 2012). Asimismo se

distribuyeron bases de datos como la de Colossus; el sucesor del sistema de archivos de Google

(Ghemawat, Gobioff, & Leung, 2003); y el marco FlumeJava para la ejecución paralela de tuberías

(Chambers et al., 2010). Earth Engine también interactúa con Google Fusion Tables (Gonzalez et al.,

2010), una base de datos basada en web que admite tablas de datos geométricos (puntos, líneas y

polígonos) con atributos.

El Editor de código de Earth Engine y las aplicaciones de terceros usan bibliotecas de clientes para

enviar consultas interactivas o por lotes al sistema a través de una API REST. Las solicitudes sobre la

marcha son manejadas por los servidores front-end que envían consultas complejas a Compute

Masters, que administran la distribución de cómputos entre un conjunto de servidores Compute. El

sistema por lotes funciona de manera similar, pero usa FlumeJava para administrar la distribución.

Respaldar ambos sistemas de computación es una colección de servicios de datos, que incluye una

Base de datos de activos que contiene los metadatos por imageny proporciona capacidades de filtrado

eficientes. El software de gestión de clúster Borg gestiona cada componente del sistema y cada

servicio tiene un equilibrio de carga entre varios trabajadores. La falla de cualquier trabajador individual

solo resulta en que la persona que llama vuelve a emitir la consulta (Gorelick et al., 2017)

Figura 1. Arquitectura del sistema de GEE

Fuente: (Gorelick et al., 2017)

Page 8: Introducción a Javascript para Google Earth Engine (GEE)

6 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

CAPÍTULO III. FICHA TÉCNICA

3.1 INTRODUCCIÓN A JAVASCRIPT

3.1.1 CADENA DE CARACTERES

El uso de variables para almacenar objetos, ayuda a la legibilidad del código. Por ejemplo, una variable

que almacena un objeto de cadena se define con comillas simples ' o dobles " (pero no las mezcle),

prefiriendo las comillas simples.

3.1.2 VARIABLES

Las variables son contenedores en los que puedes almacenar valores. Primero debes declarar la

variable con la palabra clave var, seguida del nombre que le quieras dar. Tras declarar una variable,

puedes asignarle un valor:

Ejemplo: 1

var nombreDeLaVariable = 'Bosque';

Las variables tienen distintos tipos de datos:

Variable Explicación Ejemplo

String

Una cadena de texto. Para indicar que la variable es una cadena, debes escribirlo entre comillas.

var miVariable = 'Bosque';

Number Un número. Los números no tienen comillas var miVariable = 15;

Boolean

Tienen valor verdadero/falso. true/false son palabras especiales en JS, y no necesitan comillas.

var miVariable = true;

Page 9: Introducción a Javascript para Google Earth Engine (GEE)

7 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

3.1.3 COMENTARIOS

En JavaScript, los comentarios inician con // o se escriben entre /* */; son muy útiles cuando

deseamos describir o explicar lo que estamos haciendo en una línea de código, asimismo, sirven para

colocar títulos a cada expresión que se desarrolla.

Ejemplo: 1

// Este es un comentario en una sola línea

2 3 4

/*Esto es un comentario

de varias líneas.

*/

3.1.4 OPERADORES

Un operador es básicamente un símbolo matemático que puede actuar sobre dos valores (o variables)

y producir un resultado. En la tabla de abajo aparecen los operadores más simples, con algunos

ejemplos:

Operador Explicación Símbolo Ejemplo Suma/Concatenación Se usa para sumar dos

números, o juntar dos cadenas en una.

+

6 + 9;

"Bosque " + " Verde!";

Resta, Multiplicación, División

Éstos hacen lo que esperarías que hicieran en las matemáticas básicas.

-, *, /

9 - 3;

8 * 2;

6 / 2;

Asignación Asigna un valor a una variable.

= var miVariable = 'Bosque';

Identidad/Igualdad Comprueba si dos valores son iguales entre sí, y devuelve un valor de true/false (booleano).

===

var miVariable = 3;

miVariable === 4;

Negación/Distinto La negación es en JS el equivalente al operador lógico NOT — cambia true por false y viceversa.

!, !==

var miVariable = 3;

!miVariable === 3;

En el lenguaje JavaScript existen muchos operadores por explorar, pero esto son los más utilizados.

Si desee explorar más Expresiones y Operadores puede consultar las siguientes listas:

https://developers.google.com/earth-engine/image_math

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators

Page 10: Introducción a Javascript para Google Earth Engine (GEE)

8 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

3.1.5 CONDICIONALES

Las Condicionales son estructuras de código que permiten comprobar si una expresión devuelve true

o no, y después ejecuta un código diferente dependiendo del resultado. La forma de condicional más

común es la llamada if ... else.

Ejemplo: 1 2 3 4 5

var TipoBosque = 'BosqueLatifoliado';

if (TipoBosque === 'BosqueLatifoliado')

{ alert ('Es un tipo de bosque con mucha humedad');}

else

{ alert ('Es un bosque con poca humedad...');}

3.1.6 FUNCIONES

Las funciones son otra forma de mejorar la legibilidad y reutilización del código agrupando conjuntos

de operaciones. Las funciones se definen con la palabra clave: funtion. Los nombres de funciones

comienzan con una letra y tienen un par de paréntesis al final. Las funciones a menudo toman

parámetros que le dicen a la función qué hacer. Estos parámetros van dentro de los paréntesis (). El

conjunto de sentencias que componen la función va entre paréntesis. La palabra return es clave e

indica cuál es el resultado de la función.

Ejemplo: 1 2 3 4 5 6

var myFunction = function (parameter1, parameter2, parameter3)

{

statement;

statement;

statement;

return statement;

};

Explicación:

❖ funtion es la palabra clave que comienza a declarar una función.

❖ myFunction es el nombre de la función, que es personalizable, al igual que los nombres de

variables.

❖ (parameter1, 2, 3) son parámetros, nombres de variables para las entradas que una función

aceptará.

❖ return es la palabra clave que sale de la función y comparte un valor opcional fuera.

Page 11: Introducción a Javascript para Google Earth Engine (GEE)

9 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

3.1.7 ARREGLOS O LISTAS

Los Arreglos o Listas son valores tipo contenedor que pueden contener otros valores. Los valores

dentro de una lista se denominan elementos. Normalmente los arreglos inician con: [ ] y encierran los

valores o elementos entre ''.

Ejemplo: 1

var nombres_bandas = ['B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7' ];

3.1.8 OBJETOS

Los objetos son valores que pueden contener otros valores. Usan claves para nombrar valores, que

son como variables. Los objetos en JavaScript son diccionarios de key: value. Haga un objeto (o

diccionario) usando llaves { }.

Ejemplo: 1 2 3 4 5 6

var options = {

lineWidth: 1,

pointSize: 2,

hAxis: {title: 'Tipos de Bosque'},

vAxis: {title: 'Altitud m.s.n.m'},

title: 'Análisis de Bosque por Altitud',

};

Page 12: Introducción a Javascript para Google Earth Engine (GEE)

10 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

3.2 INTRODUCCIÓN A JAVASCRIPT PARA GEE

3.2.1 NÚMEROS O CONSTANTES

Se utiliza ee.Number() para crear objetos numéricos en el servidor. Por ejemplo, use el método

Math.E1 en JavaScript para crear un valor constante en el servidor:

Ejemplo: 1 2 3 4 5 6

// Como definir un número o constante ya existente en el servidor

var serverNumber = ee.Number(Math.E);

print('e=', serverNumber);

Expresión de Logaritmo

Tener en cuenta que una vez que haya creado un objeto en GEE, se debe usar los métodos del Motor

de la Tierra para procesarlo. Para el siguiente ejemplo, no se puedes usar Math.log() para procesar

un objeto de Earth Engine. Se tienes que usar el método equivalente definido para ee.Number:

Ejemplo: 1 2 3 4 5 6

// Use una función incorporada para realizar una operación

var logE = serverNumber.log();

print('log(e)=', logE);

1 (Eves, 1969)

Page 13: Introducción a Javascript para Google Earth Engine (GEE)

11 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

3.2.2 LISTAS

Para convertir una lista en JavaScript directamente del servidor, se utiliza ee.List, que sirve como

contenedor tanto para números como para cadenas. Earth Engine también proporciona métodos de

conveniencia del lado del servidor para hacer secuencias de números. Por ejemplo:

Ejemplo: 1

2

3

4

5

6

7

8

// Hacer una secuencia dificil

var eeList = ee.List([1, 2, 3, 4, 5]);

// Hacer una secuencia más facil

var sequence = ee.List.sequence(1, 5);

print('Sequence:', sequence);

3.2.3 OBTENER VALORES DE LISTAS

Dado que los ee.List solo existen en el servidor, se puede utilizar las funciones proporcionadas por

Earth Engine para interactuar con ellos. Por ejemplo, basándose en la operación anterior, para sacar

algo de la lista, se utiliza el método de get() de la ee.List. Este principio es aplicable también para

extraer valores de una tabla de atributos del algún archivo vectorial como también de un metadato de

algún archivo ráster.

Ejemplo:

1

2

3

4

// Cómo extraer valores de una lista

var value = sequence.get(2);

print('Value at index 2:', value);

3.2.4 DICCIONARIOS

En GEE Se pueden construir Diccionarios a partir de un objeto, como las cadenas, números y listas.

En el momento de la construcción, se puede utilizar la funcionalidad de JavaScript para iniciar el objeto

del GEE. En este caso, ee.Dictionary se construye directamente desde un objeto literal de JavaScript:

Page 14: Introducción a Javascript para Google Earth Engine (GEE)

12 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

Ejemplo:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

// Hacer Diccionario

var dictionary = ee.Dictionary({

e: Math.E,

pi: Math.PI,

phi: (1 + Math.sqrt(5)) / 2

});

// Imprimir valores de Diccionario

print('Euler:', dictionary.get('e'));

print('Pi:', dictionary.get('pi'));

print('Golden ratio:', dictionary.get('phi'));

// Imprimir todas los valores del Diccionario de una sola vez

print('Keys:', dictionary.keys());

3.2.5 FECHAS

Los objetos de fecha son la forma en que GEE representa el tiempo. Como en los ejemplos anteriores,

es importante distinguir entre un Date de JavaScript y un ee.Date de GEE . Construya un a ee.Date a

partir de una cadena de un JavaScript Date, o usando métodos estáticos provistos por las clases de

ee.Date.

Ejemplo:

1

2

3

4

// Definir Fechas en Earth Engine.

var Fecha = ee.Date('2015-12-31');

print('Date:', Fecha);

Page 15: Introducción a Javascript para Google Earth Engine (GEE)

13 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

Los métodos de Argumentos de Earth Engine se pueden expresar en orden, por ejemplo, para crear

un ee.Date por año, mes y día, SE puede utilizar el método de fromYMD() , por ejmplo:

Ejemplo:

1

2

var Fecha = ee.Date.fromYMD(2017, 1, 13);

print('Fecha:', Fecha);

alternativamente, puede pasar los parámetros por nombre, en cualquier orden. Si bien podría ser más

código, puede mejorar la legibilidad y la reutilización. Para pasar parámetros por nombre, pase un

objeto JavaScript en el que las claves del objeto sean los nombres de los parámetros del método y los

valores sean los argumentos del método. Por ejemplo:

Ejemplo:

1

2

3

4

5

6

var LaFecha = ee.Date.fromYMD({

day: 13,

month: 1,

year: 2017

});

print(La Fecha:', LaFecha);

3.3 RECURSOS ADICIONALES

Este tutorial cubre sólo JavaScript para comenzar a escribir scripts de Earth Engine. Para obtener más

tutoriales completos de JavaScript, consulte estos recursos para desarrolladores de Mozilla.

https://developer.mozilla.org/en-US/docs/Web/JavaScript

Para una introducción a la programación, con ejemplos en JavaScript, vea JavaScript elocuente.

http://eloquentjavascript.net/

Para obtener sugerencias sobre el estilo de codificación de JavaScript, consulte la Guía de estilo de

Google JavaScript.

http://google.github.io/styleguide/javascriptguide.xml

En este tutorial, escribirás JavaScript en el Editor de código de Earth Engine . Antes de comenzar, use

la guía del editor de código para familiarizarse con el entorno del editor de código.

https://developers.google.com/earth-engine/playground

Page 16: Introducción a Javascript para Google Earth Engine (GEE)

14 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

CAPÍTULO IV. PUNTOS CLAVES

Cada vez que se desee declarar una variable se debe iniciar con la palabra var y para finalizar la

lógica de una línea de código se debe finalizar con ;

Normalmente los ( ) hacen referencia a una función, sin embargo, también sirven para conformar un

conjunto lógicos. Los [ ] sirven para construir arreglos o listas. Los { } normalmente sirven para

formas objetos; entiéndase como un objetico a los parámetros o opciones que se le pueden dar a un

gráfico, algoritmo o alguna función en específico.

Es una buena práctica poner muchos comentarios en tu código, para describir lo que estás tratando

de hacer. También es bueno eliminar el código comentado que ya no hace nada. Ambas prácticas

mejorarán la legibilidad del código.

Los objetos y algoritmos implícitos en GEE a diferencia del lenguaje común de JavaScript se

caracterizan principalmente por usar al inicio .ee

Todos los elementos que se remarcan en color violeta hacen referencia a una función implícitas de

GEE. Los elementos remarcados en color verde hacen referencia a comentarios. Las líneas de

códigos remarcadas en color rojo hacen referencia a conjuntos de valores descritos dentro de un

metadato. Asimismo, sirven para asignar nombres, colores y configuraciones o parámetros de algunas

funciones o algoritmos. Los elementos que se muestran color azul, hacen referencia a valores

numéricos.

Page 17: Introducción a Javascript para Google Earth Engine (GEE)

15 Ficha Técnica: Introducción a JavaScript para GEE

Documentación de algoritmos informáticos para la detección

de pérdidas y ganancias del componente arbóreo en los

países de la región SICA.

Programa Reducción de Emisiones

por la Deforestación y

Degradación de Bosques en

Centroamérica y República

Dominicana (REDD III)

BIBLIOGRAFÍA

Alvarez, M. A. (2015). Diferencias entre Java y Javascript. Recuperado 13 de octubre de 2018, de

http://www.desarrolloweb.com/articulos/492.php

Chambers, C., Raniwala, A., Perry, F., Adams, S., Henry, R. R., Bradshaw, R., & Weizenbaum, N. (2010). FlumeJava:

Easy, Efficient Data-parallel Pipelines. En Proceedings of the 31st ACM SIGPLAN Conference on Programming

Language Design and Implementation (pp. 363–375). New York, NY, USA: ACM.

https://doi.org/10.1145/1806596.1806638

Chang, F., Dean, J., Ghemawat, S., Hsieh, W. C., Wallach, D. A., Burrows, M., … Gruber, R. E. (2006). Bigtable: A

Distributed Storage System for Structured Data. Recuperado 14 de septiembre de 2018, de

https://ai.google/research/pubs/pub27898

Corbett, J. C., Dean, J., Epstein, M., Fikes, A., Frost, C., Furman, J. J., … Woodford, D. (2012). Spanner: Google’s

Globally-Distributed Database. En 10th USENIX Symposium on Operating Systems Design and Implementation

(OSDI 12) (pp. 261–264). Hollywood, CA: USENIX Association. Recuperado de

https://www.usenix.org/conference/osdi12/technical-sessions/presentation/corbett

Eves, H. W. (1969). An introduction to the history of mathematics. Holt, Rinehart and Winston.

Ghemawat, S., Gobioff, H., & Leung, S.-T. (2003). The Google File System. En Proceedings of the Nineteenth ACM

Symposium on Operating Systems Principles (pp. 29–43). New York, NY, USA: ACM.

https://doi.org/10.1145/945445.945450

Gonzalez, H., Halevy, A. Y., Jensen, C. S., Langen, A., Madhavan, J., Shapley, R., … Goldberg-Kidon, J. (2010). Google

Fusion Tables: Web-centered Data Management and Collaboration. En Proceedings of the 2010 ACM SIGMOD

International Conference on Management of Data (pp. 1061–1066). New York, NY, USA: ACM.

https://doi.org/10.1145/1807167.1807286

Gorelick, N., Hancher, M., Dixon, M., Ilyushchenko, S., Thau, D., & Moore, R. (2017). Google Earth Engine: Planetary-

scale geospatial analysis for everyone. Remote Sensing of Environment, 202, 18-27.

https://doi.org/10.1016/j.rse.2017.06.031

Joreteg, H. (2014). Introduction | Human JavaScript. Recuperado 13 de octubre de 2018, de

http://read.humanjavascript.com/ch01-introduction.html

Lozano, P. N. E. O. (s. f.). Los sistemas de información geográfica en los estudios ambientales. Por Nidia Ortiz » ÁVACO.

Recuperado 21 de septiembre de 2018, de https://avaconews.unibague.edu.co/los-sistemas-de-informacion-

geografica-en-los-estudios-ambientales/

Verma, A., Pedrosa, L., Korupolu, M., Oppenheimer, D., Tune, E., & Wilkes, J. (2015). Large-scale Cluster Management

at Google with Borg. En Proceedings of the Tenth European Conference on Computer Systems (pp. 18:1–

18:17). New York, NY, USA: ACM. https://doi.org/10.1145/2741948.2741964

Page 18: Introducción a Javascript para Google Earth Engine (GEE)