Output
PyEPlan generates comprehensive output through various result methods that provide detailed analysis results for investment planning, operation planning, and system performance evaluation.
Output Structure
PyEPlan produces results through dedicated methods that return pandas DataFrames containing detailed analysis information:
Cost Analysis Results: Total system costs and breakdowns
Technology Results: Generation and storage operation details
Network Results: Power flows and voltage profiles
Curtailment Results: Load shedding and renewable curtailment
Cost Analysis Outputs
Cost Results (resCost() method)
Returns a pandas DataFrame containing:
Total system cost breakdown
Investment costs by technology type
Operational costs by component
Shedding costs (demand and renewable)
Cost per scenario and time period
Example output structure:
costs = inv_sys.resCost()
print(costs.head())
# Typical columns:
# - scenario: Representative day scenario
# - time_period: Hour of the day
# - investment_cost: Capital costs
# - operation_cost: Fuel and O&M costs
# - shedding_cost: Load shedding and curtailment costs
# - total_cost: Sum of all costs
Technology Operation Results
Wind Generation Results (resWind() method)
Returns detailed wind turbine operation: * Power generation by wind turbine * Capacity utilization * Curtailment levels * Operation by scenario and time period
Solar Generation Results (resSolar() method)
Returns detailed solar PV operation:
Power generation by solar system
Capacity utilization
Curtailment levels
Operation by scenario and time period
Conventional Generation Results (resConv() method)
Returns conventional generator operation:
Power generation by generator
Start-up/shut-down decisions
Fuel consumption
Operation costs
Battery Storage Results (resBat() method)
Returns battery energy storage operation:
Charge/discharge power
State of charge profiles
Energy storage levels
Battery utilization
Curtailment Analysis
Curtailment Results (resCurt() method)
Returns information about:
Load shedding by bus and time period
Renewable energy curtailment
Shedding costs and penalties
System adequacy indicators
Network Analysis Outputs
Network Configuration Files
The routing module (rousys) generates:
path.png: Network topology visualization
rou_dist.csv: Routing distances between connected nodes
elin_dist.csv: Electrical line parameters and specifications
Network Parameters:
Line resistances and reactances
Current carrying capacities
Voltage drop calculations
Power flow limits
Data Processing Outputs
Representative Days
The data processing module (datsys) generates:
Clustered representative days
Renewable generation profiles
Load demand scenarios
Time duration weights for each scenario
PVGIS Data:
Solar irradiance profiles
Wind speed data
Temperature profiles
Geographic and temporal data
Output File Formats
PyEPlan generates outputs in multiple formats:
Pandas DataFrames: Structured data for analysis and visualization
CSV Files: Network configuration and routing data
PNG Files: Network topology visualizations
Excel Files: Input data and configuration files
Example Output Structure
input_folder/
├── mgpc_dist.xlsx # Load and generation data
├── geol_dist.csv # Geographic coordinates
├── cblt_dist.csv # Cable parameters
├── cgen_dist.csv # Conventional generator data
├── csol_dist.csv # Solar PV data
├── cwin_dist.csv # Wind turbine data
├── cbat_dist.csv # Battery storage data
├── elin_dist.csv # Electrical line data
├── pdem_dist.csv # Active power demand
├── qdem_dist.csv # Reactive power demand
├── prep_dist.csv # Renewable power profiles
├── qrep_dist.csv # Renewable reactive power
├── psol_dist.csv # Solar power scenarios
├── qsol_dist.csv # Solar reactive scenarios
├── pwin_dist.csv # Wind power scenarios
├── qwin_dist.csv # Wind reactive scenarios
├── dtim_dist.csv # Time duration weights
├── rou_dist.csv # Routing distances (generated)
├── elin_dist.csv # Electrical lines (generated)
└── path.png # Network visualization (generated)
Interpreting Results
Key Performance Indicators:
Total System Cost: Sum of investment, operation, and shedding costs
Technology Mix: Optimal capacity and operation of each technology
System Reliability: Load shedding and curtailment levels
Storage Utilization: Battery charge/discharge patterns
Network Performance: Power flows and voltage profiles
Economic Analysis:
Compare different technology combinations
Assess cost sensitivity to key parameters
Evaluate grid vs. off-grid scenarios
Analyze impact of renewable penetration
Technical Analysis:
System reliability assessment
Network adequacy evaluation
Storage utilization analysis
Renewable energy integration
Results Analysis Example
# Get comprehensive results
costs = inv_sys.resCost()
wind_results = inv_sys.resWind()
battery_results = inv_sys.resBat()
solar_results = inv_sys.resSolar()
conventional_results = inv_sys.resConv()
curtailment_results = inv_sys.resCurt()
# Analyze total system cost
total_cost = costs['total_cost'].sum()
print(f"Total System Cost: ${total_cost:,.2f}")
# Analyze technology mix
wind_capacity = wind_results['capacity'].max()
solar_capacity = solar_results['capacity'].max()
battery_capacity = battery_results['capacity'].max()
print(f"Optimal Capacity Mix:")
print(f" Wind: {wind_capacity:.2f} kW")
print(f" Solar: {solar_capacity:.2f} kW")
print(f" Battery: {battery_capacity:.2f} kWh")
# Analyze system reliability
total_shedding = curtailment_results['load_shedding'].sum()
total_curtailment = curtailment_results['renewable_curtailment'].sum()
print(f"System Reliability:")
print(f" Total Load Shedding: {total_shedding:.2f} kWh")
print(f" Total Renewable Curtailment: {total_curtailment:.2f} kWh")
Visualization and Reporting
PyEPlan results can be easily visualized using standard Python plotting libraries:
Time Series Plots: Generation profiles, load patterns, storage levels
Bar Charts: Cost breakdowns, capacity mix, technology comparison
Network Diagrams: System topology and power flows
Heat Maps: Spatial and temporal analysis of system operation
The structured DataFrame outputs enable easy integration with external analysis tools and custom visualization workflows.