Exemplos de utilização

Nesta seção são apresentados exemplos de uso das funcionalidades presentes no dgipy

Tip

Para executar os comandos abaixo é necessário que você tenha o MongoDB instalado e o comando mongod esteja sendo executado.

Caso tenha dúvidas sobre o MongoDB, consulte a página de Configuração do banco de dados

Criação do índice local de imagens

A primeira etapa necessária para utilizar o dgipy por completo é criar o índice local de imagens

Para fazer isto vamos utilizar a busca de imagens por região, onde iremos criar um polígono sobre todo o território nacional e requisitar a ferramenta que busque todas as imagens disponíveis no CBERS-4 para esta região.

from dgi.catalogo import CatalogoDGI

data_de_busca = {"inicial": "01/01/2019", "final": "25/01/2019"}
localizacoes = {
    "norte": "11.04024846",
    "sul": "-36.49917303",
    "leste": "-30.77297895",
    "oeste": "-74.80618208"
}

catalogo = CatalogoDGI()
catalogo.lista_imagens_dgi_regiao("CB4", "", data_de_busca, localizacoes)

Inicialmente faz-se a importação da classe CatalogoDGI, que popula o banco de dados local com as imagens presentes no catalogo do DGI/INPE. Após isto é feito a definição a definição das latitudes e longitudes da região buscada, sendo elas:

  • norte: Latitude Norte;

  • sul: Latitude Sul;

  • leste: Longitude Leste;

  • oeste: Longitude Oeste.

Após a definição das latitudes/longitudes, cria-se uma instância da classe de busca de imagens e através do método lista_imagens_dgi_regiao a busca por imagens do sensor CBERS-4 é iniciada. Para mais informações de uso deste método consulte a página de descrição do método.

Buscas no índice local de imagens

Como já citado, a etapa de criação do índice local de imagens basicamente salva as informações das imagens disponíveis no DGI/INPE, com este índice criado a busca fica rápida e simples. Esta seção apresenta um exemplo de busca no índice local de imagens

Em todos os exemplos apresentados abaixo será necessário a instância da classe de busca, como apresentado no trecho de código abaixo

from dgi.acesso import BuscaDeImagemNoCatalogo

catalogo_de_imagens_local = BuscaDeImagemNoCatalogo()

Com a instância de busca de imagens criadas, vejamos alguns exemplos de uso. Vamos começar com a busca por datas

imagens_na_data = catalogo_de_imagens_local.busca_imagens_por_data("01/01/2019", "01/03/2019")

Simples assim! Desta forma as imagens que estão dentro do intervalo de datas são selecionadas. Agora faremos a busca por quantidade de nuvem. Neste método de busca são passados 4 parâmetros, cada um destes representando a porcentagem máxima de nuvem em cada um dos quadrantes das imagens.

imagens_sem_nuvem = catalogo_de_imagens_local.busca_image_por_quantidade_de_nuvem(10, 10, 15, 15)

Podemos também fazer buscas utilizando o sensor desejado.

imagens_mux = catalogo_de_imagens_local.busca_imagens_por_instrumento("MUX")

Buscas com localizações também são possíveis, veja que, é possível buscas imagens que fazem intersecção com um determinado ponto, como é apresentado abaixo.

images_interseccao = catalogo_de_imagens_local.busca_imagens_por_intersec_ponto(lat=-4.37491, long=-67.80365)

Além disto pode-se buscar também por imagens utilizando um shape, veja

imagens_no_shape = catalogo_de_imagens_local.busca_imagens_dentro_do_shape([[[-63.185658, -14.595427],
                                                                            [-61.793346, -14.595427],
                                                                            [-61.793346, -15.834096],
                                                                            [-63.185658, -15.834096],
                                                                            [-63.185658, -14.595427]]])

Por fim, a busca também pode ser feita por orbita-ponto, veja:

imagens_na_ob = catalogo_de_imagens_local.busca_imagens_por_orbita_ponto(orbita=100, ponto=200)

Para ver outras consultas disponíveis consulte a página do módulo dgi.acesso.busca.

Realizando pedidos de imagens

Anteriormente foi apresentado como as buscas de imagens já indexadas pelo dgipy devem ser consultadas, mas e após a consulta, o que devemos fazer com as imagens retornadas ? Simples, faremos pedidos utilizando as imagens encontradas! Vejamos como fazer isto.

from dgi.acesso import BuscaDeImagemNoCatalogo, FacilitaDGI

facilita_dgi = FacilitaDGI("SEU_USUARIO_DO_CATALOGO", "SUA_SENHA_DO_CATALOGO")
catalogo_de_imagens_local = BuscaDeImagemNoCatalogo()

# Fazendo a busca
imagens_mux = catalogo_de_imagens_local.busca_imagens_por_instrumento("MUX")

# Realizando o pedido com as imagens encontradas
informacoes_do_pedido = facilita_dgi.realiza_pedido(imagens_mux)

Após realizar o pedido, o link de aquisição das imagens já estará disponível em seu e-mail de cadastro no catálogo.

Note

A biblioteca permite apenas 200 imagens por pedido.

Baixando imagens de pedidos

Para baixar as imagens é necessário ter realizado o pedido. Com o pedido realizado você terá um link, para baixar as imagens utilizando o dgipy basta pegar este link e inserir na função de aquisição, como apresentado abaixo

from dgi.acesso import BuscaDeImagemNoCatalogo, FacilitaDGI

facilita_dgi = FacilitaDGI("SEU_USUARIO_DO_CATALOGO", "SUA_SENHA_DO_CATALOGO")
imagens_ja_baixadas = facilita_dgi.baixa_imagens_de_link_do_pedido("LINK_DO_PEDIDO", "LOCAL_ONDE_SERA_SALVO")

O objeto retornado pelo método baixa_imagens_de_link_do_pedido contém uma relação com todas as imagens já baixadas pelo usuário. É possível também fazer buscas no grupo de imagens já baixadas, veja na seção seguinte.

Buscando imagens já baixadas

Com o tempo de uso pode ser que você acumule muitas imagens já baixadas, por conta disto o dgipy salva as imagens já baixadas pelo usuário no banco de dados. Assim há uma classe de consulta das imagens já baixadas. Esta seção apresenta exemplos de consultas das imagens já baixadas.

Assim como apresentado na busca de imagens no catalogo local, aqui também é necessário criar uma instância da classe de busca, veja como é feito no código apresentado abaixo.

from dgi.acesso import BuscaImagensJaBaixadas

imagens_salvas = BuscaImagensJaBaixadas()

Com isto, vamos começar a fazer as buscas. Vejamos como recuperar todas a relação de todas as imagens já baixadas.

todas_as_imagens = imagens_salvas.recupera_todas_as_imagens_baixadas()

Este método retorna um DataFrame Pandas com todas as imagens já baixadas. É possível também fazer filtros, veja abaixo a busca de imagens já baixadas por instrumento.

imagens_baixadas_mux = imagens_salvas.recupera_todas_as_imagens_baixadas_por_instrumento("MUX")