Skip to content

Latest commit

Β 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Transmission Network Analysis

A Python toolkit for aggregating and visualizing electricity transmission networks at the county level from MATPOWER-style grid datasets. Built using the comprehensive USA Test System dataset (Xu et al., 2021) from Zenodo.

License: MIT Python 3.8+

πŸ”§ Features

  • Transmission Aggregation: Convert MATPOWER bus/branch data to county-level transmission edges
  • HVDC Support: Analyze both AC and HVDC transmission lines
  • Geospatial Mapping: Create detailed maps with capacity-based line visualization
  • Interactive Visualizations: Generate interactive HTML maps with hover details
  • Regional Filtering: Focus on specific states, zones, or interconnects
  • Capacity Classes: Visual distinction across 6 capacity ranges (<200MW to 5K+MW)

πŸ“Š Dataset Overview

The processed dataset contains 7,652 transmission edges with:

  • 7,637 AC transmission lines
  • 15 HVDC transmission lines
  • 21 data columns including geographic, network, and capacity information
  • Complete US coverage across Eastern, Western, and Texas interconnects

πŸš€ Quick Start

1. Installation

git clone https://github.com/swang22/Transmission-Network-Aggregator.git
cd Transmission-Network-Aggregator
pip install -r requirements.txt

2. Data Preparation

This toolkit uses the USA Test System dataset from Zenodo:

Xu, Yixing, et al. "US test system with high spatial and temporal resolution for renewable integration studies." 2020 IEEE Power & Energy Society General Meeting (PESGM). IEEE, 2020. A Synthetic Time-Variant U.S. Power Grid Data Set for the Evaluation of Variable Generation and Demand Response. Zenodo. https://doi.org/10.5281/zenodo.4538590

The dataset provides a comprehensive synthetic representation of the U.S. power grid with time-variant generation and demand data. For transmission analysis, we use the network topology files:

# The base_grid folder should contain:
# - bus.csv, branch.csv, sub.csv, bus2sub.csv
# - dcline.csv (for HVDC), zone.csv

Dataset Features:

  • 82,000+ buses representing generation and load points
  • 104,000+ transmission branches with detailed electrical parameters
  • Geographic mapping to U.S. counties via substations
  • Three interconnects: Eastern, Western, and Texas (ERCOT)
  • Voltage levels: From distribution (4kV) to transmission (765kV)

To download the original dataset:

  1. Visit: https://zenodo.org/records/4538590
  2. Download the USATestSystem.zip file (~4.2 GB)
  3. Extract the network data files to the data/base_grid/ folder

Note: The repository includes a cleaned subset focused on transmission analysis (49 MB vs 4.2 GB).

3. Generate Transmission Data

python src/run_transmission.py

This creates outputs/county_edges_tx.csv with all transmission edges.

4. Create Visualizations

# Texas transmission network
python src/visualize_transmission.py --region "TX" --type state --output outputs/texas.png

# Interactive California map
python src/visualize_transmission.py --region "CA" --type state --output outputs/california.html --interactive

# Western Interconnect overview
python src/visualize_transmission.py --region "Western" --type interconnect --output outputs/western.png

Advanced Filtering Options

Voltage-Based Filtering

# Transmission-only analysis (β‰₯138 kV) - RECOMMENDED
python src/run_transmission.py --transmission-only

# Custom voltage threshold
python src/run_transmission.py --min-voltage 230

# Specific voltage levels only
python src/run_transmission.py --voltage-levels 345 500 765

# Compare filtering impact
python src/run_transmission.py --output outputs/all_voltages.csv
python src/run_transmission.py --transmission-only --output outputs/transmission_only.csv

Analyze Your Dataset

# Understand voltage levels in your data
python examples/voltage_analysis.py

# Shows impact: transmission filtering removes ~33% of edges (distribution connections)
# Result: 7,652 edges β†’ 5,157 edges (cleaner bulk power transfer analysis)

5. Run Examples

python examples/generate_examples.py

⚑ Voltage Filtering Impact

The --transmission-only filter provides significant improvements for power systems analysis:

Metric All Voltages Transmission (β‰₯138 kV) Improvement
Branches processed 81,861 41,048 50% reduction
County-to-county edges 7,652 5,157 33% cleaner
Focus Mixed levels Bulk power transfer More accurate

Why filter by voltage?

  • Prevents capacity inflation from local distribution connections
  • Focuses on true transmission corridors between regions
  • Follows standard power systems definitions (138+ kV = transmission)
  • Eliminates noise from sub-transmission interconnections

πŸ—ΊοΈ Visualization Examples

Texas Transmission Network

Texas Example

Capacity Classes

The visualization system uses 6 capacity classes for clear visual distinction:

  • < 200 MW: Thin lines (local distribution)
  • 200-500 MW: Light lines (sub-transmission)
  • 500-1K MW: Medium lines (transmission)
  • 1K-2K MW: Thick lines (high voltage)
  • 2K-5K MW: Very thick lines (extra high voltage)
  • 5K+ MW: Thickest lines (ultra high voltage corridors)

πŸ“ Project Structure

transmission-network-analysis/
β”œβ”€β”€ src/                          # Core source code
β”‚   β”œβ”€β”€ run_transmission.py       # Main aggregation script
β”‚   β”œβ”€β”€ visualize_transmission.py # Visualization engine
β”‚   └── grid2county_txcap.py     # Aggregation functions
β”œβ”€β”€ examples/                     # Example scripts and outputs
β”‚   β”œβ”€β”€ generate_examples.py     # Create sample visualizations
β”‚   └── README.md                # Examples documentation
β”œβ”€β”€ data/                        # Input data
β”‚   β”œβ”€β”€ base_grid/              # MATPOWER grid data
β”‚   └── counties/               # US county shapefiles
β”œβ”€β”€ outputs/                     # Generated results
β”‚   β”œβ”€β”€ county_edges_tx.csv     # Main output dataset
β”‚   └── README.md               # Output documentation
β”œβ”€β”€ tests/                       # Unit tests
β”œβ”€β”€ docs/                        # Documentation
β”œβ”€β”€ requirements.txt            # Python dependencies
β”œβ”€β”€ .gitignore                 # Git ignore rules
└── README.md                  # This file

πŸ” Data Schema

The output county_edges_tx.csv contains 21 columns:

Geographic Information

  • from_fips, to_fips: County FIPS codes
  • from_county, to_county: County names
  • from_state, to_state: State abbreviations
  • from_lat, from_lon, to_lat, to_lon: Coordinates

Network Information

  • from_zone_id, to_zone_id: Zone identifiers
  • from_zone_name, to_zone_name: Zone names
  • from_interconnect, to_interconnect: Interconnect regions

Transmission Details

  • total_capacity_mw: Combined transmission capacity
  • edge_type: 'AC' or 'HVDC'
  • num_circuits, num_links: Circuit/link counts
  • total_impedance: Electrical characteristics

🎯 Use Cases

  • Grid Planning: Identify transmission bottlenecks and expansion needs
  • Policy Analysis: Analyze inter-regional transmission capabilities
  • Research: Academic studies on power system topology
  • Education: Teaching power systems geography and capacity
  • Visualization: Create publication-quality transmission maps

πŸ§ͺ Testing

Run the test suite:

python -m pytest tests/

πŸ“– Documentation

Detailed documentation is available in the docs/ folder:

🀝 Contributing

Contributions are welcome! Please see our Contributing Guide for details.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

Original Dataset

This work uses the USA Test System dataset:

Software & Libraries

  • MATPOWER for the grid data format specification
  • US Census Bureau for county boundary shapefiles
  • Python Geospatial Community (GeoPandas, Shapely, PyProj) for spatial analysis tools
  • Visualization Libraries (Matplotlib, Plotly) for mapping capabilities

Research Context

The original dataset was developed to support research in:

  • Variable renewable energy integration
  • Demand response optimization
  • Power system planning and operations
  • Grid resilience and reliability analysis
  • US Census Bureau for county shapefiles
  • Python geospatial community (GeoPandas, Shapely, etc.)

For questions about the underlying grid dataset or methodology, please refer to the documentation or open an issue.

About

Python toolkit for aggregating and visualizing electricity transmission networks at the county level

Resources

Contributing

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages