Herramienta de línea de comandos

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

    earthengine

Si la herramienta está instalada correctamente, imprime un breve resumen de los comandos disponibles. Para obtener ayuda con 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 apuntar 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 cada sesión nueva de Colab o si la máquina virtual vence por inactividad (las credenciales no se guardan en las sesiones).

Importa la biblioteca cliente de Python y llama a ee.Authenticate() para activar el flujo de autenticación. Sigue las indicaciones para completar la autenticación. El auth_mode predeterminado en Colab es colab. Consulta la guía de autenticación para ver 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 las llamadas de comandos con un signo de exclamación.

!earthengine -h

Configura un proyecto de Cloud

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

!earthengine --project my-project <command>

Como alternativa, configura un proyecto predeterminado para que lo usen todas las earthengine llamadas 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. Configura un proyecto predeterminado para cada sesión nueva de Colab o si la máquina virtual vence por inactividad (las credenciales no se guardan en las 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 auth_mode parámetro en la guía de autenticación.

acl

Imprime o actualiza la lista de control de acceso (ACL) 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 JSON de la ACL. El subcomando set establece una ACL 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 ACL 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 ACL. 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. (Ten en cuenta que revocar los permisos de AllUsers no revoca ningún permiso adicional que también hayas otorgado a usuarios individuales).

recurso

Imprime o actualiza los metadatos asociados con un 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

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.

Los valores de las propiedades de metadatos que estableces 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 anteponiendo el nombre de la propiedad con (string), (number) o (date). 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 el shell interprete los paréntesis. Pueden ser necesarias o no, según tu shell y plataforma).

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

    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 la época de 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 el subcomando collection para crear colecciones de imágenes. Puedes especificar la opción -p para crear carpetas superiores de forma recursiva según sea necesario. Las carpetas y las imágenes recién creadas tienen ACL 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 enumeras:

    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 que posees.

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 formulario 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 AI Platform aquí. Consulta un ejemplo completo ejemplo aquí.

mv

Mueve o renombra un recurso. 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 tareas 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 para el proyecto determinado. De forma predeterminada, se establece en el máximo permitido por el plan de suscripciónde la cuenta de facturación asociada.

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

  • planMaxConcurrentExports: Es 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:

  • max_concurrent_exports, para controlar el paralelismo máximo de tareas por lotes
      del proyecto
    • requiere los permisos correctos

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

    earthengine alpha project_config set --max_concurrent_exports=10

El resultado muestra la configuración actualizada del proyecto, idéntica a lo que get devuelve.

Para obtener más información sobre el paralelismo de tareas por lotes, consulta la página de 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 recursiva. Para mayor seguridad cuando borras varios recursos, puedes usar la marca --dry_run para verificar exactamente lo que 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 requieren la funcionalidad de Cloud , por ejemplo, model.

tarea

Imprime información sobre 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 muestra 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 crea recursos respaldados por imágenes externas.

imagen

Para subir un recurso de imagen con la configuración predeterminada:

    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 Cómo subir 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 uno de los siguientes valores: mean (el valor predeterminado), sample, mode, min o max. Esto controlará la forma en que 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 debe tomarse 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á cualquier píxel 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 propiedades de metadatos para establecer en el recurso con las mismas marcas que acepta el asset set comando descrito anteriormente. Las opciones también se describen en la guía del manifiesto de imagen.

tabla

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

    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

Hay muchas opciones relacionadas con la forma en que se interpretan los archivos CSV y TFRecord. Puedes ver una lista completa de las opciones de carga de tablas si visitas la guía del manifiesto de tabla o con lo siguiente:

    earthengine upload table -h

external_image

Para crear un recurso respaldado por una imagen externa, ejecuta el comando upload_image con un manifiesto:

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

Este es un ejemplo de 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 Cloud GeoTIFF y la guía del manifiesto de imagen para obtener más detalles sobre la construcción del manifiesto.