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
🛠️ 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 datosnumpy>=1.24.0- Cálculos numéricosnetworkx>=3.1- Análisis de grafosplotly>=5.14.0- Visualizaciones interactivasPyYAML>=6.0- Lectura de configuracionesscipy>=1.10.0- Cálculos científicosgeopy>=2.3.0- Cálculos geográficos
🤝 Contribuciones
Las contribuciones son bienvenidas. Por favor:
- Fork el repositorio
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a875dc552e98bd71500de490ca0cd01ed77a4b1de0d4f16096b09a6f9815e502
|
|
| MD5 |
8307ee468d1d8bade9f965452f3054f8
|
|
| BLAKE2b-256 |
326c5cc7d36fad984ec96e8b7ba3a6576791d7fb1210ca769ce924418fb2f23a
|
File details
Details for the file network_visualization-1.0.0-py3-none-any.whl.
File metadata
- Download URL: network_visualization-1.0.0-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5cab0b10ba96999c217f8dc47a0fef826e6a66f30de1ce41fb121c714362dc9
|
|
| MD5 |
8aa2a5ca4b034efe87309fb0f3334c61
|
|
| BLAKE2b-256 |
ac43bac3c294e7adae94fb75354992cc61a42c411f269d6629fde7f8a78891d8
|