Herramienta de línea de comandos

La herramienta earthengine es un programa de utilidad que te permite administrar recursos y tareas de Earth Engine desde la línea de comandos. Se instala automáticamente cuando instalas la API de Python. Para comprobar si la herramienta está instalada y funciona correctamente, escribe lo siguiente en una línea de comandos:

    earthengine

Si la herramienta se instaló correctamente, se imprimirá un breve resumen de los comandos disponibles. Para obtener ayuda sobre un comando específico, usa lo siguiente:

    earthengine command -h

Cuando instalas la API de Python por primera vez, debes acceder con el comando authenticate que se describe a continuación. En las siguientes secciones, se describen los comandos disponibles con más detalle.

Credenciales de cuenta de servicio

Para usar la CLI con las credenciales de una cuenta de servicio, usa la marca service_account_file para que apunte a un archivo JSON que contenga la clave de la cuenta de servicio.

    earthengine --service_account_file=service_account_creds.json

Uso en Colab

La herramienta de línea de comandos de Earth Engine está preinstalada y lista para usarse en Google Colab.

Autenticación

Autentica para cada sesión nueva de Colab o si la máquina virtual vence por inactividad (las credenciales no se guardan entre sesiones).

Importa la biblioteca cliente de Python y llama a ee.Authenticate() para activar el flujo de autenticación. Sigue las instrucciones para completar la autenticación. El auth_mode predeterminado en Colab es colab. Consulta la guía de autenticación para conocer otras opciones.

import ee
ee.Authenticate()

Ejecución de comandos

Para ejecutar utilidades de línea de comandos, como la CLI de Earth Engine, debes anteponer un signo de exclamación a las llamadas de comando.

!earthengine -h

Establece un proyecto de Cloud

Usa la opción --project para establecer un proyecto de Cloud para cada comando earthengine individual.

!earthengine --project my-project <command>

Como alternativa, establece un proyecto predeterminado para que lo usen todas las llamadas de earthengine con el comando set_project. El proyecto se agregará a un archivo de credenciales (~/.config/earthengine/credentials) y se usará para los comandos posteriores, a menos que se anule con la opción --project. Establece un proyecto predeterminado para cada sesión nueva de Colab o si la máquina virtual vence por inactividad (las credenciales no se guardan entre sesiones).

!earthengine set_project my-project

Referencia de comandos

autenticar

Autentica la herramienta de línea de comandos y la biblioteca cliente de Python en Earth Engine. Ejemplo:

    earthengine authenticate

Earth Engine usa el protocolo OAuth 2.0 para autenticar clientes. El comando earthengine authenticate te guiará por el proceso de autenticación con tu navegador web.

Deberás instalar gcloud si usas el modo de autenticación predeterminado de gcloud. Consulta otros modos de autenticación disponibles a través del parámetro auth_mode en la guía de autenticación.

acl

Imprime o actualiza la lista de control de acceso (LCA) de un recurso de Earth Engine. La ACL controla quién puede leer o escribir en un recurso. Ejemplos:

    earthengine acl get projects/my-project/assets/asset_id
    earthengine acl set public projects/my-project/assets/asset_id
    earthengine acl ch -u username@gmail.com:R projects/my-project/assets/asset_id

El subcomando get imprime una descripción en JSON de la LCA. El subcomando set establece una LCA proporcionada en un archivo con el mismo formato JSON. Puedes copiar una ACL de un recurso a otros guardando el resultado de get y proporcionándolo a set.

El subcomando set también acepta dos nombres de LCA especiales:

  • private: Quita los permisos de todos, excepto del propietario.
  • public: Otorga permiso de lectura a todos los usuarios.

El subcomando ch te permite realizar cambios individuales en una LCA. Para otorgar permiso de lectura, especifica -u username@gmail.com:R; para otorgar permiso de escritura, especifica -u username@gmail.com:W, y para quitar los permisos de un usuario, especifica -d username@gmail.com. El identificador de usuario especial AllUsers se puede usar para otorgar o revocar el permiso de lectura a todos los usuarios o de todos ellos. (Ten en cuenta que revocar los permisos de AllUsers no revoca los permisos adicionales que también hayas otorgado a usuarios individuales).

recurso

Imprime o actualiza los metadatos asociados con el recurso de Earth Engine. Ejemplos:

    earthengine asset info projects/my-project/assets/asset_id
    earthengine asset set -p name=value projects/my-project/assets/asset_id
    earthengine asset setbands projects/my-project/assets/asset_id band1 band2

El subcomando info imprime información detallada sobre el recurso, incluidos sus metadatos, en formato JSON. El subcomando set establece propiedades de metadatos individuales en un recurso. El subcomando setbands actualiza los nombres de las bandas de un recurso.

Los valores de las propiedades de metadatos que configures pueden ser números o cadenas. Cuando configures nombres de propiedades con la marca --property o -p, separa el nombre y el valor de la propiedad con un signo igual. El tipo de datos se detecta automáticamente, o puedes especificarlo de forma explícita agregando el prefijo (string), (number) o (date) al nombre de la propiedad. Por ejemplo, esto establece una propiedad con valor de cadena con el valor "42":

    earthengine asset set -p '(string)name=42' projects/my-project/assets/asset_id

(Las comillas de este ejemplo evitan que la shell interprete los paréntesis. (Es posible que sean necesarias o no, según la shell y la plataforma).

Para crear propiedades especiales para las visualizaciones de bandas de clasificación, puedes almacenar las listas de valores y colores como cadenas separadas por comas. Por ejemplo, para establecer los valores de paleta y clase de una banda llamada landcover, haz lo siguiente:

    earthengine asset set -p 'landcover_class_palette=ff0000,00ff00,0000ff' projects/my-project/assets/asset_id
    earthengine asset set -p 'landcover_class_values=1,2,3' projects/my-project/assets/asset_id

Para borrar una propiedad, configúrala como null sin un tipo:

    earthengine asset set -p name=null projects/my-project/assets/asset_id

Las propiedades de fecha son solo números que representan una cantidad de milisegundos desde el tiempo Unix (es decir, la medianoche del 1 de enero de 1970) y se pueden especificar directamente como un número o en uno de los siguientes formatos:

    YYYY-MM-DD
    YYYY-MM-DDThh:mm:ss
    YYYY-MM-DDThh:mm:ss.f

Se supone que la zona horaria es UTC. Puedes establecer las propiedades especiales de hora de inicio y finalización con las marcas --time_start y --time_end:

    earthengine asset set --time_start 1978-10-15T12:34:56 projects/my-project/assets/asset_id

cp

Copia un recurso. Ejemplo:

    earthengine cp projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id

create

Crea carpetas y colecciones de imágenes nuevas. Ejemplo:

    earthengine create folder projects/my-project/assets/folder_id
    earthengine create collection projects/my-project/assets/collection_id

Usa el subcomando folder para crear carpetas y collection para crear colecciones de imágenes. Puedes especificar la opción -p para crear de forma recurrente carpetas superiores según sea necesario. Las carpetas y las imágenes recién creadas tienen LCA privadas de forma predeterminada.

ls

Muestra el contenido de una o más carpetas o colecciones. Ejemplo:

    earthengine ls users/username

La opción -l solicita un formato largo con más información sobre cada recurso (actualmente, solo su tipo). Puedes especificar --max_items number (o -m para abreviar) para limitar la cantidad de elementos de cada carpeta o colección que enumeres:

    earthengine ls -m 10 projects/my-project/assets/my_large_collection

Si ejecutas el comando ls sin argumentos, se mostrarán las carpetas de nivel superior de las que eres propietario.

modelo

Es una herramienta con la que se manipulan los modelos guardados de TensorFlow.

model prepare

Prepara un modelo guardado para entregarlo en Earth Engine. En particular, esto transforma tu SavedModel en un formato adecuado para procesar solicitudes de Earth Engine. (Obtén más información sobre SavedModel).

    earthengine model prepare my_source_dir my_dest_dir '{"Conv2D:0":"my_input_band"}' '{"Sigmoid:0":"my_output_band"}'

Obtén más información sobre los modelos de plataforma de IA aquí. Consulta un ejemplo completo aquí.

mv

Mueve un recurso o le cambia el nombre. Ejemplo:

    earthengine mv projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id

project_config

Establece los valores de configuración del proyecto. Antes de usar este comando, asegúrate de configurar un proyecto con set_project.

get

Para ver la configuración de un proyecto, usa el subcomando get:

    earthengine alpha project_config get

Si tienes permiso para ver la configuración de la tarea por lotes del proyecto, el resultado contiene lo siguiente:

  • maxConcurrentExports: Es un número que indica la cantidad máxima de tareas por lotes que se pueden ejecutar en paralelo en todos los usuarios del proyecto determinado. De forma predeterminada, se establece en el máximo permitido por el plan de suscripción de la cuenta de facturación asociada.

Además, si tienes permiso para ver la configuración del plan, el resultado contiene lo siguiente:

  • planMaxConcurrentExports, un número que indica la cantidad máxima de tareas por lotes que se pueden ejecutar en paralelo en todos los usuarios y proyectos que usan la cuenta de facturación.

set

Para actualizar la configuración del proyecto, usa el subcomando set. Se pueden configurar los siguientes parámetros:

Por ejemplo, para configurar un proyecto de modo que solo permita que se ejecuten 10 tareas en paralelo para el proyecto determinado, haz lo siguiente:

    earthengine alpha project_config set --max_concurrent_exports=10

En el resultado, se muestra la configuración actualizada del proyecto, idéntica a la que devuelve get.

Para obtener más información sobre el paralelismo de tareas por lotes, consulta la página Cuotas de Earth Engine.

rm

Borra uno o más recursos. Ejemplo:

    earthengine rm projects/my-project/assets/asset_id
    earthengine rm -r projects/my-project/assets/folder_id

Puedes usar la marca -r para borrar el contenido de una carpeta o colección de forma recurrente. Para mayor seguridad cuando borres varios recursos, puedes usar la marca --dry_run para verificar exactamente qué se borrará sin borrar nada.

set_project

Establece el proyecto de Google Cloud a través del cual se enrutan las solicitudes de procesamiento.

    earthengine set_project foo-project

Este comando es necesario antes de ejecutar comandos que requieran la funcionalidad de Cloud, por ejemplo, model.

tarea

Imprime información sobre las tareas de larga duración o las administra. Ejemplos:

    earthengine task list
    earthengine task list -l
    earthengine task info TASK_ID
    earthengine task cancel TASK_ID

El subcomando list enumera información básica sobre las tareas que enviaste recientemente. La opción -l solicita un formato largo con más información sobre cada tarea. El subcomando info imprime información detallada sobre tareas individuales. El subcomando cancel cancela una o más tareas en ejecución.

upload

Sube imágenes o tablas de Google Cloud Storage a Earth Engine o registra GeoTIFF optimizados para la nube (COG) en Cloud Storage como recursos respaldados por COG (imágenes externas).

imagen

Para subir un recurso de imagen con la configuración predeterminada, sigue estos pasos:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id gs://bucket/image.tif

Si especificas varios archivos de imagen de entrada, se interpretarán como mosaicos de un solo recurso de imagen. Puedes obtener más información sobre las opciones para subir imágenes a Earth Engine en Sube recursos de imagen: Opciones avanzadas.

Puedes especificar la política de reducción de pirámide con la marca --pyramiding_policy, que se puede establecer en mean (la opción predeterminada), sample, mode, min o max. Esto controlará cómo Earth Engine genera la pirámide de versiones de menor resolución de tu imagen:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id --pyramiding_policy=sample gs://bucket/image.tif

Puedes usar --last_band_alpha para indicar que la máscara de la imagen se debe tomar de un canal alfa en la última banda:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id --last_band_alpha gs://bucket/image.tif

Puedes especificar un valor sin datos con la marca --nodata_value. Esto enmascarará los píxeles de la imagen con ese valor:

    earthengine upload image --asset_id=users/myuser/asset --nodata_value=255 gs://bucket/image.tif

También puedes especificar las propiedades de los metadatos que se establecerán en el recurso con las mismas marcas que acepta el comando asset set descrito anteriormente. Las opciones también se describen en la guía del manifiesto de imagen.

tabla

Para subir un archivo Shapefile, CSV o TFRecord desde Google Cloud Storage a un recurso de tabla de Earth Engine, puedes usar cualquiera de las siguientes opciones:

    earthengine upload table --asset_id=projects/my-project/assets/myUploadedShapefile gs://bucket/foo.shp
    earthengine upload table --asset_id=projects/my-project/assets/myUploadedCSV gs://bucket/foo.csv
    earthengine upload table --asset_id=projects/my-project/assets/myUploadedTFRecord gs://bucket/foo.tfrecord

Existen muchas opciones relacionadas con la forma en que se interpretan los archivos CSV y TFRecord. Para ver una lista completa de las opciones de carga de tablas, consulta la guía Manifiesto de tablas o usa el siguiente comando:

    earthengine upload table -h

external_image

Para registrar un GeoTIFF optimizado para la nube (COG) en Cloud Storage como un recurso respaldado por COG (llamado imagen externa en la API), ejecuta el comando upload external_image con un manifiesto:

earthengine upload external_image --manifest /tmp/foo.json

Agrega --force para reemplazar un recurso existente, por ejemplo, para que apunte a una versión nueva de su archivo (consulta Actualiza recursos respaldados por COG).

A continuación, se muestra un ejemplo del manifiesto:

{
  "name": "projects/{project}/assets/cogdemo1",
  "tilesets": [
    { "id": "0", "sources": [{ "uris": ["gs://ee-docs-demos/COG_demo.tif"] }] }
  ],
  "properties": {
    "source": "https://code.earthengine.google.com/d541cf8b268b2f9d8f834c255698201d"
  },
  "startTime": "2016-01-01T00:00:00.000000000Z",
  "endTime": "2016-12-31T15:01:23.000000000Z"
}

Consulta la guía de registro de COG y la guía de manifiesto de imágenes para obtener más detalles sobre cómo construir el manifiesto.