Conjunto de arquivos referente à biblioteca bdgd2dss desenvolvida na linguagem Python, que transforma as planilhas oriundas da Base de Dados Geográfica da Distribuidora (BDGD) em arquivos .dss para simulação e estudos de alimentadores de sistemas de distribuição de energia elétrica no ambiente OpenDSS. A ferramenta em questão foi criada pelo Mestrando em Engenharia Elétrica Arthur Gomes de Souza, que desenvolve pesquisas com o foco em proteção de sistemas elétricos de potência, sob orientação do prof. Dr. Wellington Maycon Santos Bernardes (Universidade Federal de Uberlândia).
Para instalar e utilizar a biblioteca bdgd2dss, siga os passos abaixo. Recomenda-se iniciar criando um ambiente virtual no terminal do VSCode para isolar as dependências do projeto.
-
Criar o ambiente virtual:
python -m venv .venv
-
Ativar o Ambiente Virtual:
.venv\Scripts\Activate
-
Instalando a biblioteca:
pip install bdgd2dss
-
A seguir, são apresentados os procedimentos para exportação dos dados e a utilização da biblioteca. Serão detalhadas a estrutura da base de dados e as instruções para seu uso em conjunto com a biblioteca.
A BDGD faz parte integrante do Sistema de Informação Geográfico Regulatório da Distribuição (SIG-R). Em adição, é um modelo geográfico estabelecido com o objetivo de representar de forma simplificada o sistema elétrico real da distribuidora, visando refletir tanto a situação real dos ativos quanto as informações técnicas e comerciais de interesse. De forma a emular a rede elétrica dos agentes envolvidos, a BDGD é estruturada em entidades, modelos abstratos de dados estabelecidos com o objetivo de representar informações importantes, como as perdas estimadas pelos agentes. Cada uma dessas entidades é detalhada em diversos dados, dentre as quais constam aquelas que devem observar a codificação pré-estabelecida pelo Dicionário de Dados da Agência Nacional de Energia Elétrica (ANEEL) (DDA), o qual especifica padrões de dados a serem utilizados na BDGD, visando a normalização das informações. Em relação aos dados cartográficos, eles são disponibilizados em um arquivo Geodatabase (.gdb), por distribuidora. O Manual de Instruções da BDGD (https://www.gov.br/aneel/pt-br/centrais-de-conteudos/manuais-modelos-e-instrucoes/distribuicao) e o Módulo 10 do PRODIST (https://www.gov.br/aneel/pt-br/centrais-de-conteudos/procedimentos-regulatorios/prodist) contém informações úteis para entender a BDGD, como as entidades disponibilizadas e as definições dos campos [1].
Inicialmente, os dados da BDGD são classificados como entidades geográficas e não geográficas, as Tabelas 1 e 2 mostram as camadas que as compõe, respectivamente.
Tabela 1: Entidades geográficas da BDGD.
| id | Sigla | Nome |
|---|---|---|
| 22 | ARAT | Área e Atuação |
| 23 | CONJ | Conjunto |
| 24 | PONNOT | Ponto Notável |
| 25 | SSDAT | Segmento do Sistema de Distribuição de Alta Tensão |
| 26 | SSDBT | Segmento do Sistema de Distribuição de Baixa Tensão |
| 27 | SSDMT | Segmento do Sistema de Distribuição de Média Tensão |
| 28 | SUB | Subestação |
| 38 | UNCRAT | Unidade Compensadora de Reativo de Alta Tensão |
| 29 | UNCRBT | Unidade Compensadora de Reativo de Baixa Tensão |
| 30 | UNCRMT | Unidade Compensadora de Reativo de Média Tensão |
| 39 | UCAT | Unidade Consumidora de Alta Tensão |
| 40 | UCBT | Unidade Consumidora de Baixa Tensão |
| 41 | UCMT | Unidade Consumidora de Média Tensão |
| 42 | UGAT | Unidade Geradora de Alta Tensão |
| 43 | UGBT | Unidade Geradora de Baixa Tensão |
| 44 | UGMT | Unidade Geradora de Média Tensão |
| 31 | UNREAT | Unidade Reguladora de Alta Tensão |
| 32 | UNREMT | Unidade Reguladora de Média Tensão |
| 33 | UNSEAT | Unidade seccionadora de Alta Tensão |
| 34 | UNSEBT | Unidade seccionadora de Baixa Tensão |
| 35 | UNSEMT | Unidade seccionadora de Média Tensão |
| 36 | UNTRD | Unidade Transformadora da Distribuição |
| 37 | UNTRS | Unidade Transformadora da Subestação |
Fonte: Adaptado de ANEEL (2021) [2].
Tabela 1: Entidades não geográficas da BDGD.
| id | Sigla | Nome |
|---|---|---|
| 3 | BE | Balanço de Energia |
| 0 | BAR | Barramento |
| 1 | BASE | Base |
| 2 | BAY | Bay |
| 4 | CTAT | Circuito de Alta Tensão |
| 5 | CTMT | Circuito de Média Tensão |
| 6 | EP | Energia Passante |
| 7 | EQCR | Equipamento Compensador de Reativo |
| 8 | EQME | Equipamento Medidor |
| 9 | EQRE | Equipamento Regulador |
| 10 | EQSE | Equipamento Seccionador |
| 11 | EQSIAT | Equipamento do Sistema de Aterramento |
| 12 | EQTRD | Equipamento Transformador da Distribuição |
| 13 | EQTRM | Equipamento Transformador de Medida |
| 14 | EQTRS | Equipamento Transformador da Subestação |
| 15 | EQTRSX | Equipamento Transformador do Serviço Auxiliar |
| 16 | INDGER | Indicadores Gerenciais |
| 18 | PNT | Perdas não Técnicas |
| 19 | PT | Perdas Técnicas |
| 17 | PIP | Ponto de Iluminação Pública |
| 20 | RAMLIG | Ramal de Ligação |
| 21 | SEGCON | Segmento Condutor |
Fonte: Adaptado de ANEEL (2021) [2].
Observação: Em versões mais antigas da BDGD, as camadas UNTRD, EQTRD, UNTRS e EQTRS eram nomeadas, respectivamente, como UNTRMT (Unidade Transformadora de Média Tensão), EQTRMT (Equipamento Transformador de Média Tensão), UNTRAT (Unidade Transformadora de Alta Tensão) e EQTRAT (Equipamento Transformador de Alta Tensão). Na prática, isso não afeta o processo de modelagem, pois o código reconhece e trata corretamente ambos os formatos.
Para realizar o download dos dados de uma distribuidora, basta acessar o link: https://dadosabertos-aneel.opendata.arcgis.com/search?tags=distribuicao [1] e pesquisá-la. Assim sendo, aparecerá mais de um arquivo, correspondente a cada ano. A Figura 1 mostra essa etapa.
Figura 1: Captura de tela dos dados da BDGD.
Fonte: ANEEL (2024) [1].
Escolhendo o arquivo correspondente, basta baixar como mostra a Figura 2. Alerta-se que essa etapa pode demorar um pouco.
Figura 2: Captura de tela de download dos dados da BDGD.
Fonte: Adaptado de ANEEL (2024) [1].
Após realizado o download, será possível trabalhar com os arquivos. Para isso deve-se usar a ferramenta QGIS [6], um software livre com código-fonte aberto, e multiplataforma. Basicamente é um sistema de informação geográfica (SIG) que permite a visualização, edição e análise de dados georreferenciados. O download pode ser feito no link: https://qgis.org/download/. Abrindo o QGIS, deve-se ir em "Gerenciador da Fonte de Dados" (opção Vetor). Ao selecionar a opção "Diretório", coloca-se a codificação em "Automático", em Tipo escolhe-se a opção "Arquivo aberto GDB", e em Base de Vetores escolhe a pasta do arquivo BDGD baixado e extraído. Finalmente em LIST_ALL_TABLES coloca-se em "YES" para ser possível uma pré-visualização das camadas disponíveis e selecionar aquelas que desejar visualizar, todas as camadas devem ser selecionadas no campo "Selecionar Todas" e, em seguida, deve-se clicar em "Adicionar Camadas" para prosseguir com a visualização. Essas etapas são mostradas na Figura 3 e 4.
Figura 3: Captura de tela do carregamento dos dados no QGIS.
Fonte: O autor (2024).
Figura 4: Captura de tela do QGIS mostrando as camadas da BDGD
Fonte: O Autor (2024).
Para otimizar as simulações e reduzir a quantidade de dados, é recomendável focar em uma área / região / zona específica, em vez de utilizar todos os dados da distribuidora. Por exemplo, pode-se escolher um município, como Uberlândia - Minas Gerais (ou outro à escolha do usuário), e trabalhar apenas com as informações dessa cidade. Para isso, é necessário filtrar as camadas, mantendo apenas os dados relevantes ao município. Uma maneira eficaz de fazer isso é identificar as subestações correspondentes e realizar o filtro em todas as camadas, já que quase todas possuem o atributo referente a uma subestação (SE). Para localizar as subestações e obter o código correspondente, clique com o botão direito na camada das SEs, e selecione a opção "Abrir tabela de atributos". A Figura 5 mostra essa etapa.
Figura 5: Captura de tela do QGIS para abrir a Tabela de Atributos.
Fonte: O Autor (2024).
Com a Tabela de atributos aberta, deve-se localizar as subestações de Uberlândia (município escolhido para a realização dos testes), e salvar os COD_ID delas, como mostra a Figura 6 em sequência.
Figura 6: Captura de tela do QGIS pra identificação das subestações
Fonte: O Autor (2024).
Com essas informações, será possível acessar todas as camadas e aplicar a filtragem necessária. Para isso, utilizaremos um código em Python no QGIS para realizar o filtro, gerar um arquivo com as coordenadas e exportar as camadas em arquivos .csv, que serão utilizados na modelagem. A Figura 7 ilustra o procedimento para abrir o terminal Python no QGIS. Após abrir o terminal, deve-se selecionar a opção "Abrir Editor".
Figura 7: Captura de tela do QGIS para abrir o terminal python
E copiar e colar o código disponível em exportar_qgis.py no editor que foi aberto.
Com o script aberto, podemos agora realizar a filtragem das subestações e a exportação dos dados. A Figura 8 apresenta o trecho de código com dois campos configuráveis pelo usuário:
1 - O primeiro define o diretório onde os arquivos exportados serão salvos. Para isso, o usuário deve criar uma pasta chamada Inputs na raiz do projeto e utilizá-la como destino da exportação.
2 - O segundo campo, também destacado na figura, corresponde aos COD_ID das subestações que se deseja exportar, e deve ser preenchido conforme a necessidade da análise.
Após preencher esses campos, basta executar o script. Vale notar que essa etapa pode demorar, durante a qual o QGIS poderá ficar temporariamente travado; isso é esperado, então é necessário aguardar até a finalização do processo. Por exemplo, nos testes com todas as subestações de Uberlândia, esse procedimento levou cerca de 30 minutos em uma máquina com as seguintes especificações: Intel Core i5-8500 de 8ª geração @ 3.00GHz, 8 GB de RAM, Windows 10 Pro e SSD NVMe. Quanto maior a base de dados e o volume de dados a serem exportados, maior será o tempo de execução.
Figura 8: Captura de tela do QGIS do script com o foco nas variáveis de entrada do usuário
Finalizado o processo de exportação das camadas, deve-se criar um arquivo na raíz do diretório para rodar as simulações, abaixo um exemplo do modelo de código a ser utilizado, recomenda-se salvar como main.py.
import bdgd2dss as b2d
import time
if __name__ == "__main__":
start_total = time.time()
# Chamando a função para obter a lista de alimentadores disponíveis nessa BDGD
feeders_all = b2d.feeders_list()
#print(f"Alimentadores disponíveis: {feeders_all}") # Exibe a lista de alimentadores disponíveis na BDGD
# Escolhe os alimentadores que deseja simular, pode ser apenas um, vários ou todos, no formato especificado
feeders = ['ULAU11', 'ULAE714', 'ULAD202', 'ULAD203'] # Exemplo de alimentadores escolhidos
# Chamando a função para modelar os alimentadores escolhidos usando processamento paralelo
b2d.feeders_modelling(feeders)
end_total = time.time()
print(f"\nTempo total: {end_total - start_total} s") # Exibe o tempo total de execução do scriptPara realizar a modelagem dos alimentadores utilizando a biblioteca bdgd2dss, utiliza-se o arquivo criado com o código acima.
A execução do script inicia-se no bloco if name == "main":, onde as funções são chamadas em sequência:
1 - Listagem dos alimentadores disponíveis: A função b2d.feeders_list() retorna todos os alimentadores presentes na base de dados exportada. Essa lista é exibida no terminal como referência. Em seguida, define-se a lista feeders, que contém os identificadores dos alimentadores a serem simulados. Essa lista deve ser informada no formato de strings.
2 - Modelagem dos alimentadores: A função b2d.feeders_modelling(feeders) realiza a modelagem dos alimentadores selecionados, levando em consideração os dados de curto-circuito especificados. O processo de modelagem é executado com paralelismo, garantindo maior desempenho.
No vídeo, explicamos a utilização da biblioteca, o que facilita seu entendimento e aplicação.
Mais detalhes no link: https://github.com/ArthurGS97/bdgd2dss.
Qualquer inconsistência ou dificuldade na utilização da biblioteca pode contactar os autores.
@misc{bdgd2dss,
author = {Arthur Gomes de Souza and Wellington Maycon Santos Bernardes},
title = {bdgd2dss: Ferramenta para modelagem de alimentadores da BDGD para uso com OpenDSS},
year = {2025},
howpublished = {\url{https://pypi.org/project/bdgd2dss/}},
note = {Versão 0.0.5, disponível no PyPI}
}
Utilizando esta biblioteca, cite também os seguintes trabalhos:
SOUZA, Arthur Gomes de; BERNARDES, Wellington Maycon S. Parametrização de religadores com apoio da base de dados geográfica da distribuidora, OpenDSS e Python. In: XXV CONGRESSO BRASILEIRO DE AUTOMÁTICA (CBA), 25., 2024, Rio de Janeiro, RJ, Brazil. Anais... Campinas, SP: Sociedade Brasileira de Automática, 2024. p. 1–7.
SOUZA, Arthur Gomes de; SANTOS JÚNIOR, Júlio C.; GUEDES, Michele R.; BERNARDES, Wellington Maycon S. Coordinating distribution power system protection in a utility from Uberlândia - MG using a geographic database, QGIS and OpenDSS. In: XIV LATIN-AMERICAN CONGRESS ON ELECTRICITY, GENERATION AND TRANSMISSION - CLAGTEE 2022, 14., 2022, Rio de Janeiro, RJ, Brazil. Anais... Guaratinguetá, SP: UNESP, 2022. p. 1-9.
SOUZA, Arthur Gomes de; BERNARDES, Wellington Maycon S.; PASSATUTO, Luiz Arthur T. Aquisição de dados topológicos e coordenação de religadores usando as ferramentas de apoio QGIS e OpenDSS. In: 15TH IEEE INTERNATIONAL CONFERENCE ON INDUSTRY APPLICATIONS (INDUSCON), 15., 2023, São Bernardo do Campo, Brazil. Anais... Piscataway, New Jersey: IEEE, 2023. p. 607-608. doi: 10.1109/INDUSCON58041.2023.10374830.
SOUZA, Arthur Gomes de; BERNARDES, Wellington Maycon S. Topological data acquisition and recloser coordination using QGIS and OpenDSS Tools. In: XIV CONGRESSO BRASILEIRO DE PLANEJAMENTO ENERGÉTICO (CBPE), 14., 2024, Manaus, AM. Anais... Itajubá, MG: Sociedade Brasileira de Planejamento Energético, 2024. p. 2605–2617.
PASSATUTO, Luiz Arthur. T.; SOUZA, Arthur Gomes de; BERNARDES, Wellington Maycon S.; FREITAS, L. C. G.; RESENDE, Ênio C. Assignment of Responsibility for Short-Duration Voltage Variation via QGIS, OpenDSS and Python. In: 2024 INTERNATIONAL WORKSHOP ON ARTIFICIAL INTELLIGENCE AND MACHINE LEARNING FOR ENERGY TRANSFORMATION (AIE), 2024, Vaasa, Finland. Anais... Vaasa: IEEE, 2024. p. 1-6. doi: 10.1109/AIE61866.2024.10561325.
Além das rotinas já descritas neste README, este diretório também inclui duas rotinas adicionais que auxiliam na correção de problemas comuns na BDGD e na realização de testes com múltiplos alimentadores:
-
loads_isolated.py
O usuário deve informar as cargas isoladas identificadas a partir do Show Isolated do OpenDSS, além do nome do arquivo.dssque deseja atualizar. A rotina localizará essas cargas e as comentará automaticamente utilizando!. -
test_feeders.py
Permite testar, de forma automatizada, vários alimentadores já modelados para os três dias típicos (DU, SA e DO).
Atenção: esta rotina funciona apenas com alimentadores previamente modelados e depende de bibliotecas compatíveis com versões do Python até 3.12.
Consulte o CHANGELOG para ver a lista completa de alterações, novas funcionalidades e correções realizadas em cada versão da biblioteca.
Última versão: v0.1.0 — publicada em 15/11/2025.
O presente trabalho foi realizado com apoio da CAPES - Código de Financiamento 001, da FAPEMIG, do CNPq e do Programa de Pós-Graduação em Engenharia Elétrica (PPGEELT) da Faculdade de Engenharia Elétrica (FEELT) da Universidade Federal de Uberlândia (UFU). As principais dependências encontradas são: bibliotecas py-dss-interface, numpy e pandas.
[1] AGÊNCIA NACIONAL DE ENERGIA ELÉTRICA (ANEEL). Dados abertos do Banco de Dados Geográficos de Distribuição - BDGD. Disponível em: https://dadosabertos-aneel.opendata.arcgis.com/search. Acesso em: 29 jul. 2025.
[2] AGÊNCIA NACIONAL DE ENERGIA ELÉTRICA (ANEEL). Manual de Instruções da BDGD. Disponível em: https://www.gov.br/aneel/pt-br/centrais-de-conteudos/manuais-modelos-e-instrucoes/distribuicao. Acesso em: 16 ago. 2025.
[3] AGÊNCIA NACIONAL DE ENERGIA ELÉTRICA (ANEEL). Procedimentos de Distribuição de Energia Elétrica no Sistema Elétrico Nacional – PRODIST: Módulo 10. Disponível em: https://www.gov.br/aneel/pt-br/centrais-de-conteudos/procedimentos-regulatorios/prodist. Acesso em: 08 nov. 2025.
[4] MICROSOFT. Visual Studio Code. Disponível em: https://code.visualstudio.com/download. Acesso em: 08 nov. 2025.
[5] PYTHON SOFTWARE FOUNDATION. Python. Disponível em: https://www.python.org/downloads/. Acesso em: 08 nov. 2025.
[6] QGIS. QGIS Geographic Information System. Disponível em: https://qgis.org/download/. Acesso em: 08 nov. 2025.





