Preguntas frecuentes

Preguntas generales

Tengo un problema y 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, se informa el ID de la tarea con errores. Los IDs de tareas tienen el siguiente formato: 4C25GIJBMB52PXTEJTF4JLGL. Puedes encontrarlos en la pestaña Tarea 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.

Consulta las páginas de EDU.

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 indica que "… no es una función"?

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 entre mayúsculas y minúsculas. Verifica la ortografía con la referencia de la API.

Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)

Falta la conversión de tipos: Los valores que se muestran a partir 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)

Combinación de métodos del cliente y del servidor: Asegúrate de no usar métodos estándar de JavaScript o Python (como .push() o .append()) en objetos de Earth Engine. Consulta Cómo evitar 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 está correctamente escrito 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 objetos de EE se realizan del lado del servidor. Los cálculos del cliente no harán lo que esperas. Consulta esta página para obtener más detalles.

¿Cómo puedo usar bucles for o sentencias if/else?

La programación de Earth Engine se realiza con un lenguaje funcional, por lo que los bucles y las operaciones condicionales deben expresarse 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 con las etiquetas de texto, pero puedes hacer lo siguiente:

¿Puedo usar algunas paletas de colores estándar?

Usar un paquete de JS externo ee-palettes

¿Cómo creo mi propio sitio web que usa Earth Engine?

Usa Apps de Earth Engine para aplicaciones básicas. En casos más complejos, puedes compilar apps de App Engine potenciadas por EE.

¿Cómo funcionan los IDs de mapa?

Los IDs de mapa (denominados mapid en toda la API) son claves que permiten a los clientes recuperar mosaicos de mapas. Cada ID es un hash que se crea cuando se proporciona 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 tarjetas de mapa, se debe especificar la ubicación de la tarjeta (x, y, zoom), así como el mapid (la clave de la imagen y las credenciales). El mismo ID se puede reutilizar para cargar muchas fichas 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 resistente 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 es probable que cualquier flujo de trabajo que implique la creación de objetos mapid a una velocidad cercana a la de recuperación de mosaicos esté haciendo algo mal. Earth Engine no tiene ningún extremo de API para quitar, enumerar o administrar estos IDs, ya que son recursos transitorios.

¿Por qué ee.Algorithms.If() imprime tanto el caso verdadero como el falso?

function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());

El algoritmo If() funciona igual que todos los demás algoritmos de Earth Engine, ya que todos sus argumentos deben evaluarse antes de que el algoritmo pueda ejecutarse. El algoritmo obtiene los resultados de trueCase y falseCase, y, luego, elige y devuelve uno según el argumento condition, pero ambos caminos debieron ejecutarse para que esos valores se pasaran al algoritmo en primer lugar.

Aparece el error "El tamaño de la carga útil de la solicitud supera el límite"

Estás intentando enviar una solicitud muy grande a Earth Engine. Por lo general, esto sucede cuando el código usa muchos bucles "for" del cliente o construye un 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 el recorte de 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 un ee.Feature. Se usa para limitar el alcance de un análisis solo a las imágenes que se intersecan con una región determinada, lo que ayuda a optimizar las expresiones.

¿Cómo convertir píxeles de imágenes en colecciones de elementos, con un elemento 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, SRC 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. Las imágenes coincidentes 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 coincidentes. En el caso de las imágenes coincidentes, las bandas de la imagen secundaria se agregan a la imagen principal (la sobrescritura 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. merge() varias colecciones juntas o usa 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 ráster y cómo importar datos de tablas.

Un conjunto de datos existente tiene una nueva versión

Presenta un error del conjunto de datos siguiendo la guía de solicitud de conjuntos de datos y, luego, indica que solicitas una actualización del conjunto de datos.

No se actualiza un conjunto de datos existente o faltan recursos

Antes de informar un problema, verifica, si es posible, que los recursos seleccionados existan realmente 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 activo filtrando un ImageCollection, asegúrate de que tus filtros no sean demasiado restrictivos.

En particular, ten en cuenta lo siguiente:

  • La ESA no produjo datos de SR de Sentinel-2 (datos de nivel 2) para las primeras escenas de nivel 1.

  • Landsat no tiene cobertura mundial antes del año 2000.

Un conjunto de datos existente tiene valores incorrectos

Publica en el foro de desarrolladores. Incluye un script que amplíe 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 datos de la Tierra de la NASA.

Si tienes preguntas sobre las cajas de herramientas que operan en conjuntos de datos de Copernicus, consulta los foros de S1, S2 y S3.

¿Qué tan grande es el catálogo de EE?

En 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érdida).

¿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 los conjuntos de datos de este tipo tienen datos nuevos todos los días). Algunos conjuntos de datos se actualizan varias veces al día. Sin embargo, no hay una 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 formato STAC a un bucket de Cloud Storage de Google gs://earthengine-stac. El archivo de entrada es catalog.json.

¿Puedo usar los datos o las 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 incorporó un recurso?

La propiedad del activo 'system:version' es la marca de tiempo de la transferencia, con el formato de microsegundos desde la época de Unix. A continuación, se muestra un ejemplo que convierte la marca de tiempo de la transferencia de una imagen de Landsat a un formato legible.

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 es equivalente a este código de JavaScript.

¿Cómo puedo crear composiciones 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 las nubes y otros artefactos no deseados de la imagen. 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 un compuesto libre de nubes de mediana. Se usa el mismo procedimiento para crear un compuesto sin nubes que se usará en los ejemplos de clasificación supervisada de la Guía para desarrolladores.

¿Se necesita la armonización de la reflectancia de la superficie de Landsat entre sensores?

Roy et al., En 2016, se incluyó un análisis de las diferencias de reflectancia entre la reflectancia de la superficie y la reflectancia en la parte superior de la atmósfera de Landsat 7-8. Publicaron los coeficientes de OLS y RMA para que los lectores pudieran transformar los valores de reflectancia de los datos de un sensor a otro. La última línea del documento indica: "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 las colecciones 1 y 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 las colecciones 1 o 2. A pesar de que no se realizó 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 la 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 (incluida la detección de cambios y la creación de mapas de cobertura terrestre), los productos de reflectancia de la superficie de la colección 2 son muy adecuados y confiables, sin necesidad de ajustes entre sensores.

¿Cómo puedo enmascarar las nubes y las sombras de las nubes en las 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 ver 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, la carga nunca se completó, por lo que nunca se creó la tarea. Intenta usar otro navegador o computadora.

Si hay una tarea fallida, examina el error que muestra. Si no hay un mensaje de error específico, primero verifica que el archivo no esté dañado ejecutando gdalinfo para archivos ráster o ogr2ogr para archivos vectoriales. Estos comandos intentarán leer todos los datos de los archivos fuente 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 fallida como texto (no como captura de pantalla) en la lista de distribución de correo electrónico para desarrolladores. Los IDs de tareas tienen este formato: 4C25GIJBMB52PXTEJTF4JLGL. Si es posible, haz que tu archivo fuente sea legible de forma pública. Si se trata de 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 fuente, al menos proporciona el resultado de gdalinfo -mm -stats -checksum.

Si Earth Engine no admite una proyección determinada, deberás reproyectar los datos antes de subirlos con, por ejemplo, gdalwarp.

¿Cómo subo un archivo en formato NetCDF o en otro formato ráster no admitido?

Solo se pueden subir archivos GeoTIFF a Earth Engine. Otros formatos compatibles con GDAL se pueden convertir a GeoTIFFs 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 de acceso 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 incluyen una proyección que GDAL reconoce. En este caso, deberás establecer la proyección y la extensión espacial en la línea de comandos 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 archivos GeoTIFF subidos?

Para la carga, los archivos GeoTIFF se pueden comprimir con DEFLATE, JPEG, JPEG-XL/JXL, LERC, LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP o ZSTD. Para la lectura de COG en vivo, puedes usar DEFLATE, JPEG, LZW o ZSTD. ZSTD es una buena opción general, ya que se descomprime rápidamente 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.

gdal_translate in.tif out.tif \
  -co COPY_SRC_OVERVIEWS=YES \
  -co TILED=YES \
  -co BLOCKXSIZE=512 \
  -co BLOCKYSIZE=512 \
  -co COMPRESS=ZSTD \
  -co PREDICTOR=2 \
  -co ZSTD_LEVEL=22 \
  -co INTERLEAVE=BAND \
  -co NUM_THREADS=ALL_CPUS

Mi proceso de transferencia de datos ráster se ejecuta desde hace días y no finaliza.

Con gdalinfo, verifica si tu archivo tiene establecida 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 estos 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

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 ocurre con mayor frecuencia con la proyección sinusoidal, que no se puede codificar por completo en los metadatos de GDAL. Cuando sepas cuál debería ser la proyección de destino (p.ej., SR-ORG:6974 para los archivos que usan la proyección sinusoidal de MODIS), configura la marca --crs durante la carga desde la línea de comandos o el campo crs del manifiesto de carga.

Si los datos parecen muy distorsionados o en el lugar completamente incorrecto, 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 los rásteres 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 ingerida se ve moteada?

Probablemente usaste la política de piramidación predeterminada MEAN. Para las imágenes de clasificación, se debe usar la política de piramidación MODE. Para las imágenes de QA/máscara de bits, se debe usar la política de piramidación MODE.SAMPLE

Recibo el siguiente error: No se puede aplicar el valor de datos -128.0 a la banda núm. 0 del tipo Short<0, 255>.

GDAL no puede tratar las bandas de un solo byte como si contuvieran números enteros con signo, por lo que las lee como números enteros sin signo. Esto entraría en conflicto con los valores negativos de "sin datos".

Si tus valores son números enteros firmados, 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 nodata incorrecto. Puedes anularlo durante la carga con el valor de datos correcto (o un valor que nunca se produzca, 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 formato GeoJSON o en otro formato vectorial no admitido?

Usa ogr2ogr para traducir 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 desde la línea de comandos. Para realizar estas cargas, primero se deben colocar los archivos fuente 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 ráster grande dividido en muchas segmentaciones.

Si todos los archivos tienen la misma proyección y el mismo tamaño de píxel, súbelos juntos al mismo recurso. Se generará un mosaico automáticamente.

Si los archivos tienen diferentes proyecciones o tamaños de píxeles, no se pueden unir en mosaicos en un solo recurso ráster. En su lugar, sube cada segmento como un recurso separado en el mismo ImageCollection que se puede unir en mosaico con ImageCollection.mosaic().

Intento subir un mosaico y recibo errores sobre fichas que no coinciden.

Las mosaicos ráster de Earth Engine deben tener la misma proyección y tamaño de píxel. Además, las tarjetas deben alinearse exactamente en los límites de píxeles.

Intento 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 en 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 en el navegador te confunde, 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.

Primero debes mover o borrar cada recurso y, luego, mover o borrar la carpeta o colección principal. Si hay muchos recursos secundarios, escribe un bucle de shell o Python para iterar sobre ellos.

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.

Quiero actualizar una parte de mi recurso de Earth Engine sin volver a ingerirlo por completo.

No es posible actualizar los datos ráster o vectoriales que se subieron a EE. Solo se pueden actualizar las propiedades de metadatos de los recursos.

Estoy perdiendo el acceso a mi cuenta. ¿Qué hago con mis activos?

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

En algunas proyecciones, como la sinusoidal o la cónica, a veces los archivos GeoTIFF 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 SIG para computadoras o se vuelve a importar a EE.

Para corregir este problema, especifica un parámetro de exportación crs 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.

¿Qué ubicación de bucket de Cloud Storage debo usar para almacenar los recursos de COG?

La respuesta depende de lo que intentes optimizar. Si optimizas el acceso de procesamiento de baja latencia, las mejores ubicaciones de buckets de GCS para almacenar activos de COG son US-CENTRAL*. Consulta la página Ubicaciones de buckets para obtener información sobre otras consideraciones.

Los recursos de la colección de entidades exportada no conservan las propiedades que establecí.

Ninguna función Export.table.* conserva las propiedades a nivel de la tabla en el resultado. Muchos formatos de salida (p.ej., CSV y GeoJSON) no admiten este tipo de metadatos. La función Export.table.toAsset podría admitir propiedades a nivel de la 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 exportes 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.

  1. En Google Drive en la Web, haz clic en el ícono de configuración en la esquina superior derecha.
  2. Haz clic en Configuración.
  3. Desplázate hasta "Convertir los archivos subidos al formato del editor de Documentos de Google" y desmarca la casilla.

Editor de código

No puedo acceder al Editor de código porque me solicita que use la cuenta incorrecta.

Sal, selecciona la cuenta 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 con el editor de código de Earth Engine" (la redacción exacta puede variar).

Quiero tomar una captura de pantalla de un mapa global, pero no me gusta la proyección de Mercator en la Web.

La proyección cartográfica que se usa en el Editor de código es Web Mercator ("EPSG:3857"). Aumenta el tamaño de los objetos lejos del ecuador, lo que hace que las regiones de latitudes altas parezcan mucho más grandes de lo que son en realidad, 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 de 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 Script y guarda tu secuencia de comandos allí (es posible que debas mover las secuencias de comandos al repositorio nuevo desde el repositorio desincronizado).