introducción a javascript para google earth engine (gee)
TRANSCRIPT
Título de la Publicación: Texto Normal | 1.
Introducción a Javascript para Google Earth Engine (GEE)
Ficha Técnica #1
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
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
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.
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.
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).
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)
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;
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
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.
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',
};
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)
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:
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);
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
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.
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