Skip to main content

Biblioteca Python para consultar o catálogo e realizar operações com dados do CBERS4A

Project description

Cbers4asat

Descrição

Biblioteca Python para consultar o catálogo e realizar operações com dados do CBERS4A e AMAZONIA1

Sumário

Build da bibilioteca

  1. Baixe o código fonte ou release do projeto
  2. Extraia e entre na pasta
  3. Faça a build com setuptools:
  • python3 setup.py bdist_wheel
  1. Entre na pasta dist/ gerada pelo comando
  2. Copie o arquivo com extenção .whl para o seu projeto e instale com:
  • pip install <nome_do_arquivo>.whl

Descrição: Métodos

  • query: Fazer uma busca na API
    • Parâmetros:
      • location -> List[float] | Tuple(int, int) : Bouding box ou Órbita ponto da área de interesse
      • initial_date: -> date : Data inicial da busca
      • end_date -> date : Data limite da busca
      • cloud -> int : Porcentagem máxima de nuvem da busca
      • limit -> int : Limite de cenas que irão retornar na busca
      • collections (Opcional) -> List[str] : Coleção(ões) de imagens.

  • download: Baixar banda(s) das cenas retornadas do método query
    • Parâmetros:
      • products -> Dict | GeoDataFrame : A cena escolhida retornada da API
      • bands -> List[str] : Banda(s) escolhida(s) dentre as disponíveis na cena
      • threads (Opcional) -> int : Limite de threads para o download paralelo
      • outdir (Opcional) -> str : Caminho onde irá ser salvo as bandas
      • with_folder (Opcional) -> bool : Chave para ativar o agrupamento das bandas baixadas em subpastas

  • to_geodataframe: Transformar dicionário no formato GeoJSON em GeoDataFrame
    • Parâmetros:
      • products -> Dict : As cenas retornados da API
      • crs (Opcional)-> str : Sistema de referência (ex: EPSG:4326)

Exemplos

Buscando um produto com Bounding box:

# Importar a API
from cbers4asat import Cbers4aAPI
from datetime import date

# Login utilizado no http://www2.dgi.inpe.br/catalogo/explore
api = Cbers4aAPI('seu.login@email.com')

# Bouding Box escolhido
bbox = [-63.92944335937501,
        -8.819260401678381,
        -63.79211425781251,
        -8.722218306198739]

# Intervalo de data
data_inicial = date(2021, 8, 25)
data_final = date(2021, 9, 25)

# Fazer uma busca no catálogo e exibir resultados
produtos = api.query(location=bbox, 
                     initial_date=data_inicial, 
                     end_date=data_final, 
                     cloud=100, 
                     limit=100,
                     collections=['AMAZONIA1_WFI_L2_DN','CBERS4A_WPM_L4_DN']) #Optional

print(produtos)
# {'type': 'FeatureCollection', 'features': [{'type': 'Feature', 'id': 'AMAZONIA1_WFI03901620210911CB11', ...

Buscando um produto com Orbita ponto (path row):

# Importar a API
from cbers4asat import Cbers4aAPI
from datetime import date

# Login utilizado no http://www2.dgi.inpe.br/catalogo/explore
api = Cbers4aAPI('seu.login@email.com')

# Órbita ponto escolhida
path_row = (229, 124)

# Intervalo de data
data_inicial = date(2021, 8, 25)
data_final = date(2021, 9, 25)

# Fazer uma busca no catálogo e exibir resultados
produtos = api.query(location=path_row, 
                     initial_date=data_inicial, 
                     end_date=data_final, 
                     cloud=100, 
                     limit=100,
                     collections=['AMAZONIA1_WFI_L2_DN','CBERS4A_WPM_L4_DN']) #Optional

print(produtos)
# {'type': 'FeatureCollection', 'features': [{'type': 'Feature', 'id': 'CBERS4A_WPM22912420210830', ...

Download de produtos:

from cbers4asat import Cbers4aAPI
from datetime import date

api = Cbers4aAPI('seu.login@email.com') # Para fazer download, o email é obrigatório
bbox = (229, 124)

data_inicial = date(2021, 8, 25)
data_final = date(2021, 9, 25)

produtos = api.query(location=bbox, 
                     initial_date=data_inicial, 
                     end_date=data_final, 
                     cloud=100, 
                     limit=1,
                     collections=['CBERS4A_WPM_L4_DN'])

# Bandas escolhidas: vermelha, verde e azul
# Output do download é opcional, caso omitido será usado o diretório atual
api.download(products=produtos, 
             bands=['red','green','blue'], 
             threads=3, # Numero de threads que irão ser usadas do processador
             outdir='./downloads',
             with_folder=True) # Agrupar bandas de uma cena(s) em subpasta(s) no diretório ./downloads

# O diretório downloads ficará assim com o with_folter=true :
 # download/
 # +- CBERS4A_WPM22912420210830/
 # ++- CBERS_4A_WPM_20210830_229_124_L4_BAND3.tif
 # ++- CBERS_4A_WPM_20210830_229_124_L4_BAND2.tif
 # ++- CBERS_4A_WPM_20210830_229_124_L4_BAND1.tif

Converter para GeoDataFrame:

from cbers4asat import Cbers4aAPI
from datetime import date
import geopandas as gpd

api = Cbers4aAPI('seu.login@email.com')

bbox = (229, 124)

data_inicial = date(2021, 8, 25)
data_final = date(2021, 9, 25)

produtos = api.query(location=bbox, 
                     initial_date=data_inicial, 
                     end_date=data_final, 
                     cloud=100, 
                     limit=3,
                     collections=['CBERS4A_WPM_L4_DN'])

# Converter os produtos para geopandas GeoDataFrame
gdf = api.to_geodataframe(produtos, 'EPSG:4674')

print(gdf.to_string())

Download de produtos no GeoDataFrame:

from cbers4asat import Cbers4aAPI
from datetime import date
import geopandas as gpd

api = Cbers4aAPI('seu.login@email.com')

bbox = [-63.92944335937501,
        -8.819260401678381,
        -63.79211425781251,
        -8.722218306198739]

data_inicial = date(2021, 8, 25)
data_final = date(2021, 9, 25)

produtos = api.query(location=bbox, 
                     initial_date=data_inicial, 
                     end_date=data_final, 
                     cloud=100, 
                     limit=3,
                     collections=['CBERS4A_WPM_L4_DN'])

# Converter os produtos para geopandas GeoDataFrame
gdf = api.to_geodataframe(produtos)

api.download(products=gdf, bands=['red'], outdir='./downloads', with_folder=False)

License

Copyright (c) 2022 Gabriel Russo

Copyright (c) 2020 Sandro Klippel

O uso é fornecido sob a Licença do MIT. Veja em LICENSE para mais detalhes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cbers4asat-0.5.tar.gz (11.2 kB view hashes)

Uploaded Source

Built Distribution

cbers4asat-0.5-py3-none-any.whl (11.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page