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.
Ejecutar en Google Colab
Ver el código fuente en GitHub