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
!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.