Preguntas generales
Tengo un problema, necesito ayuda.
Publica una pregunta siguiendo esta guía y proporciona la mayor cantidad de información posible (consulta la guía de Stack Overflow para hacer buenas preguntas). Por lo general, esto significa lo siguiente:
enviar un vínculo a una secuencia de comandos en el editor de código (haz clic en el botón "Obtener vínculo" para obtenerlo)
compartir los recursos necesarios para ejecutar la secuencia de comandos
En el caso de las tareas por lotes con errores, informa el ID de la tarea con errores. Los IDs de tarea se ven así:
4C25GIJBMB52PXTEJTF4JLGL. Se pueden encontrar en la pestaña Task del Editor de código. Obtén más información.
¿Dónde puedo leer sobre la arquitectura de Earth Engine?
Consulta este artículo: Gorelick et al. 2017.
¿Hay algún instructivo recomendado de Earth Engine que no haya creado Google?
Consulta las páginas de EDU y recursos de capacitación.
¿Hay algún instructivo recomendado sobre teledetección?
Consulta este curso gratuito de EE de Ujaval Gandhi, que incluye un video con una introducción a la teledetección.
Programación de Earth Engine
¿Cuáles son algunos errores de codificación comunes?
Consulta la guía de depuración.
¿Por qué recibo un error que dice "... is not a function"?
Este error se produce cuando Earth Engine no puede encontrar el método llamado. Verifica las siguientes causas comunes:
Ortografía o distinción entre mayúsculas y minúsculas: Los métodos distinguen mayúsculas de minúsculas. Verifica la ortografía con la referencia de la API.
Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)
Conversiones de tipos faltantes: Los valores que se muestran de funciones como .get() son
instancias genéricas de ee.ComputedObject y se deben convertir de forma explícita. Consulta
Conversión de tipos de objetos desconocidos.
Error: dict.get('val').add(5) -> Correct: ee.Number(dict.get('val')).add(5)
Mezcla de métodos de cliente y servidor: Asegúrate de no usar métodos estándar de JavaScript o Python (como .push() o .append()) en objetos de Earth Engine. Consulta Evita mezclar funciones del cliente y del servidor.
Error: list.push(4) or list.append(4) -> Correct: list.add(4)
Métodos no disponibles: Si el objeto tiene el tipo correcto y el método existe en la documentación o funcionó anteriormente, pero ahora falla, informa un error.
¿Por qué no puedo usar operaciones matemáticas básicas como ee.Image("image") * 2?
En EE, no debes mezclar objetos ni operaciones del servidor y del cliente. Todas las operaciones en los objetos de EE se realizan del lado del servidor. Los cálculos del cliente no funcionarán como esperas. Consulta esta página para obtener más detalles.
¿Cómo puedo usar bucles for o declaraciones if/else?
La programación de Earth Engine se realiza con un lenguaje funcional, por lo que
los bucles y las operaciones condicionales se deben expresar con conceptos equivalentes,
como map o filter. Consulta
esta página para obtener más detalles.
¿Cómo muestro etiquetas de texto en mi imagen o video?
No hay compatibilidad integrada para las etiquetas de texto, pero puedes hacer lo siguiente:
- Usa un paquete de JS de terceros. Ver ejemplo
- Usa un paquete de Python de terceros geemap.
- Usa QGIS para importar imágenes de EE con el complemento de QGIS para EE
¿Puedo usar algunas paletas de colores estándar?
Usa un paquete de JS de terceros ee-palettes.
¿Cómo creo mi propio sitio web que use Earth Engine?
Usa las apps de Earth Engine para aplicaciones básicas. En casos más complejos, puedes compilar apps de App Engine con tecnología de EE.
¿Cómo funcionan los IDs de mapa?
Los IDs de mapa (llamados mapid en toda la API) son claves que permiten a los clientes recuperar mosaicos de mapas. Cada ID es un hash que se crea proporcionando una expresión de imagen al
extremo getMapId. Los IDs resultantes son claves que apuntan tanto a la
expresión de imagen como a las credenciales del usuario que se usarán para generar
mosaicos en una etapa posterior.
Para solicitar mosaicos de mapa, se debe especificar la ubicación del mosaico (x, y, zoom) y la mapid (la clave de la imagen y las credenciales). Se puede volver a usar el mismo ID para cargar muchas tarjetas de mapa. No hay límites para la reutilización de
las claves de mapid, pero vencen después de unas horas. No publicamos
plazos específicos sobre cuánto tiempo persisten, pero cualquier código que escribas debe
ser resiliente al vencimiento del ID.
La creación de estos IDs implica almacenar una pequeña cantidad de datos y validar
las credenciales, por lo que es mejor reutilizarlos durante el mayor tiempo posible. No hay una cuota de API
asociada específicamente con el extremo getMapId, pero cualquier flujo de trabajo
que implique crear objetos mapid a una velocidad cercana a la de
recuperación de mosaicos probablemente esté haciendo algo mal. Earth Engine no tiene un extremo de API
para quitar, enumerar o administrar estos IDs, ya que son recursos
temporales.
¿Por qué ee.Algorithms.If() imprime los casos verdadero y falso?
function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());
El algoritmo If() funciona como cualquier otro algoritmo en Earth Engine, ya que todos sus argumentos se deben evaluar antes de que se pueda ejecutar el algoritmo.
El algoritmo obtiene los resultados de trueCase y falseCase, y, luego, elige y devuelve uno según el argumento condition, pero ambas rutas se tuvieron que ejecutar para que esos valores se pasaran al algoritmo en primer lugar.
Recibo el error "El tamaño de la carga útil de la solicitud supera el límite"
Estás intentando enviar a Earth Engine una solicitud muy grande. Por lo general, esto sucede cuando el código usa muchos bucles "for" del cliente o construye una FeatureCollection a partir de muchos objetos de geometría. En este último caso, en lugar de crear esas geometrías en tu secuencia de comandos, genera un archivo CSV que las contenga y súbelo a un recurso de tabla.
¿Cuál es la diferencia entre ee.Image.clip() y ee.Filter.bounds()?
Consulta este hilo de GIS Stack Exchange.
La función ee.Image.clip() enmascara los píxeles que no se intersecan con un ee.Geometry o ee.Feature determinado, lo que los hace transparentes en las visualizaciones y los excluye de los cálculos. Puedes
conceptualizarlo como recortar píxeles de una imagen.
La función ee.Filter.bounds()
filtra los objetos ee.Image de un ee.ImageCollection según
la intersección de la imagen con un ee.Geometry o ee.Feature. Se usa para limitar
el alcance de un análisis solo a las imágenes que se cruzan con una región determinada,
lo que ayuda a optimizar las expresiones.
¿Cómo se convierten los píxeles de imagen en colecciones de objetos, con un objeto por píxel?
Usa la función ee.Image.sample(). Consulta ejemplos de uso en la página de referencia
de la API de la función.
¿Cuál es la diferencia entre ee.ImageCollection.merge() y ee.ImageCollection.combine()?
La función ee.ImageCollection.merge()
combina todas las imágenes de dos colecciones en una sola,
independientemente de si sus imágenes respectivas tienen bandas, metadatos,
CRS o escala coincidentes. Es la unión de dos colecciones. El método combine()
combina las bandas de imágenes coincidentes de dos colecciones en una sola
colección. Las imágenes que coinciden comparten el mismo ID (propiedad system:index). Es una unión interna de dos colecciones basada en el ID de la imagen, en la que se combinan las bandas de las imágenes que coinciden. Para las imágenes que coinciden, las bandas de la imagen secundaria se
agregan a la imagen principal (el reemplazo es opcional). Si no hay imágenes que coincidan, se devuelve una colección vacía.
¿Cómo filtrar colecciones de imágenes en varios intervalos de fechas?
Consulta este hilo de GIS Stack Exchange.
Puedes merge() varias colecciones juntas o usar ee.Filter.or().
¿Cómo crear un cuadro delimitador alrededor de un punto determinado?
// Buffer the point by a chosen radius and then get the bounding box.
var LNG = -117.298;
var LAT = 45.162;
var point = ee.Geometry.Point([LNG, LAT]);
var buffer = point.buffer(30000); // half of box width as buffer input
var box = buffer.bounds(); // draw a bounding box around the buffered point
Map.centerObject(box);
Map.addLayer(point);
Map.addLayer(box);
// Map the buffer and bounds procedure over a point feature collection.
var pointCol = ee.FeatureCollection([
ee.Feature(ee.Geometry.Point([LNG + 1, LAT])),
ee.Feature(ee.Geometry.Point([LNG - 1, LAT]))
]);
var boxCol = pointCol.map(function(feature) {
var box = feature.buffer(30000).bounds();
return feature.setGeometry(box.geometry());
});
Map.addLayer(boxCol);
Data Catalog
¿Puedes agregar el conjunto de datos X?
Informa un error de solicitud de conjunto de datos siguiendo la guía de solicitud de conjunto de datos.
También puedes subir datos a tu carpeta principal de Earth Engine. Consulta Importa datos de ráster e Importa datos de tablas.
Un conjunto de datos existente tiene una versión nueva
Informa un error del conjunto de datos siguiendo la guía de solicitud de conjuntos de datos e indica que solicitas una actualización del conjunto de datos.
Un conjunto de datos existente no se actualiza o le faltan recursos
Antes de informar un problema, verifica, si es posible, que los recursos seleccionados realmente existan en el sitio del proveedor del conjunto de datos. Consulta la guía sobre imágenes faltantes para obtener más detalles.
Si buscas un recurso filtrando un ImageCollection, asegúrate de que
tus filtros no sean demasiado restrictivos.
En particular, ten en cuenta lo siguiente:
La ESA no produjo los datos de SR de Sentinel-2 (datos de nivel 2) para las escenas de nivel 1 iniciales.
Landsat no tiene cobertura mundial antes del año 2000.
Un conjunto de datos existente tiene valores incorrectos
Publica en el foro para desarrolladores. Incluye una secuencia de comandos que acerque la resolución original del recurso y permita ver con claridad qué valores son incorrectos. Explica dónde observaste exactamente el valor alternativo.
¿Dónde más puedo preguntar sobre los conjuntos de datos?
Si tienes preguntas sobre los conjuntos de datos de la NASA, consulta el foro de Earth Data de la NASA.
Si tienes preguntas sobre las cajas de herramientas que operan en los conjuntos de datos de Copernicus, consulta los foros de S1, S2 y S3.
¿Qué tan grande es el catálogo de EE?
Hasta octubre de 2023, el catálogo contiene más de 1,000 conjuntos de datos. Su tamaño en disco es de más de 90 petabytes (después de tener en cuenta la compresión sin pérdidas).
¿Con qué frecuencia se actualizan los datos en EE?
Normalmente, todos los conjuntos de datos en curso se actualizan al menos una vez al día (aunque no todos esos conjuntos de datos tienen datos nuevos todos los días). Algunos conjuntos de datos se actualizan varias veces al día. Sin embargo, no hay ninguna política que garantice la presencia de los recursos más recientes en el catálogo.
¿Cómo puedo ver el contenido del catálogo de EE de forma programática?
La lista de conjuntos de datos se exporta en el formato STAC a
un bucket de Google Cloud Storage gs://earthengine-stac.
El archivo de entrada es
catalog.json.
¿Puedo usar datos o imágenes de Google Maps para realizar análisis?
Google no otorga licencias ni vende datos de mapas base para su análisis.
¿Cómo puedo encontrar la fecha en que se transfirió un recurso?
La propiedad de recurso 'system:version' es la marca de tiempo de transferencia, con el formato de microsegundos desde el tiempo Unix. Este es un ejemplo en el que se convierte la marca de tiempo de transferencia
de una imagen de Landsat en un formato legible por humanos.
var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));
¿El catálogo de Earth Engine tiene metadatos JSON-LD?
Sí, los metadatos de JSON-LD están incorporados en las páginas HTML del catálogo. Por ejemplo, la página de Sentinel-2 contiene el siguiente bloque:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Earth Engine Data Catalog",
"item": "https://developers.google.com/earth-engine/datasets"
},{
"@type": "ListItem",
"position": 2,
"name": "Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
"item": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_HARMONIZED"
}]
}
</script>
Landsat
¿Cómo se implementa el algoritmo simpleComposite?
La implementación del servidor equivale a este código de JavaScript.
¿Cómo puedo crear compuestos sin nubes a partir de los datos de reflectancia de la superficie de Landsat?
Los datos de Landsat de nivel 2 (reflectancia de la superficie) tienen varias bandas de calidad que se pueden usar para enmascarar nubes y otros artefactos de imagen no deseados. En esta publicación de GIS Stack Exchange, se proporciona un ejemplo del uso de estas bandas para procesar imágenes de SR de Landsat 8 y crear una composición mediana sin nubes. Se usa el mismo procedimiento para crear una composición sin nubes que se usará en los ejemplos de clasificación supervisada de la Guía para desarrolladores.
¿Es necesaria la armonización de la reflectancia de la superficie de Landsat entre sensores?
Roy et al., 2016 incluyó un análisis de las diferencias de reflectancia entre la TOA de Landsat 7-8 y la reflectancia de la superficie. Publicaron los coeficientes de OLS y RMA para que los lectores pudieran transformar los valores de reflectancia de los datos de un sensor en otro. La línea final del artículo dice: "Aunque las diferencias entre los sensores son bastante pequeñas, pueden tener un impacto significativo según la aplicación de los datos de Landsat". Sin embargo, este análisis se basó en datos previos a la recopilación.
Las mejoras realizadas durante el reprocesamiento de la Colección 1 y la Colección 2 pueden influir en la relación entre los sensores, pero, hasta donde sabemos, no se han realizado análisis similares a los de Roy et al. (2016) para los datos de la Colección 1 o la Colección 2. A pesar de que no hay un análisis formal, parece haber un consenso general entre los usuarios influyentes de Landsat de que no se necesita ninguna corrección para los datos de la Colección 2, Nivel 2 (reflectancia de la superficie). Por ejemplo, en una respuesta a una pregunta sobre la necesidad de armonización de la Colección 2, Nivel 2, Mike Wulder del equipo científico de Landsat señaló que, según la naturaleza de la aplicación de interés (incluidos el mapeo de la cobertura del suelo y la detección de cambios), los productos de reflectancia de la superficie de la Colección 2 son muy adecuados y confiables, sin necesidad de un ajuste entre sensores.
¿Cómo puedo enmascarar nubes y sombras de nubes en imágenes de MSS?
El módulo msslib de terceros para el editor de código de JavaScript incluye una implementación del algoritmo MSScvm, así como otras funciones útiles para explorar y preparar datos de MSS.
Administración de datos
¿Quién es el propietario de los datos que subo?
Según las Condiciones del Servicio de Earth Engine, los clientes son propietarios de los datos que suben a Earth Engine.
No puedo subir datos.
Verifica el estado de la tarea de carga en el panel Tareas, en la esquina superior derecha del Editor de código. También puedes consultar la página de tareas dedicada.
Si no hay ninguna tarea, es probable que hayas intentado subir el archivo a través del editor de código, pero, debido a un problema de red, el archivo nunca terminó de subirse, por lo que nunca se creó la tarea. Intenta usar otro navegador o una computadora diferente.
Si hay una tarea con errores, examina el error que se muestra. Si no hay un mensaje de error específico, primero verifica que el archivo no esté dañado. Para ello, ejecuta gdalinfo en los archivos de trama o ogr2ogr en los archivos vectoriales.
Estos comandos intentarán leer todos los datos de los archivos de origen y
mostrarán errores si los archivos están dañados.
Ejemplo de llamada a gdalinfo:
gdalinfo -mm -stats -checksum file.tif
Ejemplo de llamada a ogr2ogr que convertirá in.shp en out.csv:
ogr2ogr -lco GEOMETRY=AS_WKT -f CSV out.csv in.shp
Si el archivo parece válido, publica el ID de la tarea con errores como texto (no como una captura de pantalla) en la lista de distribución de desarrolladores.
Los IDs de tarea tienen este formato: 4C25GIJBMB52PXTEJTF4JLGL. Haz que tu
archivo de origen sea legible de forma pública, si es posible. Si es un archivo privado, compártelo
solo con earthengine@google.com si quieres que el equipo de Earth Engine
lo examine. Si no es posible compartir el archivo de origen, proporciona al menos
el resultado de gdalinfo -mm -stats -checksum.
Si Earth Engine no admite una proyección determinada, deberás volver a proyectar los datos antes de subirlos con, por ejemplo, gdalwarp.
¿Cómo subo un archivo en NetCDF o en otro formato de ráster no compatible?
Solo se pueden subir archivos GeoTIFF a Earth Engine. Otros formatos compatibles con GDAL
se pueden convertir en GeoTIFF con
gdal_translate. Ejemplo:
gdal_translate -co COMPRESS=DEFLATE file.nc file.tif
Ten en cuenta que algunos archivos NetCDF o HDF constan de varios subconjuntos de datos que se pueden
descubrir con gdalinfo. En este caso, el comando gdal_translate se verá de la siguiente manera (ten en cuenta la ruta entre las comillas dobles):
gdal_translate HDF4_EOS:EOS_GRID:"/tmp/MCD12Q1.A2001001.h00v08.005.2011055224312.hdf":MOD12Q1:Land_Cover_Type_1 file.tif
A veces, los archivos NetCDF no tienen una proyección que GDAL reconozca. En este
caso, deberás establecer la proyección y la extensión espacial en la
línea de comandos de gdal_translate. Ejemplo:
gdal_translate -a_srs EPSG:4326 -a_ullr -180 90 180 -90 file.nc file.tid
¿Qué algoritmos de compresión puedo usar para los GeoTIFF subidos?
Para subirlos, los GeoTIFF se pueden comprimir con DEFLATE, JPEG, JPEG-XL/JXL, LERC,
LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP o ZSTD. Los COG que Earth Engine lee
en el lugar (con ee.Image.loadGeoTIFF() o como recursos respaldados por COG) pueden usar
DEFLATE, JPEG, LZW, PACKBITS, ZSTD o ninguna compresión (consulta
Prácticas recomendadas para COG).
ZSTD es una buena opción general, ya que se descomprime con rapidez y, al mismo tiempo, ofrece
una buena compresión de la mayoría de las imágenes.
Para aplicar la compresión ZSTD cuando uses gdal_translate, agrega estas opciones. Si
los datos tienen valores de punto flotante, cambia PREDICTOR a 3. (Para los archivos que
planeas registrar como COG en lugar de subirlos, consulta la
guía de registro de COG).
gdal_translate in.tif out.tif \
-co BIGTIFF=YES \
-co TILED=YES \
-co BLOCKXSIZE=512 \
-co BLOCKYSIZE=512 \
-co COMPRESS=ZSTD \
-co PREDICTOR=2 \
-co ZSTD_LEVEL=16 \
-co INTERLEAVE=BAND \
-co NUM_THREADS=ALL_CPUS
Mi transferencia de datos de trama se está ejecutando desde hace días y no finaliza.
Con gdalinfo, verifica si tu archivo tiene configurada la siguiente opción de GDAL:
INTERLEAVE=PIXEL. En el caso de los archivos con esta opción y muchas bandas, es posible que la transferencia
nunca finalice, ya que el diseño de esos archivos hace que las lecturas sean muy lentas.
Intenta convertir esos archivos al diseño intercalado por bandas antes de subirlos:
gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif
Esto se aplica a la transferencia; los recursos respaldados por COG admiten ambas intercalaciones (consulta archivos de una sola banda frente a archivos de varias bandas).
Los rásteres que subí no coinciden con el mapa base.
Si los datos están ligeramente desplazados del mapa base, es probable que la proyección tenga un datum incorrecto (suposición sobre la forma de la Tierra).
Esto sucede con mayor frecuencia con
la proyección sinusoidal que no se puede codificar por completo en los metadatos de GDAL. Cuando
sepas cuál debe ser la proyección de destino (p.ej., SR-ORG:6974 para los archivos que usan
la proyección sinusoidal de MODIS), establece la marca --crs durante
la carga de la línea de comandos
o el campo crs del
manifiesto de carga.
Si los datos aparecen muy distorsionados o en un lugar completamente equivocado, es probable que la proyección o la transformación afín sean incorrectas.
Mi ráster solo aparece en el hemisferio oriental.
Es probable que hayas subido un ráster global que abarca el rango de longitud [0, 360]. Sin embargo, Earth Engine requiere que las imágenes de ráster estén en el rango [-180, 180]. Intercambia las mitades izquierda y derecha del ráster antes de la transferencia. Consulta estas sugerencias de GIS Stack Exchange.
¿Por qué mi imagen de clasificación transferida se ve moteada?
Es probable que hayas usado la política de piramidación predeterminada de MEAN.
Para las imágenes de clasificación, se debe usar la política de pirámide MODE. Para las imágenes de QA/máscara de bits, se debe usar la política de pirámide SAMPLE.
Recibo el siguiente error: No data value -128.0 cannot be applied to band #0 of type Short<0, 255>.
GDAL no puede tratar las bandas de un solo byte como si contuvieran números enteros con signo, por lo que lee esas bandas como números enteros sin signo. Esto entraría en conflicto con los valores negativos de sin datos.
Si tus valores son, en realidad, números enteros con signo, usa la carga de manifiesto y agrega lo siguiente a la sección del conjunto de mosaicos que contiene tu archivo: data_type: "INT8"
Si tus valores son números enteros sin signo, tu archivo tiene un valor de nodata incorrecto. Puedes anularlo en la carga con el valor de datos correcto (o un valor que nunca ocurra, si existe). También puedes usar gdal_translate -a_nodata para cambiar el valor de nodata o gdal_edit.py -unsetnodata para quitarlo.
¿Cómo subo un archivo en GeoJSON o en otro formato vectorial no compatible?
Usa ogr2ogr para traducir
los formatos compatibles con OGR a CSV o SHP. Ejemplo:
or2ogr -f "ESRI Shapefile" file.shp file.kml
Ten en cuenta que, en las cargas de archivos CSV, la columna de geometría puede contener GeoJSON.
Quiero subir datos con Python o subir muchos archivos a la vez.
Usa la carga de línea de comandos. Estas cargas requieren que los archivos de origen se coloquen primero en un bucket de GCS (Google Cloud Storage). El uso de GCS no tiene costo si te mantienes dentro de los límites del nivel gratuito; consulta la página de precios.
Quiero subir un mosaico de imágenes de trama grande dividido en muchas tarjetas.
Si todos los archivos tienen la misma proyección y el mismo tamaño de píxel, solo súbelos juntos al mismo recurso; se creará un mosaico automáticamente.
Si los archivos tienen proyecciones o tamaños de píxeles diferentes, no se pueden unir en un solo recurso de ráster. En su lugar, sube cada mosaico como un recurso independiente al
mismo ImageCollection que se puede unir con
ImageCollection.mosaic()
Estoy intentando subir un mosaico y recibo errores sobre mosaicos que no coinciden.
Las tarjetas de los mosaicos de ráster de Earth Engine deben tener la misma proyección y el mismo tamaño de píxel. Además, las tarjetas deben alinearse exactamente en los límites de los píxeles.
Estoy intentando subir un archivo desde un bucket de GCS, pero Earth Engine no lo encuentra.
Es posible que hayas usado diferentes Cuentas de Google para la carga de GCS y para conectarte a Earth Engine. Asegúrate de que la cuenta que usas para conectarte a Earth Engine pueda leer el archivo de GCS. Si el acceso múltiple del navegador hace que esto sea confuso, conéctate a Earth Engine en una ventana de incógnito del navegador.
Quiero exportar muchos recursos a la vez.
Debes exportar cada imagen por separado.
Quiero mover o borrar un Folder o un ImageCollection con un solo comando.
earthengine rm -r borra una carpeta o colección y todo su contenido, pero un
recurso a la vez, por lo que una colección grande puede tardar horas. Para acelerar el proceso, borra los
elementos secundarios en paralelo desde una secuencia de comandos y, luego, borra el elemento superior (consulta
Trabaja con colecciones grandes).
Este mismo enfoque funciona para cualquier colección o carpeta plana. Una carpeta que
contiene otras carpetas o colecciones debe vaciarse de abajo hacia arriba, ya que un
contenedor no se puede borrar hasta que esté vacío. Para mover, usa
mv de la misma manera.
Quiero acceder directamente a los datos de Earth Engine desde fuera de EE.
QGIS tiene un complemento de Earth Engine.
GDAL tiene un controlador de Earth Engine.
Otros sistemas pueden usar la API de REST de EE.
Me gustaría actualizar una parte de mi recurso de Earth Engine sin volver a transferirlo por completo.
No es posible actualizar los datos de ráster o vectoriales subidos a EE. Solo se pueden actualizar las propiedades de los metadatos de activo. La excepción son los recursos respaldados por COG, que puedes dirigir a un archivo de Cloud Storage actualizado volviendo a registrarlos con la opción de reemplazar habilitada.
Estoy perdiendo el acceso a mi cuenta. ¿Qué hago con mis recursos?
Si las políticas de la cuenta original permiten la transferencia de datos, comparte tus recursos con otra cuenta y, luego, cópialos para que sean propiedad de la cuenta nueva. Usa la utilidad de copia de línea de comandos si hay muchos recursos para mover.
Si se borra una cuenta, ya no se podrá acceder a los recursos que le pertenecen.
Mi imagen exportada está en el lugar equivocado.
En algunas proyecciones, como la sinusoidal o la cónica, los archivos GeoTIFF a veces no pueden almacenar todos los parámetros de proyección necesarios. Esto genera un archivo exportado que aparece en el lugar incorrecto cuando se visualiza en herramientas de GIS de escritorio o se vuelve a transferir a EE.
Para solucionar este problema, especifica un parámetro crs de exportación que se sepa que funciona bien
con los archivos GeoTIFF; por ejemplo, usa el código EPSG para la zona UTM
que contiene tu área de interés.
Los recursos de colecciones de objetos geográficos exportados no conservan las propiedades que establecí.
Ninguna función de Export.table.* conserva las propiedades a nivel de tabla en el resultado.
Muchos formatos de salida (p.ej., CSV, GeoJSON) no admiten estos
metadatos. La función Export.table.toAsset podría admitir propiedades a nivel de tabla, pero no lo hace en este momento.
Las tablas exportadas a Drive en formato CSV se convierten al formato XLSX.
Según la configuración de Google Drive, las tablas CSV que exportas desde Earth Engine se pueden convertir en archivos XLSX con efectos no deseados, como conversiones de tipos de datos. Sigue estos pasos para modificar el comportamiento de las exportaciones posteriores.
- En Google Drive en la Web, haz clic en el ícono de ajustes de Configuración en la esquina superior derecha.
- Haz clic en Configuración.
- Desplázate hasta "Convertir los archivos subidos al formato del editor de Documentos de Google" y desmarca la casilla.
GeoTIFF optimizados para la nube (COG)
Para obtener información general, consulta la descripción general de COG y la guía de registro de COG.
Compartí un recurso respaldado por COG, pero mis colaboradores reciben un error de permiso.
Un recurso respaldado por COG es un puntero a los archivos de tu bucket de Cloud Storage, por lo que los colaboradores necesitan acceso de lectura tanto al recurso de Earth Engine como al bucket. En el bucket, otórgales los roles Visualizador de objetos de Storage y Visualizador de buckets de Storage. Un error de permiso en un recurso que, de lo contrario, pueden ver, suele significar que falta uno de los dos. Consulta Configura permisos.
¿Qué ubicación de bucket de Cloud Storage debo usar para almacenar recursos de COG?
Solo se admiten algunas ubicaciones de EE.UU., y Earth Engine rechaza las solicitudes de registro y lectura de buckets en cualquier otro lugar. Consulta las ubicaciones de buckets compatibles.
Reemplacé un archivo COG en Cloud Storage. ¿Por qué el recurso no se carga o sigue mostrando los datos antiguos?
Cuando registras un COG, Earth Engine fija la generación (versión) del objeto del archivo, por lo que reemplazar el archivo in situ no actualiza el recurso. Vuelve a registrar el recurso con el mismo nombre y la opción de reemplazo habilitada. No es necesario que lo borres primero. Consulta Actualiza, reemplaza y borra recursos respaldados por COG.
¿Cómo puedo saber a qué versión de un archivo apunta mi recurso respaldado por COG?
Los metadatos del activo (ee.data.getAsset()) muestran la generación fijada como un
sufijo en el URI del archivo. Consulta
Generaciones de objetos.
¿Qué sucede si borro un archivo COG en Cloud Storage, pero no el recurso de Earth Engine, o viceversa?
Son independientes. Si borras el recurso de Earth Engine, tus archivos en Cloud Storage permanecerán intactos, y si borras el archivo, el recurso permanecerá en su lugar, pero, por lo general, sus píxeles no se podrán leer. Consulta Ciclos de vida independientes.
¿Cuál es la forma más rápida de borrar o reemplazar un ImageCollection grande respaldado por un COG?
No hay eliminación por lotes ni recursiva en la API de Earth Engine, y
earthengine rm -r borra un recurso a la vez. Si reemplazas imágenes,
vuelve a registrarlas con la opción de reemplazar habilitada en lugar de borrarlas. Si las
borras, paraleliza desde una secuencia de comandos. Consulta
Trabaja con colecciones grandes
para conocer el enfoque y obtener una secuencia de comandos.
¿Por qué mi registro de COG no aparece en la pestaña Tareas?
Registrar un COG es una llamada a la API síncrona que solo indexa los metadatos del archivo, no un trabajo de transferencia por lotes, por lo que no crea una tarea. El recurso está disponible en la pestaña Recursos en cuanto se devuelve la llamada. Consulta Envía la solicitud de registro.
¿Puedo combinar varios archivos COG en un solo recurso de Earth Engine?
Solo cuando cada archivo contiene diferentes bandas de la misma escena: enumera cada archivo
como su propio conjunto de mosaicos en el manifiesto y asigna las bandas a los conjuntos de mosaicos. No puedes crear un mosaico
con archivos adyacentes espacialmente en un recurso respaldado por COG. Registra cada archivo como su
propia imagen en un ee.ImageCollection y llama a mosaic(). Consulta las
restricciones del manifiesto.
¿Qué esquemas de compresión, tamaños de mosaicos y tipos de píxeles pueden usar los recursos respaldados por COG?
Consulta las prácticas recomendadas para preparar COG externos para conocer los esquemas de compresión, los tamaños de mosaico y los tipos de datos de píxeles admitidos. Los archivos en formatos de compresión que Earth Engine no puede leer directamente como COG se pueden subir como recursos estándar.
Recibo el error "No se pudieron leer los metadatos del TIFF en los primeros 10,000,000 de bytes".
Earth Engine solo lee el comienzo de un archivo cuando lo carga o registra; las imágenes grandes con muchas tarjetas y los archivos truncados lo superan. Consulta Elige las dimensiones de los archivos para conocer el límite y cómo mantenerte por debajo de él.
¿En qué se diferencia ee.Image.loadGeoTIFF() de un recurso registrado cuando cambia el archivo?
ee.Image.loadGeoTIFF() lee la versión actual del archivo en cada
cálculo o solicitud de tarjeta de mapa, por lo que detecta los reemplazos (de manera desigual en un mapa,
ya que las tarjetas de mapa renderizadas permanecen almacenadas en caché). Un recurso registrado siempre fija la
generación con la que se registró y se debe volver a registrar para ver un archivo nuevo,
pero, a cambio, se indexan su huella y sus metadatos, lo que hace que se pueda usar
en colecciones grandes. Consulta
Lee COG desde Cloud Storage.
Editor de código
No puedo acceder al editor de código porque me solicita que use la cuenta incorrecta.
Sal de la cuenta, selecciona la cuenta que está registrada para usar Earth Engine en la página "Elige una cuenta" y, luego, vuelve a seleccionar la misma cuenta en la segunda página "Elige una cuenta para continuar al editor de código de Earth Engine" (la redacción exacta puede ser diferente).
Quiero tomar una captura de pantalla de un mapa global, pero no me gusta la proyección de Web Mercator.
La proyección de mapas que se usa en el editor de código es
Web Mercator
('EPSG:3857'). Aumenta el tamaño de los objetos que están lejos del ecuador, lo que hace que
las regiones de latitudes altas parezcan mucho más grandes de lo que realmente son,
en comparación con las regiones cercanas al ecuador. No puedes cambiar la proyección del lienzo del mapa del editor de código, pero puedes "pintar" una imagen en la proyección que elijas en el lienzo de Web Mercator con el método ee.Image.changeProj.
Consulta la página de referencia de la API del método para ver un ejemplo de cómo mostrar un DEM global en el mapa del editor de código en la proyección de Robinson.
Ten en cuenta que esta técnica solo debe usarse con fines de visualización, ya que el
inspector y las herramientas de dibujo del editor de código siguen funcionando en Web Mercator.
Mi secuencia de comandos no se guarda (Script error: Unknown commit).
Si recibes un mensaje Script error: Unknown commit cuando guardas una secuencia de comandos,
es probable que el repositorio en el que estás guardando no esté sincronizado.
La causa de este estado es variable y difícil de identificar. Para resolver el
problema, intenta actualizar la lista de secuencias de comandos con el botón que se encuentra en la esquina superior derecha
de la pestaña Secuencia de comandos. Si eso no funciona, intenta crear un repositorio nuevo con el botón Nuevo de la pestaña Secuencia de comandos y guardar tu secuencia de comandos allí (es posible que debas mover las secuencias de comandos al repositorio nuevo desde el repositorio desincronizado).
¿Por qué veo errores 400 repetidos en el editor de código?
Si ves errores 400 repetidos en el editor de código, navega a https://myaccount.google.com/connections, busca "Editor de código de Earth Engine" en la lista de apps y servicios, selecciónalo y, luego, selecciona "Borrar todas las conexiones que tienes con el editor de código de Earth Engine" y confirma. Luego, abre el editor de código y vuelve a autenticarte.
¿Cómo recupero las secuencias de comandos y las carpetas borradas?
Si borras accidentalmente una secuencia de comandos o una carpeta dentro de un repositorio existente, el historial completo de confirmaciones se conserva en los registros de Git en nuestros servidores. Puedes restablecer las secuencias de comandos o las carpetas borradas clonando el repositorio de forma local con las herramientas de línea de comandos estándar de Git.
Sin embargo, si borras un repositorio completo (users/username/repository),
se quitarán de forma permanente el repositorio y su historial de confirmaciones de
earthengine.googlesource.com, y no se podrán deshacer ni recuperar.
Para obtener instrucciones paso a paso sobre cómo generar credenciales de Git, clonar tu repositorio y restablecer archivos o carpetas borrados, consulta la guía de recuperación de secuencias de comandos y migración de repositorios.
¿Cómo puedo cambiar el nombre de la raíz de mi repositorio de secuencias de comandos?
El directorio raíz de tu secuencia de comandos (users/username) está vinculado al registro original de tu cuenta de Earth Engine. No se puede cambiar el nombre directamente en el backend,
ya que, si lo haces, se romperán las secuencias de comandos externas o los proyectos de colaboradores que
importen tu código modular con la
ruta de acceso require('users/username/repository:...').
Si necesitas un espacio de nombres nuevo, la solución alternativa admitida es migrar tu trabajo a una cuenta nueva:
- Registra una nueva cuenta de Earth Engine con tu nueva Google Identity (que genera una raíz
users/new_usernamelimpia). - Sigue las instrucciones de migración del repositorio para clonar tu repositorio anterior y enviar su historial completo al nuevo repositorio vacío.
Consideraciones importantes:
- Módulos públicos: Si tienes módulos públicos de los que dependen otras personas, te recomendamos que mantengas activos tu cuenta y tu repositorio anteriores para no interrumpir sus flujos de trabajo.
- Secuencias de comandos privadas: Si tus secuencias de comandos son completamente privadas, puedes actualizar
tus declaraciones de importación de
require()para que hagan referencia a la nueva ruta de acceso del repositorio y, luego, borrar de forma segura los repositorios antiguos.