Este sistema foi desenvolvido como parte de um Trabalho de Conclusão de Curso (TCC) e implementa um pipeline completo de pré-processamento de dados para otimização de curtailment no Sistema Interligado Nacional (SIN).
O sistema processa dados de múltiplas fontes:
- Carga: Previsão de demanda de energia por submercado
- EOL/UFV/MMGD: Geração eólica, solar fotovoltaica e mini/micro geração distribuída
- PCH/PCT: Pequenas Centrais Hidrelétricas e Pequenas Centrais Termelétricas
- Térmica: Usinas termelétricas e seus parâmetros operacionais
- Agregar dados de diferentes fontes em um formato unificado
- Coletar métricas detalhadas de processamento para análise de desempenho
- Fornecer testes para diferentes cenários de uso
- Documentar quantitativamente o processo de transformação de dados
input_processor/
├── main.py # Programa principal
├── requirements.txt # Dependências do projeto
├── README.md # Esta documentação
├── src/
│ ├── __init__.py
│ ├── metrics.py # Sistema de métricas
│ └── data_processor.py # Processadores de dados
├── tests/
│ └── test_scenarios.py # Testes de cenários
├── carga/ # Dados de carga
├── eol_uvf_mmgd/ # Dados de EOL/UFV/MMGD
├── pch-pct/ # Dados de PCH/PCT
├── termica/ # Dados de térmica
└── outputs/ # Arquivos de saída (gerados)
- Python 3.8 ou superior
- pip (gerenciador de pacotes Python)
- Clone o repositório ou navegue até o diretório do projeto:
cd /home/laral/repos/curtailment/regulatory-curtailment/input_processor- Instale as dependências:
pip install -r requirements.txtPara processar dados com configuração padrão (1 mês):
python main.pyPara executar todos os testes de cenário e gerar relatórios comparativos:
python tests/test_scenarios.pyOu usando unittest:
python -m unittest tests.test_scenariosO sistema implementa 4 cenários de teste:
- 1 Mês: Processa dados de janeiro/2026
- 3 Meses: Processa dados de janeiro a março/2026
- 6 Meses: Processa dados de janeiro a junho/2026
- 12 Semanas Típicas: Processa semanas típicas de todos os 12 meses do ano
Para cada cenário, o sistema coleta e reporta:
- Dados Extraídos: Quantidade total de registros lidos da fonte
- Dados Limpos: Registros após remoção de outliers e valores inválidos
- Dados Curva Típica: Registros usados para criar curvas típicas
- Dados Projeção: Registros usados na projeção de geração
- Dados Finais: Registros no arquivo final processado
- Tempo Total: Tempo total de processamento (segundos e minutos)
- Tempo por Fonte: Tempo de processamento de cada fonte individual
- Memória Inicial: Uso de memória no início do processamento
- Memória Final: Uso de memória ao final do processamento
- Memória Pico: Pico de uso de memória durante o processamento
- Memória Média: Uso médio de memória durante o processamento
- Arquivos Processados: Lista de arquivos lidos por fonte
- Avisos: Contagem de avisos gerados durante o processamento
- Erros: Contagem de erros encontrados
Cada execução gera:
- Arquivos CSV processados por fonte (
outputs/processamento_YYYYMMDD_HHMMSS/) - Arquivo JSON com métricas detalhadas (
outputs/processamento_YYYYMMDD_HHMMSS/metricas.json)
Os testes geram:
- Arquivos processados para cada cenário (
outputs/testes/[cenario]/) - Relatório comparativo (
outputs/testes/comparacao_cenarios.csv) - Resultados completos em JSON (
outputs/testes/resultados_completos.json)
Este sistema foi desenvolvido especificamente para:
- Análise de Desempenho: Comparar diferentes configurações de processamento
- Otimização de Pipeline: Identificar gargalos no processamento
- Documentação Quantitativa: Fornecer dados precisos sobre transformação de dados
- Reprodutibilidade: Garantir que os resultados possam ser reproduzidos
As métricas coletadas podem ser usadas para:
- Análise de escalabilidade (1 mês vs 12 meses)
- Identificação de fontes mais custosas computacionalmente
- Projeção de requisitos para processamento em produção
- Comparação de diferentes abordagens de processamento
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes.
Lara Ramos Linhares Ano: 2025
Nota: Os dados processados por este sistema são utilizados em modelos de otimização de curtailment para o Sistema Interligado Nacional (SIN) brasileiro.