Output Files Generated by create_scenario_fast.py
First version created by Ali Darudi in collaboration with AI (Claude Sonnet 4.5) - January 2026
This document catalogs all CSV and Excel files generated by the create_scenario_fast.py script in the CentIv/cgep folder.
Output Location
All files are saved to: Results/<scenario_name>/
Where <scenario_name> is the name of your scenario.
Within this folder, two subfolders contain results from different optimization stages:
1. InvestmentRun_<RUNYEAR>/ - First Stage (Investment Optimization)
- Contains results from the first optimization run that determines investment decisions
- Includes all model variables, parameters, and constraint duals as CSV files
- Electricity prices in this stage include both investment and operating costs
2. CentIv_<RUNYEAR>/ - Second Stage (Operational Optimization with Fixed Investments plus files used for the Webviewer)
- Contains final output files after fixing the investment decisions from the first stage
- Includes all model variables, parameters, and constraint duals as CSV files
- Contains mapping files that link integer model IDs to meaningful names and attributes
- Additionally, extra files are created (Excel/CSV) documenting system operation and investment (partially used in the Webviewer)
- Electricity prices in this folder reflect only operating costs, as in actual electricity markets
Where <RUNYEAR> is the year being simulated (e.g., 2030, 2040, 2050).
Why Two Stages? The model first optimizes investments (stage 1), then re-runs with those investments fixed (stage 2) to calculate electricity prices that reflect pure operating costs, matching real electricity market price formation.
Overview
The script generates approximately 550+ output files in three main categories:
Category A: Mapping Files (Section 0)
Location: CentIv_<RUNYEAR>/mappings/
These files link integer model IDs to meaningful names and attributes:
- Complete data files for all model elements (generators, buses, lines, transformers, loads)
- Forward and reverse mapping files (ID ↔ attributes)
- Essential for interpreting results and performing post-processing
~50+ files created at the start of the results saving process.
Category B: Post-Processed Result Files (Sections 1-12)
Location: CentIv_<RUNYEAR>/
These are human-readable, aggregated output files created through custom post-processing code:
- Investment decisions - New units, new lines, P2G2P systems
- Demand data - Electricity, heat pumps, e-mobility, hydrogen
- Generation profiles - Per generator, per technology, per country
- Prices - Electricity, reserves
- Storage levels - Dams, pumped hydro, batteries, hydrogen
- Cross-border flows - Imports/exports
- Reserve contributions - FRR, RR
- Power-to-Gas-to-Power (P2G2P) operations
- Curtailment and load shedding
- Aggregate scalars and summaries - Total values, external model inputs
These files involve manual remapping, aggregation, and formatting for analysis and visualization (including the Webviewer). ~100-120 files total.
Category C: Raw Model Internals (Section 13)
Location: InvestmentRun_<RUNYEAR>/ and CentIv_<RUNYEAR>/
These are direct Pyomo model exports with no post-processing:
- All decision variables with optimal values
- All input parameters
- Constraint dual values (shadow prices)
These are the raw materials from the solver - no manual remapping or aggregation applied. ~200+ files in each folder (~400+ total).
Category A: Mapping Files
0. Mapping Files
Location: Results/<scenario_name>/CentIv_<RUNYEAR>/mappings/
Created by: save_results_fcns.saveMappingFiles(mapping_data, results_folder)
This function creates mapping files in both forward and reverse directions for all model elements (generators, buses, lines, transformers, loads).
Why Mapping Files Are Needed
Important: For legacy reasons, the optimization model internally uses only integers as identifiers for all elements:
- Power plants are named:
0,1,2,3, ... - Buses/nodes are named:
0,1,2,3, ...
This integer naming convention makes some of the result files difficult to interpret without context. The mapping files solve this problem by:
- Remapping integers to meaningful names: Convert model IDs (0, 1, 2, ...) to descriptive names (e.g.,
Hydro_Basel,Gas_Germany,Solar_Zurich) - Linking elements to attributes: Map each element to its properties (e.g., plant 42 → Country: CH, Technology: Wind, Canton: Bern)
- Enabling aggregation: Find all generators of a specific type, all buses in a region, etc.
These files are created at the start of the results saving process and are essential for post-processing and analysis.
Complete Data Files
- Data_generators.csv - Complete list of all generators with all attributes
- Data_buses.csv - Complete list of all buses/nodes with all attributes
- Data_lines.csv - Complete list of all transmission lines with all attributes
- Data_transformers.csv - Complete list of all transformers with all attributes
- Data_loads_busnodes.csv - Complete list of load connections to buses
- Data_emobilityloads_busnodes.csv - E-mobility load to bus mappings
- Data_heatpumploads_busnodes.csv - Heat pump load to bus mappings
- Data_H2loads_busnodes.csv - Hydrogen load to bus mappings
- Data_gens_busnodes.csv - Generator to bus connections
- Data_distivinj_busnodes.csv - Distributed generation injection points
Mapping Files (Forward and Reverse)
For each element type and attribute, mapping files are created in both directions:
Generators:
Map_generators_country.csv/Map_country_generators.csvMap_generators_technology.csv/Map_technology_generators.csvMap_generators_busname.csv/Map_busname_generators.csvMap_generators_gentype.csv/Map_gentype_generators.csvMap_generators_unittype.csv/Map_unittype_generators.csvMap_generators_genname.csv/Map_genname_generators.csvMap_generators_fueltype.csv/Map_fueltype_generators.csvMap_generators_subregion.csv/Map_subregion_generators.csv
Buses:
Map_buses_country.csv/Map_country_buses.csvMap_buses_busname.csv/Map_busname_buses.csvMap_buses_subregion.csv/Map_subregion_buses.csv
Lines:
Map_lines_fromcountry.csv/Map_fromcountry_lines.csvMap_lines_tocountry.csv/Map_tocountry_lines.csvMap_lines_linename.csv/Map_linename_lines.csvMap_lines_frombusname.csv/Map_frombusname_lines.csvMap_lines_tobusname.csv/Map_tobusname_lines.csv
Transformers:
- Similar structure to lines with FromCountry, ToCountry, TrafoName, FromBusName, ToBusName
Load Connections:
- Similar mappings for loads, emobility loads, heat pump loads, H2 loads connecting to buses
Purpose: These mappings allow easy filtering and aggregation of results by country, technology, bus, canton, etc. The forward mapping (e.g., Map_generators_country.csv) maps from model ID to attribute value. The reverse mapping (e.g., Map_country_generators.csv) maps from attribute value to all relevant model IDs.
Category B: Post-Processed Result Files
Created by: The main code in create_scenario_fast.py
The following sections (1-12) contain post-processed result files created through custom code that extracts data from the optimization model, performs manual remapping and aggregation, and saves formatted outputs. Helper methods from the SaveResults class in save_results.py are used for file writing.
1. Investment Stage Decision Files
These files capture which new assets are built in the optimization scenario. If invetment in an asset group (e.g., transmission lines) is not activated in the run, the corresponding file will be empty.
Transmission Lines
-
NewLines.xlsx - Investment status of all candidate transmission lines
-
Contains: Line connections, ranks, investment decisions
-
Note: May be empty if no lines are built
-
NewLinesOnlyOneStatus.xlsx - Newly built transmission lines only (filtered to status = 1)
- Contains: Only lines with NewInvestment == 1
Generation Units
-
NewUnits.xlsx - Newly built generation units
-
Contains: Generator names and investment status (NewInvestment == 1)
-
Excludes: Existing generators
-
NewUnitsWithNodeInfo.xlsx - Newly built generation units with node location information
- Contains: Same as NewUnits.xlsx but with node/location details
Power-to-Gas-to-Power (P2G2P) Systems
- NewUnits_P2G2P.xlsx - Newly built P2G2P units
- Contains: GenName, Pmax, Pmin, Emax_h2stor, Pmax_methdac, Technology, NewInvestment
- Filter: NewInvestment == 2 (P2G2P units)
- Note: May be empty if no P2G2P units are built
2. Demand Files
Switzerland (CH)
- Demand_tpRes_CH.xlsx / Demand_tpRes_CH.csv - Swiss hourly demand using representative days (test cases only) (Format: Timeseries by canton/bus)
- Demand_hourly_CH.xlsx / Demand_hourly_CH.csv - Swiss hourly demand (full resolution) - Purpose: For energy market analysis
- eMobilityDemand_tpRes_CH.csv - E-mobility demand using representative days (test cases only) - Contains: EV charging demand by bus/canton
- eMobilityDemand_hourly_CH.xlsx - E-mobility demand (full hourly resolution)
- baseDemand_hourly_CH.xlsx - Base electricity demand (without heat pumps, EVs, H2)
- unflex_heatpumpDemand_hourly_CH.xlsx - Optimized heat pump demand
- uncontrolled_heatpumpDemand_hourly_CH.xlsx - Reference uncontrolled heat pump demand
- heatpumpDemand_hourly_CH.xlsx - Controlled heat pump demand (after optimization)
- H2electrDemand_hourly_CH.xlsx - Hydrogen electrolyzer demand
Neighboring Countries
- Demand_hourly_FR.xlsx - France hourly demand
- Demand_hourly_IT.xlsx - Italy hourly demand
- Demand_hourly_AT.xlsx - Austria hourly demand
- Demand_hourly_DE.xlsx - Germany hourly demand
All Regions
- DemandOriginal_hourly_ALL.csv - Original demand before any adjustments (all nodes)
Demand Shifting & Flexibility
- LoadEmob_BeforeShift_hourly_ALL_LP.csv - E-mobility load before demand shifting
- LoadEmob_AfterShift_hourly_ALL_LP.csv - E-mobility load after demand shifting
- LoadHeatPump_BeforeShift_hourly_ALL_LP.csv - Heat pump load before shifting
- LoadHeatPump_BeforeShift_NonFlexiblePortion_hourly_ALL_LP.csv - Non-flexible portion of HP load
- LoadHeatPump_BeforeShift_FlexiblePortion_hourly_ALL_LP.csv - Flexible portion of HP load (before shift)
- LoadHeatPump_AfterShift_hourly_ALL_LP.csv - Heat pump load after shifting
- LoadHeatPump_AfterShift_FlexiblePortion_hourly_ALL_LP.csv - Flexible portion after shifting
Demand Shift Components
- LoadShiftDSMUp_hourly_ALL_LP.xlsx - Demand-side management upward shifts
- LoadShiftDSMDown_hourly_ALL_LP.xlsx - Demand-side management downward shifts
- LoadShiftEmobUp_hourly_ALL_LP.xlsx - E-mobility upward shifts
- LoadShiftEmobDown_hourly_ALL_LP.xlsx - E-mobility downward shifts
- LoadShiftHpUp_hourly_ALL_LP.xlsx - Heat pump upward shifts
- LoadShiftHpDown_hourly_ALL_LP.xlsx - Heat pump downward shifts
Flexibility Constraints
- LoadEmob_PmaxLimit_hourly_ALL_LP.csv - Upper limit on EV charging power per node
- LoadEmob_PminLimit_hourly_ALL_LP.csv - Lower limit on EV charging power per node
- LoadHeatPump_EmaxCumulativeLimit_hourly_ALL_LP.csv - Upper limit on cumulative HP energy per day
- LoadHeatPump_EminCumulativeLimit_hourly_ALL_LP.csv - Lower limit on cumulative HP energy per day
Additional Demand Files
- FlexLoadHeatPump_hourly_ALL_LP.xlsx - Flexible heat pump load
- heatpumpDemand_hourly_ALL_LP.xlsx - Controlled heat pump demand (all nodes)
- FinalLoadCascades_hourly_ALL_LP.xlsx - Final load including all cascading effects
4. Generation Output Files
All Generators & Countries
- GenerationPerGen_hourly_ALL_LP.xlsx - Generation by each generator (all countries, hourly)- Dimensions: Generators × Hours - Contains: Country, Technology info
- GenerationPerGenGasNet_hourly_ALL_LP.xlsx - Generation with gas network information - Additional info: Generator names for gas network analysis
- GenerationPerGenCANTONS_hourly_ALL_LP.xlsx - Generation by generator with cantonal breakdown - For Switzerland: Includes canton information
- ConsumptionPerGen_full_ALL_LP.xlsx - Consumption by each unit (e.g., pumped hydro, P2G2P) - Contains: Country, Technology
- ConsumptionPerGenCANTONS_hourly_ALL_LP.xlsx - Consumption with cantonal breakdown
- GenerationConsumptionPerGen_hourly_ALL_LP.xlsx - Net generation minus consumption per generator - Purpose: Net energy balance per unit
- GenerationConsumptionPerGenGenNames_hourly_ALL_LP.xlsx - Same as above with generator names
- CurtailmentPerGen_hourly_ALL_LP.xlsx - Curtailment by generator - Contains: Renewable curtailment by generator name
Country-Specific Generation Aggregation
- GenerationPerGenType_hourly_CH_LP.csv - Switzerland generation aggregated by technology type
- GenerationPerGenType_hourly_DE_LP.csv - Germany generation by technology type
- GenerationPerGenType_hourly_IT_LP.csv - Italy generation by technology type
- GenerationPerGenType_hourly_AT_LP.csv - Austria generation by technology type
- GenerationPerGenType_hourly_FR_LP.csv - France generation by technology type
Switzerland Monthly/Total Generation
- GenerationConsumption_monthly_CH_LP.xlsx - CH generation/consumption by technology (monthly) - Contains: Multiple sheets with detailed technology breakdowns (Dams, Pumped, RoR, Nuclear, Biomass, Gas, Solar, Wind, Oil, Batteries, P2G2P, DAC)
- GenerationConsumption_total_CH_LP.xlsx - CH generation/consumption aggregated for CGE model - Contains: Total generation, pumping, investment costs, operational costs by technology
Neighboring Countries Monthly Generation
- GenerationConsumption_monthly_DE_LP.xlsx - Germany monthly generation/pumping by technology
- GenerationConsumption_monthly_AT_LP.xlsx - Austria monthly generation/pumping by technology
- GenerationConsumption_monthly_FR_LP.xlsx - France monthly generation/pumping by technology
- GenerationConsumption_monthly_IT_LP.xlsx - Italy monthly generation/pumping by technology
Generation Costs
- GenerationCostPerGen_hourly_ALL_LP.xlsx - Generation cost per generator per hour
- Contains: Country, Technology, Generator name
5. Price Files
Electricity Prices
-
ElPrice_tpRes_CH.xlsx - Electricity prices for Switzerland (representative days - test cases only) - Contains: Nodal dual variables (shadow prices) in CHF/MWh
-
ElPrice_tpRes_Neighbours.xlsx - Electricity prices for neighboring countries (representative days - test cases only)
- ElPrice_hourly_CH.xlsx - Hourly electricity prices for Switzerland
- ElPrice_hourly_Neighbours.xlsx - Hourly electricity prices for neighboring countries
- ElPrice_hourly_adjustedDistIvABM_CH.xlsx - CH electricity prices adjusted for distributed generation from ABM
- ElPrice_tpRes_adjustedDistIvABM_CH.xlsx - CH prices (representative days - test cases only) adjusted for distributed generation
- ElPrice_hourly_adjustedDistIvABM_Neighbours.xlsx - Neighbor prices adjusted for distributed generation
- ElPrice_tpRes_adjustedDistIvABM_Neighbours.xlsx - Neighbor prices (representative days - test cases only) adjusted for distributed generation
Reserve Prices
- FRRupPrice_tpRes_CH.xlsx - Frequency Restoration Reserve (upward) price
- FRRdownPrice_tpRes_CH.xlsx - Frequency Restoration Reserve (downward) price
- RRupPrice_tpRes_CH.xlsx - Replacement Reserve (upward) price
- RRdownPrice_tpRes_CH.xlsx - Replacement Reserve (downward) price
RES Premium Price
- RESpremiumPrice_CH.xlsx - Renewable Energy Source premium price
- Contains: Dual variable from RES target constraint
6. Reserve Requirement Files
-
AddReserve_Args.xlsx - Additional reserve arguments
-
Contains: Technical characteristics for reserve provision (TCR), distributed investment (DistIv), centralized investment (CentIv) for Wind and Solar
-
Columns: TCR_windUP, TCR_windDOWN, TCR_solarUP, TCR_solarDOWN, DistIv_Solar_MW, CentIv_Solar_MW, CentIv_Wind_MW
-
FRRSystemReserves_tpRes_CH.xlsx - System-wide secondary reserve requirements
-
Contains: FRRdnReq, FRRupReq (MW)
-
ReserveContributionFRR_hourly_CH_LP.xlsx - FRR contributions by technology
-
Sheets: FRRup/down from Dams, Pumps, Daily Pumps, Nuclear (existing & new), Conventional
-
ReserveContributionRR_hourly_CH_LP.xlsx - RR contributions by technology
- Sheets: RRup/down from Dams, Pumps, Daily Pumps, Nuclear (existing & new), Conventional
7. Storage Level Files
Dam & Pumped Hydro Storage
- Reservoirs_hourly_CH_LP.xlsx - Reservoir storage levels (hourly) - Sheets: DamLevel_hourly_CH, PumpLevel_hourly_CH, DailyPumpLevel_hourly_CH
- CumulativeStorageLevels_monthly_CH_LP.xlsx - Monthly cumulative storage levels (all storage)
-
DamStorageLevels_monthly_CH_LP.xlsx / DamStorageLevels_monthly_CH_LP.csv Monthly dam storage levels - Contains: Month names and storage levels in MWh
-
DamGeneration_hourly_CH_LP.xlsx - Dam generation (Switzerland)
- DamGeneration_hourly_Neighbours_LP.xlsx - Dam generation (Neighbors)
- PumpGeneration_hourly_CH_LP.xlsx - Pumped hydro generation (Switzerland)
- PumpConsumption_hourly_CH_LP.xlsx - Pumped hydro consumption (Switzerland)
- PumpGeneration_hourly_Neighbours_LP.xlsx - Pumped hydro generation (Neighbors)
- PumpConsumption_hourly_Neighbours_LP.xlsx - Pumped hydro consumption (Neighbors)
Battery Storage
- BattSoC_hourly_ALL_LP.xlsx - Battery state of charge (all batteries) - Sheets: BattSoC_hourly_existing, BattSoC_hourly_candidate
Hydrogen Storage (P2G2P)
- P2G2P_H2SoC_hourly_ALL_LP.xlsx - Hydrogen storage state of charge - Sheets: H2SoC_hourly_all, H2SoC_hourly_built
8. Cross-Border Flow Files
Switzerland Imports/Exports
-
ExportImport_total_CH_LP.xlsx - Total exports and imports for Switzerland (MWh) - Contains: Tot_Export_CH_MWh, Tot_Import_CH_MWh
-
ExportImport_total_ALL.xlsx - Bilateral flows between all countries - Sheets: CH_AT, CH_DE, CH_FR, CH_IT, DE_FR, DE_AT, FR_IT, IT_AT
-
CrossBorderBranchFlows_hourly_CH_LP.xlsx - Cross-border branch flows involving Switzerland
- CH_exports.csv - Swiss exports by hour and line (negative values)
- CH_imports.csv - Swiss imports by hour and line (positive values, adjusted sign)
All Branch Flows
- BranchFlows_hourly_ALL_LP.xlsx - All transmission line flows (hourly) - Contains: Line ratings, line names
9. Power-to-Gas-to-Power (P2G2P) Files
Market Interactions
- P2G2P_CH4Market_hourly_CH_LP.xlsx - CH4 (methane) to/from market - Units: MWh_th
- P2G2P_H2Market_hourly_CH_LP.xlsx - H2 (hydrogen) to/from market - Units: tonne_H2
- P2G2P_CO2captured_hourly_CH_LP.xlsx - CO2 captured - Units: tonne_CO2
P2G2P Components
- P2G2P_ELconsumption_hourly_CH_LP.xlsx - Electrolyzer electricity consumption - Units: MWh
- P2G2P_CH4DACconsumption_hourly_CH_LP.xlsx - CH4 consumption for DAC (Direct Air Capture) - Units: MWh
- P2G2P_REgeneration_hourly_CH_LP.xlsx - Re-conversion generation (fuel cell / turbine output) - Units: MWh
P2G2P Economics
-
P2G2P_ImportsCosts_hourly_ALL_LP.xlsx - Imports and costs - Sheets: H2import, H2importcost, CH4import, CH4importcost
-
P2G2P_RevenuesCarriers_hourly_ALL_LP.xlsx - Revenues from selling carriers - Sheets: H2revenue, CH4revenue, CO2revenue
P2G2P Variables
- P2G2P_H2vars_hourly_LP.xlsx - Hydrogen balance variables - Sheets: H2byEL_hourly_all, H2meth_hourly_all, H2market_hourly_all, H2recon_hourly_all
10. Curtailment & Load Shedding Files
-
REScurtailmentDistIv_hourly_ALL_LP.xlsx / REScurtailmentDistIv_hourly_ALL_LP.csv
-
Contains: Curtailment of distributed renewable generation by bus/node
- Units: MW
-
Note: A warning message is printed if curtailment occurs
-
LoadShedding_hourly_ALL_LP.xlsx / LoadShedding_hourly_ALL_LP.csv
- Contains: Emergency load shedding by bus/node
- Units: MW
11. Aggregate & Scalar Files
RES Production
- RESGeneration_total_CH.xlsx - Total RES generation in Switzerland - Contains: Tot_RES_Production_MWh
- OriginalRESTarget_total_CH.xlsx - Original RES target for Switzerland - Contains: Original_RES_Target_TWh
Demand Scalar
- Demand_Scalar.xlsx - Demand scaling factor - Contains: DemandScalar used to adjust load
12. Generator Summary Files (for External Models)
- Generators_EM.xlsx - Generator parameters for external energy model (EM) - Contains: Generator names, technologies, Pmax, Pmin
-
Generators_EM_agg.csv - Aggregated generator data by technology - Contains: Technology-level aggregation of Pmax, Pmin
-
Investments_total_CH_LP.xlsx - Total investment summary- Contains: Fixed operational costs, investment costs, total generation by technology
Category C: Raw Model Internals
13. Raw Model Internals (Both Folders) - Direct Pyomo Exports
Locations:
Results/<scenario_name>/InvestmentRun_<RUNYEAR>/- First stage optimization with investment decisionsResults/<scenario_name>/CentIv_<RUNYEAR>/- Second stage optimization with fixed investments
Created by: save_results_fcns.saveVarParDualsCsv(opt.model, results_folder)
This function directly exports all Pyomo model components (variables, parameters, constraint duals) to CSV files without any post-processing.
Important Distinction: Unlike sections 0-12 which contain post-processed, human-readable files created through custom aggregation and remapping code, these are direct, unprocessed exports from the Pyomo optimization model. No manual remapping or aggregation is applied - these are the raw materials from the solver.
All Pyomo model variables, parameters, and constraint duals are exported to CSV files in both folders. These files provide complete access to the optimization model's internal state for advanced analysis and debugging.
Key Difference Between Folders:
- InvestmentRun: Contains results where investment variables are free to optimize (investment costs included in objective)
- CentIv: Contains results where investment decisions are fixed from stage 1 (only operational optimization, electricity prices reflect operating costs only)
Variables (CSV files)
All decision variables from the optimization model are exported with their optimal values. Examples include:
- Generation variables: Power output by generator and time period
- Storage variables: State of charge for batteries, hydro, hydrogen storage
- Investment variables: Binary/continuous decisions for new capacity
- Load shifting variables: Flexible demand adjustments
- Flow variables: Power flows on transmission lines
- Reserve variables: Reserve provision by generators
Each variable file is named <variable_name>.csv and contains:
- Index columns identifying the variable indices (e.g., generator ID, time period, bus)
- Value column with the optimal solution value
Tip: To find where a variable is defined in the code, use the project-wide search (Ctrl+Shift+F in VS Code) and search for <variable_name> = (e.g., MaxPowerInvNonDisp =).
Parameters (CSV files)
All model parameters (input data) are exported. Examples include:
- Generator characteristics: Pmax, Pmin, efficiency, costs
- Time series data: Demand profiles, renewable availability factors
- Network parameters: Line capacities, reactances
- Cost parameters: Fuel prices, investment costs, operational costs
Each parameter file is named <parameter_name>.csv with the same structure as variables.
Tip: To find where a parameter is defined in the code, use the project-wide search (Ctrl+Shift+F in VS Code) and search for <parameter_name> =.
Constraint Duals (CSV files with _dual suffix)
Dual values (shadow prices) for key constraints are exported. These duals represent the marginal value of relaxing each constraint. Currently exported duals include:
- NodalConstraint_dual.csv / NodalConstraint_one_CH_dual.csv - Nodal energy balance duals (electricity prices)
- SoCHydroCon1_dual.csv - Hydro storage constraint duals
- SoCHydroDamCon_dual.csv - Dam storage constraint duals
- SoCBattCandCon_dual.csv / SoCBattCon_dual.csv / SoCCon_dual.csv - Battery storage constraint duals
- SoCDSMCon_dual.csv - Demand-side management storage constraint duals
- SoCHydrogenCandCon_dual.csv / SoCH2CandCon_dual.csv - Hydrogen storage constraint duals
- SoCHydroDayCon1_dual.csv - Daily hydro storage constraint duals
Each dual file contains:
- Index columns identifying the constraint instance
- Value column with the dual (shadow price) value
Model Statistics
- selected_stats.csv - Summary statistics including:
- Solver termination condition and status
- Objective function value (total system cost)
- Solve time
- Number of variables and constraints
- Duration log of different model building and solving phases
Purpose
These InvestmentRun files are primarily for:
- Advanced debugging: Inspecting all model variables and parameters
- Custom post-processing: Building analyses not covered by standard output files
- Model validation: Verifying constraint satisfaction and solution quality
- Research: Accessing detailed optimization results for academic studies
Note: These files can be very large (hundreds of MB) depending on model size. Production runs use full 8760 hourly resolution.
14. Input Files (Read by Script)
These files are read by the script (not written):
- Hourly_Nodal_Residual_Demand.xlsx - Residual demand input
- Residual_FRR_System_Reserves.xlsx - Reserve requirements input
- GenerationDistIv_hourly_CH.xlsx - Distributed generation input (if ABM is not used)
- priorityList.csv - Priority list for generators
- expPlanTable.csv - Expansion plan table
File Naming Conventions
Temporal Resolution Suffixes
_tpRes_- Temporally aggregated resolution using representative days (test cases only). The model runs on selected days which are then copied to fill 8760 hours. Normal production runs do not use this - they run full 8760 hours._hourly_- Full hourly resolution (8760 hours) - standard for production runs_monthly_- Monthly aggregation
Geographic Suffixes
_CH- Switzerland only_Neighbours- AT, DE, FR, IT (neighboring countries)_ALL- All regions/nodes_LP- Linear Programming optimization results (2nd stage runs)
Technology Suffixes
- DistIv - Distributed Investment (e.g., rooftop solar)
- CentIv - Centralized Investment (e.g., utility-scale solar/wind)
- P2G2P - Power-to-Gas-to-Power systems
- EM - Energy Model (external CGE or equilibrium model)
Categories Summary
| Category | Number of Files | File Type | Location |
|---|---|---|---|
| Mapping Files | 50+ | .csv | CentIv_YEAR/mappings/ |
| Investment Decisions | 5 | .xlsx | CentIv_YEAR/ |
| Demand | 25+ | .xlsx, .csv | CentIv_YEAR/ |
| Distributed Generation | 3 | .xlsx, .csv | CentIv_YEAR/ |
| Generation Output | 20+ | .xlsx, .csv | CentIv_YEAR/ |
| Prices | 10+ | .xlsx | CentIv_YEAR/ |
| Reserve Requirements | 4 | .xlsx | CentIv_YEAR/ |
| Storage Levels | 12+ | .xlsx, .csv | CentIv_YEAR/ |
| Cross-Border Flows | 6 | .xlsx, .csv | CentIv_YEAR/ |
| P2G2P Operations | 15+ | .xlsx | CentIv_YEAR/ |
| Curtailment & Load Shedding | 4 | .xlsx, .csv | CentIv_YEAR/ |
| Aggregates & Scalars | 3 | .xlsx | CentIv_YEAR/ |
| Generator Summaries | 3 | .xlsx, .csv | CentIv_YEAR/ |
| Model Internals | 200+ each | .csv | InvestmentRun_YEAR/ & CentIv_YEAR/ |
Total: Approximately 550+ output files (100-120 result files in CentIv, 50+ mapping files in CentIv, 200+ model internals in InvestmentRun, 200+ model internals in CentIv)
Usage Notes
-
Conditional Generation: Many files are only created if certain model features are enabled:
-
P2G2P files require P2G2P units to be active
- Reserve files require reserve modeling to be enabled
-
Distributed generation files depend on ABM integration
-
File Formats:
-
.xlsxfiles typically have multiple sheets and formatted data -
.csvfiles are simpler, single-table format for easier programmatic access -
Coordinate Systems:
-
Most files use node/bus identifiers
- Swiss files often include canton information
-
Generator files include technology and country info
-
Sign Conventions:
- Exports: Negative values indicate power leaving a region
- Imports: Positive values indicate power entering a region
- Some files are adjusted for post-processing (e.g.,
CH_exports.csvhas signs flipped)