Skip to main content

Tools for visualizing and analyzing electrical grid network topology

Project description

Network Visualization & Analysis Tools

Herramientas para visualizar y analizar la topología de la red eléctrica del modelo energético de Chile.

✨ Nuevo! Simple Python API

¡Ahora puedes visualizar tu red con solo una línea de código!

from network_visualization import plot_network

# ¡Solo esto!
plot_network("ruta/a/tu/modelo")

📦 Instalable como paquete pip - Listo para compartir y publicar en PyPI!

📋 Descripción

Este repositorio contiene scripts de Python para:

  • Visualizar la topología de la red de transmisión eléctrica
  • Identificar componentes conectados y aislados
  • Analizar conectividad de subestaciones con demanda
  • Detectar problemas estructurales en la red
  • Sugerir conexiones para mejorar la conectividad
  • Decodificar archivos IIS de Gurobi para diagnóstico

🚀 Inicio Rápido

Instalación como Paquete

# Instalar en modo desarrollo
pip install -e .

# O instalar desde PyPI (después de publicar)
pip install network-visualization

Uso Simple (Nuevo!)

from network_visualization import plot_network, analyze_network

# Visualización - una línea
plot_network("ruta/a/tu/modelo")

# Análisis - una línea
analysis = analyze_network("ruta/a/tu/modelo")
print(f"Nodos aislados: {len(analysis['isolated_nodes'])}")

# Todo junto - una línea
viz_path, analysis = quick_viz("ruta/a/tu/modelo")

Uso Tradicional (Scripts CLI)

# Visualización completa de la red
python scripts/visualize_network.py --model-path "ruta/al/modelo"

# Análisis de nodos aislados
python scripts/analyze_isolated.py --model-path "ruta/al/modelo"

# Sugerencias de conexiones
python scripts/suggest_connections.py --model-path "ruta/al/modelo"

📁 Estructura del Repositorio

network_visualization/
├── README.md                 # Este archivo
├── requirements.txt          # Dependencias Python
├── LICENSE                   # Licencia MIT
├── .gitignore               # Archivos a ignorar
│
├── scripts/                  # Scripts principales
│   ├── visualize_network.py      # Visualización interactiva
│   ├── analyze_isolated.py       # Análisis de nodos aislados
│   ├── analyze_feasibility.py    # Análisis de viabilidad
│   ├── suggest_connections.py    # Sugerencias de conexiones
│   ├── deep_analysis.py          # Análisis estructural profundo
│   └── decode_iis.py             # Decodificador IIS de Gurobi
│
├── utils/                    # Módulos auxiliares
│   ├── __init__.py
│   ├── load_data.py         # Carga de archivos YAML
│   ├── graph_builder.py     # Construcción de grafos
│   ├── geo_utils.py         # Utilidades geográficas
│   └── report_generator.py  # Generación de reportes
│
├── outputs/                  # Resultados (ignorado en git)
│   ├── graphs/              # Visualizaciones HTML
│   ├── reports/             # Reportes TXT/CSV
│   └── logs/                # Logs de ejecución
│
├── examples/                 # Ejemplos de uso
│   ├── basic_visualization.py
│   ├── find_isolated_demand.py
│   └── generate_report.py
│
└── docs/                     # Documentación adicional
    ├── USER_GUIDE.md        # Guía de usuario
    ├── API_REFERENCE.md     # Referencia de API
    └── CHANGELOG.md         # Historial de cambios

🔧 Características Principales

1. Visualización de Red

  • Gráficos interactivos con Plotly
  • Identificación visual de componentes
  • Colores por tipo de nodo (generación, demanda, transmisión)
  • Zoom y navegación interactiva

2. Análisis de Conectividad

  • Detección de componentes conectados
  • Identificación de nodos aislados
  • Análisis de subestaciones con/sin demanda
  • Estadísticas de la red

3. Diagnóstico de Problemas

  • Detección de enlaces sin capacidad definida
  • Identificación de power_links mal configurados
  • Análisis de plantas desconectadas
  • Validación de estructura del modelo

4. Sugerencias Inteligentes

  • Conexiones por proximidad geográfica
  • Priorización por demanda insatisfecha
  • Estimación de distancias reales
  • Exportación de conexiones sugeridas

📊 Ejemplos de Salida

Estadísticas de Red

=== Network Statistics ===
Total Locations: 2,291
  - Power Plants: 1,146
  - Substations: 1,119
  - Transmission Nodes: 26

Connected Components: 120
  - Main Component: 2,172 nodes (94.8%)
  - Isolated: 119 components

Substations with Demand:
  - Connected: 1,016 (98.3%)
  - Isolated: 2 (S/E LA PORTADA, S/E MOLINOS)

Visualización Interactiva

Network Graph Example

🛠️ Requisitos del Sistema

  • Python 3.8+
  • 4 GB RAM mínimo (8 GB recomendado)
  • Navegador web moderno (para visualizaciones)

📦 Dependencias

  • pandas>=2.0.0 - Manipulación de datos
  • numpy>=1.24.0 - Cálculos numéricos
  • networkx>=3.1 - Análisis de grafos
  • plotly>=5.14.0 - Visualizaciones interactivas
  • PyYAML>=6.0 - Lectura de configuraciones
  • scipy>=1.10.0 - Cálculos científicos
  • geopy>=2.3.0 - Cálculos geográficos

🤝 Contribuciones

Las contribuciones son bienvenidas. Por favor:

  1. Fork el repositorio
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

📝 Licencia

Este proyecto está bajo la Licencia MIT. Ver LICENSE para más detalles.

👤 Autor

Ricardo's Energy Model Project

  • Proyecto: Modelo Energético de Chile con Calliope

📧 Contacto

Para preguntas, sugerencias o reportar problemas, por favor abre un Issue en el repositorio.

🔗 Enlaces Útiles


Última actualización: Octubre 2025

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

network_visualization-1.0.0.tar.gz (30.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

network_visualization-1.0.0-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file network_visualization-1.0.0.tar.gz.

File metadata

  • Download URL: network_visualization-1.0.0.tar.gz
  • Upload date:
  • Size: 30.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for network_visualization-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a875dc552e98bd71500de490ca0cd01ed77a4b1de0d4f16096b09a6f9815e502
MD5 8307ee468d1d8bade9f965452f3054f8
BLAKE2b-256 326c5cc7d36fad984ec96e8b7ba3a6576791d7fb1210ca769ce924418fb2f23a

See more details on using hashes here.

File details

Details for the file network_visualization-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for network_visualization-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d5cab0b10ba96999c217f8dc47a0fef826e6a66f30de1ce41fb121c714362dc9
MD5 8aa2a5ca4b034efe87309fb0f3334c61
BLAKE2b-256 ac43bac3c294e7adae94fb75354992cc61a42c411f269d6629fde7f8a78891d8

See more details on using hashes here.

Supported by

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