A API Earth Engine Python pode ser implantada em um notebook do Google Colaboratory. Os notebooks do Colab são notebooks do Jupyter executados na nuvem e altamente integrados ao Google Drive, o que facilita a configuração, o acesso e o compartilhamento. Se você não conhece os notebooks do Google Colab ou do Jupyter, confira o site de boas-vindas do Colab.
As seções a seguir descrevem como implantar o Earth Engine no Google Colab e visualizar mapas e gráficos usando pacotes Python de terceiros.
Abrir um notebook do Colab
Os notebooks podem ser abertos no Google Drive ou na interface do Colaboratory.
Novo notebook
Google Drive
Abra o Google Drive e crie um novo arquivo.
- Novo > Mais > Colaboratory
- Clique com o botão direito do mouse em uma pasta e selecione More > Colaboratory no menu de contexto.
Interface do Colab
Acesse o site do Colab e crie um novo arquivo.
- File > New > New Python 3 notebook
- Se você já interagiu com o Colab, ao acessar o site vinculado acima, você terá um explorador de arquivos em que poderá iniciar um novo arquivo usando o menu suspenso na parte de baixo da janela.
Notebook atual
Os arquivos de notebook (.ipynb) atuais podem ser abertos no Google Drive e na interface do Colab.
Google Drive
Os notebooks do Colab podem existir em várias pastas no Google Drive, dependendo de onde os arquivos de notebooks foram criados. Os notebooks criados no Google Drive vão existir na pasta em que foram criados ou movidos. Os notebooks criados na interface do Colab vão ser salvos por padrão em uma pasta chamada "Colab Notebooks", que é adicionada automaticamente à pasta "Meu Drive" do Google Drive quando você começa a trabalhar com o Colab.
Os arquivos do Colab podem ser identificados pelo símbolo amarelo "CO" e pela extensão de arquivo ".ipynb". Abra os arquivos clicando duas vezes neles e selecionando Open with > Colaboratory no botão encontrado na parte de cima da página resultante ou clicando com o botão direito do mouse em um arquivo e selecionando Open with > Colaboratory no menu de contexto do arquivo.
Interface do Colab
A abertura de notebooks na interface do Colab permite acessar arquivos do Google Drive, do GitHub e do hardware local. A visita à interface do Colab após o uso inicial faz com que um modal do File Explorer apareça. Nas guias na parte de cima do File Explorer, selecione uma origem e acesse o arquivo .ipynb que você quer abrir. O File Explorer também pode ser acessado na interface do Colab selecionando File > Open notebook ou usando a combinação de teclado Ctrl+O.
Importar a API e receber credenciais
Esta seção demonstra como importar a API Python do Earth Engine e autenticar o acesso. Este conteúdo também está disponível como um notebook do Colab:
A API Earth Engine está incluída por padrão no Google Colaboratory, portanto, só é necessário importar e autenticar. Essas etapas precisam ser concluídas para cada nova sessão do Colab ou se você reiniciar o kernel do Colab ou se a máquina virtual do Colab for reciclada devido à inatividade.
Importar a API
Execute a célula a seguir para importar a API à sua sessão.
import ee
Autenticar e inicializar
Execute a função ee.Authenticate
para autenticar seu acesso aos servidores do Earth Engine e ee.Initialize
para inicializá-lo. Adicione uma célula de código, insira as linhas abaixo, edite o projeto e execute a célula.
# Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project')
Você vai precisar autorizar o acesso à sua conta do Earth Engine. Siga as instruções impressas na célula para concluir esta etapa.
Testar a API
Teste a API imprimindo a elevação do Monte Everest. Antes de usar a API, é necessário inicializá-la. Execute o script Python a seguir em uma nova célula.
# Print the elevation of Mount Everest. dem = ee.Image('USGS/SRTMGL1_003') xy = ee.Geometry.Point([86.9250, 27.9881]) elev = dem.sample(xy, 30).first().get('elevation').getInfo() print('Mount Everest elevation (m):', elev)
Visualização de mapa
Os objetos ee.Image
podem ser mostrados nas células de saída do notebook. Os dois exemplos a seguir
demonstram como exibir uma imagem estática e um mapa interativo.
Imagem estática
O módulo IPython.display
contém a função Image
, que pode mostrar
os resultados de um URL que representa uma imagem gerada a partir de uma chamada para a função getThumbUrl
do Earth Engine. O script a seguir vai mostrar uma miniatura
de um modelo de elevação global.
# Import libraries. import ee from IPython.display import Image # Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project') # Import a DEM and display a thumbnail of it. dem = ee.Image('USGS/SRTMGL1_003') Image(url=dem.updateMask(dem.gt(0)) .getThumbUrl({'min': 0, 'max': 4000, 'dimensions': 512, 'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']}))
Mapa interativo
O pacote folium
pode ser usado para mostrar objetos ee.Image
em um mapa interativo
Leaflet. O Folium não tem um método padrão
para processar blocos do Earth Engine. Portanto, é necessário definir e adicionar um ao módulo folium.Map
antes do uso.
O script a seguir é um exemplo de como adicionar um método para processar blocos do Earth Engine e usá-los para mostrar um modelo de elevação em um mapa do Leaflet.
# Import libraries. import ee import folium # Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project') # Define a method for displaying Earth Engine image tiles to folium map. def add_ee_layer(self, ee_image_object, vis_params, name): map_id_dict = ee.Image(ee_image_object).getMapId(vis_params) folium.raster_layers.TileLayer( tiles = map_id_dict['tile_fetcher'].url_format, attr = "Map Data © Google Earth Engine", name = name, overlay = True, control = True ).add_to(self) # Add EE drawing method to folium. folium.Map.add_ee_layer = add_ee_layer # Fetch an elevation model. dem = ee.Image('USGS/SRTMGL1_003') # Set visualization parameters. vis_params = { 'min': 0, 'max': 4000, 'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']} # Create a folium map object. my_map = folium.Map(location=[20, 0], zoom_start=3) # Add the elevation model to the map object. my_map.add_ee_layer(dem.updateMask(dem.gt(0)), vis_params, 'DEM') # Add a layer control panel to the map. my_map.add_child(folium.LayerControl()) # Display the map. display(my_map)
Visualização de gráficos
Algumas funções do Earth Engine produzem dados tabulares que podem ser plotados por
pacotes de visualização de dados, como matplotlib
. O exemplo a seguir
demonstra a exibição de dados tabulares do Earth Engine como um gráfico de dispersão. Consulte Diagramação no Colaboratory
para mais informações.
# Import libraries. import ee import matplotlib.pyplot as plt # Trigger the authentication flow. ee.Authenticate() # Initialize the Earth Engine module. ee.Initialize(project='my-project') # Fetch a Landsat TOA image. img = ee.Image('LANDSAT/LT05/C02/T1_TOA/LT05_034033_20000913') # Select Red and NIR bands, scale them, and sample 500 points. samp_fc = img.select(['B3','B4']).sample(scale=30, numPixels=500) # Arrange the sample as a list of lists. samp_dict = samp_fc.reduceColumns(ee.Reducer.toList().repeat(2), ['B3', 'B4']) samp_list = ee.List(samp_dict.get('list')) # Save server-side ee.List as a client-side Python list. samp_data = samp_list.getInfo() # Display a scatter plot of Red-NIR sample pairs using matplotlib. plt.scatter(samp_data[0], samp_data[1], alpha=0.2) plt.xlabel('Red', fontsize=12) plt.ylabel('NIR', fontsize=12) plt.show()