Este projeto implementa um algoritmo de Migração Sísmica em Python, acelerado com o uso da biblioteca NumPy para operações vetorizadas e cálculo eficiente de grandes matrizes de dados. O foco do projeto é processar dados sísmicos brutos para a criação de imagens que representem as estruturas geológicas do subsolo.
A migração sísmica é uma técnica utilizada para aprimorar a interpretação de dados sísmicos, ajustando a posição dos reflexos para compensar a profundidade e complexidade das camadas geológicas. Este projeto foi desenvolvido utilizando Python e NumPy para lidar com os cálculos pesados e foi otimizado para desempenho com a paralelização interna que o NumPy oferece.
Este repositório está em constante desenvolvimento e possui como foco principal a migração de dados em 2D, com potencial expansão para 3D no futuro.
- Implementação básica de migração sísmica
- Aceleração dos cálculos com NumPy
- Possibilitar processamento de grandes volumes de dados sísmicos
Acesse o site oficial do projeto para mais detalhes sobre a aplicação:
https://marcelogcardozo.github.io/migracao-sismica/
Para rodar o projeto, siga os passos abaixo:
-
Clone este repositório:
git clone https://github.com/marcelogcardozo/migracao-sismica.git cd migracao-sismica
-
Crie o ambiente virtual e instale as dependências com poetry:
poetry install
- Altere o arquivo
app.config.json
com os parâmetros desejados - Adicione o seu modelo binário da seção na pasta
bin
- Execute a aplicação:
poetry run python -m app.main
- Suavização do Modelo: Implementar técnicas de suavização para lidar com transições abruptas de velocidade no modelo geológico.
- Otimização com Numba: Utilizar o Numba para compilar partes críticas do código Python para código nativo e acelerar ainda mais os cálculos.
- Verificação de Cálculo no Tempo Presente: Revisar e otimizar o cálculo da matriz no tempo presente, assegurando a correta alocação temporal dos eventos sísmicos.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests com melhorias ou correções.
Para contribuir, siga os passos:
- Faça um fork do projeto.
- Crie uma branch para sua feature:
git checkout -b minha-feature
- Commit suas alterações:
git commit -m 'Adiciona minha nova feature'
- Envie um push para a branch:
git push origin minha-feature
- Abra um pull request.