Extração de dados de imagem

Como receber dados de imagem do Earth Engine

Para transferir dados de imagem do Earth Engine para o Google Drive, o Cloud Storage ou um recurso do Earth Engine, use Export. O job é processado inteiramente pelo Earth Engine. Se os jobs de exportação tiverem problemas de escalonamento (por exemplo, levarem mais de um dia, retornarem erros de memória ou de tempo limite) ou se você já estiver familiarizado com um framework como Apache Beam, Spark ou Dask, talvez prefira os métodos de extração de dados descritos aqui. Os fluxos de trabalho implementados nesses frameworks podem ser escalonados usando ferramentas do Google Cloud, como o Dataflow ou o Dataproc.

Especificamente, este guia descreve métodos para fazer solicitações manuais de dados de imagem usando getPixels ou computePixels. Nesse caso, "dados de imagem" significa matrizes multidimensionais de valores de pixel com escala e projeção consistentes. A região, a escala, a projeção e/ou as dimensões são especificadas na solicitação. A página ImageFileFormat lista os possíveis formatos de saída. Os destinos de saída incluem o Cloud Storage ou qualquer diretório montado localmente. As solicitações manuais adicionam complexidade, mas podem ser escalonadas para cargas de trabalho maiores.

Como receber dados de imagem de recursos atuais

Use getPixels para receber dados de imagem de recursos atuais do Earth Engine. Você transmite o código do recurso diretamente para a solicitação, então não é possível fazer nenhum cálculo nos pixels antes de extraí-los. Um bloco de pixels na região, escala, projeção e formato especificados é retornado. O exemplo a seguir demonstra como receber séries temporais de NDVI de uma coleção de imagens MODIS usando getPixels.

Como receber dados de imagens computadas

Use computePixels para receber dados de uma imagem computada, por exemplo, uma composição. Com computePixels, você transmite um objeto ee.Image calculado pelo parâmetro expression. Um bloco de pixels calculados na região, escala, projeção e formato especificados é retornado. O exemplo a seguir mostra como receber patches de dados multiespectrais de um composto do Sentinel-2 sem nuvens.

Carregamento em paralelo manual de solicitações

Embora seja possível fazer solicitações para qualquer finalidade em qualquer volume, talvez você queira paralelizar solicitações para fluxos de trabalho maiores. Para fazer muitas solicitações desse tipo em paralelo, use o endpoint de alto volume do Earth Engine. O número de solicitações paralelas que você pode ter é definido pela sua cota de solicitações interativas simultâneas. Consulte a página de alto volume do Earth Engine para saber quando usar o endpoint de alto volume.

Multissegmentação

É possível usar linhas de execução para fazer solicitações simultâneas. Essa abordagem é demonstrada nos notebooks de exemplo getPixels e computePixels.

Apache Beam

É possível usar pipelines do Apache Beam para paralelizar solicitações. Esses pipelines podem ser executados localmente ou como jobs do Google Dataflow. Para ver exemplos, confira este treinamento do Geo for Good ou esta demonstração de People, Planet and AI. Como alternativa, outras bibliotecas de paralelização incluem Dask e Apache Spark.