GEE no importar datos en una matriz

Lacococha:

Estoy teniendo problemas para importar datos de Google Earth Engine a un array local utilizando la API de Python.

Una versión simplificada de mi código:

import ee
ee.Initialize()

#Load a collection
TERRA = ee.ImageCollection("MODIS/006/MOD09A1").select(['sur_refl_b02', 'sur_refl_b07',"StateQA"])
TERRA = TERRA.filterDate('2003-01-01', '2019-12-31')

#Extract an image
TERRA_list = TERRA.toList(TERRA.size())
Terra_img = ee.Image(TERRA_list.get(1))

#Load as array
Terra_img = Terra.get('sur_refl_b02')
np_arr_b2 = np.array(Terra_img.getInfo())

Pero np_arr_b2parece estar vacío

¿Alguien sabe lo que estoy haciendo mal?

¡Gracias!

Lukasz Tracewski:

Usted no está lejos de la meta, al menos en cierta medida. Hay un límite al número de píxeles pueden ser transferidos a través de una solicitud de este tipo, a saber 262144. Su imagen, cuando se toma durante todo el globo (como lo está haciendo), tiene 3732480000 - sobre 10000x demasiados. Aún así, se puede degustar un área pequeña y poner en el numpy:

import ee
import numpy as np
import matplotlib.pyplot as plt

ee.Initialize()

#Load a collection
TERRA = ee.ImageCollection("MODIS/006/MOD09A1").select(['sur_refl_b02', 'sur_refl_b07',"StateQA"])
TERRA = TERRA.filterDate('2003-01-01', '2019-12-31')

#Extract an image
TERRA_list = TERRA.toList(TERRA.size())
Terra_img = ee.Image(TERRA_list.get(1))
img = Terra_img.select('sur_refl_b02')

sample = img.sampleRectangle()
numpy_array = np.array(sample.get('sur_refl_b02').getInfo())

Es un área de más de Wroclaw, Polonia, y tiene este aspecto cuando se pasa a través de matplotlib imshow:

Imagen de satélite

¿Qué pasa si usted realmente necesita toda la imagen? Ahí es donde Export.image.toDriveentra en juego. Aquí te mostramos cómo descargar la imagen a la unidad de Google:

bbox = img.getInfo()['properties']['system:footprint']['coordinates']
task = ee.batch.Export.image.toDrive(img, 
    scale=10000,
    description='MOD09A1',
    fileFormat='GeoTIFF',
    region=bbox)
task.start()

Después de que se complete la tarea (que se puede controlar también desde Python), se puede descargar la imagen desde la unidad y acceder a ella como cualquier otro GeoTIFF (ver este SIG posterior Stack Exchange).

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=294167&siteId=1
Recomendado
Clasificación