Editor de código de Earth Engine

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 (ilustrados 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

Componentes del editor de código

Figura 1: Diagrama de los 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 tus propias secuencias en la pestaña Scripts. Objetos de consulta colocados en el mapa con la pestaña Inspector Mostrar y graficar resultados numéricos con la API de visualización de Google Comparte una URL única de tu secuencia de comandos con colaboradores y amigos con el botón Obtener vínculo. Los secuencias de comandos que desarrollas en el editor de código se envían a Google para su procesamiento, y los mosaicos de mapa o los mensajes generados se envían de vuelta para su visualización en las pestañas Mapa o Consola. Todo lo que necesitas para ejecutar el editor de código es un navegador web (usa Google Chrome para obtener 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:

  • Formatear y destacar 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
  • Ofrecer sugerencias para completar el código de las funciones de Earth Engine

Sobre el editor de código, se encuentran los 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 presione 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.

Por el momento, no se admiten las funciones de lenguaje introducidas en ECMAScript 6 (ES6) y versiones posteriores.

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 de la API completa de JavaScript. Puedes buscar y explorar la documentación desde la pestaña Docs.

Administrador de secuencias de comandos (pestaña Secuencias de comandos)

La pestaña Scripts 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 Owner: users/username/default. Tú (y solo tú) tienes acceso a los repositorios de la carpeta Owner, a menos que los compartas con otra persona. Los repositorios de la carpeta Writer son aquellos a los que su 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 Reader son aquellos a los que su propietario te otorgó acceso de lectura. La carpeta Examples es un repositorio especial administrado por Google que contiene muestras de código. La carpeta Archive 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 en tus secuencias de comandos con la barra de filtros que se encuentra en la parte superior de la pestaña Scripts.

Administrador de 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 un script a otro repositorio, se copiará.

Todos los repositorios y las secuencias de comandos mantienen un historial de versiones completo. Haz clic en el ícono junto a un script o 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 compartas deberá aceptarlo haciendo clic en el vínculo que se muestra en el diálogo de configuración. Los repositorios aceptados anteriormente se pueden ocultar haciendo 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, por lo que puedes administrar y editar tus secuencias de comandos fuera del Editor de código, o bien 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" (Generar contraseña) que se encuentra en la parte superior de la página earthengine.googlesource.com.

Módulos de secuencias de comandos

Es una buena práctica escribir código modular y reutilizable que se pueda compartir entre secuencias de comandos sin tener que copiar y pegar de forma extensa. Para habilitar el desarrollo modular, Earth Engine permite 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én disponibles para otros secuencias de comandos, debes agregarlos a un objeto especial llamado exports. Para usar el código en otro script, usa la función require para cargar las exportaciones de otro script. Por ejemplo, supongamos que defines el siguiente módulo en un archivo llamado FooModule.js que se encuentra en una carpeta llamada Modules:

Editor de código (JavaScript)

/**
 * 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 la forma de exports.objectToExport. Puedes usar este módulo en otro script con la función require. Por ejemplo:

Editor de código (JavaScript)

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 la forma 'pathToRepository:pathToModuleScript'. Solo puedes cargar módulos desde repositorios que te pertenezcan o a los que tengas acceso de lectura. Si quieres que otras personas puedan usar tu módulo, el repositorio debe compartirse con los otros usuarios a los que quieras dar acceso. Te recomendamos que documentes tu módulo para ayudar a otras personas a comprender cómo usarlo. Para ello, 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 Reader o Writer en la pestaña Scripts, según tu nivel de permiso para el repo compartido.

Administrador de recursos (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.

El Administrador de recursos

Figura 3: El Administrador de recursos.

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 secuencias de comandos.

El botón "Obtener vínculo" que se encuentra 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 diferencias entre las URLs de instantáneas y las de secuencias de comandos guardadas que se describen a continuación.

La

Figura 4: El botón "Obtener vínculo".

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 visita la URL, el navegador lo redirecciona al editor de código y replica 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 del script en el portapapeles. Además, aparecerá un cuadro de diálogo con 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 arrastrable se puede descartar con la tecla "Esc" o con un clic en cualquier otro lugar de la página.

Los scripts guardados tienen una opción para 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 el script pueden acceder. Para usar esta función, carga un script guardado desde la pestaña Administrador de secuencias de comandos, haz clic en la flecha del menú desplegable a la derecha del botón "Obtener vínculo" y selecciona "Copiar ruta de acceso del script". Aparecerá un cuadro de diálogo con la URL del guion 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. Para obtener orientación sobre cómo compartir tu repositorio con otras personas, consulta la sección Administrador de secuencias de comandos.

El botón desplegable que se encuentra a la derecha del botón "Obtener vínculo" tiene una opción para "Administrar vínculos". Si haces clic en esta opción, se cargará una nueva pestaña del navegador con una interfaz para que recuerdes, quites y descargues los vínculos de secuencias de comandos generados anteriormente. Si seleccionas un script 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 script seleccionado.

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 los 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 la establece como true. Visita ambos vínculos y observa que la casilla de verificación de depuración en la consola no está marcada en el primero, pero sí en el segundo, 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 centro y el nivel de zoom del mapa, así como otros comportamientos que tal vez quieras personalizar cuando envíes vínculos a personas o grupos específicos.

Herramienta de búsqueda

Para encontrar conjuntos de datos que puedes 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 se encuentra en la parte superior del editor de código y que dice "Search places and datasets…". 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 para ver una lista de lugares, conjuntos de datos ráster y conjuntos de datos tabulares que coincidan. Haz clic en cualquier resultado de ráster o tabla para ver la descripción de ese conjunto de datos en el archivo. Para importar el conjunto de datos directamente en tu secuencia de comandos, haz clic en el vínculo import o 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 en otro script 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 de .

Sección de importaciones del editor de código

Figura 5: La sección de importaciones en la parte superior del editor de código.

Mapa

El objeto de mapa de la API hace referencia a la visualización del mapa en el Code Editor. Por ejemplo, Map.getBounds() devolverá la región geográfica visible en el editor de código. Consulta las funciones Map en la API para ver otras personalizaciones de esta pantalla.

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 de para ajustar los parámetros de visualización de las capas individuales. La herramienta de visualización que aparece (figura 6) te permite configurar de forma interactiva los parámetros de visualización de la capa. Haz clic en el botón a la derecha de la herramienta (que realiza un estiramiento Personalizado en el rango mínimo y máximo proporcionado de forma predeterminada) para estirar linealmente la pantalla a percentiles o desviaciones estándares de los valores de la 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 gamma o la transparencia. Haz clic en el botón de opción Paleta y especifica una paleta personalizada agregando colores (), quitando colores () o ingresando manualmente una lista separada por comas de cadenas hexadecimales (). Haz clic en Aplicar para aplicar los parámetros de visualización a la pantalla actual. Haz clic en Importar 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.

Es la herramienta de visualización de capas.

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 muestra los valores de ubicación y capa debajo del cursor cuando haces 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 ver más información, expande los objetos en la pestaña Inspector.

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 Tareas

Las tareas de Earth Engine son operaciones que pueden ejecutarse durante mucho más tiempo que el tiempo de espera estándar de las solicitudes a la API. Estas tareas de larga duración son el único mecanismo para crear artefactos persistentes en Earth Engine y en los 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 archivo (.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 completará una entrada en la sección Tareas sin enviar de la pestaña Tareas. Para enviar una tarea de exportación al servidor, haz clic en el botón Ejecutar junto a la tarea. Aparecerá un diálogo de configuración que te permitirá especificar diversos 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 presionados ctrl o mientras haces clic en Ejecutar 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 sin enviar 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, si haces clic en su fila en la IU, se 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 (incluidos los clientes móviles), usa la página Tareas 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 cálculo. Esto ayuda a diagnosticar por qué un script se ejecuta lentamente 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 atajo, mantén presionada la tecla Alt (o Option en Mac) y haz clic en Ejecutar, o bien presiona Ctrl + Alt + Intro. Se activará una pestaña Profiler en el lado derecho del editor de código. A medida que se ejecuta la secuencia de comandos, en la pestaña Profiler, se mostrará una tabla del uso de recursos de la secuencia de comandos. Si haces clic en el botón Ejecutar (sin generar perfiles), desaparecerá la pestaña Profiler y se inhabilitará el generador de perfiles.

Consulta la página de descripción general del cálculo para obtener un desglose del resultado del generador de perfiles.

Asistente de IA (pestaña Preguntar)

El editor de código incluye un asistente de IA, potenciado por Gemini, para ayudarte a escribir, depurar y comprender tus secuencias de comandos. El asistente está disponible en la pestaña Preguntar del panel derecho.

Para obtener detalles sobre cómo configurar y usar el asistente, consulta la guía del asistente de IA en el Editor de código de Earth Engine.

Herramientas de geometría

También puedes importar geometrías a tu secuencia de comandos dibujándolas en la pantalla. 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 marca de posición ; para dibujar líneas, usa el ícono de línea ; para dibujar polígonos, usa el ícono de polígono ; 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 Imports. Para agregar geometrías a una capa nueva, coloca el cursor sobre las importaciones de geometría en la pantalla del mapa y haz clic en el vínculo +nueva capa. También puedes activar o desactivar la visibilidad de las geometrías en la sección Geometry Imports. Ten en cuenta que las geometrías dibujadas son geodésicas de forma predeterminada, excepto los rectángulos, que son solo planos. 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 de Geometry.

Figura 8: Las herramientas de dibujo de geometría 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 junto a la capa en la sección Importaciones de geometría del mapa o en la sección Importaciones del editor de código. La herramienta de configuración de la capa de geometría se mostrará en un cuadro de diálogo que debería parecerse a la Figura 9. Ten en cuenta que puedes importar las formas dibujadas como geometrías, atributos o colecciones de atributos. La configuración de importación de geometría también te permite cambiar el color con el que se muestra la capa, agregar propiedades a la capa (si se importa como Feature o FeatureCollection) o cambiarle el nombre.

La herramienta de configuración de geometría

Figura 9: Herramienta de configuración de la geometría.

Por último, para evitar que se editen las geometrías de una capa, puedes bloquearla presionando el ícono junto a la capa. 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 esquina superior derecha del editor de código para ver vínculos a esta guía para desarrolladores, otros foros de ayuda, un recorrido guiado por el editor de código y 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 informar un error, solicitar una función nueva, sugerir un conjunto de datos o enviar comentarios cuando no se necesite una respuesta.