Zephyrnet Logo

Análise de dados geoespaciais com Geemap – KDnuggets

Data:

Análise de dados geoespaciais com Geemap
Ilustração do Autor
 

A análise de dados geoespaciais é uma área destinada a lidar, visualizar e analisar um tipo especial de dados, denominados dados geoespaciais. Comparados aos dados normais, temos dados tabulares com uma coluna adicional, as informações de localização, como latitude e longitude. 

Existem dois tipos principais de dados: dados vetoriais e dados raster. Ao lidar com dados vetoriais, você ainda tem um conjunto de dados tabular, enquanto os dados raster são mais parecidos com imagens, como imagens de satélite e fotografias aéreas. 

Neste artigo, vou me concentrar nos dados raster fornecidos pelo Google Earth Engine, uma plataforma de computação em nuvem que fornece um enorme catálogo de dados de imagens de satélite. Esse tipo de dados pode ser facilmente controlado em seu Jupyter Notebook usando um pacote Python que salva vidas, chamado Geemap. Vamos começar!

O que é o Google Earth Engine?

Análise de dados geoespaciais com Geemap
Captura de tela do autor. Página inicial do Google Earth Engine.
 

Antes de começarmos com a Biblioteca Python, precisamos entender o potencial do Mecanismo do Google Earth. Esta plataforma baseada em nuvem, alimentada pela plataforma Google Cloud, hospeda conjuntos de dados geoespaciais públicos e gratuitos para fins acadêmicos, sem fins lucrativos e comerciais.

 

Análise de dados geoespaciais com Geemap
Captura de tela do autor. Visão geral do catálogo de dados do Earth Engine. 
 

A beleza desta plataforma é que ela fornece um catálogo de vários petabytes de dados raster e vetoriais, armazenados nos servidores do Earth Engine. Você pode ter uma visão geral rápida deste link. Além disso, fornece APIs para facilitar a análise de conjuntos de dados raster. 

O que é Geemap?

Análise de dados geoespaciais com Geemap
Ilustração do autor. Biblioteca Geemap.
 

Mapa Geem é uma biblioteca Python que permite analisar e visualizar grandes quantidades de dados geoespaciais do Google Earth Engine. 

Antes deste pacote já era possível fazer solicitações computacionais através de APIs JavaScript e Python, mas as APIs Python tinham funcionalidades limitadas e careciam de documentação. 

Para preencher essa lacuna, o Geemap foi criado para permitir aos usuários acessar recursos do Google Earth Engine com poucas linhas de código. Geemap é construído sobre eartengine-api, ipyleaflet e folium.

Para instalar a biblioteca, você só precisa do seguinte comando:

pip install geemap

 

Recomendo que você experimente este pacote incrível no Google Colab para compreender todo o seu potencial. Dê uma olhada este livro grátis escrito pelo professor Dr. Qiusheng Wu para começar a usar o Geemap e o Google Earth Engine.

Como acessar o Earth Engine?

Primeiro, precisamos importar duas bibliotecas Python, que serão utilizadas no tutorial:

import ee
import geemap

 

Além do geemap, importamos a biblioteca cliente Python do Earth Engine, chamada ee. 

Esta biblioteca Python pode ser utilizada para autenticação no Earth Engine, mas pode ser mais rápida usando diretamente a biblioteca Geemap:

m = geemap.Map()
m

 

Você precisa clicar na URL retornada por esta linha de código, que irá gerar o código de autorização. Primeiro, selecione o projeto em nuvem e, em seguida, clique no botão “GERAR TOKEN”.

 

Análise de dados geoespaciais com Geemap
Captura de tela do autor. Autenticador de notebook.
 

Depois, será solicitado que você escolha a conta. Recomendo usar a mesma conta do Google Colab se você estiver usando.

 

Análise de dados geoespaciais com Geemap
Captura de tela do autor. Escolha uma conta.
 

Em seguida, clique na caixa de seleção ao lado de Selecionar tudo e pressione o botão “Continuar”. Resumindo, esta etapa permite que o Notebook Client acesse a conta do Earth Engine.

 

Análise de dados geoespaciais com Geemap
Captura de tela do autor. Permita que o Notebook Client acesse sua conta do Earth Engine.
 

Após esta ação, o código de autenticação é gerado e você pode colá-lo na célula do notebook.

 

Análise de dados geoespaciais com Geemap
Captura de tela do autor. Copie o código de autenticação.
 

Depois que o código de verificação for inserido, você poderá finalmente criar e visualizar este mapa interativo:

m = geemap.Map()
m

 

Análise de dados geoespaciais com Geemap
 

Por enquanto, você está apenas observando o mapa base no ipyleaflet, um pacote Python que permite a visualização de mapas interativos no Jupyter Notebook. 

Crie mapas interativos

Anteriormente, vimos como autenticar e visualizar um mapa interativo usando uma única linha de código. Agora podemos personalizar o mapa padrão especificando a latitude e longitude do centróide, o nível de zoom e a altura. Escolhi as coordenadas de Roma para o centro focar no mapa da Europa. 

m = geemap.Map(center=[41, 12], zoom=6, height=600)
m

 

Análise de dados geoespaciais com Geemap

 

Se quisermos alterar o mapa base, existem duas maneiras possíveis. A primeira forma consiste em escrever e executar a seguinte linha de código:

m.add_basemap("ROADMAP")
m

 

Análise de dados geoespaciais com Geemap
 

Alternativamente, você pode alterar manualmente o mapa base clicando no ícone da chave de anel posicionado à direita. 

 

Análise de dados geoespaciais com Geemap
 

Além disso, vemos a lista de mapas básicos fornecidos pelo Geemap:

basemaps = geemap.basemaps.keys()
for bm in basemaps:
   print(bm)

 

Esta é a saída:

OpenStreetMap
Esri.WorldStreetMap
Esri.WorldImagery
Esri.WorldTopoMap
FWS NWI Wetlands
FWS NWI Wetlands Raster
NLCD 2021 CONUS Land Cover
NLCD 2019 CONUS Land Cover
...

 

Como você pode notar, existe uma longa série de mapas base, a maioria deles disponíveis graças ao OpenStreetMap, ESRI e USGS.

Tipos de dados do Earth Engine

Antes de mostrar todo o potencial do Geemap, é importante conhecer dois tipos principais de dados no Earth Engine. Dê uma olhada no Documentação do Google Earth Engine para mais detalhes.

 

Análise de dados geoespaciais com Geemap
Ilustração do autor. Exemplo de tipos de dados vetoriais: Geometry, Feature e FeatureCollection.
 

Ao lidar com dados vetoriais, usamos principalmente três tipos de dados:

  • Geometria armazena as coordenadas necessárias para desenhar os dados vetoriais em um mapa. Três tipos principais de geometrias são suportados pelo Earth Engine: Point, LineString e Polygon.
  • Característica é essencialmente uma linha que combina atributos geométricos e não geográficos. É muito semelhante à classe GeoSeries do GeoPandas.
  • Coleção de recursos é uma estrutura de dados tabular que contém um conjunto de recursos. FeatureCollection e GeoDataFrame são quase idênticos conceitualmente.

 

Análise de dados geoespaciais com Geemap
Captura de tela do autor. Exemplo de tipo de dados de imagem. Ele mostra o modelo australiano de elevação digital suavizado (DEM-S)
 

No mundo dos dados raster, nos concentramos em Imagem objetos. As Imagens do Google Earth Engine são compostas por uma ou mais marcas, onde cada faixa possui um nome específico, estimativa mínima e máxima e descrição.

Se tivermos uma coleção ou série temporal de imagens, Coleção de imagens é mais apropriado como um tipo de dados.

 

Análise de dados geoespaciais com Geemap
Captura de tela do autor. Cobertura do solo Copernicus CORINE.
 

Visualizamos as imagens de satélite que mostram o mapa de cobertura do solo da Europa. Este conjunto de dados fornece as mudanças entre 1986 e 2018.

Primeiramente carregamos a imagem usando ee.Image e, em seguida, selecionamos a banda “landcover”. Finalmente, vamos visualizar a imagem adicionando o conjunto de dados carregado ao mapa como uma camada usando Map.addLayer. 

Map = geemap.Map()
dataset = ee.Image('COPERNICUS/CORINE/V20/100m/2012')
landCover = dataset.select('landcover')
Map.setCenter(16.436, 39.825, 6)
Map.addLayer(landCover, {}, 'Land Cover')
Map

 

Análise de dados geoespaciais com Geemap
Captura de tela do autor.
 

Da mesma forma, podemos fazer o mesmo para carregar e visualizar as imagens de satélite que mostram o mapa de cobertura do solo da Europa. Este conjunto de dados fornece as mudanças entre 1986 e 2018.

 

Análise de dados geoespaciais com Geemap
Captura de tela do autor. Imagens off-line de alta resolução de concentrações de metano.

 

Para visualizar um ImageCollection do Earth Engine, as linhas de código são semelhantes, exceto ee.ImageCollection. 

Map = geemap.Map()
collection = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_CH4').select('CH4_column_volume_mixing_ratio_dry_air').filterDate('2019-06-01', '2019-07-16')
band_viz = {
 'min': 1750,
 'max': 1900,
 'palette': ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red']
}

Map.addLayer(collection.mean(), band_viz, 'S5P CH4')
Map.setCenter(0.0, 0.0, 2)
Map

 

Análise de dados geoespaciais com Geemap
Captura de tela do autor.
 

Isso é ótimo! A partir deste mapa, notamos como o metano, um dos mais importantes contribuintes para o efeito estufa, está distribuído pelo globo. 

Considerações Finais

Este foi um guia introdutório que pode ajudar você a trabalhar com dados do Google Earth Engine usando Python. Geemap é a biblioteca Python mais completa para visualizar e analisar este tipo de dados. 

Se quiser se aprofundar neste pacote, você pode dar uma olhada nos recursos que sugeri abaixo. 

O código pode ser encontrado SUA PARTICIPAÇÃO FAZ A DIFERENÇA. Espero que você tenha achado o artigo útil. Tenha um bom dia!

Recursos úteis:

 
 

Eugênia Anello atualmente é pesquisador do Departamento de Engenharia da Informação da Universidade de Pádua, Itália. Seu projeto de pesquisa é focado em Aprendizagem Contínua combinada com Detecção de Anomalias.

local_img

Inteligência mais recente

local_img