GithubHelp home page GithubHelp logo

gabriel-russo / cbers4asat Goto Github PK

View Code? Open in Web Editor NEW
34.0 2.0 5.0 7.18 MB

📚 Biblioteca Python para realizar a busca e processamento de imagens dos satélites CBERS-04A e AMAZONIA-1 🛰️

Home Page: https://cbers4asat.readthedocs.io/

License: MIT License

Python 73.81% Rust 26.19%
geoprocessamento geoprocessing gis inpe python cbers4a remote-sensing amazonia1 sensoriamento-remoto cbers-04a

cbers4asat's Introduction

cbers4asat

Descrição

Biblioteca Python para realizar a busca e processamento de imagens dos satélites CBERS-04A e AMAZONIA-1.

A biblioteca cbers4asat surgiu da necessidade de automatizar a busca e manipulação de imagens do satélite sino-brasileiro CBERS-04A utilizando linguagens de programação. Posteriormente foi incluido a automação do satélite AMAZONIA-1.

O design do projeto foi inspirado no sentinelsat, onde é possível de forma intuitiva realizar diversas ações, como:

  • Pesquisar por imagens.
  • Baixar as imagens pesquisadas.
  • Processar as imagens baixadas.

Veja todos os exemplos de uso na documentação.

Também disponível uma Interface de Linha de Comando (CLI) do cbers4asat para Windows e Linux. Clique aqui e saiba mais.


Latest Version Latest Version Latest Version Latest Version Code style: black Hatch project GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status Documentation Status

Read this README in english (old version of docs) 🇺🇸

Busque imagens com poucas linhas de código

from cbers4asat import Cbers4aAPI
from datetime import date

# Inicializando a biblioteca
api = Cbers4aAPI('[email protected]')

# Área de interesse. Pode ser: bouding box, path row ou polygon.
path_row = (229, 124)

# Buscando metadados. Este exemplo utiliza o path row (órbita/ponto). 
# Consulte a órbita/ponto: http://www.dgi.inpe.br/documentacao/grades
produtos = api.query(location=path_row,
                     initial_date=date(2021, 6, 1),
                     end_date=date(2021, 7, 1),
                     cloud=100,
                     limit=10,
                     collections=['AMAZONIA1_WFI_L2_DN', 'CBERS4A_WPM_L4_DN'])

# Exibindo os resultados
print(produtos)

Utilize a caixa de ferramenta para os trabalhos mais comuns

# Para ver todas as ferramentas disponíveis, verifique a documentação
from cbers4asat.tools import rgbn_composite
import rasterio as rio
from rasterio.plot import show

# Criando a composição cor verdadeira
rgbn_composite(red='./CBERS4A_WPM22812420210704/CBERS_4A_WPM_20210704_228_124_L4_BAND3.tif',
               green='./CBERS4A_WPM22812420210704/CBERS_4A_WPM_20210704_228_124_L4_BAND2.tif',
               blue='./CBERS4A_WPM22812420210704/CBERS_4A_WPM_20210704_228_124_L4_BAND1.tif',
               nir='./CBERS4A_WPM22812420210704/CBERS_4A_WPM_20210704_228_124_L4_BAND4.tif',
               filename='CBERS4A_WPM22812420210704_TRUE_COLOR.tif',
               outdir='./STACK')

# Plotando a imagem
raster = rio.open("./STACK/CBERS4A_WPM22812420210704_TRUE_COLOR.tif")

show(raster.read(), transform=raster.transform)

Download da biblioteca com pip

pip install cbers4asat

Instalação com a caixa de ferramentas

pip install "cbers4asat[tools]"

Documentação

Você pode ler a documentação da biblioteca no link abaixo

https://cbers4asat.readthedocs.io/

TCC

Esse projeto foi meu objeto de estudo do Trabalho de Conclusão de Curso (TCC) no curso de Bacharelado em Ciência da Computação, você pode visualizar o PDF neste Link:

Repositório Institucional da Universidade Federal de Rondônia

Contribuição

Convido qualquer pessoa a participar contribuindo com código, relatando bugs, escrevendo documentação, criando tutoriais e discutindo o futuro deste projeto.

Para mais informações de como contribuir ao projeto, leia ao manual de contribuição

Progresso do projeto

Você pode acompanhar todo o progresso do desenvolvimento no painel de projetos

Licença

Copyright (c) 2024 Gabriel Russo

Copyright (c) 2020 Sandro Klippel

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

cbers4asat's People

Contributors

gabriel-russo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

cbers4asat's Issues

Otimizar algoritmo de pansharpening

O algoritmo de pansharpening está consumindo uma quantidade de memória RAM excessiva ao abrir os datasets com o método read().

Opções:

  • Utilizar leitura de datasets em "janelas" utilizando rasterio.windows
  • Fazer a migração do rasterio para rioxarray. Dessa forma, podemos utilizar os chunks do rioxarray para resolver o problema.

Host www2.dgi.inpe.br indisponivel

Estou recebendo esta mensagem quando tento baixar uma imagem usando a biblioteca.
ConnectionError: HTTPConnectionPool(host='www2.dgi.inpe.br', port=80): Max retries exceeded with url: /inpe-stac/search (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -2] Name or service not known'))

Tratar indisponibilidade de grades de satélites

Quando alguma das URLs de grades está indisponível (ex.: erro http 404) nenhum erro é retornado.

    grids = {
        "cbers4a": {
            "mux": "http://www.dgi.inpe.br/documentacao/arquivos/grid_cbers4a_mux.zip",
            "wfi": "http://www.dgi.inpe.br/documentacao/arquivos/grid_cbers4a_wfi.zip",
        },
        "amazonia1": {
            "wfi": "http://www.dgi.inpe.br/documentacao/arquivos/grid_amazonia1_wfi_sa.zip"
        },
    }

Criar métodos para consultar informações dos produtos

  • Método para verificar se o produto está disponível na base de dados: is_online(id)
  • Método para baixar apenas as thumbnails dos produtos: download_thumbnail(products)
  • Método para retornar o tamanho em gigas de cada produto encontrado na query: get_products_size(products)
  • Método para verificar a integridade (checksum) dos produtos baixados: check_files(path, products)

Criar algoritmos de processamento digital de imagens

Esse módulo desse ser implementado separadamente do arquivo cbers4asat.py e ser encapsulado em um módulo chamado tools.

Esses algoritmos serão oferecidos como opcionais ao usuário.

Alguns algoritmos a serem implementados:

  • Pansharp (Banda 0)
  • Stack de bandas (Bandas 1, 2, 3, 4)
  • Clip de raster

Criar um Command-line Interface do cbers4asat

Objetivo:

  • Criar uma aplicação de linha de comando para a biblioteca utilizando qualquer biblioteca de criação de CLI

Funcionalidades a serem implementadas

  • Buscar imagens de uma coleção de imagens STAC
  • Salvar footprint das cenas encontradas no formato GeoJSON
  • Baixar cenas encontradas
  • Buscar por ID da cena

Adaptação a nova estrutura do catálogo de Imagens [Pós evento hacking]

Após o retorno do catálogo de imagens do INPE, foi atualizado para a última versão estável: 0.9.

Ela trás diversas mudanças na estrutura de pesquisa e url, fora que os links para a API foram trocados.

Até o momento foi encontrado o link base: http://www.dgi.inpe.br/lgi-stac

Esse link base da acesso ao catálogo de imagens STAC do dgi-inpe.

Provavelmente, o link (http://www.dgi.inpe.br/stac-compose/stac/search/) que está sendo usado para consulta no catálogo Web é um proxy reverso.

Dessa forma, a biblioteca está sendo atualizada e adaptada para essas mudanças, essa issue irá cuidar apenas


Um link de exemplo para a nova API STAC:

http://www.dgi.inpe.br/lgi-stac/collections/CBERS4A_WPM_L4_DN/items/CBERS4A_WPM22611620230728

Desenvolver Testes Unitários

Desenvolver testes unitários para os métodos disponíveis (10/02/23)

  • query
  • query_by_id
  • download
  • to_geodataframe

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.