Extracción de datos de imágenes

Obtén datos de imágenes de Earth Engine

Para obtener datos de imágenes de Earth Engine a Google Drive, Cloud Storage o un recurso de Earth Engine, puedes usar Export y Earth Engine se encargará de todo el trabajo. Si tus trabajos de exportación tienen problemas de escalamiento (p.ej., tardan más de un día, devuelven errores de memoria o de tiempo de espera) o ya conoces un framework como Apache Beam, Spark o Dask, es posible que prefieras los métodos de extracción de datos que se describen aquí. Los flujos de trabajo implementados en estos frameworks se pueden escalar con herramientas de Google Cloud, como Dataflow o Dataproc.

En particular, en esta guía, se describen los métodos para realizar solicitudes de datos de imágenes de forma manual con getPixels o computePixels. Aquí, "datos de imagen" se refiere a arrays multidimensionales de valores de píxeles con escala y proyección coherentes. La región, la escala, la proyección o las dimensiones se especifican en la solicitud. En la página ImageFileFormat, se enumeran los posibles formatos de salida. Los destinos de salida incluyen Cloud Storage o cualquier directorio activado de forma local. Las solicitudes manuales agregan complejidad, pero pueden escalar a cargas de trabajo más grandes.

Cómo obtener datos de imágenes de recursos existentes

Usa getPixels para obtener datos de imágenes de recursos existentes de Earth Engine. Pasas el ID del activo directamente a la solicitud, por lo que no puedes realizar ningún cálculo en los píxeles antes de extraerlos. Se devuelve un bloque de píxeles en la región, la escala, la proyección y el formato especificados. En el siguiente ejemplo, se muestra cómo obtener series temporales de NDVI de una colección de imágenes de MODIS con getPixels.

Obtén datos de imágenes calculadas

Usa computePixels para obtener datos de una imagen calculada, por ejemplo, una compuesta. Con computePixels, pasas un objeto ee.Image calculado a través del parámetro expression. Se devuelve un bloque de píxeles calculados en la región, la escala, la proyección y el formato especificados. En el siguiente ejemplo, se muestra cómo obtener parches de datos multiespectrales de un compuesto de Sentinel-2 sin nubes.

Paralelización manual de solicitudes

Aunque puedes realizar solicitudes para cualquier propósito y en cualquier volumen, es posible que desees paralelizar las solicitudes para flujos de trabajo más grandes. Para realizar muchas de estas solicitudes en paralelo, debes usar el extremo de alto volumen de Earth Engine. La cantidad de solicitudes paralelas que puedes tener se establece según tu cuota de solicitudes interactivas simultáneas. Consulta la página de alto volumen de Earth Engine para obtener detalles sobre cuándo usar el extremo de alto volumen.

Multiprocesamiento

Puedes usar subprocesos para realizar solicitudes simultáneas. Este enfoque se demuestra en los notebooks de ejemplo getPixels y computePixels.

Apache Beam

Puedes usar canalizaciones de Apache Beam para paralelizar solicitudes. Estas canalizaciones se pueden ejecutar de forma local o como trabajos de Google Dataflow. Para ver ejemplos, consulta esta capacitación de Geo for Good o esta demostración de People, Planet and AI. Como alternativa, otras bibliotecas de paralelización incluyen Dask y Apache Spark.