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.
- 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)
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
git clone https://github.com/swang22/Transmission-Network-Aggregator.git
cd Transmission-Network-Aggregator
pip install -r requirements.txtThis 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.csvDataset 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:
- Visit: https://zenodo.org/records/4538590
- Download the
USATestSystem.zipfile (~4.2 GB) - 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).
python src/run_transmission.pyThis creates outputs/county_edges_tx.csv with all transmission edges.
# 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# 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# 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)python examples/generate_examples.pyThe --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
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)
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
The output county_edges_tx.csv contains 21 columns:
from_fips,to_fips: County FIPS codesfrom_county,to_county: County namesfrom_state,to_state: State abbreviationsfrom_lat,from_lon,to_lat,to_lon: Coordinates
from_zone_id,to_zone_id: Zone identifiersfrom_zone_name,to_zone_name: Zone namesfrom_interconnect,to_interconnect: Interconnect regions
total_capacity_mw: Combined transmission capacityedge_type: 'AC' or 'HVDC'num_circuits,num_links: Circuit/link countstotal_impedance: Electrical characteristics
- 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
Run the test suite:
python -m pytest tests/Detailed documentation is available in the docs/ folder:
Contributions are welcome! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
This work uses the USA Test System dataset:
- 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
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.
