El editor de código de Earth Engine (EE) en code.earthengine.google.com es un IDE basado en la Web para la API de JavaScript de Earth Engine. Las funciones del editor de código están diseñadas para que el desarrollo de flujos de trabajo geoespaciales complejos sea más rápido y fácil. El editor de código tiene los siguientes elementos (que se ilustran en la Figura 1):
- Editor de código JavaScript
- Visualización del mapa para visualizar conjuntos de datos geoespaciales
- Documentación de referencia de la API (pestaña Documentos)
- Administrador de secuencias de comandos basado en Git (pestaña Secuencias de comandos)
- Resultado de la consola (pestaña Consola)
- Administrador de tareas (pestaña Tareas) para gestionar consultas de larga duración
- Consulta de mapa interactivo (pestaña Inspector)
- Búsqueda en el archivo de datos o en las secuencias de comandos guardadas
- Herramientas de dibujo de geometría
Figura 1: Diagrama de componentes del editor de código de Earth Engine en code.earthengine.google.com.
El editor de código tiene una variedad de funciones para ayudarte a aprovechar la API de Earth Engine. Consulta ejemplos de secuencias de comandos o guarda las tuyas en la pestaña Secuencias de comandos. Consulta los objetos colocados en el mapa con la pestaña Inspector. Muestra y crea gráficos con resultados numéricos con la API de Google Visualization. Comparte una URL única de tu secuencia de comandos con colaboradores y amigos con el botón Obtener vínculo. Las secuencias de comandos que desarrollas en el editor de código se envían a Google para su procesamiento, y las tarjetas de mapa o los mensajes generados se vuelven a enviar para que se muestren en la pestaña Mapa o Consola. Para ejecutar Code Editor, solo necesitas un navegador web (usa Google Chrome para obtener los mejores resultados) y una conexión a Internet. En las siguientes secciones, se describen los elementos del editor de código de Earth Engine con más detalle.
Editor de JavaScript
El editor de JavaScript hará lo siguiente:
- Aplica formato y destaca el código mientras escribes
- Subraya el código con problemas, ofrece correcciones y otras sugerencias para la sintaxis correcta.
- Autocompletar pares de comillas, corchetes y paréntesis
- Ofrece sugerencias de finalización de código para las funciones de Earth Engine
Sobre el editor de código, hay botones para ejecutar la secuencia de comandos, guardarla, restablecer el mapa de salida y la consola, y obtener un vínculo a la secuencia de comandos. Cuando se presiona el botón Obtener vínculo, aparecerá un vínculo único en la barra de direcciones del navegador. Este vínculo representa el código en el editor en el momento en que se presionó el botón.
Referencia de la API (pestaña Documentos)
En el lado izquierdo del editor de código, se encuentra la pestaña Docs, que contiene la documentación completa de la API de JavaScript. Puedes buscar y explorar la documentación desde la pestaña Documentos.
Administrador de secuencias de comandos (pestaña Secuencias de comandos)
La pestaña Secuencias de comandos se encuentra junto a la documentación de la API en el panel izquierdo del editor de código. El Administrador de secuencias de comandos almacena secuencias de comandos privadas, compartidas y de ejemplo en repositorios de Git alojados por Google. Los repositorios se organizan por nivel de acceso, y tus secuencias de comandos privadas se almacenan en un repositorio que te pertenece en la carpeta Propietario: users/username/default
. Solo tú tienes acceso a los repositorios de la carpeta Propietario, a menos que los compartas con otra persona. Los repositorios de la carpeta Writer son aquellos para los que el propietario te otorgó acceso de escritura. Puedes agregar secuencias de comandos nuevas, modificar las existentes o cambiar el acceso a los repositorios de la carpeta Writer (no puedes quitar a su propietario). Los repositorios de la carpeta Lector son aquellos para los que el propietario te otorgó acceso de lectura. La carpeta Examples es un repositorio especial que administra Google y que contiene muestras de código. La carpeta Archivo contiene repositorios heredados a los que tienes acceso, pero que su propietario aún no migró desde una versión anterior del Administrador de secuencias de comandos. Busca entre tus secuencias de comandos con la barra de filtros que se encuentra en la parte superior de la pestaña Secuencias de comandos.
Figura 2: El Administrador de secuencias de comandos.
Haz clic en el botón para crear un repositorio nuevo en la carpeta Propietario o para crear carpetas y archivos dentro de un repositorio. Puedes cambiar el nombre de las secuencias de comandos con el ícono y borrarlas con el ícono . Puedes mover secuencias de comandos y organizarlas en carpetas con la función de arrastrar y soltar (Figura 2). Si arrastras una secuencia de comandos a otro repositorio, se copia.
Todas las secuencias de comandos y los repositorios mantienen el historial de versiones completo. Haz clic en el ícono
junto a una secuencia de comandos o un repositorio para compararlo o revertirlo a una versión anterior. Para borrar un repositorio, haz clic en el ícono . Para configurar el acceso a un repositorio, haz clic en el ícono junto al nombre del repositorio. Ten en cuenta que, si compartes un repositorio, la persona con la que lo compartes deberá aceptarlo haciendo clic en el vínculo que se muestra en el diálogo de configuración. Para ocultar los repositorios aceptados anteriormente, haz clic en el ícono que aparece después del nombre del repositorio en el Administrador de secuencias de comandos.Se puede acceder a los repositorios con Git, de modo que puedas administrar y editar tus secuencias de comandos fuera del editor de código o sincronizarlas con un sistema externo, como GitHub. (Obtén más información sobre Git en este instructivo). Haz clic en el ícono junto al nombre del repositorio para obtener instrucciones sobre cómo clonarlo. Ten en cuenta que puedes explorar los repositorios a los que tienes acceso en earthengine.googlesource.com. Para algunas operaciones de Git, es posible que debas crear credenciales de autenticación. Para ello, ve al vínculo "Generate Password" en la parte superior de la página earthengine.googlesource.com.
Módulos de secuencia de comandos
Es una práctica recomendada escribir código modular y reutilizable que se pueda compartir entre secuencias de comandos sin copiar y pegar de forma extensa. Para habilitar el desarrollo modular, Earth Engine proporciona la capacidad de compartir código entre secuencias de comandos. Por ejemplo,
supongamos que escribes una función que realiza un conjunto útil
de operaciones. En lugar de copiar el código de la función en una secuencia de comandos nueva, es más fácil que la secuencia de comandos nueva cargue la función directamente. Para que una función o un objeto esté disponible para otras secuencias de comandos, debes agregarlo a un objeto especial llamado exports
. Para usar el código en otra secuencia de comandos, usa la función require
para cargar
los archivos exportados desde otra secuencia de comandos. Por ejemplo, supongamos que defines el siguiente módulo en un archivo llamado FooModule.js
que se encuentra en una carpeta llamada Modules
:
/** * The Foo module is a demonstration of script modules. * It contains a foo function that returns a greeting string. * It also contains a bar object representing the current date. * @module Modules/FooModule */ /** * Returns a greeting string. * @param {ee.String} arg The name to which the greeting should be addressed * @return {ee.String} The complete greeting. */ exports.foo = function(arg) { return 'Hello, ' + arg + '! And a good day to you!'; }; /** * An ee.Date object containing the time at which the object was created. */ exports.bar = ee.Date(Date.now());
Observa el uso de la palabra clave exports
en forma de exports.objectToExport
.
Puedes usar este módulo en otra secuencia de comandos con la función require
. Por ejemplo:
var Foo = require('users/username/default:Modules/FooModule.js'); print(Foo.doc); print(Foo.foo('world')); print('Time now:', Foo.bar);
La función require
espera una cadena que describa la ruta de acceso absoluta a la ubicación del módulo. Específicamente, el argumento de require()
tiene el formato 'pathToRepository:pathToModuleScript'
. Solo puedes cargar módulos de los repositorios que son de tu propiedad o a los que tienes acceso de lectura. Si deseas que otras personas puedan usar tu módulo, el repositorio se debe compartir con los otros usuarios a los que deseas que tengan acceso. Te recomendamos que documentes tu módulo para ayudar a otras personas a comprender cómo usarlo. Te recomendamos que uses el estilo JSDoc con la etiqueta @module
.
Puedes usar el parámetro de URL ?scriptPath={repo}:{script}
para compartir una referencia
a un archivo en tu repo, p.ej.,
https://code.earthengine.google.com/?scriptPath=users/username/utils:utils
.
Cuando visites la URL, el archivo al que se hace referencia y su repo se agregarán al directorio de lectores o escritores en la pestaña
de Scripts, según tu nivel de permiso
para el repo compartido.
Administrador de activos (pestaña Recursos)
El Administrador de recursos se encuentra en la pestaña Recursos del panel izquierdo. Usa el Administrador de recursos (Figura 3) para subir y administrar tus propios recursos de imagen en Earth Engine. Consulta la página del Administrador de activos para obtener más detalles.
Figura 3: El Administrador de activos.
Vínculos de secuencias de comandos
Las secuencias de comandos del editor de código se pueden compartir a través de una URL codificada. En las siguientes secciones, se describen varias formas de generar una URL de secuencia de comandos, las opciones disponibles y los métodos para administrar las URLs de secuencia de comandos.
Obtener vínculo
El botón "Get Link" en la parte superior del editor de código (Figura 4) proporciona una interfaz para generar URLs de secuencias de comandos y establecer opciones de comportamiento de secuencias de comandos. Ten en cuenta las distinciones entre las URLs de instantáneas y las de secuencias de comandos guardadas que se describen a continuación.
Figura 4: El botón “Obtener vínculo”.
Vínculos de secuencias de comandos de instantáneas
El código del editor se puede compartir a través de una URL de instantánea codificada que se crea cuando se hace clic en el botón “Obtener vínculo” en la parte superior del editor de código. Cuando alguien con una cuenta de Earth Engine visite la URL, el navegador navegará al editor de código y replicará el entorno tal como estaba cuando se creó el vínculo, incluido el código, las importaciones, las capas del mapa y la posición del mapa. Si haces clic en el botón “Obtener vínculo”, se copiará automáticamente el vínculo de la secuencia de comandos en el portapapeles. Además, aparecerá un cuadro de diálogo que proporcionará opciones para controlar la ejecución de la secuencia de comandos compartida, junto con botones para copiar y visitar el vínculo generado. Las opciones de control incluyen evitar que la secuencia de comandos se ejecute automáticamente y ocultar el panel de código cuando alguien abra el vínculo compartido. El cuadro de diálogo que se puede arrastrar se puede descartar con la tecla "Esc" o haciendo clic en cualquier otro lugar de la página.
Vínculos de secuencias de comandos guardadas
Las secuencias de comandos guardadas tienen la opción de compartir un vínculo que siempre cargará la versión guardada más reciente y al que solo tú y otras personas con acceso actual al repositorio que contiene la secuencia de comandos podrán acceder. Para usar esta función, carga una secuencia de comandos guardada desde la pestaña Administrador de secuencias de comandos, haz clic en la flecha del menú desplegable que se encuentra a la derecha del botón "Obtener vínculo" y selecciona "Copiar ruta de acceso de la secuencia de comandos". Aparecerá un cuadro de diálogo con la URL de la secuencia de comandos que se puede compartir. Ten en cuenta que la URL de la secuencia de comandos también se configuró en la barra de direcciones del navegador. Si deseas obtener orientación para compartir tu repositorio con otras personas, consulta la sección del Administrador de secuencias de comandos.
Administración de vínculos de secuencias de comandos
El botón desplegable que se encuentra a la derecha del botón "Obtener vínculo" tiene la opción "Administrar vínculos". Si haces clic en esta opción, se cargará una nueva pestaña del navegador con una interfaz para que recuperes, quites y descargues los vínculos de secuencias de comandos generados anteriormente. Si seleccionas una secuencia de comandos y presionas el botón de descarga, se descargará una carpeta comprimida ("code_editor_links.zip") en tu sistema que contiene una representación de archivo .txt para cada secuencia de comandos seleccionada.
Parámetros de la URL del vínculo de la secuencia de comandos
El módulo ui.url
permite la manipulación programática del identificador de fragmento de la URL de la secuencia de comandos a través de los métodos get
y set
. Esto significa que las secuencias de comandos del Editor de código y las apps de Earth Engine pueden leer y almacenar valores en la URL de la página.
Observa el final de las siguientes dos URLs: la primera establece la variable debug
como false
y la segunda como true
. Visita ambos vínculos y observa que la casilla de verificación de depuración en la consola no está marcada en la primera, pero sí en la segunda, lo que cambia el comportamiento de cada secuencia de comandos.
https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=false;
https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=true;
Esta función se puede usar para establecer el zoom y el centro del mapa, así como otros comportamientos que podrías querer personalizar cuando envíes vínculos a personas o grupos específicos.
Herramienta de búsqueda
Para encontrar conjuntos de datos que puedas usar en tus secuencias de comandos, puedes usar la herramienta de búsqueda del archivo de datos. La herramienta de búsqueda es el cuadro de texto que aparece en la parte superior del editor de código que dice "Buscar lugares y conjuntos de datos…". Escribe el nombre de un producto de datos, un sensor o
cualquier otra palabra clave en la barra de búsqueda y haz clic en el botón de la descripción del conjunto de datos.
Importaciones
Los resultados de la importación de conjuntos de datos a tu secuencia de comandos se organizan en una sección de importaciones en la parte superior de la secuencia de comandos, que se oculta hasta que importas algo. Una vez que hayas creado algunas importaciones, deberías ver algo similar a la Figura 5. Para copiar las importaciones a otra secuencia de comandos o convertirlas a JavaScript, haz clic en el ícono
junto al encabezado Imports y copia el código generado en tu secuencia de comandos. Puedes borrar la importación con el ícono .Figura 5: La sección de importaciones en la parte superior del editor de código.
Mapa
El objeto Map en la API hace referencia a la visualización del mapa en el editor de código. Por
ejemplo, Map.getBounds()
mostrará la región geográfica visible en el Editor
de código. Verifica las funciones Map
en la API para ver otras personalizaciones para esta visualización.
Administrador de capas
Usa el Administrador de capas en la esquina superior derecha del mapa para ajustar la visualización de las capas que agregaste al mapa. Específicamente, puedes activar o desactivar la visibilidad de una capa o ajustar su transparencia con el control deslizante. Haz clic en el ícono
para ajustar los parámetros de visualización de capas individuales. La herramienta de visualización que aparece (Figura 6) te permite configurar de forma interactiva los parámetros de visualización de las capas. Haz clic en el botón de la derecha de la herramienta (que realiza un estiramiento personalizado al rango mínimo y máximo proporcionado de forma predeterminada) para estirar de forma lineal la pantalla a percentiles o desviaciones estándar de los valores de imagen en la ventana de visualización. Las estadísticas se calculan a partir de todos los píxeles de la ventana del mapa en el nivel de zoom actual. Usa los controles deslizantes para ajustar la transparencia o la gamma. Haz clic en el botón de selección Palette y especifica una paleta personalizada. Para ello, agrega colores ( ), quita colores ( ) o ingresa manualmente una lista de cadenas hexadecimales separadas por comas ( ). Haz clic en Apply para aplicar los parámetros de visualización a la visualización actual. Haz clic en Import para cargar un objeto de parámetros de visualización como una variable nueva en la sección de importaciones de tu secuencia de comandos.Figura 6: La herramienta de visualización de capas.
Pestaña Inspector
La pestaña Inspector junto al Administrador de tareas te permite consultar el mapa de forma interactiva. Cuando se activa la pestaña Inspector, el cursor se convierte en una cruz que mostrará los valores de la ubicación y la capa debajo del cursor cuando hagas clic en el mapa. Por ejemplo, en la Figura 7, se muestran los resultados de hacer clic en el mapa dentro de la pestaña Inspector. La ubicación del cursor y el nivel de zoom se muestran junto con los valores de píxeles y una lista de objetos en el mapa. La lista de objetos es interactiva. Para obtener más información, expande los objetos en la pestaña Inspector.
Figura 7: En la pestaña Inspector, se muestra información sobre la ubicación del cursor y los valores de la capa debajo del cursor.
Pestaña Consola
Cuando print()
algo de tu secuencia de comandos, como texto, objetos o gráficos,
el resultado se mostrará en la consola. La consola es interactiva, por lo que
puedes expandir los objetos impresos para obtener más detalles sobre ellos.
Pestaña Tasks
Las tareas de Earth Engine son operaciones que pueden ejecutarse mucho más tiempo que el tiempo de espera de la solicitud de API estándar. Estas tareas de larga duración son el único mecanismo para crear artefactos persistentes en Earth Engine y sistemas adyacentes (Google Cloud Storage, Google Drive, etcétera) y se dividen en dos categorías: Import
y Export
.
Las tareas de importación se pueden usar para subir imágenes o subir tablas a Earth Engine desde una variedad de tipos de archivos (.csv
, .tif
, etcétera). Las tareas de exportación se pueden usar para ejecutar y escribir resultados desde el sistema de procesamiento de EE (consulta la guía para exportar datos).
En el caso de las exportaciones, cada llamada a una función Export
en el editor de código propagará una entrada en la sección Tareas no enviadas de la pestaña Tareas. Para enviar una tarea de exportación al servidor, haz clic en el botón Run junto a la tarea. Aparecerá un diálogo de configuración que te permitirá especificar una variedad de parámetros para la tarea. Si la tarea se especifica por completo en el momento de la creación (es decir, la llamada a Export
tiene todos los parámetros necesarios), mantén ctrl
o ⌘
mientras haces clic en Run para enviar la tarea sin mostrar el diálogo.
En el caso de las importaciones, la carga de archivos se realiza de forma local antes de que la tarea se envíe al servidor. Las tareas de importación en la fase de carga mostrarán su progreso en la sección Tareas no enviadas y se enviarán automáticamente al servidor una vez que se complete la carga del archivo.
Las tareas no enviadas solo aparecen en la página en la que se crearon y se pierden cuando se cierra la página. Una vez que se envía una tarea al servidor, hacer clic en su fila en la IU proporcionará información y opciones adicionales sobre el estado de la tarea, incluida la opción para solicitar la cancelación.
Para ver y cancelar varias tareas en una vista de página completa (incluso en clientes para dispositivos móviles), usa la página Tasks en la consola de Cloud.
Profiler
El generador de perfiles muestra información sobre los recursos (tiempo de CPU, memoria) que consumen algoritmos específicos y otras partes de un procesamiento. Esto ayuda a diagnosticar por qué una secuencia de comandos se ejecuta con lentitud o falla debido a los límites de memoria. Para usar el generador de perfiles, haz clic en la opción Run with profiler en el menú desplegable del botón Run. Como acceso directo, mantén presionada la tecla Alt (o Option en Mac) y haz clic en Ejecutar, o presiona Ctrl + Alt + Intro. Esto activa una pestaña Profiler en el lado derecho del editor de código. A medida que se ejecuta la secuencia de comandos, la pestaña Profiler mostrará una tabla del uso de recursos de la secuencia de comandos. Si haces clic en el botón Run (sin generar perfiles), desaparecerá la pestaña Profiler y se inhabilitará el generador de perfiles.
Consulta la página Descripción general del procesamiento para obtener un desglose del resultado del generador de perfiles.
Herramientas de geometría
También puedes dibujar geometrías en la pantalla para importarlas a tu secuencia de comandos. Para crear geometrías, usa las herramientas de dibujo de geometría en la esquina superior izquierda de la pantalla del mapa (Figura 8). Para dibujar puntos, usa el ícono de marcador , para dibujar líneas, usa el ícono de línea
, para dibujar polígonos, usa el ícono de polígono
y para dibujar rectángulos, usa el ícono de rectángulo
. (Ten en cuenta que los rectángulos son geometrías planas, por lo que no se pueden colocar en una capa con geometrías geodésicas, como líneas y polígonos).
Si usas cualquiera de las herramientas de dibujo, se creará automáticamente una nueva capa de geometría y se agregará una importación para esa capa a la sección Importaciones. Para agregar geometrías a una capa nueva, coloca el cursor sobre Geometry Imports en la pantalla del mapa y haz clic en el vínculo +new layer. También puedes activar o desactivar la visibilidad de las geometrías desde la sección Importaciones de geometría. Ten en cuenta que las geometrías dibujadas son geodésicas de forma predeterminada, excepto los rectángulos, que solo son planas. Usa el constructor de Geometry para convertirlos en geometrías planas. Obtén más información sobre las geometrías en Earth Engine en la página Geometría.
Figura 8: Las herramientas de dibujo geométrico se encuentran en la esquina superior izquierda de la pantalla del mapa.
Para configurar la forma en que se importan las geometrías a tu secuencia de comandos, haz clic en el ícono Feature
o FeatureCollection
) o cambiarle el nombre.
Figura 9: La herramienta de configuración de geometría.
Por último, para evitar que se editen las geometrías de una capa, puedes presionar el ícono
junto a la capa para bloquearla. Esto evitará que se agreguen, borren o editen geometrías en la capa. Para volver a desbloquear la capa, presiona el ícono .Ayuda,
Haz clic en el botón
en la parte superior derecha del editor de código para ver vínculos a esta Guía para desarrolladores, a otros foros de ayuda, a una visita guiada por el editor de código y a una lista de combinaciones de teclas que ayudan con la codificación, la ejecución de código y la visualización de datos en el Mapa. Haz clic en el botón para enviar un informe de errores, solicitar una nueva función, sugerir un conjunto de datos o enviar comentarios cuando no se necesite una respuesta.