diff --git a/README.md b/README.md index 166ef42..b166d04 100644 --- a/README.md +++ b/README.md @@ -52,8 +52,7 @@ A YAML file `config.yaml` must be placed in the config directory. datapackage: config/scenarios.csv # Tell the workflow which model results to plot -result_params: config/results.csv -agg_results: config/agg_results.csv +results: config/results.csv # Filetype options: 'csv' or 'parquet' or 'feather' filetype: csv diff --git a/config/agg_results.csv b/config/agg_results.csv deleted file mode 100644 index 56dc50a..0000000 --- a/config/agg_results.csv +++ /dev/null @@ -1,5 +0,0 @@ -resultfile,indices,filename -TotalCapacityAnnual,"REGION",annual_capacity -AnnualEmissions,"REGION",emissions -Demand,"REGION",annual_demand -ProductionByTechnology,"REGION",annual_generation diff --git a/config/parameters.csv b/config/parameters.csv index 32ef533..1c68209 100644 --- a/config/parameters.csv +++ b/config/parameters.csv @@ -1 +1,5 @@ name,group,indexes,min_value_base_year,max_value_base_year,min_value_end_year,max_value_end_year,dist,interpolation_index,action +CapitalCost,capital,"R1,RENEWABLE",4500,5500,2000,3000,"unif","YEAR","interpolate" +VariableCost,variable,"R1,MINE_RENEWABLE,1",1,2,0.75,1,"unif","YEAR","interpolate" +InputActivityRatio,efficiency,"R1,RENEWABLE,RENEWABLE_FUEL,1",2.5,3.0,1.5,2,"unif","YEAR","interpolate" +OperationalLife,oplife,"R1,RENEWABLE",50,100,50,100,"unif","","fixed" diff --git a/config/results.csv b/config/results.csv index f7cbe2f..515f3dc 100644 --- a/config/results.csv +++ b/config/results.csv @@ -1,2 +1,2 @@ -name -Demand +resultfile,filename,REGION,TECHNOLOGY,FUEL,EMISSION +TotalDiscountedCost,DiscountedCost,"R1",,, diff --git a/examples/Example_One/data/AccumulatedAnnualDemand.csv b/examples/Example_One/data/AccumulatedAnnualDemand.csv deleted file mode 100644 index 326b28c..0000000 --- a/examples/Example_One/data/AccumulatedAnnualDemand.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,FUEL,YEAR,VALUE diff --git a/examples/Example_One/data/AnnualEmissionLimit.csv b/examples/Example_One/data/AnnualEmissionLimit.csv deleted file mode 100644 index 1fa535a..0000000 --- a/examples/Example_One/data/AnnualEmissionLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,YEAR,VALUE diff --git a/examples/Example_One/data/AnnualExogenousEmission.csv b/examples/Example_One/data/AnnualExogenousEmission.csv deleted file mode 100644 index 1fa535a..0000000 --- a/examples/Example_One/data/AnnualExogenousEmission.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,YEAR,VALUE diff --git a/examples/Example_One/data/AvailabilityFactor.csv b/examples/Example_One/data/AvailabilityFactor.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_One/data/AvailabilityFactor.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_One/data/CapacityFactor.csv b/examples/Example_One/data/CapacityFactor.csv deleted file mode 100644 index dc65c86..0000000 --- a/examples/Example_One/data/CapacityFactor.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,TIMESLICE,YEAR,VALUE \ No newline at end of file diff --git a/examples/Example_One/data/CapacityOfOneTechnologyUnit.csv b/examples/Example_One/data/CapacityOfOneTechnologyUnit.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_One/data/CapacityOfOneTechnologyUnit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_One/data/CapacityToActivityUnit.csv b/examples/Example_One/data/CapacityToActivityUnit.csv deleted file mode 100644 index e83e51b..0000000 --- a/examples/Example_One/data/CapacityToActivityUnit.csv +++ /dev/null @@ -1,2 +0,0 @@ -REGION,TECHNOLOGY,VALUE -R1,NUCLEAR,31.536 diff --git a/examples/Example_One/data/CapitalCost.csv b/examples/Example_One/data/CapitalCost.csv deleted file mode 100644 index d783249..0000000 --- a/examples/Example_One/data/CapitalCost.csv +++ /dev/null @@ -1,51 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE -R1,NUCLEAR,2020,4000 -R1,NUCLEAR,2021,4000 -R1,NUCLEAR,2022,4000 -R1,NUCLEAR,2023,4000 -R1,NUCLEAR,2024,4000 -R1,NUCLEAR,2025,4000 -R1,NUCLEAR,2026,4000 -R1,NUCLEAR,2027,4000 -R1,NUCLEAR,2028,4000 -R1,NUCLEAR,2029,4000 -R1,NUCLEAR,2030,4000 -R1,NUCLEAR,2031,4000 -R1,NUCLEAR,2032,4000 -R1,NUCLEAR,2033,4000 -R1,NUCLEAR,2034,4000 -R1,NUCLEAR,2035,4000 -R1,NUCLEAR,2036,4000 -R1,NUCLEAR,2037,4000 -R1,NUCLEAR,2038,4000 -R1,NUCLEAR,2039,4000 -R1,NUCLEAR,2040,4000 -R1,NUCLEAR,2041,4000 -R1,NUCLEAR,2042,4000 -R1,NUCLEAR,2043,4000 -R1,NUCLEAR,2044,4000 -R1,NUCLEAR,2045,4000 -R1,NUCLEAR,2046,4000 -R1,NUCLEAR,2047,4000 -R1,NUCLEAR,2048,4000 -R1,NUCLEAR,2049,4000 -R1,NUCLEAR,2050,4000 -R1,NUCLEAR,2051,4000 -R1,NUCLEAR,2052,4000 -R1,NUCLEAR,2053,4000 -R1,NUCLEAR,2054,4000 -R1,NUCLEAR,2055,4000 -R1,NUCLEAR,2056,4000 -R1,NUCLEAR,2057,4000 -R1,NUCLEAR,2058,4000 -R1,NUCLEAR,2059,4000 -R1,NUCLEAR,2060,4000 -R1,NUCLEAR,2061,4000 -R1,NUCLEAR,2062,4000 -R1,NUCLEAR,2063,4000 -R1,NUCLEAR,2064,4000 -R1,NUCLEAR,2065,4000 -R1,NUCLEAR,2066,4000 -R1,NUCLEAR,2067,4000 -R1,NUCLEAR,2068,4000 -R1,NUCLEAR,2069,4000 diff --git a/examples/Example_One/data/CapitalCostStorage.csv b/examples/Example_One/data/CapitalCostStorage.csv deleted file mode 100644 index a7bcbd7..0000000 --- a/examples/Example_One/data/CapitalCostStorage.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,YEAR,VALUE diff --git a/examples/Example_One/data/Conversionld.csv b/examples/Example_One/data/Conversionld.csv deleted file mode 100644 index 360887a..0000000 --- a/examples/Example_One/data/Conversionld.csv +++ /dev/null @@ -1 +0,0 @@ -TIMESLICE,DAYTYPE,VALUE diff --git a/examples/Example_One/data/Conversionlh.csv b/examples/Example_One/data/Conversionlh.csv deleted file mode 100644 index 6fc0a29..0000000 --- a/examples/Example_One/data/Conversionlh.csv +++ /dev/null @@ -1 +0,0 @@ -TIMESLICE,DAILYTIMEBRACKET,VALUE diff --git a/examples/Example_One/data/Conversionls.csv b/examples/Example_One/data/Conversionls.csv deleted file mode 100644 index 47b6ebd..0000000 --- a/examples/Example_One/data/Conversionls.csv +++ /dev/null @@ -1 +0,0 @@ -TIMESLICE,SEASON,VALUE diff --git a/examples/Example_One/data/DAILYTIMEBRACKET.csv b/examples/Example_One/data/DAILYTIMEBRACKET.csv deleted file mode 100644 index 2dfe6a3..0000000 --- a/examples/Example_One/data/DAILYTIMEBRACKET.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE diff --git a/examples/Example_One/data/DAYTYPE.csv b/examples/Example_One/data/DAYTYPE.csv deleted file mode 100644 index e1aeddd..0000000 --- a/examples/Example_One/data/DAYTYPE.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE diff --git a/examples/Example_One/data/DaySplit.csv b/examples/Example_One/data/DaySplit.csv deleted file mode 100644 index 83dab5c..0000000 --- a/examples/Example_One/data/DaySplit.csv +++ /dev/null @@ -1 +0,0 @@ -DAILYTIMEBRACKET,YEAR,VALUE diff --git a/examples/Example_One/data/DaysInDayType.csv b/examples/Example_One/data/DaysInDayType.csv deleted file mode 100644 index 7e5dd71..0000000 --- a/examples/Example_One/data/DaysInDayType.csv +++ /dev/null @@ -1 +0,0 @@ -SEASON,DAYTYPE,YEAR,VALUE diff --git a/examples/Example_One/data/DepreciationMethod.csv b/examples/Example_One/data/DepreciationMethod.csv deleted file mode 100644 index 8f1fa36..0000000 --- a/examples/Example_One/data/DepreciationMethod.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,VALUE diff --git a/examples/Example_One/data/DiscountRate.csv b/examples/Example_One/data/DiscountRate.csv deleted file mode 100644 index f819b3b..0000000 --- a/examples/Example_One/data/DiscountRate.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,VALUE \ No newline at end of file diff --git a/examples/Example_One/data/DiscountRateStorage.csv b/examples/Example_One/data/DiscountRateStorage.csv deleted file mode 100644 index 8b80bbd..0000000 --- a/examples/Example_One/data/DiscountRateStorage.csv +++ /dev/null @@ -1,2 +0,0 @@ -REGION,STORAGE,VALUE - diff --git a/examples/Example_One/data/EMISSION.csv b/examples/Example_One/data/EMISSION.csv deleted file mode 100644 index 2dfe6a3..0000000 --- a/examples/Example_One/data/EMISSION.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE diff --git a/examples/Example_One/data/EmissionActivityRatio.csv b/examples/Example_One/data/EmissionActivityRatio.csv deleted file mode 100644 index 7c1c3ff..0000000 --- a/examples/Example_One/data/EmissionActivityRatio.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,EMISSION,MODE_OF_OPERATION,YEAR,VALUE diff --git a/examples/Example_One/data/EmissionsPenalty.csv b/examples/Example_One/data/EmissionsPenalty.csv deleted file mode 100644 index 1fa535a..0000000 --- a/examples/Example_One/data/EmissionsPenalty.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,YEAR,VALUE diff --git a/examples/Example_One/data/FUEL.csv b/examples/Example_One/data/FUEL.csv deleted file mode 100644 index 7858d8b..0000000 --- a/examples/Example_One/data/FUEL.csv +++ /dev/null @@ -1,3 +0,0 @@ -VALUE -URANIUM -ELECTRICITY diff --git a/examples/Example_One/data/FixedCost.csv b/examples/Example_One/data/FixedCost.csv deleted file mode 100644 index 15380b9..0000000 --- a/examples/Example_One/data/FixedCost.csv +++ /dev/null @@ -1,51 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE -R1,NUCLEAR,2020,50 -R1,NUCLEAR,2021,50 -R1,NUCLEAR,2022,50 -R1,NUCLEAR,2023,50 -R1,NUCLEAR,2024,50 -R1,NUCLEAR,2025,50 -R1,NUCLEAR,2026,50 -R1,NUCLEAR,2027,50 -R1,NUCLEAR,2028,50 -R1,NUCLEAR,2029,50 -R1,NUCLEAR,2030,50 -R1,NUCLEAR,2031,50 -R1,NUCLEAR,2032,50 -R1,NUCLEAR,2033,50 -R1,NUCLEAR,2034,50 -R1,NUCLEAR,2035,50 -R1,NUCLEAR,2036,50 -R1,NUCLEAR,2037,50 -R1,NUCLEAR,2038,50 -R1,NUCLEAR,2039,50 -R1,NUCLEAR,2040,50 -R1,NUCLEAR,2041,50 -R1,NUCLEAR,2042,50 -R1,NUCLEAR,2043,50 -R1,NUCLEAR,2044,50 -R1,NUCLEAR,2045,50 -R1,NUCLEAR,2046,50 -R1,NUCLEAR,2047,50 -R1,NUCLEAR,2048,50 -R1,NUCLEAR,2049,50 -R1,NUCLEAR,2050,50 -R1,NUCLEAR,2051,50 -R1,NUCLEAR,2052,50 -R1,NUCLEAR,2053,50 -R1,NUCLEAR,2054,50 -R1,NUCLEAR,2055,50 -R1,NUCLEAR,2056,50 -R1,NUCLEAR,2057,50 -R1,NUCLEAR,2058,50 -R1,NUCLEAR,2059,50 -R1,NUCLEAR,2060,50 -R1,NUCLEAR,2061,50 -R1,NUCLEAR,2062,50 -R1,NUCLEAR,2063,50 -R1,NUCLEAR,2064,50 -R1,NUCLEAR,2065,50 -R1,NUCLEAR,2066,50 -R1,NUCLEAR,2067,50 -R1,NUCLEAR,2068,50 -R1,NUCLEAR,2069,50 diff --git a/examples/Example_One/data/InputActivityRatio.csv b/examples/Example_One/data/InputActivityRatio.csv deleted file mode 100644 index 3354313..0000000 --- a/examples/Example_One/data/InputActivityRatio.csv +++ /dev/null @@ -1,51 +0,0 @@ -REGION,TECHNOLOGY,FUEL,MODE_OF_OPERATION,YEAR,VALUE -R1,NUCLEAR,URANIUM,1,2020,1.25 -R1,NUCLEAR,URANIUM,1,2021,1.25 -R1,NUCLEAR,URANIUM,1,2022,1.25 -R1,NUCLEAR,URANIUM,1,2023,1.25 -R1,NUCLEAR,URANIUM,1,2024,1.25 -R1,NUCLEAR,URANIUM,1,2025,1.25 -R1,NUCLEAR,URANIUM,1,2026,1.25 -R1,NUCLEAR,URANIUM,1,2027,1.25 -R1,NUCLEAR,URANIUM,1,2028,1.25 -R1,NUCLEAR,URANIUM,1,2029,1.25 -R1,NUCLEAR,URANIUM,1,2030,1.25 -R1,NUCLEAR,URANIUM,1,2031,1.25 -R1,NUCLEAR,URANIUM,1,2032,1.25 -R1,NUCLEAR,URANIUM,1,2033,1.25 -R1,NUCLEAR,URANIUM,1,2034,1.25 -R1,NUCLEAR,URANIUM,1,2035,1.25 -R1,NUCLEAR,URANIUM,1,2036,1.25 -R1,NUCLEAR,URANIUM,1,2037,1.25 -R1,NUCLEAR,URANIUM,1,2038,1.25 -R1,NUCLEAR,URANIUM,1,2039,1.25 -R1,NUCLEAR,URANIUM,1,2040,1.25 -R1,NUCLEAR,URANIUM,1,2041,1.25 -R1,NUCLEAR,URANIUM,1,2042,1.25 -R1,NUCLEAR,URANIUM,1,2043,1.25 -R1,NUCLEAR,URANIUM,1,2044,1.25 -R1,NUCLEAR,URANIUM,1,2045,1.25 -R1,NUCLEAR,URANIUM,1,2046,1.25 -R1,NUCLEAR,URANIUM,1,2047,1.25 -R1,NUCLEAR,URANIUM,1,2048,1.25 -R1,NUCLEAR,URANIUM,1,2049,1.25 -R1,NUCLEAR,URANIUM,1,2050,1.25 -R1,NUCLEAR,URANIUM,1,2051,1.25 -R1,NUCLEAR,URANIUM,1,2052,1.25 -R1,NUCLEAR,URANIUM,1,2053,1.25 -R1,NUCLEAR,URANIUM,1,2054,1.25 -R1,NUCLEAR,URANIUM,1,2055,1.25 -R1,NUCLEAR,URANIUM,1,2056,1.25 -R1,NUCLEAR,URANIUM,1,2057,1.25 -R1,NUCLEAR,URANIUM,1,2058,1.25 -R1,NUCLEAR,URANIUM,1,2059,1.25 -R1,NUCLEAR,URANIUM,1,2060,1.25 -R1,NUCLEAR,URANIUM,1,2061,1.25 -R1,NUCLEAR,URANIUM,1,2062,1.25 -R1,NUCLEAR,URANIUM,1,2063,1.25 -R1,NUCLEAR,URANIUM,1,2064,1.25 -R1,NUCLEAR,URANIUM,1,2065,1.25 -R1,NUCLEAR,URANIUM,1,2066,1.25 -R1,NUCLEAR,URANIUM,1,2067,1.25 -R1,NUCLEAR,URANIUM,1,2068,1.25 -R1,NUCLEAR,URANIUM,1,2069,1.25 diff --git a/examples/Example_One/data/MODE_OF_OPERATION.csv b/examples/Example_One/data/MODE_OF_OPERATION.csv deleted file mode 100644 index 69e52e5..0000000 --- a/examples/Example_One/data/MODE_OF_OPERATION.csv +++ /dev/null @@ -1,2 +0,0 @@ -VALUE -1 diff --git a/examples/Example_One/data/MinStorageCharge.csv b/examples/Example_One/data/MinStorageCharge.csv deleted file mode 100644 index a7bcbd7..0000000 --- a/examples/Example_One/data/MinStorageCharge.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,YEAR,VALUE diff --git a/examples/Example_One/data/ModelPeriodEmissionLimit.csv b/examples/Example_One/data/ModelPeriodEmissionLimit.csv deleted file mode 100644 index ccd4bcb..0000000 --- a/examples/Example_One/data/ModelPeriodEmissionLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,VALUE diff --git a/examples/Example_One/data/ModelPeriodExogenousEmission.csv b/examples/Example_One/data/ModelPeriodExogenousEmission.csv deleted file mode 100644 index ccd4bcb..0000000 --- a/examples/Example_One/data/ModelPeriodExogenousEmission.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,VALUE diff --git a/examples/Example_One/data/OperationalLife.csv b/examples/Example_One/data/OperationalLife.csv deleted file mode 100644 index f1db5ed..0000000 --- a/examples/Example_One/data/OperationalLife.csv +++ /dev/null @@ -1,2 +0,0 @@ -REGION,TECHNOLOGY,VALUE -R1,NUCLEAR,50 diff --git a/examples/Example_One/data/OperationalLifeStorage.csv b/examples/Example_One/data/OperationalLifeStorage.csv deleted file mode 100644 index 2176c14..0000000 --- a/examples/Example_One/data/OperationalLifeStorage.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,VALUE diff --git a/examples/Example_One/data/OutputActivityRatio.csv b/examples/Example_One/data/OutputActivityRatio.csv deleted file mode 100644 index 2665fc3..0000000 --- a/examples/Example_One/data/OutputActivityRatio.csv +++ /dev/null @@ -1,103 +0,0 @@ -REGION,TECHNOLOGY,FUEL,MODE_OF_OPERATION,YEAR,VALUE -R1,NUCLEAR,ELECTRICITY,1,2020,1 -R1,NUCLEAR,ELECTRICITY,1,2021,1 -R1,NUCLEAR,ELECTRICITY,1,2022,1 -R1,NUCLEAR,ELECTRICITY,1,2023,1 -R1,NUCLEAR,ELECTRICITY,1,2024,1 -R1,NUCLEAR,ELECTRICITY,1,2025,1 -R1,NUCLEAR,ELECTRICITY,1,2026,1 -R1,NUCLEAR,ELECTRICITY,1,2027,1 -R1,NUCLEAR,ELECTRICITY,1,2028,1 -R1,NUCLEAR,ELECTRICITY,1,2029,1 -R1,NUCLEAR,ELECTRICITY,1,2030,1 -R1,NUCLEAR,ELECTRICITY,1,2031,1 -R1,NUCLEAR,ELECTRICITY,1,2032,1 -R1,NUCLEAR,ELECTRICITY,1,2033,1 -R1,NUCLEAR,ELECTRICITY,1,2034,1 -R1,NUCLEAR,ELECTRICITY,1,2035,1 -R1,NUCLEAR,ELECTRICITY,1,2036,1 -R1,NUCLEAR,ELECTRICITY,1,2037,1 -R1,NUCLEAR,ELECTRICITY,1,2038,1 -R1,NUCLEAR,ELECTRICITY,1,2039,1 -R1,NUCLEAR,ELECTRICITY,1,2040,1 -R1,NUCLEAR,ELECTRICITY,1,2041,1 -R1,NUCLEAR,ELECTRICITY,1,2042,1 -R1,NUCLEAR,ELECTRICITY,1,2043,1 -R1,NUCLEAR,ELECTRICITY,1,2044,1 -R1,NUCLEAR,ELECTRICITY,1,2045,1 -R1,NUCLEAR,ELECTRICITY,1,2046,1 -R1,NUCLEAR,ELECTRICITY,1,2047,1 -R1,NUCLEAR,ELECTRICITY,1,2048,1 -R1,NUCLEAR,ELECTRICITY,1,2049,1 -R1,NUCLEAR,ELECTRICITY,1,2050,1 -R1,NUCLEAR,ELECTRICITY,1,2051,1 -R1,NUCLEAR,ELECTRICITY,1,2052,1 -R1,NUCLEAR,ELECTRICITY,1,2053,1 -R1,NUCLEAR,ELECTRICITY,1,2054,1 -R1,NUCLEAR,ELECTRICITY,1,2055,1 -R1,NUCLEAR,ELECTRICITY,1,2056,1 -R1,NUCLEAR,ELECTRICITY,1,2057,1 -R1,NUCLEAR,ELECTRICITY,1,2058,1 -R1,NUCLEAR,ELECTRICITY,1,2059,1 -R1,NUCLEAR,ELECTRICITY,1,2060,1 -R1,NUCLEAR,ELECTRICITY,1,2061,1 -R1,NUCLEAR,ELECTRICITY,1,2062,1 -R1,NUCLEAR,ELECTRICITY,1,2063,1 -R1,NUCLEAR,ELECTRICITY,1,2064,1 -R1,NUCLEAR,ELECTRICITY,1,2065,1 -R1,NUCLEAR,ELECTRICITY,1,2066,1 -R1,NUCLEAR,ELECTRICITY,1,2067,1 -R1,NUCLEAR,ELECTRICITY,1,2068,1 -R1,NUCLEAR,ELECTRICITY,1,2069,1 -R1,NUCLEAR,ELECTRICITY,1,2070,1 -R1,MINE_URANIUM,URANIUM,1,2020,1 -R1,MINE_URANIUM,URANIUM,1,2021,1 -R1,MINE_URANIUM,URANIUM,1,2022,1 -R1,MINE_URANIUM,URANIUM,1,2023,1 -R1,MINE_URANIUM,URANIUM,1,2024,1 -R1,MINE_URANIUM,URANIUM,1,2025,1 -R1,MINE_URANIUM,URANIUM,1,2026,1 -R1,MINE_URANIUM,URANIUM,1,2027,1 -R1,MINE_URANIUM,URANIUM,1,2028,1 -R1,MINE_URANIUM,URANIUM,1,2029,1 -R1,MINE_URANIUM,URANIUM,1,2030,1 -R1,MINE_URANIUM,URANIUM,1,2031,1 -R1,MINE_URANIUM,URANIUM,1,2032,1 -R1,MINE_URANIUM,URANIUM,1,2033,1 -R1,MINE_URANIUM,URANIUM,1,2034,1 -R1,MINE_URANIUM,URANIUM,1,2035,1 -R1,MINE_URANIUM,URANIUM,1,2036,1 -R1,MINE_URANIUM,URANIUM,1,2037,1 -R1,MINE_URANIUM,URANIUM,1,2038,1 -R1,MINE_URANIUM,URANIUM,1,2039,1 -R1,MINE_URANIUM,URANIUM,1,2040,1 -R1,MINE_URANIUM,URANIUM,1,2041,1 -R1,MINE_URANIUM,URANIUM,1,2042,1 -R1,MINE_URANIUM,URANIUM,1,2043,1 -R1,MINE_URANIUM,URANIUM,1,2044,1 -R1,MINE_URANIUM,URANIUM,1,2045,1 -R1,MINE_URANIUM,URANIUM,1,2046,1 -R1,MINE_URANIUM,URANIUM,1,2047,1 -R1,MINE_URANIUM,URANIUM,1,2048,1 -R1,MINE_URANIUM,URANIUM,1,2049,1 -R1,MINE_URANIUM,URANIUM,1,2050,1 -R1,MINE_URANIUM,URANIUM,1,2051,1 -R1,MINE_URANIUM,URANIUM,1,2052,1 -R1,MINE_URANIUM,URANIUM,1,2053,1 -R1,MINE_URANIUM,URANIUM,1,2054,1 -R1,MINE_URANIUM,URANIUM,1,2055,1 -R1,MINE_URANIUM,URANIUM,1,2056,1 -R1,MINE_URANIUM,URANIUM,1,2057,1 -R1,MINE_URANIUM,URANIUM,1,2058,1 -R1,MINE_URANIUM,URANIUM,1,2059,1 -R1,MINE_URANIUM,URANIUM,1,2060,1 -R1,MINE_URANIUM,URANIUM,1,2061,1 -R1,MINE_URANIUM,URANIUM,1,2062,1 -R1,MINE_URANIUM,URANIUM,1,2063,1 -R1,MINE_URANIUM,URANIUM,1,2064,1 -R1,MINE_URANIUM,URANIUM,1,2065,1 -R1,MINE_URANIUM,URANIUM,1,2066,1 -R1,MINE_URANIUM,URANIUM,1,2067,1 -R1,MINE_URANIUM,URANIUM,1,2068,1 -R1,MINE_URANIUM,URANIUM,1,2069,1 -R1,MINE_URANIUM,URANIUM,1,2070,1 diff --git a/examples/Example_One/data/REGION.csv b/examples/Example_One/data/REGION.csv deleted file mode 100644 index 82dabfa..0000000 --- a/examples/Example_One/data/REGION.csv +++ /dev/null @@ -1,2 +0,0 @@ -VALUE -R1 diff --git a/examples/Example_One/data/REMinProductionTarget.csv b/examples/Example_One/data/REMinProductionTarget.csv deleted file mode 100644 index b55c226..0000000 --- a/examples/Example_One/data/REMinProductionTarget.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,YEAR,VALUE diff --git a/examples/Example_One/data/RETagFuel.csv b/examples/Example_One/data/RETagFuel.csv deleted file mode 100644 index 326b28c..0000000 --- a/examples/Example_One/data/RETagFuel.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,FUEL,YEAR,VALUE diff --git a/examples/Example_One/data/RETagTechnology.csv b/examples/Example_One/data/RETagTechnology.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_One/data/RETagTechnology.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_One/data/ReserveMargin.csv b/examples/Example_One/data/ReserveMargin.csv deleted file mode 100644 index b55c226..0000000 --- a/examples/Example_One/data/ReserveMargin.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,YEAR,VALUE diff --git a/examples/Example_One/data/ReserveMarginTagFuel.csv b/examples/Example_One/data/ReserveMarginTagFuel.csv deleted file mode 100644 index 326b28c..0000000 --- a/examples/Example_One/data/ReserveMarginTagFuel.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,FUEL,YEAR,VALUE diff --git a/examples/Example_One/data/ReserveMarginTagTechnology.csv b/examples/Example_One/data/ReserveMarginTagTechnology.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_One/data/ReserveMarginTagTechnology.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_One/data/ResidualCapacity.csv b/examples/Example_One/data/ResidualCapacity.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_One/data/ResidualCapacity.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_One/data/ResidualStorageCapacity.csv b/examples/Example_One/data/ResidualStorageCapacity.csv deleted file mode 100644 index a7bcbd7..0000000 --- a/examples/Example_One/data/ResidualStorageCapacity.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,YEAR,VALUE diff --git a/examples/Example_One/data/SEASON.csv b/examples/Example_One/data/SEASON.csv deleted file mode 100644 index fb1ad9a..0000000 --- a/examples/Example_One/data/SEASON.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE \ No newline at end of file diff --git a/examples/Example_One/data/STORAGE.csv b/examples/Example_One/data/STORAGE.csv deleted file mode 100644 index 2dfe6a3..0000000 --- a/examples/Example_One/data/STORAGE.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE diff --git a/examples/Example_One/data/SpecifiedAnnualDemand.csv b/examples/Example_One/data/SpecifiedAnnualDemand.csv deleted file mode 100644 index 000a6f6..0000000 --- a/examples/Example_One/data/SpecifiedAnnualDemand.csv +++ /dev/null @@ -1,51 +0,0 @@ -REGION,FUEL,YEAR,VALUE -R1,ELECTRICITY,2020,1000.0 -R1,ELECTRICITY,2021,1050.0 -R1,ELECTRICITY,2022,1102.5 -R1,ELECTRICITY,2023,1157.6250000000002 -R1,ELECTRICITY,2024,1215.5062500000001 -R1,ELECTRICITY,2025,1276.2815625000003 -R1,ELECTRICITY,2026,1340.0956406250004 -R1,ELECTRICITY,2027,1407.1004226562504 -R1,ELECTRICITY,2028,1477.455443789063 -R1,ELECTRICITY,2029,1551.3282159785163 -R1,ELECTRICITY,2030,1628.894626777442 -R1,ELECTRICITY,2031,1710.3393581163143 -R1,ELECTRICITY,2032,1795.8563260221301 -R1,ELECTRICITY,2033,1885.6491423232367 -R1,ELECTRICITY,2034,1979.9315994393987 -R1,ELECTRICITY,2035,2078.9281794113685 -R1,ELECTRICITY,2036,2182.874588381937 -R1,ELECTRICITY,2037,2292.018317801034 -R1,ELECTRICITY,2038,2406.619233691086 -R1,ELECTRICITY,2039,2526.9501953756403 -R1,ELECTRICITY,2040,2653.2977051444223 -R1,ELECTRICITY,2041,2785.9625904016434 -R1,ELECTRICITY,2042,2925.260719921726 -R1,ELECTRICITY,2043,3071.523755917812 -R1,ELECTRICITY,2044,3225.099943713703 -R1,ELECTRICITY,2045,3386.3549408993886 -R1,ELECTRICITY,2046,3555.6726879443577 -R1,ELECTRICITY,2047,3733.456322341576 -R1,ELECTRICITY,2048,3920.129138458655 -R1,ELECTRICITY,2049,4116.135595381588 -R1,ELECTRICITY,2050,4321.942375150667 -R1,ELECTRICITY,2051,4538.039493908201 -R1,ELECTRICITY,2052,4764.941468603612 -R1,ELECTRICITY,2053,5003.188542033792 -R1,ELECTRICITY,2054,5253.347969135481 -R1,ELECTRICITY,2055,5516.015367592257 -R1,ELECTRICITY,2056,5791.816135971869 -R1,ELECTRICITY,2057,6081.406942770463 -R1,ELECTRICITY,2058,6385.477289908987 -R1,ELECTRICITY,2059,6704.7511544044355 -R1,ELECTRICITY,2060,7039.988712124658 -R1,ELECTRICITY,2061,7391.988147730891 -R1,ELECTRICITY,2062,7761.587555117436 -R1,ELECTRICITY,2063,8149.666932873309 -R1,ELECTRICITY,2064,8557.150279516974 -R1,ELECTRICITY,2065,8985.007793492823 -R1,ELECTRICITY,2066,9434.258183167465 -R1,ELECTRICITY,2067,9905.971092325839 -R1,ELECTRICITY,2068,10401.269646942132 -R1,ELECTRICITY,2069,10921.333129289238 diff --git a/examples/Example_One/data/SpecifiedDemandProfile.csv b/examples/Example_One/data/SpecifiedDemandProfile.csv deleted file mode 100644 index b50b2e9..0000000 --- a/examples/Example_One/data/SpecifiedDemandProfile.csv +++ /dev/null @@ -1,409 +0,0 @@ -REGION,FUEL,TIMESLICE,YEAR,VALUE -R1,ELECTRICITY,S1D1,2020,0.125 -R1,ELECTRICITY,S1D2,2020,0.125 -R1,ELECTRICITY,S2D1,2020,0.125 -R1,ELECTRICITY,S2D2,2020,0.125 -R1,ELECTRICITY,S3D1,2020,0.125 -R1,ELECTRICITY,S3D2,2020,0.125 -R1,ELECTRICITY,S4D1,2020,0.125 -R1,ELECTRICITY,S4D2,2020,0.125 -R1,ELECTRICITY,S1D1,2021,0.125 -R1,ELECTRICITY,S1D2,2021,0.125 -R1,ELECTRICITY,S2D1,2021,0.125 -R1,ELECTRICITY,S2D2,2021,0.125 -R1,ELECTRICITY,S3D1,2021,0.125 -R1,ELECTRICITY,S3D2,2021,0.125 -R1,ELECTRICITY,S4D1,2021,0.125 -R1,ELECTRICITY,S4D2,2021,0.125 -R1,ELECTRICITY,S1D1,2022,0.125 -R1,ELECTRICITY,S1D2,2022,0.125 -R1,ELECTRICITY,S2D1,2022,0.125 -R1,ELECTRICITY,S2D2,2022,0.125 -R1,ELECTRICITY,S3D1,2022,0.125 -R1,ELECTRICITY,S3D2,2022,0.125 -R1,ELECTRICITY,S4D1,2022,0.125 -R1,ELECTRICITY,S4D2,2022,0.125 -R1,ELECTRICITY,S1D1,2023,0.125 -R1,ELECTRICITY,S1D2,2023,0.125 -R1,ELECTRICITY,S2D1,2023,0.125 -R1,ELECTRICITY,S2D2,2023,0.125 -R1,ELECTRICITY,S3D1,2023,0.125 -R1,ELECTRICITY,S3D2,2023,0.125 -R1,ELECTRICITY,S4D1,2023,0.125 -R1,ELECTRICITY,S4D2,2023,0.125 -R1,ELECTRICITY,S1D1,2024,0.125 -R1,ELECTRICITY,S1D2,2024,0.125 -R1,ELECTRICITY,S2D1,2024,0.125 -R1,ELECTRICITY,S2D2,2024,0.125 -R1,ELECTRICITY,S3D1,2024,0.125 -R1,ELECTRICITY,S3D2,2024,0.125 -R1,ELECTRICITY,S4D1,2024,0.125 -R1,ELECTRICITY,S4D2,2024,0.125 -R1,ELECTRICITY,S1D1,2025,0.125 -R1,ELECTRICITY,S1D2,2025,0.125 -R1,ELECTRICITY,S2D1,2025,0.125 -R1,ELECTRICITY,S2D2,2025,0.125 -R1,ELECTRICITY,S3D1,2025,0.125 -R1,ELECTRICITY,S3D2,2025,0.125 -R1,ELECTRICITY,S4D1,2025,0.125 -R1,ELECTRICITY,S4D2,2025,0.125 -R1,ELECTRICITY,S1D1,2026,0.125 -R1,ELECTRICITY,S1D2,2026,0.125 -R1,ELECTRICITY,S2D1,2026,0.125 -R1,ELECTRICITY,S2D2,2026,0.125 -R1,ELECTRICITY,S3D1,2026,0.125 -R1,ELECTRICITY,S3D2,2026,0.125 -R1,ELECTRICITY,S4D1,2026,0.125 -R1,ELECTRICITY,S4D2,2026,0.125 -R1,ELECTRICITY,S1D1,2027,0.125 -R1,ELECTRICITY,S1D2,2027,0.125 -R1,ELECTRICITY,S2D1,2027,0.125 -R1,ELECTRICITY,S2D2,2027,0.125 -R1,ELECTRICITY,S3D1,2027,0.125 -R1,ELECTRICITY,S3D2,2027,0.125 -R1,ELECTRICITY,S4D1,2027,0.125 -R1,ELECTRICITY,S4D2,2027,0.125 -R1,ELECTRICITY,S1D1,2028,0.125 -R1,ELECTRICITY,S1D2,2028,0.125 -R1,ELECTRICITY,S2D1,2028,0.125 -R1,ELECTRICITY,S2D2,2028,0.125 -R1,ELECTRICITY,S3D1,2028,0.125 -R1,ELECTRICITY,S3D2,2028,0.125 -R1,ELECTRICITY,S4D1,2028,0.125 -R1,ELECTRICITY,S4D2,2028,0.125 -R1,ELECTRICITY,S1D1,2029,0.125 -R1,ELECTRICITY,S1D2,2029,0.125 -R1,ELECTRICITY,S2D1,2029,0.125 -R1,ELECTRICITY,S2D2,2029,0.125 -R1,ELECTRICITY,S3D1,2029,0.125 -R1,ELECTRICITY,S3D2,2029,0.125 -R1,ELECTRICITY,S4D1,2029,0.125 -R1,ELECTRICITY,S4D2,2029,0.125 -R1,ELECTRICITY,S1D1,2030,0.125 -R1,ELECTRICITY,S1D2,2030,0.125 -R1,ELECTRICITY,S2D1,2030,0.125 -R1,ELECTRICITY,S2D2,2030,0.125 -R1,ELECTRICITY,S3D1,2030,0.125 -R1,ELECTRICITY,S3D2,2030,0.125 -R1,ELECTRICITY,S4D1,2030,0.125 -R1,ELECTRICITY,S4D2,2030,0.125 -R1,ELECTRICITY,S1D1,2031,0.125 -R1,ELECTRICITY,S1D2,2031,0.125 -R1,ELECTRICITY,S2D1,2031,0.125 -R1,ELECTRICITY,S2D2,2031,0.125 -R1,ELECTRICITY,S3D1,2031,0.125 -R1,ELECTRICITY,S3D2,2031,0.125 -R1,ELECTRICITY,S4D1,2031,0.125 -R1,ELECTRICITY,S4D2,2031,0.125 -R1,ELECTRICITY,S1D1,2032,0.125 -R1,ELECTRICITY,S1D2,2032,0.125 -R1,ELECTRICITY,S2D1,2032,0.125 -R1,ELECTRICITY,S2D2,2032,0.125 -R1,ELECTRICITY,S3D1,2032,0.125 -R1,ELECTRICITY,S3D2,2032,0.125 -R1,ELECTRICITY,S4D1,2032,0.125 -R1,ELECTRICITY,S4D2,2032,0.125 -R1,ELECTRICITY,S1D1,2033,0.125 -R1,ELECTRICITY,S1D2,2033,0.125 -R1,ELECTRICITY,S2D1,2033,0.125 -R1,ELECTRICITY,S2D2,2033,0.125 -R1,ELECTRICITY,S3D1,2033,0.125 -R1,ELECTRICITY,S3D2,2033,0.125 -R1,ELECTRICITY,S4D1,2033,0.125 -R1,ELECTRICITY,S4D2,2033,0.125 -R1,ELECTRICITY,S1D1,2034,0.125 -R1,ELECTRICITY,S1D2,2034,0.125 -R1,ELECTRICITY,S2D1,2034,0.125 -R1,ELECTRICITY,S2D2,2034,0.125 -R1,ELECTRICITY,S3D1,2034,0.125 -R1,ELECTRICITY,S3D2,2034,0.125 -R1,ELECTRICITY,S4D1,2034,0.125 -R1,ELECTRICITY,S4D2,2034,0.125 -R1,ELECTRICITY,S1D1,2035,0.125 -R1,ELECTRICITY,S1D2,2035,0.125 -R1,ELECTRICITY,S2D1,2035,0.125 -R1,ELECTRICITY,S2D2,2035,0.125 -R1,ELECTRICITY,S3D1,2035,0.125 -R1,ELECTRICITY,S3D2,2035,0.125 -R1,ELECTRICITY,S4D1,2035,0.125 -R1,ELECTRICITY,S4D2,2035,0.125 -R1,ELECTRICITY,S1D1,2036,0.125 -R1,ELECTRICITY,S1D2,2036,0.125 -R1,ELECTRICITY,S2D1,2036,0.125 -R1,ELECTRICITY,S2D2,2036,0.125 -R1,ELECTRICITY,S3D1,2036,0.125 -R1,ELECTRICITY,S3D2,2036,0.125 -R1,ELECTRICITY,S4D1,2036,0.125 -R1,ELECTRICITY,S4D2,2036,0.125 -R1,ELECTRICITY,S1D1,2037,0.125 -R1,ELECTRICITY,S1D2,2037,0.125 -R1,ELECTRICITY,S2D1,2037,0.125 -R1,ELECTRICITY,S2D2,2037,0.125 -R1,ELECTRICITY,S3D1,2037,0.125 -R1,ELECTRICITY,S3D2,2037,0.125 -R1,ELECTRICITY,S4D1,2037,0.125 -R1,ELECTRICITY,S4D2,2037,0.125 -R1,ELECTRICITY,S1D1,2038,0.125 -R1,ELECTRICITY,S1D2,2038,0.125 -R1,ELECTRICITY,S2D1,2038,0.125 -R1,ELECTRICITY,S2D2,2038,0.125 -R1,ELECTRICITY,S3D1,2038,0.125 -R1,ELECTRICITY,S3D2,2038,0.125 -R1,ELECTRICITY,S4D1,2038,0.125 -R1,ELECTRICITY,S4D2,2038,0.125 -R1,ELECTRICITY,S1D1,2039,0.125 -R1,ELECTRICITY,S1D2,2039,0.125 -R1,ELECTRICITY,S2D1,2039,0.125 -R1,ELECTRICITY,S2D2,2039,0.125 -R1,ELECTRICITY,S3D1,2039,0.125 -R1,ELECTRICITY,S3D2,2039,0.125 -R1,ELECTRICITY,S4D1,2039,0.125 -R1,ELECTRICITY,S4D2,2039,0.125 -R1,ELECTRICITY,S1D1,2040,0.125 -R1,ELECTRICITY,S1D2,2040,0.125 -R1,ELECTRICITY,S2D1,2040,0.125 -R1,ELECTRICITY,S2D2,2040,0.125 -R1,ELECTRICITY,S3D1,2040,0.125 -R1,ELECTRICITY,S3D2,2040,0.125 -R1,ELECTRICITY,S4D1,2040,0.125 -R1,ELECTRICITY,S4D2,2040,0.125 -R1,ELECTRICITY,S1D1,2041,0.125 -R1,ELECTRICITY,S1D2,2041,0.125 -R1,ELECTRICITY,S2D1,2041,0.125 -R1,ELECTRICITY,S2D2,2041,0.125 -R1,ELECTRICITY,S3D1,2041,0.125 -R1,ELECTRICITY,S3D2,2041,0.125 -R1,ELECTRICITY,S4D1,2041,0.125 -R1,ELECTRICITY,S4D2,2041,0.125 -R1,ELECTRICITY,S1D1,2042,0.125 -R1,ELECTRICITY,S1D2,2042,0.125 -R1,ELECTRICITY,S2D1,2042,0.125 -R1,ELECTRICITY,S2D2,2042,0.125 -R1,ELECTRICITY,S3D1,2042,0.125 -R1,ELECTRICITY,S3D2,2042,0.125 -R1,ELECTRICITY,S4D1,2042,0.125 -R1,ELECTRICITY,S4D2,2042,0.125 -R1,ELECTRICITY,S1D1,2043,0.125 -R1,ELECTRICITY,S1D2,2043,0.125 -R1,ELECTRICITY,S2D1,2043,0.125 -R1,ELECTRICITY,S2D2,2043,0.125 -R1,ELECTRICITY,S3D1,2043,0.125 -R1,ELECTRICITY,S3D2,2043,0.125 -R1,ELECTRICITY,S4D1,2043,0.125 -R1,ELECTRICITY,S4D2,2043,0.125 -R1,ELECTRICITY,S1D1,2044,0.125 -R1,ELECTRICITY,S1D2,2044,0.125 -R1,ELECTRICITY,S2D1,2044,0.125 -R1,ELECTRICITY,S2D2,2044,0.125 -R1,ELECTRICITY,S3D1,2044,0.125 -R1,ELECTRICITY,S3D2,2044,0.125 -R1,ELECTRICITY,S4D1,2044,0.125 -R1,ELECTRICITY,S4D2,2044,0.125 -R1,ELECTRICITY,S1D1,2045,0.125 -R1,ELECTRICITY,S1D2,2045,0.125 -R1,ELECTRICITY,S2D1,2045,0.125 -R1,ELECTRICITY,S2D2,2045,0.125 -R1,ELECTRICITY,S3D1,2045,0.125 -R1,ELECTRICITY,S3D2,2045,0.125 -R1,ELECTRICITY,S4D1,2045,0.125 -R1,ELECTRICITY,S4D2,2045,0.125 -R1,ELECTRICITY,S1D1,2046,0.125 -R1,ELECTRICITY,S1D2,2046,0.125 -R1,ELECTRICITY,S2D1,2046,0.125 -R1,ELECTRICITY,S2D2,2046,0.125 -R1,ELECTRICITY,S3D1,2046,0.125 -R1,ELECTRICITY,S3D2,2046,0.125 -R1,ELECTRICITY,S4D1,2046,0.125 -R1,ELECTRICITY,S4D2,2046,0.125 -R1,ELECTRICITY,S1D1,2047,0.125 -R1,ELECTRICITY,S1D2,2047,0.125 -R1,ELECTRICITY,S2D1,2047,0.125 -R1,ELECTRICITY,S2D2,2047,0.125 -R1,ELECTRICITY,S3D1,2047,0.125 -R1,ELECTRICITY,S3D2,2047,0.125 -R1,ELECTRICITY,S4D1,2047,0.125 -R1,ELECTRICITY,S4D2,2047,0.125 -R1,ELECTRICITY,S1D1,2048,0.125 -R1,ELECTRICITY,S1D2,2048,0.125 -R1,ELECTRICITY,S2D1,2048,0.125 -R1,ELECTRICITY,S2D2,2048,0.125 -R1,ELECTRICITY,S3D1,2048,0.125 -R1,ELECTRICITY,S3D2,2048,0.125 -R1,ELECTRICITY,S4D1,2048,0.125 -R1,ELECTRICITY,S4D2,2048,0.125 -R1,ELECTRICITY,S1D1,2049,0.125 -R1,ELECTRICITY,S1D2,2049,0.125 -R1,ELECTRICITY,S2D1,2049,0.125 -R1,ELECTRICITY,S2D2,2049,0.125 -R1,ELECTRICITY,S3D1,2049,0.125 -R1,ELECTRICITY,S3D2,2049,0.125 -R1,ELECTRICITY,S4D1,2049,0.125 -R1,ELECTRICITY,S4D2,2049,0.125 -R1,ELECTRICITY,S1D1,2050,0.125 -R1,ELECTRICITY,S1D2,2050,0.125 -R1,ELECTRICITY,S2D1,2050,0.125 -R1,ELECTRICITY,S2D2,2050,0.125 -R1,ELECTRICITY,S3D1,2050,0.125 -R1,ELECTRICITY,S3D2,2050,0.125 -R1,ELECTRICITY,S4D1,2050,0.125 -R1,ELECTRICITY,S4D2,2050,0.125 -R1,ELECTRICITY,S1D1,2051,0.125 -R1,ELECTRICITY,S1D2,2051,0.125 -R1,ELECTRICITY,S2D1,2051,0.125 -R1,ELECTRICITY,S2D2,2051,0.125 -R1,ELECTRICITY,S3D1,2051,0.125 -R1,ELECTRICITY,S3D2,2051,0.125 -R1,ELECTRICITY,S4D1,2051,0.125 -R1,ELECTRICITY,S4D2,2051,0.125 -R1,ELECTRICITY,S1D1,2052,0.125 -R1,ELECTRICITY,S1D2,2052,0.125 -R1,ELECTRICITY,S2D1,2052,0.125 -R1,ELECTRICITY,S2D2,2052,0.125 -R1,ELECTRICITY,S3D1,2052,0.125 -R1,ELECTRICITY,S3D2,2052,0.125 -R1,ELECTRICITY,S4D1,2052,0.125 -R1,ELECTRICITY,S4D2,2052,0.125 -R1,ELECTRICITY,S1D1,2053,0.125 -R1,ELECTRICITY,S1D2,2053,0.125 -R1,ELECTRICITY,S2D1,2053,0.125 -R1,ELECTRICITY,S2D2,2053,0.125 -R1,ELECTRICITY,S3D1,2053,0.125 -R1,ELECTRICITY,S3D2,2053,0.125 -R1,ELECTRICITY,S4D1,2053,0.125 -R1,ELECTRICITY,S4D2,2053,0.125 -R1,ELECTRICITY,S1D1,2054,0.125 -R1,ELECTRICITY,S1D2,2054,0.125 -R1,ELECTRICITY,S2D1,2054,0.125 -R1,ELECTRICITY,S2D2,2054,0.125 -R1,ELECTRICITY,S3D1,2054,0.125 -R1,ELECTRICITY,S3D2,2054,0.125 -R1,ELECTRICITY,S4D1,2054,0.125 -R1,ELECTRICITY,S4D2,2054,0.125 -R1,ELECTRICITY,S1D1,2055,0.125 -R1,ELECTRICITY,S1D2,2055,0.125 -R1,ELECTRICITY,S2D1,2055,0.125 -R1,ELECTRICITY,S2D2,2055,0.125 -R1,ELECTRICITY,S3D1,2055,0.125 -R1,ELECTRICITY,S3D2,2055,0.125 -R1,ELECTRICITY,S4D1,2055,0.125 -R1,ELECTRICITY,S4D2,2055,0.125 -R1,ELECTRICITY,S1D1,2056,0.125 -R1,ELECTRICITY,S1D2,2056,0.125 -R1,ELECTRICITY,S2D1,2056,0.125 -R1,ELECTRICITY,S2D2,2056,0.125 -R1,ELECTRICITY,S3D1,2056,0.125 -R1,ELECTRICITY,S3D2,2056,0.125 -R1,ELECTRICITY,S4D1,2056,0.125 -R1,ELECTRICITY,S4D2,2056,0.125 -R1,ELECTRICITY,S1D1,2057,0.125 -R1,ELECTRICITY,S1D2,2057,0.125 -R1,ELECTRICITY,S2D1,2057,0.125 -R1,ELECTRICITY,S2D2,2057,0.125 -R1,ELECTRICITY,S3D1,2057,0.125 -R1,ELECTRICITY,S3D2,2057,0.125 -R1,ELECTRICITY,S4D1,2057,0.125 -R1,ELECTRICITY,S4D2,2057,0.125 -R1,ELECTRICITY,S1D1,2058,0.125 -R1,ELECTRICITY,S1D2,2058,0.125 -R1,ELECTRICITY,S2D1,2058,0.125 -R1,ELECTRICITY,S2D2,2058,0.125 -R1,ELECTRICITY,S3D1,2058,0.125 -R1,ELECTRICITY,S3D2,2058,0.125 -R1,ELECTRICITY,S4D1,2058,0.125 -R1,ELECTRICITY,S4D2,2058,0.125 -R1,ELECTRICITY,S1D1,2059,0.125 -R1,ELECTRICITY,S1D2,2059,0.125 -R1,ELECTRICITY,S2D1,2059,0.125 -R1,ELECTRICITY,S2D2,2059,0.125 -R1,ELECTRICITY,S3D1,2059,0.125 -R1,ELECTRICITY,S3D2,2059,0.125 -R1,ELECTRICITY,S4D1,2059,0.125 -R1,ELECTRICITY,S4D2,2059,0.125 -R1,ELECTRICITY,S1D1,2060,0.125 -R1,ELECTRICITY,S1D2,2060,0.125 -R1,ELECTRICITY,S2D1,2060,0.125 -R1,ELECTRICITY,S2D2,2060,0.125 -R1,ELECTRICITY,S3D1,2060,0.125 -R1,ELECTRICITY,S3D2,2060,0.125 -R1,ELECTRICITY,S4D1,2060,0.125 -R1,ELECTRICITY,S4D2,2060,0.125 -R1,ELECTRICITY,S1D1,2061,0.125 -R1,ELECTRICITY,S1D2,2061,0.125 -R1,ELECTRICITY,S2D1,2061,0.125 -R1,ELECTRICITY,S2D2,2061,0.125 -R1,ELECTRICITY,S3D1,2061,0.125 -R1,ELECTRICITY,S3D2,2061,0.125 -R1,ELECTRICITY,S4D1,2061,0.125 -R1,ELECTRICITY,S4D2,2061,0.125 -R1,ELECTRICITY,S1D1,2062,0.125 -R1,ELECTRICITY,S1D2,2062,0.125 -R1,ELECTRICITY,S2D1,2062,0.125 -R1,ELECTRICITY,S2D2,2062,0.125 -R1,ELECTRICITY,S3D1,2062,0.125 -R1,ELECTRICITY,S3D2,2062,0.125 -R1,ELECTRICITY,S4D1,2062,0.125 -R1,ELECTRICITY,S4D2,2062,0.125 -R1,ELECTRICITY,S1D1,2063,0.125 -R1,ELECTRICITY,S1D2,2063,0.125 -R1,ELECTRICITY,S2D1,2063,0.125 -R1,ELECTRICITY,S2D2,2063,0.125 -R1,ELECTRICITY,S3D1,2063,0.125 -R1,ELECTRICITY,S3D2,2063,0.125 -R1,ELECTRICITY,S4D1,2063,0.125 -R1,ELECTRICITY,S4D2,2063,0.125 -R1,ELECTRICITY,S1D1,2064,0.125 -R1,ELECTRICITY,S1D2,2064,0.125 -R1,ELECTRICITY,S2D1,2064,0.125 -R1,ELECTRICITY,S2D2,2064,0.125 -R1,ELECTRICITY,S3D1,2064,0.125 -R1,ELECTRICITY,S3D2,2064,0.125 -R1,ELECTRICITY,S4D1,2064,0.125 -R1,ELECTRICITY,S4D2,2064,0.125 -R1,ELECTRICITY,S1D1,2065,0.125 -R1,ELECTRICITY,S1D2,2065,0.125 -R1,ELECTRICITY,S2D1,2065,0.125 -R1,ELECTRICITY,S2D2,2065,0.125 -R1,ELECTRICITY,S3D1,2065,0.125 -R1,ELECTRICITY,S3D2,2065,0.125 -R1,ELECTRICITY,S4D1,2065,0.125 -R1,ELECTRICITY,S4D2,2065,0.125 -R1,ELECTRICITY,S1D1,2066,0.125 -R1,ELECTRICITY,S1D2,2066,0.125 -R1,ELECTRICITY,S2D1,2066,0.125 -R1,ELECTRICITY,S2D2,2066,0.125 -R1,ELECTRICITY,S3D1,2066,0.125 -R1,ELECTRICITY,S3D2,2066,0.125 -R1,ELECTRICITY,S4D1,2066,0.125 -R1,ELECTRICITY,S4D2,2066,0.125 -R1,ELECTRICITY,S1D1,2067,0.125 -R1,ELECTRICITY,S1D2,2067,0.125 -R1,ELECTRICITY,S2D1,2067,0.125 -R1,ELECTRICITY,S2D2,2067,0.125 -R1,ELECTRICITY,S3D1,2067,0.125 -R1,ELECTRICITY,S3D2,2067,0.125 -R1,ELECTRICITY,S4D1,2067,0.125 -R1,ELECTRICITY,S4D2,2067,0.125 -R1,ELECTRICITY,S1D1,2068,0.125 -R1,ELECTRICITY,S1D2,2068,0.125 -R1,ELECTRICITY,S2D1,2068,0.125 -R1,ELECTRICITY,S2D2,2068,0.125 -R1,ELECTRICITY,S3D1,2068,0.125 -R1,ELECTRICITY,S3D2,2068,0.125 -R1,ELECTRICITY,S4D1,2068,0.125 -R1,ELECTRICITY,S4D2,2068,0.125 -R1,ELECTRICITY,S1D1,2069,0.125 -R1,ELECTRICITY,S1D2,2069,0.125 -R1,ELECTRICITY,S2D1,2069,0.125 -R1,ELECTRICITY,S2D2,2069,0.125 -R1,ELECTRICITY,S3D1,2069,0.125 -R1,ELECTRICITY,S3D2,2069,0.125 -R1,ELECTRICITY,S4D1,2069,0.125 -R1,ELECTRICITY,S4D2,2069,0.125 -R1,ELECTRICITY,S1D1,2070,0.125 -R1,ELECTRICITY,S1D2,2070,0.125 -R1,ELECTRICITY,S2D1,2070,0.125 -R1,ELECTRICITY,S2D2,2070,0.125 -R1,ELECTRICITY,S3D1,2070,0.125 -R1,ELECTRICITY,S3D2,2070,0.125 -R1,ELECTRICITY,S4D1,2070,0.125 -R1,ELECTRICITY,S4D2,2070,0.125 diff --git a/examples/Example_One/data/StorageLevelStart.csv b/examples/Example_One/data/StorageLevelStart.csv deleted file mode 100644 index 2176c14..0000000 --- a/examples/Example_One/data/StorageLevelStart.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,VALUE diff --git a/examples/Example_One/data/StorageMaxChargeRate.csv b/examples/Example_One/data/StorageMaxChargeRate.csv deleted file mode 100644 index 2176c14..0000000 --- a/examples/Example_One/data/StorageMaxChargeRate.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,VALUE diff --git a/examples/Example_One/data/StorageMaxDischargeRate.csv b/examples/Example_One/data/StorageMaxDischargeRate.csv deleted file mode 100644 index 2176c14..0000000 --- a/examples/Example_One/data/StorageMaxDischargeRate.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,VALUE diff --git a/examples/Example_One/data/TECHNOLOGY.csv b/examples/Example_One/data/TECHNOLOGY.csv deleted file mode 100644 index 15e4301..0000000 --- a/examples/Example_One/data/TECHNOLOGY.csv +++ /dev/null @@ -1,3 +0,0 @@ -VALUE -MINE_URANIUM -NUCLEAR \ No newline at end of file diff --git a/examples/Example_One/data/TIMESLICE.csv b/examples/Example_One/data/TIMESLICE.csv deleted file mode 100644 index bc81add..0000000 --- a/examples/Example_One/data/TIMESLICE.csv +++ /dev/null @@ -1,9 +0,0 @@ -VALUE -S1D1 -S1D2 -S2D1 -S2D2 -S3D1 -S3D2 -S4D1 -S4D2 diff --git a/examples/Example_One/data/TechnologyFromStorage.csv b/examples/Example_One/data/TechnologyFromStorage.csv deleted file mode 100644 index 384c871..0000000 --- a/examples/Example_One/data/TechnologyFromStorage.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,STORAGE,MODE_OF_OPERATION,VALUE diff --git a/examples/Example_One/data/TechnologyToStorage.csv b/examples/Example_One/data/TechnologyToStorage.csv deleted file mode 100644 index 1ae3429..0000000 --- a/examples/Example_One/data/TechnologyToStorage.csv +++ /dev/null @@ -1,2 +0,0 @@ -REGION,TECHNOLOGY,STORAGE,MODE_OF_OPERATION,VALUE - diff --git a/examples/Example_One/data/TotalAnnualMaxCapacity.csv b/examples/Example_One/data/TotalAnnualMaxCapacity.csv deleted file mode 100644 index f77c5f0..0000000 --- a/examples/Example_One/data/TotalAnnualMaxCapacity.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE \ No newline at end of file diff --git a/examples/Example_One/data/TotalAnnualMaxCapacityInvestment.csv b/examples/Example_One/data/TotalAnnualMaxCapacityInvestment.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_One/data/TotalAnnualMaxCapacityInvestment.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_One/data/TotalAnnualMinCapacity.csv b/examples/Example_One/data/TotalAnnualMinCapacity.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_One/data/TotalAnnualMinCapacity.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_One/data/TotalAnnualMinCapacityInvestment.csv b/examples/Example_One/data/TotalAnnualMinCapacityInvestment.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_One/data/TotalAnnualMinCapacityInvestment.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_One/data/TotalTechnologyAnnualActivityLowerLimit.csv b/examples/Example_One/data/TotalTechnologyAnnualActivityLowerLimit.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_One/data/TotalTechnologyAnnualActivityLowerLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_One/data/TotalTechnologyAnnualActivityUpperLimit.csv b/examples/Example_One/data/TotalTechnologyAnnualActivityUpperLimit.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_One/data/TotalTechnologyAnnualActivityUpperLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_One/data/TotalTechnologyModelPeriodActivityLowerLimit.csv b/examples/Example_One/data/TotalTechnologyModelPeriodActivityLowerLimit.csv deleted file mode 100644 index 1ca1a8e..0000000 --- a/examples/Example_One/data/TotalTechnologyModelPeriodActivityLowerLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,VALUE diff --git a/examples/Example_One/data/TotalTechnologyModelPeriodActivityUpperLimit.csv b/examples/Example_One/data/TotalTechnologyModelPeriodActivityUpperLimit.csv deleted file mode 100644 index 1ca1a8e..0000000 --- a/examples/Example_One/data/TotalTechnologyModelPeriodActivityUpperLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,VALUE diff --git a/examples/Example_One/data/TradeRoute.csv b/examples/Example_One/data/TradeRoute.csv deleted file mode 100644 index 326b28c..0000000 --- a/examples/Example_One/data/TradeRoute.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,FUEL,YEAR,VALUE diff --git a/examples/Example_One/data/VariableCost.csv b/examples/Example_One/data/VariableCost.csv deleted file mode 100644 index 4a89199..0000000 --- a/examples/Example_One/data/VariableCost.csv +++ /dev/null @@ -1,51 +0,0 @@ -REGION,TECHNOLOGY,MODE_OF_OPERATION,YEAR,VALUE -R1,MINE_URANIUM,1,2020,2.5 -R1,MINE_URANIUM,1,2021,2.5 -R1,MINE_URANIUM,1,2022,2.5 -R1,MINE_URANIUM,1,2023,2.5 -R1,MINE_URANIUM,1,2024,2.5 -R1,MINE_URANIUM,1,2025,2.5 -R1,MINE_URANIUM,1,2026,2.5 -R1,MINE_URANIUM,1,2027,2.5 -R1,MINE_URANIUM,1,2028,2.5 -R1,MINE_URANIUM,1,2029,2.5 -R1,MINE_URANIUM,1,2030,2.5 -R1,MINE_URANIUM,1,2031,2.5 -R1,MINE_URANIUM,1,2032,2.5 -R1,MINE_URANIUM,1,2033,2.5 -R1,MINE_URANIUM,1,2034,2.5 -R1,MINE_URANIUM,1,2035,2.5 -R1,MINE_URANIUM,1,2036,2.5 -R1,MINE_URANIUM,1,2037,2.5 -R1,MINE_URANIUM,1,2038,2.5 -R1,MINE_URANIUM,1,2039,2.5 -R1,MINE_URANIUM,1,2040,2.5 -R1,MINE_URANIUM,1,2041,2.5 -R1,MINE_URANIUM,1,2042,2.5 -R1,MINE_URANIUM,1,2043,2.5 -R1,MINE_URANIUM,1,2044,2.5 -R1,MINE_URANIUM,1,2045,2.5 -R1,MINE_URANIUM,1,2046,2.5 -R1,MINE_URANIUM,1,2047,2.5 -R1,MINE_URANIUM,1,2048,2.5 -R1,MINE_URANIUM,1,2049,2.5 -R1,MINE_URANIUM,1,2050,2.5 -R1,MINE_URANIUM,1,2051,2.5 -R1,MINE_URANIUM,1,2052,2.5 -R1,MINE_URANIUM,1,2053,2.5 -R1,MINE_URANIUM,1,2054,2.5 -R1,MINE_URANIUM,1,2055,2.5 -R1,MINE_URANIUM,1,2056,2.5 -R1,MINE_URANIUM,1,2057,2.5 -R1,MINE_URANIUM,1,2058,2.5 -R1,MINE_URANIUM,1,2059,2.5 -R1,MINE_URANIUM,1,2060,2.5 -R1,MINE_URANIUM,1,2061,2.5 -R1,MINE_URANIUM,1,2062,2.5 -R1,MINE_URANIUM,1,2063,2.5 -R1,MINE_URANIUM,1,2064,2.5 -R1,MINE_URANIUM,1,2065,2.5 -R1,MINE_URANIUM,1,2066,2.5 -R1,MINE_URANIUM,1,2067,2.5 -R1,MINE_URANIUM,1,2068,2.5 -R1,MINE_URANIUM,1,2069,2.5 diff --git a/examples/Example_One/data/YEAR.csv b/examples/Example_One/data/YEAR.csv deleted file mode 100644 index 83f6f1f..0000000 --- a/examples/Example_One/data/YEAR.csv +++ /dev/null @@ -1,52 +0,0 @@ -VALUE -2020 -2021 -2022 -2023 -2024 -2025 -2026 -2027 -2028 -2029 -2030 -2031 -2032 -2033 -2034 -2035 -2036 -2037 -2038 -2039 -2040 -2041 -2042 -2043 -2044 -2045 -2046 -2047 -2048 -2049 -2050 -2051 -2052 -2053 -2054 -2055 -2056 -2057 -2058 -2059 -2060 -2061 -2062 -2063 -2064 -2065 -2066 -2067 -2068 -2069 -2070 diff --git a/examples/Example_One/data/YearSplit.csv b/examples/Example_One/data/YearSplit.csv deleted file mode 100644 index e81ca4d..0000000 --- a/examples/Example_One/data/YearSplit.csv +++ /dev/null @@ -1,409 +0,0 @@ -TIMESLICE,YEAR,VALUE -S1D1,2020,0.125 -S1D2,2020,0.125 -S2D1,2020,0.125 -S2D2,2020,0.125 -S3D1,2020,0.125 -S3D2,2020,0.125 -S4D1,2020,0.125 -S4D2,2020,0.125 -S1D1,2021,0.125 -S1D2,2021,0.125 -S2D1,2021,0.125 -S2D2,2021,0.125 -S3D1,2021,0.125 -S3D2,2021,0.125 -S4D1,2021,0.125 -S4D2,2021,0.125 -S1D1,2022,0.125 -S1D2,2022,0.125 -S2D1,2022,0.125 -S2D2,2022,0.125 -S3D1,2022,0.125 -S3D2,2022,0.125 -S4D1,2022,0.125 -S4D2,2022,0.125 -S1D1,2023,0.125 -S1D2,2023,0.125 -S2D1,2023,0.125 -S2D2,2023,0.125 -S3D1,2023,0.125 -S3D2,2023,0.125 -S4D1,2023,0.125 -S4D2,2023,0.125 -S1D1,2024,0.125 -S1D2,2024,0.125 -S2D1,2024,0.125 -S2D2,2024,0.125 -S3D1,2024,0.125 -S3D2,2024,0.125 -S4D1,2024,0.125 -S4D2,2024,0.125 -S1D1,2025,0.125 -S1D2,2025,0.125 -S2D1,2025,0.125 -S2D2,2025,0.125 -S3D1,2025,0.125 -S3D2,2025,0.125 -S4D1,2025,0.125 -S4D2,2025,0.125 -S1D1,2026,0.125 -S1D2,2026,0.125 -S2D1,2026,0.125 -S2D2,2026,0.125 -S3D1,2026,0.125 -S3D2,2026,0.125 -S4D1,2026,0.125 -S4D2,2026,0.125 -S1D1,2027,0.125 -S1D2,2027,0.125 -S2D1,2027,0.125 -S2D2,2027,0.125 -S3D1,2027,0.125 -S3D2,2027,0.125 -S4D1,2027,0.125 -S4D2,2027,0.125 -S1D1,2028,0.125 -S1D2,2028,0.125 -S2D1,2028,0.125 -S2D2,2028,0.125 -S3D1,2028,0.125 -S3D2,2028,0.125 -S4D1,2028,0.125 -S4D2,2028,0.125 -S1D1,2029,0.125 -S1D2,2029,0.125 -S2D1,2029,0.125 -S2D2,2029,0.125 -S3D1,2029,0.125 -S3D2,2029,0.125 -S4D1,2029,0.125 -S4D2,2029,0.125 -S1D1,2030,0.125 -S1D2,2030,0.125 -S2D1,2030,0.125 -S2D2,2030,0.125 -S3D1,2030,0.125 -S3D2,2030,0.125 -S4D1,2030,0.125 -S4D2,2030,0.125 -S1D1,2031,0.125 -S1D2,2031,0.125 -S2D1,2031,0.125 -S2D2,2031,0.125 -S3D1,2031,0.125 -S3D2,2031,0.125 -S4D1,2031,0.125 -S4D2,2031,0.125 -S1D1,2032,0.125 -S1D2,2032,0.125 -S2D1,2032,0.125 -S2D2,2032,0.125 -S3D1,2032,0.125 -S3D2,2032,0.125 -S4D1,2032,0.125 -S4D2,2032,0.125 -S1D1,2033,0.125 -S1D2,2033,0.125 -S2D1,2033,0.125 -S2D2,2033,0.125 -S3D1,2033,0.125 -S3D2,2033,0.125 -S4D1,2033,0.125 -S4D2,2033,0.125 -S1D1,2034,0.125 -S1D2,2034,0.125 -S2D1,2034,0.125 -S2D2,2034,0.125 -S3D1,2034,0.125 -S3D2,2034,0.125 -S4D1,2034,0.125 -S4D2,2034,0.125 -S1D1,2035,0.125 -S1D2,2035,0.125 -S2D1,2035,0.125 -S2D2,2035,0.125 -S3D1,2035,0.125 -S3D2,2035,0.125 -S4D1,2035,0.125 -S4D2,2035,0.125 -S1D1,2036,0.125 -S1D2,2036,0.125 -S2D1,2036,0.125 -S2D2,2036,0.125 -S3D1,2036,0.125 -S3D2,2036,0.125 -S4D1,2036,0.125 -S4D2,2036,0.125 -S1D1,2037,0.125 -S1D2,2037,0.125 -S2D1,2037,0.125 -S2D2,2037,0.125 -S3D1,2037,0.125 -S3D2,2037,0.125 -S4D1,2037,0.125 -S4D2,2037,0.125 -S1D1,2038,0.125 -S1D2,2038,0.125 -S2D1,2038,0.125 -S2D2,2038,0.125 -S3D1,2038,0.125 -S3D2,2038,0.125 -S4D1,2038,0.125 -S4D2,2038,0.125 -S1D1,2039,0.125 -S1D2,2039,0.125 -S2D1,2039,0.125 -S2D2,2039,0.125 -S3D1,2039,0.125 -S3D2,2039,0.125 -S4D1,2039,0.125 -S4D2,2039,0.125 -S1D1,2040,0.125 -S1D2,2040,0.125 -S2D1,2040,0.125 -S2D2,2040,0.125 -S3D1,2040,0.125 -S3D2,2040,0.125 -S4D1,2040,0.125 -S4D2,2040,0.125 -S1D1,2041,0.125 -S1D2,2041,0.125 -S2D1,2041,0.125 -S2D2,2041,0.125 -S3D1,2041,0.125 -S3D2,2041,0.125 -S4D1,2041,0.125 -S4D2,2041,0.125 -S1D1,2042,0.125 -S1D2,2042,0.125 -S2D1,2042,0.125 -S2D2,2042,0.125 -S3D1,2042,0.125 -S3D2,2042,0.125 -S4D1,2042,0.125 -S4D2,2042,0.125 -S1D1,2043,0.125 -S1D2,2043,0.125 -S2D1,2043,0.125 -S2D2,2043,0.125 -S3D1,2043,0.125 -S3D2,2043,0.125 -S4D1,2043,0.125 -S4D2,2043,0.125 -S1D1,2044,0.125 -S1D2,2044,0.125 -S2D1,2044,0.125 -S2D2,2044,0.125 -S3D1,2044,0.125 -S3D2,2044,0.125 -S4D1,2044,0.125 -S4D2,2044,0.125 -S1D1,2045,0.125 -S1D2,2045,0.125 -S2D1,2045,0.125 -S2D2,2045,0.125 -S3D1,2045,0.125 -S3D2,2045,0.125 -S4D1,2045,0.125 -S4D2,2045,0.125 -S1D1,2046,0.125 -S1D2,2046,0.125 -S2D1,2046,0.125 -S2D2,2046,0.125 -S3D1,2046,0.125 -S3D2,2046,0.125 -S4D1,2046,0.125 -S4D2,2046,0.125 -S1D1,2047,0.125 -S1D2,2047,0.125 -S2D1,2047,0.125 -S2D2,2047,0.125 -S3D1,2047,0.125 -S3D2,2047,0.125 -S4D1,2047,0.125 -S4D2,2047,0.125 -S1D1,2048,0.125 -S1D2,2048,0.125 -S2D1,2048,0.125 -S2D2,2048,0.125 -S3D1,2048,0.125 -S3D2,2048,0.125 -S4D1,2048,0.125 -S4D2,2048,0.125 -S1D1,2049,0.125 -S1D2,2049,0.125 -S2D1,2049,0.125 -S2D2,2049,0.125 -S3D1,2049,0.125 -S3D2,2049,0.125 -S4D1,2049,0.125 -S4D2,2049,0.125 -S1D1,2050,0.125 -S1D2,2050,0.125 -S2D1,2050,0.125 -S2D2,2050,0.125 -S3D1,2050,0.125 -S3D2,2050,0.125 -S4D1,2050,0.125 -S4D2,2050,0.125 -S1D1,2051,0.125 -S1D2,2051,0.125 -S2D1,2051,0.125 -S2D2,2051,0.125 -S3D1,2051,0.125 -S3D2,2051,0.125 -S4D1,2051,0.125 -S4D2,2051,0.125 -S1D1,2052,0.125 -S1D2,2052,0.125 -S2D1,2052,0.125 -S2D2,2052,0.125 -S3D1,2052,0.125 -S3D2,2052,0.125 -S4D1,2052,0.125 -S4D2,2052,0.125 -S1D1,2053,0.125 -S1D2,2053,0.125 -S2D1,2053,0.125 -S2D2,2053,0.125 -S3D1,2053,0.125 -S3D2,2053,0.125 -S4D1,2053,0.125 -S4D2,2053,0.125 -S1D1,2054,0.125 -S1D2,2054,0.125 -S2D1,2054,0.125 -S2D2,2054,0.125 -S3D1,2054,0.125 -S3D2,2054,0.125 -S4D1,2054,0.125 -S4D2,2054,0.125 -S1D1,2055,0.125 -S1D2,2055,0.125 -S2D1,2055,0.125 -S2D2,2055,0.125 -S3D1,2055,0.125 -S3D2,2055,0.125 -S4D1,2055,0.125 -S4D2,2055,0.125 -S1D1,2056,0.125 -S1D2,2056,0.125 -S2D1,2056,0.125 -S2D2,2056,0.125 -S3D1,2056,0.125 -S3D2,2056,0.125 -S4D1,2056,0.125 -S4D2,2056,0.125 -S1D1,2057,0.125 -S1D2,2057,0.125 -S2D1,2057,0.125 -S2D2,2057,0.125 -S3D1,2057,0.125 -S3D2,2057,0.125 -S4D1,2057,0.125 -S4D2,2057,0.125 -S1D1,2058,0.125 -S1D2,2058,0.125 -S2D1,2058,0.125 -S2D2,2058,0.125 -S3D1,2058,0.125 -S3D2,2058,0.125 -S4D1,2058,0.125 -S4D2,2058,0.125 -S1D1,2059,0.125 -S1D2,2059,0.125 -S2D1,2059,0.125 -S2D2,2059,0.125 -S3D1,2059,0.125 -S3D2,2059,0.125 -S4D1,2059,0.125 -S4D2,2059,0.125 -S1D1,2060,0.125 -S1D2,2060,0.125 -S2D1,2060,0.125 -S2D2,2060,0.125 -S3D1,2060,0.125 -S3D2,2060,0.125 -S4D1,2060,0.125 -S4D2,2060,0.125 -S1D1,2061,0.125 -S1D2,2061,0.125 -S2D1,2061,0.125 -S2D2,2061,0.125 -S3D1,2061,0.125 -S3D2,2061,0.125 -S4D1,2061,0.125 -S4D2,2061,0.125 -S1D1,2062,0.125 -S1D2,2062,0.125 -S2D1,2062,0.125 -S2D2,2062,0.125 -S3D1,2062,0.125 -S3D2,2062,0.125 -S4D1,2062,0.125 -S4D2,2062,0.125 -S1D1,2063,0.125 -S1D2,2063,0.125 -S2D1,2063,0.125 -S2D2,2063,0.125 -S3D1,2063,0.125 -S3D2,2063,0.125 -S4D1,2063,0.125 -S4D2,2063,0.125 -S1D1,2064,0.125 -S1D2,2064,0.125 -S2D1,2064,0.125 -S2D2,2064,0.125 -S3D1,2064,0.125 -S3D2,2064,0.125 -S4D1,2064,0.125 -S4D2,2064,0.125 -S1D1,2065,0.125 -S1D2,2065,0.125 -S2D1,2065,0.125 -S2D2,2065,0.125 -S3D1,2065,0.125 -S3D2,2065,0.125 -S4D1,2065,0.125 -S4D2,2065,0.125 -S1D1,2066,0.125 -S1D2,2066,0.125 -S2D1,2066,0.125 -S2D2,2066,0.125 -S3D1,2066,0.125 -S3D2,2066,0.125 -S4D1,2066,0.125 -S4D2,2066,0.125 -S1D1,2067,0.125 -S1D2,2067,0.125 -S2D1,2067,0.125 -S2D2,2067,0.125 -S3D1,2067,0.125 -S3D2,2067,0.125 -S4D1,2067,0.125 -S4D2,2067,0.125 -S1D1,2068,0.125 -S1D2,2068,0.125 -S2D1,2068,0.125 -S2D2,2068,0.125 -S3D1,2068,0.125 -S3D2,2068,0.125 -S4D1,2068,0.125 -S4D2,2068,0.125 -S1D1,2069,0.125 -S1D2,2069,0.125 -S2D1,2069,0.125 -S2D2,2069,0.125 -S3D1,2069,0.125 -S3D2,2069,0.125 -S4D1,2069,0.125 -S4D2,2069,0.125 -S1D1,2070,0.125 -S1D2,2070,0.125 -S2D1,2070,0.125 -S2D2,2070,0.125 -S3D1,2070,0.125 -S3D2,2070,0.125 -S4D1,2070,0.125 -S4D2,2070,0.125 diff --git a/examples/Example_One/data/default_values.csv b/examples/Example_One/data/default_values.csv deleted file mode 100644 index c677fb9..0000000 --- a/examples/Example_One/data/default_values.csv +++ /dev/null @@ -1,54 +0,0 @@ -name,default_value -AccumulatedAnnualDemand,0 -AnnualEmissionLimit,-1 -AnnualExogenousEmission,0 -AvailabilityFactor,1 -CapacityFactor,1 -CapacityOfOneTechnologyUnit,0 -CapacityToActivityUnit,1 -CapitalCost,0.1 -CapitalCostStorage,0 -Conversionld,0 -Conversionlh,0 -Conversionls,0 -DaysInDayType,7 -DaySplit,0.00137 -DepreciationMethod,1 -DiscountRate,0.05 -DiscountRateStorage,0.05 -EmissionActivityRatio,0 -EmissionsPenalty,0 -FixedCost,0 -InputActivityRatio,0 -MinStorageCharge,0 -ModelPeriodEmissionLimit,-1 -ModelPeriodExogenousEmission,0 -OperationalLife,1 -OperationalLifeStorage,0 -OutputActivityRatio,0 -REMinProductionTarget,0 -ReserveMargin,1 -ReserveMarginTagFuel,0 -ReserveMarginTagTechnology,0 -ResidualCapacity,0 -ResidualStorageCapacity,999 -RETagFuel,0 -RETagTechnology,0 -SpecifiedAnnualDemand,0 -SpecifiedDemandProfile,0 -StorageLevelStart,0 -StorageMaxChargeRate,0 -StorageMaxDischargeRate,0 -TechnologyFromStorage,0 -TechnologyToStorage,0 -TotalAnnualMaxCapacity,-1 -TotalAnnualMaxCapacityInvestment,-1 -TotalAnnualMinCapacity,0 -TotalAnnualMinCapacityInvestment,0 -TotalTechnologyAnnualActivityLowerLimit,0 -TotalTechnologyAnnualActivityUpperLimit,-1 -TotalTechnologyModelPeriodActivityLowerLimit,0 -TotalTechnologyModelPeriodActivityUpperLimit,-1 -TradeRoute,0 -VariableCost,0.001 -YearSplit,0 diff --git a/examples/Example_One/osemosys.txt b/examples/Example_One/osemosys.txt deleted file mode 100644 index 5016586..0000000 --- a/examples/Example_One/osemosys.txt +++ /dev/null @@ -1,1124 +0,0 @@ -# OSeMOSYS FAST -# -# Open Source energy MOdeling SYStem -# -# ============================================================================ -# -# Copyright [2010-2015] [OSeMOSYS Forum steering committee see: www.osemosys.org] -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================ -# -# To run OSeMOSYS, enter the following line into your command prompt after replacing FILEPATH & YOURDATAFILE with your folder structure and data file name: -# -# C:\...FILEPATH...\glpsol -m C:\...FILEPATH...\OSeMOSYS_2016_08_01_short.txt -d C:\...FILEPATH...\YOURDATAFILE.txt -o C:\...FILEPATH...\Results.txt -# -# Alternatively, install GUSEK (http://gusek.sourceforge.net/gusek.html) and run the model within this integrated development environment (IDE). -# To do so, open the .dat file and select "Use External .dat file" from the Options menu. Then change to the model file and select the "Go" icon or press F5. -# -# ######################################### -###################### Model Definition ############# -# ######################################### -# -############### -# Sets # -############### -# - -set YEAR; -set TECHNOLOGY; -set TIMESLICE; -set FUEL; -set EMISSION; -set MODE_OF_OPERATION; -set REGION; -set SEASON; -set DAYTYPE; -set DAILYTIMEBRACKET; -set FLEXIBLEDEMANDTYPE; -set STORAGE; -# -##################### -# Parameters # -##################### -# -######## Global ############# -# -param ResultsPath, symbolic default 'results'; -param YearSplit{l in TIMESLICE, y in YEAR}; -param DiscountRate{r in REGION}; -param DiscountRateIdv{r in REGION, t in TECHNOLOGY}, default DiscountRate[r]; - -param DiscountFactor{r in REGION, y in YEAR} := - (1 + DiscountRate[r]) ^ (y - min{yy in YEAR} min(yy) + 0.0); -param DiscountFactorMid{r in REGION, y in YEAR} := - (1 + DiscountRate[r]) ^ (y - min{yy in YEAR} min(yy) + 0.5); - -param OperationalLife{r in REGION, t in TECHNOLOGY}; - -param CapitalRecoveryFactor{r in REGION, t in TECHNOLOGY} := - (1 - (1 + DiscountRateIdv[r,t])^(-1))/(1 - (1 + DiscountRateIdv[r,t])^(-(OperationalLife[r,t]))); -param PvAnnuity{r in REGION, t in TECHNOLOGY} := - (1 - (1 + DiscountRate[r])^(-(OperationalLife[r,t]))) * (1 + DiscountRate[r]) / DiscountRate[r]; - -param DiscountRateStorage{r in REGION, s in STORAGE}; -param DiscountFactorStorage{r in REGION, s in STORAGE, y in YEAR} := - (1 + DiscountRateStorage[r,s]) ^ (y - min{yy in YEAR} min(yy) + 0.0); - - -param DaySplit{lh in DAILYTIMEBRACKET, y in YEAR}; -param Conversionls{l in TIMESLICE, ls in SEASON} binary; -param Conversionld{l in TIMESLICE, ld in DAYTYPE} binary; -param Conversionlh{l in TIMESLICE, lh in DAILYTIMEBRACKET} binary; -param DaysInDayType{ls in SEASON, ld in DAYTYPE, y in YEAR}; -param TradeRoute {r in REGION, rr in REGION, f in FUEL, y in YEAR} binary; -param DepreciationMethod{r in REGION}; -# -######## Demands ############# -# -param SpecifiedAnnualDemand{r in REGION, f in FUEL, y in YEAR}; -param SpecifiedDemandProfile{r in REGION, f in FUEL, l in TIMESLICE, y in YEAR}; -param AccumulatedAnnualDemand{r in REGION, f in FUEL, y in YEAR}; -# -######### Performance ############# -# -param CapacityToActivityUnit{r in REGION, t in TECHNOLOGY}; -param TechWithCapacityNeededToMeetPeakTS{r in REGION, t in TECHNOLOGY}; -param CapacityFactor{r in REGION, t in TECHNOLOGY, l in TIMESLICE, y in YEAR}; -param AvailabilityFactor{r in REGION, t in TECHNOLOGY, y in YEAR}; - -param ResidualCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}; -param InputActivityRatio{r in REGION, t in TECHNOLOGY, f in FUEL, m in MODE_OF_OPERATION, y in YEAR}; -param OutputActivityRatio{r in REGION, t in TECHNOLOGY, f in FUEL, m in MODE_OF_OPERATION, y in YEAR}; -# -######### Technology Costs ############# -# -param CapitalCost{r in REGION, t in TECHNOLOGY, y in YEAR}; -param VariableCost{r in REGION, t in TECHNOLOGY, m in MODE_OF_OPERATION, y in YEAR}; -param FixedCost{r in REGION, t in TECHNOLOGY, y in YEAR}; -# -######### Storage ############# -# -param TechnologyToStorage{r in REGION, t in TECHNOLOGY, s in STORAGE, m in MODE_OF_OPERATION}; -param TechnologyFromStorage{r in REGION, t in TECHNOLOGY, s in STORAGE, m in MODE_OF_OPERATION}; -param StorageLevelStart{r in REGION, s in STORAGE}; -param StorageMaxChargeRate{r in REGION, s in STORAGE}; -param StorageMaxDischargeRate{r in REGION, s in STORAGE}; -param MinStorageCharge{r in REGION, s in STORAGE, y in YEAR}; -param OperationalLifeStorage{r in REGION, s in STORAGE}; -param CapitalCostStorage{r in REGION, s in STORAGE, y in YEAR}; -param ResidualStorageCapacity{r in REGION, s in STORAGE, y in YEAR}; -# -######### Capacity Constraints ############# -# -param CapacityOfOneTechnologyUnit{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalAnnualMaxCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalAnnualMinCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}; -# -######### Investment Constraints ############# -# -param TotalAnnualMaxCapacityInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalAnnualMinCapacityInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}; -# -######### Activity Constraints ############# -# -param TotalTechnologyAnnualActivityUpperLimit{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalTechnologyAnnualActivityLowerLimit{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalTechnologyModelPeriodActivityUpperLimit{r in REGION, t in TECHNOLOGY}; -param TotalTechnologyModelPeriodActivityLowerLimit{r in REGION, t in TECHNOLOGY}; -# -######### Reserve Margin ############# - -param ReserveMarginTagTechnology{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0 <= 1; -param ReserveMarginTagFuel{r in REGION, f in FUEL, y in YEAR} binary; -param ReserveMargin{r in REGION, y in YEAR}; -# -######### RE Generation Target ############# -# -param RETagTechnology{r in REGION, t in TECHNOLOGY, y in YEAR} binary; -param RETagFuel{r in REGION, f in FUEL, y in YEAR} binary; -param REMinProductionTarget{r in REGION, y in YEAR}; -# -######### Emissions & Penalties ############# -# -param EmissionActivityRatio{r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODE_OF_OPERATION, y in YEAR}; -param EmissionsPenalty{r in REGION, e in EMISSION, y in YEAR}; -param AnnualExogenousEmission{r in REGION, e in EMISSION, y in YEAR}; -param AnnualEmissionLimit{r in REGION, e in EMISSION, y in YEAR}; -param ModelPeriodExogenousEmission{r in REGION, e in EMISSION}; -param ModelPeriodEmissionLimit{r in REGION, e in EMISSION}; -# -############## -## -######################################################################## -# Check statements to carry out simple debugging in model parameters # -######################################################################## - -##### 'Capacity investment' check ##### -printf "Checking Max and Min capcity-investment bounds for r in REGION, t in TECHNOLOGY, y in YEAR \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR:TotalAnnualMaxCapacityInvestment[r, t, y]<>-1 && TotalAnnualMinCapacityInvestment[r, t, y]<>0}: TotalAnnualMaxCapacityInvestment[r, t, y]>=TotalAnnualMinCapacityInvestment[r, t, y]; -# -##### 'Annual Activity' check ##### -printf "Checking Annual activity limits for r in REGION, t in TECHNOLOGY, y in YEAR \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR:TotalTechnologyAnnualActivityUpperLimit[r,t,y]<>-1 && TotalTechnologyAnnualActivityUpperLimit[r,t,y]<>0 && TotalTechnologyAnnualActivityLowerLimit[r,t,y]<>0}: TotalTechnologyAnnualActivityUpperLimit[r,t,y]>=TotalTechnologyAnnualActivityLowerLimit[r,t,y]; -# -##### 'Capacity' check 1 ##### -printf "Checking Residual and TotalAnnualMax Capacity for r in REGION, t in TECHNOLOGY, y in YEAR \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMaxCapacity[r,t,y]<>-1 && ResidualCapacity[r,t,y]<>0}: TotalAnnualMaxCapacity[r,t,y] >= ResidualCapacity[r,t,y]; -# -##### 'Capacity' check 2 ##### -printf "Checking Residual, Total annual maxcap and mincap investments for all Region, Tech and Year \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR:TotalAnnualMaxCapacity[r,t,y]<>-1 && ResidualCapacity[r,t,y]<>0}: TotalAnnualMaxCapacity[r,t,y]>= ResidualCapacity[r,t,y] + TotalAnnualMinCapacityInvestment[r,t,y]; -# -##### 'Minimum Annual activity' check ##### -printf "Checking Annual production by technology bounds for r in REGION, t in TECHNOLOGY, y in YEAR \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR:TotalAnnualMaxCapacity[r,t,y]<>0 && TotalAnnualMaxCapacity[r,t,y] <> -1 && TotalTechnologyAnnualActivityLowerLimit[r,t,y]<>0 && AvailabilityFactor[r,t,y]<>0 && CapacityToActivityUnit[r,t]<>0}: sum{l in TIMESLICE: CapacityFactor[r,t,l,y]<>0 && YearSplit[l,y]<>0}(CapacityFactor[r,t,l,y]*YearSplit[l,y])*TotalAnnualMaxCapacity[r,t,y]* AvailabilityFactor[r,t,y]*CapacityToActivityUnit[r,t] >= TotalTechnologyAnnualActivityLowerLimit[r,t,y]; -# -##### 'Time Slice' check ##### -printf "Checking TimeSlices/YearSplits for y in YEAR \n"; -# -check{y in YEAR}: sum{l in TIMESLICE} YearSplit[l,y] >= 0.9999; -check{y in YEAR}: sum{l in TIMESLICE} YearSplit[l,y] <= 1.0001; -# -##### 'Model period activity limit' check ##### -printf "Checking Model period activity bounds for r in REGION, t in TECHNOLOGY \n"; -# -check{r in REGION, t in TECHNOLOGY: TotalTechnologyModelPeriodActivityLowerLimit[r,t]<>0}:TotalTechnologyModelPeriodActivityLowerLimit[r,t] >= sum{y in YEAR: TotalTechnologyAnnualActivityLowerLimit[r,t,y] <>0}TotalTechnologyAnnualActivityLowerLimit[r,t,y]; - -# - -########## Fuel->Technology Connections ############# -set MODExTECHNOLOGYperFUELout{f in FUEL} within MODE_OF_OPERATION cross TECHNOLOGY - := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION, y in YEAR} OutputActivityRatio[r,t,f,m,y] <> 0}; -set MODExTECHNOLOGYperFUELin{f in FUEL} within MODE_OF_OPERATION cross TECHNOLOGY - := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION, y in YEAR} InputActivityRatio[r,t,f,m,y] <> 0}; - -set MODExTECHNOLOGYperSTORAGEto{s in STORAGE} within MODE_OF_OPERATION cross TECHNOLOGY - := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION} TechnologyToStorage[r,t,s,m] > 0}; -set MODExTECHNOLOGYperSTORAGEfrom{s in STORAGE} within MODE_OF_OPERATION cross TECHNOLOGY - := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION} TechnologyFromStorage[r,t,s,m] > 0}; - -set TIMESLICEofSEASON{ls in SEASON} within TIMESLICE := {l in TIMESLICE : Conversionls[l,ls] = 1}; -set TIMESLICEofDAYTYPE{ld in DAYTYPE} within TIMESLICE := {l in TIMESLICE : Conversionld[l,ld] = 1}; -set TIMESLICEofDAILYTIMEBRACKET{lh in DAILYTIMEBRACKET} within TIMESLICE := {l in TIMESLICE : Conversionlh[l,lh] = 1}; -set TIMESLICEofSDB{ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET} within TIMESLICE := TIMESLICEofSEASON[ls] inter TIMESLICEofDAYTYPE[ld] inter TIMESLICEofDAILYTIMEBRACKET[lh]; - -set MODExTECHNOLOGYperEMISSION{e in EMISSION} within MODE_OF_OPERATION cross TECHNOLOGY - := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION, y in YEAR} EmissionActivityRatio[r,t,e,m,y] <> 0}; - -set MODEperTECHNOLOGY{t in TECHNOLOGY} within MODE_OF_OPERATION - := {m in MODE_OF_OPERATION : (exists {f in FUEL} (m, t) in MODExTECHNOLOGYperFUELout[f] union MODExTECHNOLOGYperFUELin[f]) or - (exists {s in STORAGE} (m, t) in MODExTECHNOLOGYperSTORAGEto[s] union MODExTECHNOLOGYperSTORAGEfrom[s]) or - (exists {e in EMISSION} (m, t) in MODExTECHNOLOGYperEMISSION[e])}; - -# -###################### -# Model Variables # -###################### -# -######## Demands ############# -# -#var RateOfDemand{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}>= 0; -#var Demand{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}>= 0; -# -######## Storage ############# -# -var NewStorageCapacity{r in REGION, s in STORAGE, y in YEAR} >=0; -var SalvageValueStorage{r in REGION, s in STORAGE, y in YEAR} >=0; -var StorageLevelYearStart{r in REGION, s in STORAGE, y in YEAR} >=0; -var StorageLevelYearFinish{r in REGION, s in STORAGE, y in YEAR} >=0; -var StorageLevelSeasonStart{r in REGION, s in STORAGE, ls in SEASON, y in YEAR} >=0; -var StorageLevelDayTypeStart{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, y in YEAR} >=0; -var StorageLevelDayTypeFinish{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, y in YEAR} >=0; -#var RateOfStorageCharge{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}; -#var RateOfStorageDischarge{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}; -#var NetChargeWithinYear{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}; -#var NetChargeWithinDay{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}; -#var StorageLowerLimit{r in REGION, s in STORAGE, y in YEAR}>=0; -#var StorageUpperLimit{r in REGION, s in STORAGE, y in YEAR} >=0; -#var AccumulatedNewStorageCapacity{r in REGION, s in STORAGE, y in YEAR} >=0; -#var CapitalInvestmentStorage{r in REGION, s in STORAGE, y in YEAR} >=0; -#var DiscountedCapitalInvestmentStorage{r in REGION, s in STORAGE, y in YEAR} >=0; -#var DiscountedSalvageValueStorage{r in REGION, s in STORAGE, y in YEAR} >=0; -#var TotalDiscountedStorageCost{r in REGION, s in STORAGE, y in YEAR} >=0; -# -######### Capacity Variables ############# -# -var NumberOfNewTechnologyUnits{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0,integer; -var NewCapacity{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0; -#var AccumulatedNewCapacity{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0; -#var TotalCapacityAnnual{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -# -######### Activity Variables ############# -# -var RateOfActivity{r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR} >= 0; -# var UseByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -var Trade{r in REGION, rr in REGION, l in TIMESLICE, f in FUEL, y in YEAR}; -var UseAnnual{r in REGION, f in FUEL, y in YEAR}>= 0; -#var RateOfTotalActivity{r in REGION, t in TECHNOLOGY, l in TIMESLICE, y in YEAR} >= 0; -#var TotalTechnologyAnnualActivity{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0; -#var TotalAnnualTechnologyActivityByMode{r in REGION, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR}>=0; -#var RateOfProductionByTechnologyByMode{r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], f in FUEL, y in YEAR}>= 0; -#var RateOfProductionByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -#var ProductionByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -#var ProductionByTechnologyAnnual{r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -#var RateOfProduction{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR} >= 0; -#var Production{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR} >= 0; -#var RateOfUseByTechnologyByMode{r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], f in FUEL, y in YEAR}>= 0; -#var RateOfUseByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR} >= 0; -#var UseByTechnologyAnnual{r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -#var RateOfUse{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}>= 0; -#var Use{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}>= 0; -#var TradeAnnual{r in REGION, rr in REGION, f in FUEL, y in YEAR}; -#var ProductionAnnual{r in REGION, f in FUEL, y in YEAR}>= 0; -# -######### Costing Variables ############# -# -#var CapitalInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -####var DiscountedCapitalInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -# -var VariableOperatingCost{r in REGION, t in TECHNOLOGY, l in TIMESLICE, y in YEAR}>= 0; -var SalvageValue{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -var DiscountedSalvageValue{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -var OperatingCost{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var DiscountedOperatingCost{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var AnnualVariableOperatingCost{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var AnnualFixedOperatingCost{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var TotalDiscountedCostByTechnology{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var TotalDiscountedCost{r in REGION, y in YEAR}>= 0; -#var ModelPeriodCostByRegion{r in REGION} >= 0; -# -######### Reserve Margin ############# -# -#var TotalCapacityInReserveMargin{r in REGION, y in YEAR}>= 0; -#var DemandNeedingReserveMargin{r in REGION,l in TIMESLICE, y in YEAR}>= 0; -# -######### RE Gen Target ############# -# -#var TotalREProductionAnnual{r in REGION, y in YEAR}; -#var RETotalProductionOfTargetFuelAnnual{r in REGION, y in YEAR}; -# -#var TotalTechnologyModelPeriodActivity{r in REGION, t in TECHNOLOGY}; -# -######### Emissions ############# -# -var DiscountedTechnologyEmissionsPenalty{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -var ModelPeriodEmissions{r in REGION, e in EMISSION}>= 0; -#var AnnualTechnologyEmissionByMode{r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODEperTECHNOLOGY[t], y in YEAR}>= 0; -#var AnnualTechnologyEmission{r in REGION, t in TECHNOLOGY, e in EMISSION, y in YEAR}>= 0; -#var AnnualTechnologyEmissionPenaltyByEmission{r in REGION, t in TECHNOLOGY, e in EMISSION, y in YEAR}>= 0; -#var AnnualTechnologyEmissionsPenalty{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var AnnualEmissions{r in REGION, e in EMISSION, y in YEAR}>= 0; -# -# table data IN "CSV" "data.csv": s <- [FROM,TO], d~DISTANCE, c~COST; -# table capacity IN "CSV" "SpecifiedAnnualDemand.csv": [YEAR, FUEL, REGION], SpecifiedAnnualDemand~ColumnNameInCSVSheet; -# -###################### -# Objective Function # -###################### -# - -minimize cost: sum{r in REGION, t in TECHNOLOGY, y in YEAR} - ((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + - sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} - RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y]) / DiscountFactorMid[r,y] + - CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] / DiscountFactor[r,y] + - DiscountedTechnologyEmissionsPenalty[r,t,y] - DiscountedSalvageValue[r,t,y]) + - sum{r in REGION, s in STORAGE, y in YEAR} (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / DiscountFactor[r,y] - - CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / DiscountFactor[r,y]); - -# -##################### -# Constraints # -##################### -# -#s.t. EQ_SpecifiedDemand{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] / YearSplit[l,y]=RateOfDemand[r,l,f,y]; -# -######### Capacity Adequacy A ############# -# -#s.t. CAa1_TotalNewCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}:AccumulatedNewCapacity[r,t,y] = sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy]; -#s.t. CAa2_TotalAnnualCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}: ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) = TotalCapacityAnnual[r,t,y]; -#s.t. CAa3_TotalActivityOfEachTechnology{r in REGION, t in TECHNOLOGY, l in TIMESLICE, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y] = RateOfTotalActivity[r,t,l,y]; -s.t. CAa4_Constraint_Capacity{r in REGION, l in TIMESLICE, t in TECHNOLOGY, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y] <= ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*CapacityFactor[r,t,l,y]*CapacityToActivityUnit[r,t]; -s.t. CAa5_TotalNewCapacity{r in REGION, t in TECHNOLOGY, y in YEAR: CapacityOfOneTechnologyUnit[r,t,y]<>0}: CapacityOfOneTechnologyUnit[r,t,y]*NumberOfNewTechnologyUnits[r,t,y] = NewCapacity[r,t,y]; -# -# Note that the PlannedMaintenance equation below ensures that all other technologies have a capacity great enough to at least meet the annual average. -# -######### Capacity Adequacy B ############# -# -s.t. CAb1_PlannedMaintenance{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{l in TIMESLICE} sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] <= sum{l in TIMESLICE} (((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*CapacityFactor[r,t,l,y]*YearSplit[l,y])* AvailabilityFactor[r,t,y]*CapacityToActivityUnit[r,t]; -# -######### Energy Balance A ############# -# -#s.t. EBa1_RateOfFuelProduction1{r in REGION, l in TIMESLICE, f in FUEL, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR}: RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] = RateOfProductionByTechnologyByMode[r,l,t,m,f,y]; -#s.t. EBa2_RateOfFuelProduction2{r in REGION, l in TIMESLICE, f in FUEL, t in TECHNOLOGY, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] = RateOfProductionByTechnology[r,l,t,f,y] ; -#s.t. EBa3_RateOfFuelProduction3{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] = RateOfProduction[r,l,f,y]; -#s.t. EBa4_RateOfFuelUse1{r in REGION, l in TIMESLICE, f in FUEL, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR}: RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] = RateOfUseByTechnologyByMode[r,l,t,m,f,y]; -#s.t. EBa5_RateOfFuelUse2{r in REGION, l in TIMESLICE, f in FUEL, t in TECHNOLOGY, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] = RateOfUseByTechnology[r,l,t,f,y]; -#s.t. EBa6_RateOfFuelUse3{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELin[f]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] = RateOfUse[r,l,f,y]; -#s.t. EBa7_EnergyBalanceEachTS1{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = Production[r,l,f,y]; -#s.t. EBa8_EnergyBalanceEachTS2{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELin[f]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = Use[r,l,f,y]; -# s.t. EBa9_EnergyBalanceEachTS3{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] = Demand[r,l,f,y]; -s.t. EBa10_EnergyBalanceEachTS4{r in REGION, rr in REGION, l in TIMESLICE, f in FUEL, y in YEAR: - TradeRoute[r,rr,f,y] <> 0}: - Trade[r,rr,l,f,y] - = - -Trade[rr,r,l,f,y]; -s.t. EBa11_EnergyBalanceEachTS5{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >= SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] + sum{(m,t) in MODExTECHNOLOGYperFUELin[f]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] + sum{rr in REGION} Trade[r,rr,l,f,y]*TradeRoute[r,rr,f,y]; -# -######### Energy Balance B ############# -# -#s.t. EBb1_EnergyBalanceEachYear1{r in REGION, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = ProductionAnnual[r,f,y]; -#s.t. EBb2_EnergyBalanceEachYear2{r in REGION, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELin[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = UseAnnual[r,f,y]; -#s.t. EBb3_EnergyBalanceEachYear3{r in REGION, rr in REGION, f in FUEL, y in YEAR}: sum{l in TIMESLICE} Trade[r,rr,l,f,y] = TradeAnnual[r,rr,f,y]; -s.t. EBb4_EnergyBalanceEachYear4{r in REGION, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >= sum{(m,t) in MODExTECHNOLOGYperFUELin[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] + sum{l in TIMESLICE, rr in REGION} Trade[r,rr,l,f,y]*TradeRoute[r,rr,f,y] + AccumulatedAnnualDemand[r,f,y]; -# -######### Accounting Technology Production/Use ############# -# -#s.t. Acc1_FuelProductionByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] = ProductionByTechnology[r,l,t,f,y]; -#s.t. Acc2_FuelUseByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] * YearSplit[l,y] = UseByTechnology[r,l,t,f,y]; -#s.t. Acc3_AverageAnnualRateOfActivity{r in REGION, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR}: sum{l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = TotalAnnualTechnologyActivityByMode[r,t,m,y]; -#s.t. Acc4_ModelPeriodCostByRegion{r in REGION}:sum{t in TECHNOLOGY, y in YEAR}(((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y])/DiscountFactorMid[r,y]+CapitalCost[r,t,y] * NewCapacity[r,t,y]/DiscountFactor[r,y]+DiscountedTechnologyEmissionsPenalty[r,t,y]-DiscountedSalvageValue[r,t,y]) + sum{s in STORAGE} (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y]-CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y])) = ModelPeriodCostByRegion[r]; - -# -######### Storage Equations ############# -# -#s.t. S1_RateOfStorageCharge{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], l in TIMESLICE:TechnologyToStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh] = RateOfStorageCharge[r,s,ls,ld,lh,y]; -#s.t. S2_RateOfStorageDischarge{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], l in TIMESLICE:TechnologyFromStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh] = RateOfStorageDischarge[r,s,ls,ld,lh,y]; -#s.t. S3_NetChargeWithinYear{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{l in TIMESLICE:Conversionls[l,ls]>0&&Conversionld[l,ld]>0&&Conversionlh[l,lh]>0} (sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t]:TechnologyToStorage[r,t,s,m]>0} (RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh]) - (sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t]:TechnologyFromStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh])) * YearSplit[l,y] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh] = NetChargeWithinYear[r,s,ls,ld,lh,y]; -#s.t. S4_NetChargeWithinDay{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: ((sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], l in TIMESLICE:TechnologyToStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh]) - (sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], l in TIMESLICE:TechnologyFromStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh])) * DaySplit[lh,y] = NetChargeWithinDay[r,s,ls,ld,lh,y]; -s.t. S5_and_S6_StorageLevelYearStart{r in REGION, s in STORAGE, y in YEAR}: - if y = min{yy in YEAR} min(yy) - then StorageLevelStart[r,s] - else StorageLevelYearStart[r,s,y-1] + sum{ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, l in TIMESLICEofSDB[ls,ld,lh]} (sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s]} (RateOfActivity[r,l,t,m,y-1] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s]} RateOfActivity[r,l,t,m,y-1] * TechnologyFromStorage[r,t,s,m])) * YearSplit[l,y-1] - = StorageLevelYearStart[r,s,y]; -s.t. S7_and_S8_StorageLevelYearFinish{r in REGION, s in STORAGE, y in YEAR}: - if y < max{yy in YEAR} max(yy) - then StorageLevelYearStart[r,s,y+1] - else StorageLevelYearStart[r,s,y] + sum{ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, l in TIMESLICEofSDB[ls,ld,lh]} (sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s]} (RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * YearSplit[l,y] - = StorageLevelYearFinish[r,s,y]; -s.t. S9_and_S10_StorageLevelSeasonStart{r in REGION, s in STORAGE, ls in SEASON, y in YEAR}: - if ls = min{lsls in SEASON} min(lsls) - then StorageLevelYearStart[r,s,y] - else StorageLevelSeasonStart[r,s,ls-1,y] + sum{ld in DAYTYPE, lh in DAILYTIMEBRACKET, l in TIMESLICEofSDB[ls-1,ld,lh]} (sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s]} (RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * YearSplit[l,y] - = StorageLevelSeasonStart[r,s,ls,y]; -s.t. S11_and_S12_StorageLevelDayTypeStart{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, y in YEAR}: - if ld = min{ldld in DAYTYPE} min(ldld) - then StorageLevelSeasonStart[r,s,ls,y] - else StorageLevelDayTypeStart[r,s,ls,ld-1,y] + sum{lh in DAILYTIMEBRACKET} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld-1,lh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld-1,lh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lh,y]) * DaysInDayType[ls,ld-1,y] - = StorageLevelDayTypeStart[r,s,ls,ld,y]; -s.t. S13_and_S14_and_S15_StorageLevelDayTypeFinish{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, y in YEAR}: - if ls = max{lsls in SEASON} max(lsls) && ld = max{ldld in DAYTYPE} max(ldld) - then StorageLevelYearFinish[r,s,y] - else if ld = max{ldld in DAYTYPE} max(ldld) - then StorageLevelSeasonStart[r,s,ls+1,y] - else StorageLevelDayTypeFinish[r,s,ls,ld+1,y] - sum{lh in DAILYTIMEBRACKET} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld+1,lh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld+1,lh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lh,y]) * DaysInDayType[ls,ld+1,y] - = StorageLevelDayTypeFinish[r,s,ls,ld,y]; -# -########## Storage Constraints ############# -# -s.t. SC1_LowerLimit_BeginningOfDailyTimeBracketOfFirstInstanceOfDayTypeInFirstWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: - 0 <= (StorageLevelDayTypeStart[r,s,ls,ld,y]+sum{lhlh in DAILYTIMEBRACKET:lh-lhlh>0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]); -s.t. SC1_UpperLimit_BeginningOfDailyTimeBracketOfFirstInstanceOfDayTypeInFirstWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: - (StorageLevelDayTypeStart[r,s,ls,ld,y]+sum{lhlh in DAILYTIMEBRACKET:lh-lhlh>0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) <= 0; -s.t. SC2_LowerLimit_EndOfDailyTimeBracketOfLastInstanceOfDayTypeInFirstWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: 0 <= if ld > min{ldld in DAYTYPE} min(ldld) then (StorageLevelDayTypeStart[r,s,ls,ld,y]-sum{lhlh in DAILYTIMEBRACKET:lh-lhlh<0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]); -s.t. SC2_UpperLimit_EndOfDailyTimeBracketOfLastInstanceOfDayTypeInFirstWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: if ld > min{ldld in DAYTYPE} min(ldld) then (StorageLevelDayTypeStart[r,s,ls,ld,y]-sum{lhlh in DAILYTIMEBRACKET:lh-lhlh<0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) <= 0; -s.t. SC3_LowerLimit_EndOfDailyTimeBracketOfLastInstanceOfDayTypeInLastWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: 0 <= (StorageLevelDayTypeFinish[r,s,ls,ld,y] - sum{lhlh in DAILYTIMEBRACKET:lh-lhlh<0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]); -s.t. SC3_UpperLimit_EndOfDailyTimeBracketOfLastInstanceOfDayTypeInLastWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: (StorageLevelDayTypeFinish[r,s,ls,ld,y] - sum{lhlh in DAILYTIMEBRACKET:lh-lhlh<0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) <= 0; -s.t. SC4_LowerLimit_BeginningOfDailyTimeBracketOfFirstInstanceOfDayTypeInLastWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: 0 <= if ld > min{ldld in DAYTYPE} min(ldld) then (StorageLevelDayTypeFinish[r,s,ls,ld-1,y]+sum{lhlh in DAILYTIMEBRACKET:lh-lhlh>0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]); -s.t. SC4_UpperLimit_BeginningOfDailyTimeBracketOfFirstInstanceOfDayTypeInLastWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: if ld > min{ldld in DAYTYPE} min(ldld) then (StorageLevelDayTypeFinish[r,s,ls,ld-1,y]+sum{lhlh in DAILYTIMEBRACKET:lh-lhlh>0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) <= 0; -s.t. SC5_MaxChargeConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m] <= StorageMaxChargeRate[r,s]; -s.t. SC6_MaxDischargeConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m] <= StorageMaxDischargeRate[r,s]; -# -######### Storage Investments ############# -# -s.t. SI6_SalvageValueStorageAtEndOfPeriod1{r in REGION, s in STORAGE, y in YEAR: (y+OperationalLifeStorage[r,s]-1) <= (max{yy in YEAR} max(yy))}: 0 = SalvageValueStorage[r,s,y]; -#s.t. SI7_SalvageValueStorageAtEndOfPeriod2{r in REGION, s in STORAGE, y in YEAR: (DepreciationMethod[r]=1 && (y+OperationalLifeStorage[r,s]-1) > (max{yy in YEAR} max(yy)) && DiscountRateStorage[r,s]=0) || (DepreciationMethod[r]=2 && (y+OperationalLifeStorage[r,s]-1) > (max{yy in YEAR} max(yy)))}: CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]*(1-(max{yy in YEAR} max(yy) - y+1)/OperationalLifeStorage[r,s]) = SalvageValueStorage[r,s,y]; -#s.t. SI8_SalvageValueStorageAtEndOfPeriod3{r in REGION, s in STORAGE, y in YEAR: DepreciationMethod[r]=1 && (y+OperationalLifeStorage[r,s]-1) > (max{yy in YEAR} max(yy)) && DiscountRateStorage[r,s]>0}: CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]*(1-(((1+DiscountRateStorage[r,s])^(max{yy in YEAR} max(yy) - y+1)-1)/((1+DiscountRateStorage[r,s])^OperationalLifeStorage[r,s]-1))) = SalvageValueStorage[r,s,y]; -#s.t. SI1_StorageUpperLimit{r in REGION, s in STORAGE, y in YEAR}: sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y] = StorageUpperLimit[r,s,y]; -#s.t. SI2_StorageLowerLimit{r in REGION, s in STORAGE, y in YEAR}: MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) = StorageLowerLimit[r,s,y]; -#s.t. SI3_TotalNewStorage{r in REGION, s in STORAGE, y in YEAR}: sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]=AccumulatedNewStorageCapacity[r,s,y]; -#s.t. SI4_UndiscountedCapitalInvestmentStorage{r in REGION, s in STORAGE, y in YEAR}: CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] = CapitalInvestmentStorage[r,s,y]; -#s.t. SI5_DiscountingCapitalInvestmentStorage{r in REGION, s in STORAGE, y in YEAR}: CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y] = DiscountedCapitalInvestmentStorage[r,s,y]; -#s.t. SI9_SalvageValueStorageDiscountedToStartYear{r in REGION, s in STORAGE, y in YEAR}: SalvageValueStorage[r,s,y]/((1+DiscountRate[r])^(max{yy in YEAR} max(yy)-min{yy in YEAR} min(yy)+1)) = DiscountedSalvageValueStorage[r,s,y]; -#s.t. SI10_TotalDiscountedCostByStorage{r in REGION, s in STORAGE, y in YEAR}: (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y]-CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y]) = TotalDiscountedStorageCost[r,s,y]; -# -######### Capital Costs ############# -# -#s.t. CC1_UndiscountedCapitalInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}: CapitalCost[r,t,y] * NewCapacity[r,t,y] = CapitalInvestment[r,t,y]; -####s.t. CC2_DiscountingCapitalInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}: CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] / DiscountFactor[r,y]= DiscountedCapitalInvestment[r,t,y]; - -# -######### Salvage Value ############# -# -s.t. SV1_SalvageValueAtEndOfPeriod1{r in REGION, t in TECHNOLOGY, y in YEAR: (y + OperationalLife[r,t]-1) > (max{yy in YEAR} max(yy)) && DiscountRate[r]>0}: SalvageValue[r,t,y] = CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] * (1-(((1+DiscountRate[r])^(max{yy in YEAR} max(yy) - y+1)-1)/((1+DiscountRate[r])^OperationalLife[r,t]-1))); -s.t. SV2_SalvageValueAtEndOfPeriod2{r in REGION, t in TECHNOLOGY, y in YEAR: (y + OperationalLife[r,t]-1) > (max{yy in YEAR} max(yy)) && DiscountRate[r]=0}: SalvageValue[r,t,y] = CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] * (1-(max{yy in YEAR} max(yy) - y+1)/OperationalLife[r,t]); -s.t. SV3_SalvageValueAtEndOfPeriod3{r in REGION, t in TECHNOLOGY, y in YEAR: (y + OperationalLife[r,t]-1) <= (max{yy in YEAR} max(yy))}: SalvageValue[r,t,y] = 0; -s.t. SV4_SalvageValueDiscountedToStartYear{r in REGION, t in TECHNOLOGY, y in YEAR}: DiscountedSalvageValue[r,t,y] = SalvageValue[r,t,y]/((1+DiscountRate[r])^(1+max{yy in YEAR} max(yy)-min{yy in YEAR} min(yy))); -# -######### Operating Costs ############# -# -#s.t. OC1_OperatingCostsVariable{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y] = AnnualVariableOperatingCost[r,t,y]; -#s.t. OC2_OperatingCostsFixedAnnual{r in REGION, t in TECHNOLOGY, y in YEAR}: ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] = AnnualFixedOperatingCost[r,t,y]; -#s.t. OC3_OperatingCostsTotalAnnual{r in REGION, t in TECHNOLOGY, y in YEAR}: (((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y]) = OperatingCost[r,t,y]; -####s.t. OC4_DiscountedOperatingCostsTotalAnnual{r in REGION, t in TECHNOLOGY, y in YEAR}: (((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y])/DiscountFactorMid[r,y] = DiscountedOperatingCost[r,t,y]; -# -######### Total Discounted Costs ############# -# -#s.t. TDC1_TotalDiscountedCostByTechnology{r in REGION, t in TECHNOLOGY, y in YEAR}: ((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y])/DiscountFactorMid[r,y]+CapitalCost[r,t,y] * NewCapacity[r,t,y]/DiscountFactor[r,y]+DiscountedTechnologyEmissionsPenalty[r,t,y]-DiscountedSalvageValue[r,t,y]) = TotalDiscountedCostByTechnology[r,t,y]; -####s.t. TDC2_TotalDiscountedCost{r in REGION, y in YEAR}: sum{t in TECHNOLOGY}((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y])/DiscountFactorMid[r,y]+CapitalCost[r,t,y] * NewCapacity[r,t,y]/DiscountFactor[r,y]+DiscountedTechnologyEmissionsPenalty[r,t,y]-DiscountedSalvageValue[r,t,y]) + sum{s in STORAGE} (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactor[r,y]-CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactor[r,y]) = TotalDiscountedCost[r,y]; -# -######### Total Capacity Constraints ############## -# -s.t. TCC1_TotalAnnualMaxCapacityConstraint{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMaxCapacity[r,t,y] <> -1}: - ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) - <= - TotalAnnualMaxCapacity[r,t,y]; - -s.t. TCC2_TotalAnnualMinCapacityConstraint{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMinCapacity[r,t,y]>0}: ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) >= TotalAnnualMinCapacity[r,t,y]; -# -######### New Capacity Constraints ############## -# -s.t. NCC1_TotalAnnualMaxNewCapacityConstraint{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMaxCapacityInvestment[r,t,y] <> -1}: - NewCapacity[r,t,y] - <= - TotalAnnualMaxCapacityInvestment[r,t,y]; -s.t. NCC2_TotalAnnualMinNewCapacityConstraint{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMinCapacityInvestment[r,t,y]>0}: NewCapacity[r,t,y] >= TotalAnnualMinCapacityInvestment[r,t,y]; -# -######### Annual Activity Constraints ############## -# -s.t. AAC2_TotalAnnualTechnologyActivityUpperLimit{r in REGION, t in TECHNOLOGY, y in YEAR: - TotalTechnologyAnnualActivityUpperLimit[r,t,y] <> -1}: - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y] - <= - TotalTechnologyAnnualActivityUpperLimit[r,t,y]; - -s.t. AAC3_TotalAnnualTechnologyActivityLowerLimit{r in REGION, t in TECHNOLOGY, y in YEAR: TotalTechnologyAnnualActivityLowerLimit[r,t,y]>0}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] >= TotalTechnologyAnnualActivityLowerLimit[r,t,y] ; -#s.t. AAC1_TotalAnnualTechnologyActivity{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = TotalTechnologyAnnualActivity[r,t,y]; -# -######### Total Activity Constraints ############## -# -s.t. TAC2_TotalModelHorizonTechnologyActivityUpperLimit{r in REGION, t in TECHNOLOGY: TotalTechnologyModelPeriodActivityUpperLimit[r,t]<>-1}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] <= TotalTechnologyModelPeriodActivityUpperLimit[r,t] ; -s.t. TAC3_TotalModelHorizenTechnologyActivityLowerLimit{r in REGION, t in TECHNOLOGY: TotalTechnologyModelPeriodActivityLowerLimit[r,t]>0}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] >= TotalTechnologyModelPeriodActivityLowerLimit[r,t] ; -#s.t. TAC1_TotalModelHorizonTechnologyActivity{r in REGION, t in TECHNOLOGY}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = TotalTechnologyModelPeriodActivity[r,t]; -# -######### Reserve Margin Constraint ############## NTS: Should change demand for production -# -s.t. RM3_ReserveMargin_Constraint{r in REGION, l in TIMESLICE, y in YEAR}: sum{f in FUEL, (m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * ReserveMarginTagFuel[r,f,y] * ReserveMargin[r,y]<= sum {t in TECHNOLOGY} ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) * ReserveMarginTagTechnology[r,t,y] * CapacityToActivityUnit[r,t]; -#s.t. RM1_ReserveMargin_TechnologiesIncluded_In_Activity_Units{r in REGION, l in TIMESLICE, y in YEAR}: sum {t in TECHNOLOGY} ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) * ReserveMarginTagTechnology[r,t,y] * CapacityToActivityUnit[r,t] = TotalCapacityInReserveMargin[r,y]; -#s.t. RM2_ReserveMargin_FuelsIncluded{r in REGION, l in TIMESLICE, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f], f in FUEL} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * ReserveMarginTagFuel[r,f,y] = DemandNeedingReserveMargin[r,l,y]; -# -######### RE Production Target ############## NTS: Should change demand for production -# -s.t. RE4_EnergyConstraint{r in REGION, y in YEAR}:REMinProductionTarget[r,y]*sum{l in TIMESLICE, f in FUEL} sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*RETagFuel[r,f,y] <= sum{f in FUEL, (m,t) in MODExTECHNOLOGYperFUELout[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y]*RETagTechnology[r,t,y]; -#s.t. RE1_FuelProductionByTechnologyAnnual{r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR}: sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] = ProductionByTechnologyAnnual[r,t,f,y]; -#s.t. RE2_TechIncluded{r in REGION, y in YEAR}: sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE, t in TECHNOLOGY, f in FUEL} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y]*RETagTechnology[r,t,y] = TotalREProductionAnnual[r,y]; -#s.t. RE3_FuelIncluded{r in REGION, y in YEAR}: sum{l in TIMESLICE, f in FUEL} sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*RETagFuel[r,f,y] = RETotalProductionOfTargetFuelAnnual[r,y]; -#s.t. RE5_FuelUseByTechnologyAnnual{r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR}: sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = UseByTechnologyAnnual[r,t,f,y]; -# -######### Emissions Accounting ############## -# -s.t. E5_DiscountedEmissionsPenaltyByTechnology{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{e in EMISSION, l in TIMESLICE, (m,tt) in MODExTECHNOLOGYperEMISSION[e]: t=tt} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*EmissionsPenalty[r,e,y]/DiscountFactorMid[r,y] = DiscountedTechnologyEmissionsPenalty[r,t,y]; -s.t. E8_AnnualEmissionsLimit{r in REGION, e in EMISSION, y in YEAR: AnnualEmissionLimit[r,e,y] <> -1}: sum{l in TIMESLICE, (m,t) in MODExTECHNOLOGYperEMISSION[e]} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]+AnnualExogenousEmission[r,e,y] <= AnnualEmissionLimit[r,e,y]; -s.t. E9_ModelPeriodEmissionsLimit{r in REGION, e in EMISSION: ModelPeriodEmissionLimit[r,e] <> -1}: sum{l in TIMESLICE, (m,t) in MODExTECHNOLOGYperEMISSION[e], y in YEAR} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] + ModelPeriodExogenousEmission[r,e] <= ModelPeriodEmissionLimit[r,e] ; -#s.t. E1_AnnualEmissionProductionByMode{r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODEperTECHNOLOGY[t], y in YEAR}: EmissionActivityRatio[r,t,e,m,y]*sum{l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]=AnnualTechnologyEmissionByMode[r,t,e,m,y]; -#s.t. E2_AnnualEmissionProduction{r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODEperTECHNOLOGY[t], y in YEAR}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = AnnualTechnologyEmission[r,t,e,y]; -#s.t. E3_EmissionsPenaltyByTechAndEmission{r in REGION, t in TECHNOLOGY, e in EMISSION, y in YEAR: EmissionActivityRatio[r,t,e,m,y]<>0}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*EmissionsPenalty[r,e,y] = AnnualTechnologyEmissionPenaltyByEmission[r,t,e,y]; -#s.t. E4_EmissionsPenaltyByTechnology{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{e in EMISSION, l in TIMESLICE, m in MODEperTECHNOLOGY[t]} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*EmissionsPenalty[r,e,y] = AnnualTechnologyEmissionsPenalty[r,t,y]; -#s.t. E6_EmissionsAccounting1{r in REGION, e in EMISSION, y in YEAR}: sum{l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = AnnualEmissions[r,e,y]; -#s.t. E7_EmissionsAccounting2{r in REGION, e in EMISSION}: sum{l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] + ModelPeriodExogenousEmission[r,e] = ModelPeriodEmissions[r,e]; -# -# -########################################################################################### -# - -solve; -# -######################################################################################################### -# # -# Summary results tables below are printed to a comma-separated file called ResultsPath & "/SelectedResults.csv" # -# For a full set of results please see "Results.txt" # -# If you don't want these printed, please comment-out or delete them. # -# # -######################################################################################################### -# -# table result{(f,t) in s} OUT "...": f~FROM, t~TO, x[f,t]~FLOW; -# table result{y in YEAR, r in REGION} OUT "CSV" "Output.csv": y~YEARS, r~REGION, TotalDiscountedCost[y,r]; -# -#### Summary results ### -# -### Total costs and emissions by region ### -# -printf "\n" > ResultsPath & "/SelectedResults.csv"; -printf "Summary" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - } -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Emissions" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} { - for {e in EMISSION} { - printf ",%s", e >> ResultsPath & "/SelectedResults.csv"; - printf ",%g", sum{l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] + ModelPeriodExogenousEmission[r,e] >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Cost" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} - {printf ",%g", - sum{t in TECHNOLOGY, y in YEAR} - ( - ( - ( - ( - (sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) + ResidualCapacity[r,t,y]) - * FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y] * VariableCost[r,t,m,y]) - / DiscountFactorMid[r,y] - + CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] / DiscountFactor[r,y] - + DiscountedTechnologyEmissionsPenalty[r,t,y] - DiscountedSalvageValue[r,t,y]) - + sum{s in STORAGE} - (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / DiscountFactorStorage[r,s,y] - - CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / DiscountFactorStorage[r,s,y])) >> ResultsPath & "/SelectedResults.csv"; -} -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -# -### Time Independent demand ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "TID Demand" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL} {printf "\n" >> ResultsPath & "/SelectedResults.csv"; - printf ",%s", f >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - printf ",%g", AccumulatedAnnualDemand[r,f,y] >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - } -# -### Time Dependent demand ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Time Dependent Demand (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL} {printf ",%s", f >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {l in TIMESLICE} { - printf ",%s", l >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for { l in TIMESLICE} { - printf ",%g", SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - } -# -### Time Dependent production ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Time Dependent Production (Energy Units) Test" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL} {printf ",%s", f >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {l in TIMESLICE} { - printf ",%s", l >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for { l in TIMESLICE} { - printf ",%g", sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - } -# -#### Total Annual Capacity ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "TotalAnnualCapacity (Capacity Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {t in TECHNOLOGY} {printf ",%s", t >> ResultsPath & "/SelectedResults.csv";} -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} { - for { y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for { t in TECHNOLOGY } { - printf ",%g", ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -# -#### New Annual Capacity ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "NewCapacity (Capacity Units )" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {t in TECHNOLOGY} {printf ",%s", t >> ResultsPath & "/SelectedResults.csv";} -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} { - for { y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for { t in TECHNOLOGY } { - printf ",%g", NewCapacity[r,t,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -# -### Annual Production ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Annual Production (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf",%s",f >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{ - printf ",%g", sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -# -### Annual Use ### -# -printf "Annual Use (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf",%s",f >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{ - printf ",%g", sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -# -### Technology Production in each TS ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "ProductionByTechnology (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf",%s",f >> ResultsPath & "/SelectedResults.csv"; - for {l in TIMESLICE}{ - printf ",%s", l >> ResultsPath & "/SelectedResults.csv"; - } - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf "," >> ResultsPath & "/SelectedResults.csv"; - for { l in TIMESLICE} { - printf ",%g", sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -} -# -### Technology Use in each TS ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Use By Technology (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf",%s",f >> ResultsPath & "/SelectedResults.csv"; - for {l in TIMESLICE}{ - printf ",%s", l >> ResultsPath & "/SelectedResults.csv"; - } - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf "," >> ResultsPath & "/SelectedResults.csv"; - for { l in TIMESLICE} { - printf ",%g", sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] * YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -} -# -### Total Annual Emissions ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Annual Emissions (Emissions Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {e in EMISSION} {printf ",%s", e >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - printf ",%g", sum{l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - } -# -### Annual Emissions by Technology ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Annual Emissions by Technology (Emissions Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {e in EMISSION}{printf",%s",e >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {e in EMISSION}{ - printf ",%g", sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - -table AnnualEmissions - {r in REGION, e in EMISSION, y in YEAR: - sum{t in TECHNOLOGY, l in TIMESLICE, m in MODE_OF_OPERATION: EmissionActivityRatio[r,t,e,m,y]<>0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/AnnualEmissions.csv" : - r~REGION, e~EMISSION, y~YEAR, - sum{t in TECHNOLOGY, l in TIMESLICE, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} - EmissionActivityRatio[r,t,e,m,y] * RateOfActivity[r,l,t,m,y] * YearSplit[l,y]~VALUE; - -table AccumulatedNewCapacity - {r in REGION, t in TECHNOLOGY, y in YEAR: - sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy] > 0} - OUT "CSV" - ResultsPath & "/AccumulatedNewCapacity.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy] ~VALUE; - -table AnnualFixedOperatingCost - {r in REGION, t in TECHNOLOGY, y in YEAR: - ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) + ResidualCapacity[r,t,y]) - > 0 && FixedCost[r,t,y] > 0 - } - OUT "CSV" - ResultsPath & "/AnnualFixedOperatingCost.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - FixedCost[r,t,y] * - ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) + ResidualCapacity[r,t,y]) ~VALUE; - -table AnnualTechnologyEmission - {r in REGION, t in TECHNOLOGY, e in EMISSION, y in YEAR: - sum{l in TIMESLICE, m in MODE_OF_OPERATION: EmissionActivityRatio[r,t,e,m,y]<>0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/AnnualTechnologyEmission.csv" : - r~REGION, t~TECHNOLOGY, e~EMISSION, y~YEAR, - sum{l in TIMESLICE, m in MODE_OF_OPERATION: EmissionActivityRatio[r,t,e,m,y]<>0} - EmissionActivityRatio[r,t,e,m,y] * RateOfActivity[r,l,t,m,y] * YearSplit[l,y] ~VALUE; - -table AnnualTechnologyEmissionByModeResults - {r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODE_OF_OPERATION, y in YEAR: - sum{l in TIMESLICE: EmissionActivityRatio[r,t,e,m,y]<>0} RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/AnnualTechnologyEmissionByMode.csv" : - r~REGION, t~TECHNOLOGY, e~EMISSION, m~MODE_OF_OPERATION, y~YEAR, - sum{l in TIMESLICE: EmissionActivityRatio[r,t,e,m,y] <> 0} - EmissionActivityRatio[r,t,e,m,y] * RateOfActivity[r,l,t,m,y] * YearSplit[l,y] ~VALUE; - -table AnnualVariableOperatingCostResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/AnnualVariableOperatingCost.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y] * VariableCost[r,t,m,y] ~VALUE; - -table CapitalInvestmentResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - NewCapacity[r,t,y] > 0 && CapitalCost[r,t,y] > 0} - OUT "CSV" - ResultsPath & "/CapitalInvestment.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] ~VALUE; - -table DemandResults - {r in REGION, l in TIMESLICE, f in FUEL, y in YEAR: - SpecifiedAnnualDemand[r,f,y] > 0} - OUT "CSV" - ResultsPath & "/Demand.csv" : - r~REGION, l~TIMESLICE, f~FUEL, y~YEAR, - SpecifiedAnnualDemand[r,f,y] * SpecifiedDemandProfile[r,f,l,y] ~VALUE; - -table DiscountedSalvageValueResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - DiscountedSalvageValue[r, t, y] > 0} - OUT "CSV" - ResultsPath & "/DiscountedSalvageValue.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - DiscountedSalvageValue[r, t, y] ~VALUE; - -table DiscountedTechnologyEmissionsPenaltyResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - DiscountedTechnologyEmissionsPenalty[r, t, y] > 0} - OUT "CSV" - ResultsPath & "/DiscountedTechnologyEmissionsPenalty.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - DiscountedTechnologyEmissionsPenalty[r, t, y] ~VALUE; - -table NewCapacityResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - NewCapacity[r, t, y] > 0} - OUT "CSV" ResultsPath & "/NewCapacity.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - NewCapacity[r, t, y] ~VALUE; - -table NewStorageCapacityResults - {r in REGION, s in STORAGE, y in YEAR: - NewStorageCapacity[r, s, y] > 0} - OUT "CSV" - ResultsPath & "/NewStorageCapacity.csv" : - r~REGION, s~STORAGE, y~YEAR, - NewStorageCapacity[r, s, y] ~VALUE; - -table NumberOfNewTechnologyUnitsResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - NumberOfNewTechnologyUnits[r, t, y] > 0} - OUT "CSV" - ResultsPath & "/NumberOfNewTechnologyUnits.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - NumberOfNewTechnologyUnits[r, t, y] ~VALUE; - -table ProductionByTechnology - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{m in MODE_OF_OPERATION: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/ProductionByTechnology.csv" : - r~REGION, l~TIMESLICE, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{m in MODEperTECHNOLOGY[t]: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] * OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] ~VALUE; - -table ProductionByTechnologyAnnual - {r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{l in TIMESLICE, m in MODE_OF_OPERATION: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/ProductionByTechnologyAnnual.csv" : - r~REGION, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] * OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] ~VALUE; - -table RateOfActivityResults - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR: - RateOfActivity[r, l, t, m, y] > 0} - OUT "CSV" - ResultsPath & "/RateOfActivity.csv" : - r~REGION, l~TIMESLICE, t~TECHNOLOGY, m~MODE_OF_OPERATION, y~YEAR, - RateOfActivity[r, l, t, m, y] ~VALUE; - -table RateOfProductionByTechnologyResults - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{m in MODEperTECHNOLOGY[t]: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/RateOfProductionByTechnology.csv" : - r~REGION, l~TIMESLICE, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{m in MODEperTECHNOLOGY[t]: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] * OutputActivityRatio[r,t,f,m,y]~VALUE; - -table RateOfProductionByTechnologyByMode - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], f in FUEL, y in YEAR: - RateOfActivity[r,l,t,m,y] > 0 && OutputActivityRatio[r,t,f,m,y] <> 0} - OUT "CSV" - ResultsPath & "/RateOfProductionByTechnologyByMode.csv" : - r~REGION, l~TIMESLICE, t~TECHNOLOGY, m~MODE_OF_OPERATION, f~FUEL, y~YEAR, - RateOfActivity[r,l,t,m,y] * OutputActivityRatio[r,t,f,m,y]~VALUE; - -table RateOfUseByTechnology - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{m in MODEperTECHNOLOGY[t]: InputActivityRatio[r,t,f,m,y]<>0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/RateOfUseByTechnology.csv": - r~REGION, l~TIMESLICE, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{m in MODEperTECHNOLOGY[t]: InputActivityRatio[r,t,f,m,y]<>0} - RateOfActivity[r,l,t,m,y] * InputActivityRatio[r,t,f,m,y]~VALUE; - -table RateOfUseByTechnologyByMode - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], f in FUEL, y in YEAR: - RateOfActivity[r,l,t,m,y] && InputActivityRatio[r,t,f,m,y] <> 0} - OUT "CSV" - ResultsPath & "/RateOfUseByTechnologyByMode.csv": - r~REGION, l~TIMESLICE, t~TECHNOLOGY, m~MODE_OF_OPERATION, f~FUEL, y~YEAR, - RateOfActivity[r,l,t,m,y] * InputActivityRatio[r,t,f,m,y]~VALUE; - -table SalvageValueResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - SalvageValue[r, t, y] > 0} - OUT "CSV" - ResultsPath & "/SalvageValue.csv": - r~REGION, t~TECHNOLOGY, y~YEAR, - SalvageValue[r, t, y]~VALUE; - -table SalvageValueStorageResults - {r in REGION, s in STORAGE, y in YEAR: - SalvageValueStorage[r, s, y] > 0} - OUT "CSV" - ResultsPath & "/SalvageValueStorage.csv": - r~REGION, s~STORAGE, y~YEAR, - SalvageValueStorage[r, s, y]~VALUE; - -table TotalAnnualTechnologyActivityByMode - {r in REGION, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR: - sum{l in TIMESLICE} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/TotalAnnualTechnologyActivityByMode.csv": - r~REGION, t~TECHNOLOGY, m~MODE_OF_OPERATION, y~YEAR, - sum{l in TIMESLICE} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y]~VALUE; - -table TotalCapacityAnnual - {r in REGION, t in TECHNOLOGY, y in YEAR: - ResidualCapacity[r,t,y] + - (sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) - > 0} - OUT "CSV" - ResultsPath & "/TotalCapacityAnnual.csv": - r~REGION, t~TECHNOLOGY, y~YEAR, - ResidualCapacity[r,t,y] + - (sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy])~VALUE; - -table TotalDiscountedCostResults - {r in REGION, y in YEAR} - OUT "CSV" - ResultsPath & "/TotalDiscountedCost.csv": - r~REGION, y~YEAR, - sum{t in TECHNOLOGY} - ((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) + ResidualCapacity[r,t,y]) * FixedCost[r,t,y] - + sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y] * VariableCost[r,t,m,y]) / (DiscountFactorMid[r,y]) - + CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t]/ (DiscountFactor[r,y]) - + DiscountedTechnologyEmissionsPenalty[r,t,y] - - DiscountedSalvageValue[r,t,y]) - + sum{s in STORAGE} - (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / (DiscountFactorStorage[r,s,y]) - - CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / (DiscountFactorStorage[r,s,y]) - )~VALUE; - -table TotalTechnologyAnnualActivity - {r in REGION, t in TECHNOLOGY, y in YEAR: - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] - > 0} - OUT "CSV" - ResultsPath & "/TotalTechnologyAnnualActivity.csv": - r~REGION, t~TECHNOLOGY, y~YEAR, - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y]~VALUE; - -table TotalTechnologyModelPeriodActivity - {r in REGION, t in TECHNOLOGY: - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} - RateOfActivity[r,l,t,m,y] - > 0} - OUT "CSV" - ResultsPath & "/TotalTechnologyModelPeriodActivity.csv": - r~REGION, t~TECHNOLOGY, - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} - RateOfActivity[r,l,t,m,y]*YearSplit[l,y]~VALUE; - -table TradeResults - {r in REGION, rr in REGION, l in TIMESLICE, f in FUEL, y in YEAR: - Trade[r, rr, l, f, y] - <> 0} - OUT "CSV" - ResultsPath & "/Trade.csv": - r~REGION, rr~REGION, l~TIMESLICE, f~FUEL, y~YEAR, - Trade[r, rr, l, f, y]~VALUE; - -table UseByTechnologyResults - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * InputActivityRatio[r,t,f,m,y] * YearSplit[l,y] - > 0} - OUT "CSV" - ResultsPath & "/UseByTechnology.csv": - r~REGION, l~TIMESLICE, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * InputActivityRatio[r,t,f,m,y] * YearSplit[l,y]~VALUE; - -end; diff --git a/examples/Example_Three/agg_results.csv b/examples/Example_Three/agg_results.csv deleted file mode 100644 index 2366ac9..0000000 --- a/examples/Example_Three/agg_results.csv +++ /dev/null @@ -1 +0,0 @@ -resultfile,indices,filename diff --git a/examples/Example_Three/data/AccumulatedAnnualDemand.csv b/examples/Example_Three/data/AccumulatedAnnualDemand.csv deleted file mode 100644 index 326b28c..0000000 --- a/examples/Example_Three/data/AccumulatedAnnualDemand.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,FUEL,YEAR,VALUE diff --git a/examples/Example_Three/data/AnnualEmissionLimit.csv b/examples/Example_Three/data/AnnualEmissionLimit.csv deleted file mode 100644 index 1fa535a..0000000 --- a/examples/Example_Three/data/AnnualEmissionLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,YEAR,VALUE diff --git a/examples/Example_Three/data/AnnualExogenousEmission.csv b/examples/Example_Three/data/AnnualExogenousEmission.csv deleted file mode 100644 index 1fa535a..0000000 --- a/examples/Example_Three/data/AnnualExogenousEmission.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,YEAR,VALUE diff --git a/examples/Example_Three/data/AvailabilityFactor.csv b/examples/Example_Three/data/AvailabilityFactor.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Three/data/AvailabilityFactor.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Three/data/CapacityFactor.csv b/examples/Example_Three/data/CapacityFactor.csv deleted file mode 100644 index dc65c86..0000000 --- a/examples/Example_Three/data/CapacityFactor.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,TIMESLICE,YEAR,VALUE \ No newline at end of file diff --git a/examples/Example_Three/data/CapacityOfOneTechnologyUnit.csv b/examples/Example_Three/data/CapacityOfOneTechnologyUnit.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Three/data/CapacityOfOneTechnologyUnit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Three/data/CapacityToActivityUnit.csv b/examples/Example_Three/data/CapacityToActivityUnit.csv deleted file mode 100644 index e83e51b..0000000 --- a/examples/Example_Three/data/CapacityToActivityUnit.csv +++ /dev/null @@ -1,2 +0,0 @@ -REGION,TECHNOLOGY,VALUE -R1,NUCLEAR,31.536 diff --git a/examples/Example_Three/data/CapitalCost.csv b/examples/Example_Three/data/CapitalCost.csv deleted file mode 100644 index c74994c..0000000 --- a/examples/Example_Three/data/CapitalCost.csv +++ /dev/null @@ -1,52 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE -R1,NUCLEAR,2020,4000 -R1,NUCLEAR,2021,4000 -R1,NUCLEAR,2022,4000 -R1,NUCLEAR,2023,4000 -R1,NUCLEAR,2024,4000 -R1,NUCLEAR,2025,4000 -R1,NUCLEAR,2026,4000 -R1,NUCLEAR,2027,4000 -R1,NUCLEAR,2028,4000 -R1,NUCLEAR,2029,4000 -R1,NUCLEAR,2030,4000 -R1,NUCLEAR,2031,4000 -R1,NUCLEAR,2032,4000 -R1,NUCLEAR,2033,4000 -R1,NUCLEAR,2034,4000 -R1,NUCLEAR,2035,4000 -R1,NUCLEAR,2036,4000 -R1,NUCLEAR,2037,4000 -R1,NUCLEAR,2038,4000 -R1,NUCLEAR,2039,4000 -R1,NUCLEAR,2040,4000 -R1,NUCLEAR,2041,4000 -R1,NUCLEAR,2042,4000 -R1,NUCLEAR,2043,4000 -R1,NUCLEAR,2044,4000 -R1,NUCLEAR,2045,4000 -R1,NUCLEAR,2046,4000 -R1,NUCLEAR,2047,4000 -R1,NUCLEAR,2048,4000 -R1,NUCLEAR,2049,4000 -R1,NUCLEAR,2050,4000 -R1,NUCLEAR,2051,4000 -R1,NUCLEAR,2052,4000 -R1,NUCLEAR,2053,4000 -R1,NUCLEAR,2054,4000 -R1,NUCLEAR,2055,4000 -R1,NUCLEAR,2056,4000 -R1,NUCLEAR,2057,4000 -R1,NUCLEAR,2058,4000 -R1,NUCLEAR,2059,4000 -R1,NUCLEAR,2060,4000 -R1,NUCLEAR,2061,4000 -R1,NUCLEAR,2062,4000 -R1,NUCLEAR,2063,4000 -R1,NUCLEAR,2064,4000 -R1,NUCLEAR,2065,4000 -R1,NUCLEAR,2066,4000 -R1,NUCLEAR,2067,4000 -R1,NUCLEAR,2068,4000 -R1,NUCLEAR,2069,4000 -R1,NUCLEAR,2070,4000 diff --git a/examples/Example_Three/data/CapitalCostStorage.csv b/examples/Example_Three/data/CapitalCostStorage.csv deleted file mode 100644 index a7bcbd7..0000000 --- a/examples/Example_Three/data/CapitalCostStorage.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,YEAR,VALUE diff --git a/examples/Example_Three/data/Conversionld.csv b/examples/Example_Three/data/Conversionld.csv deleted file mode 100644 index 360887a..0000000 --- a/examples/Example_Three/data/Conversionld.csv +++ /dev/null @@ -1 +0,0 @@ -TIMESLICE,DAYTYPE,VALUE diff --git a/examples/Example_Three/data/Conversionlh.csv b/examples/Example_Three/data/Conversionlh.csv deleted file mode 100644 index 6fc0a29..0000000 --- a/examples/Example_Three/data/Conversionlh.csv +++ /dev/null @@ -1 +0,0 @@ -TIMESLICE,DAILYTIMEBRACKET,VALUE diff --git a/examples/Example_Three/data/Conversionls.csv b/examples/Example_Three/data/Conversionls.csv deleted file mode 100644 index 47b6ebd..0000000 --- a/examples/Example_Three/data/Conversionls.csv +++ /dev/null @@ -1 +0,0 @@ -TIMESLICE,SEASON,VALUE diff --git a/examples/Example_Three/data/DAILYTIMEBRACKET.csv b/examples/Example_Three/data/DAILYTIMEBRACKET.csv deleted file mode 100644 index 2dfe6a3..0000000 --- a/examples/Example_Three/data/DAILYTIMEBRACKET.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE diff --git a/examples/Example_Three/data/DAYTYPE.csv b/examples/Example_Three/data/DAYTYPE.csv deleted file mode 100644 index e1aeddd..0000000 --- a/examples/Example_Three/data/DAYTYPE.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE diff --git a/examples/Example_Three/data/DaySplit.csv b/examples/Example_Three/data/DaySplit.csv deleted file mode 100644 index 83dab5c..0000000 --- a/examples/Example_Three/data/DaySplit.csv +++ /dev/null @@ -1 +0,0 @@ -DAILYTIMEBRACKET,YEAR,VALUE diff --git a/examples/Example_Three/data/DaysInDayType.csv b/examples/Example_Three/data/DaysInDayType.csv deleted file mode 100644 index 7e5dd71..0000000 --- a/examples/Example_Three/data/DaysInDayType.csv +++ /dev/null @@ -1 +0,0 @@ -SEASON,DAYTYPE,YEAR,VALUE diff --git a/examples/Example_Three/data/DepreciationMethod.csv b/examples/Example_Three/data/DepreciationMethod.csv deleted file mode 100644 index 8f1fa36..0000000 --- a/examples/Example_Three/data/DepreciationMethod.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,VALUE diff --git a/examples/Example_Three/data/DiscountRate.csv b/examples/Example_Three/data/DiscountRate.csv deleted file mode 100644 index f819b3b..0000000 --- a/examples/Example_Three/data/DiscountRate.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,VALUE \ No newline at end of file diff --git a/examples/Example_Three/data/DiscountRateStorage.csv b/examples/Example_Three/data/DiscountRateStorage.csv deleted file mode 100644 index 8b80bbd..0000000 --- a/examples/Example_Three/data/DiscountRateStorage.csv +++ /dev/null @@ -1,2 +0,0 @@ -REGION,STORAGE,VALUE - diff --git a/examples/Example_Three/data/EMISSION.csv b/examples/Example_Three/data/EMISSION.csv deleted file mode 100644 index 2dfe6a3..0000000 --- a/examples/Example_Three/data/EMISSION.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE diff --git a/examples/Example_Three/data/EmissionActivityRatio.csv b/examples/Example_Three/data/EmissionActivityRatio.csv deleted file mode 100644 index 7c1c3ff..0000000 --- a/examples/Example_Three/data/EmissionActivityRatio.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,EMISSION,MODE_OF_OPERATION,YEAR,VALUE diff --git a/examples/Example_Three/data/EmissionsPenalty.csv b/examples/Example_Three/data/EmissionsPenalty.csv deleted file mode 100644 index 1fa535a..0000000 --- a/examples/Example_Three/data/EmissionsPenalty.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,YEAR,VALUE diff --git a/examples/Example_Three/data/FUEL.csv b/examples/Example_Three/data/FUEL.csv deleted file mode 100644 index 7858d8b..0000000 --- a/examples/Example_Three/data/FUEL.csv +++ /dev/null @@ -1,3 +0,0 @@ -VALUE -URANIUM -ELECTRICITY diff --git a/examples/Example_Three/data/FixedCost.csv b/examples/Example_Three/data/FixedCost.csv deleted file mode 100644 index eef6f8a..0000000 --- a/examples/Example_Three/data/FixedCost.csv +++ /dev/null @@ -1,52 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE -R1,NUCLEAR,2020,50 -R1,NUCLEAR,2021,50 -R1,NUCLEAR,2022,50 -R1,NUCLEAR,2023,50 -R1,NUCLEAR,2024,50 -R1,NUCLEAR,2025,50 -R1,NUCLEAR,2026,50 -R1,NUCLEAR,2027,50 -R1,NUCLEAR,2028,50 -R1,NUCLEAR,2029,50 -R1,NUCLEAR,2030,50 -R1,NUCLEAR,2031,50 -R1,NUCLEAR,2032,50 -R1,NUCLEAR,2033,50 -R1,NUCLEAR,2034,50 -R1,NUCLEAR,2035,50 -R1,NUCLEAR,2036,50 -R1,NUCLEAR,2037,50 -R1,NUCLEAR,2038,50 -R1,NUCLEAR,2039,50 -R1,NUCLEAR,2040,50 -R1,NUCLEAR,2041,50 -R1,NUCLEAR,2042,50 -R1,NUCLEAR,2043,50 -R1,NUCLEAR,2044,50 -R1,NUCLEAR,2045,50 -R1,NUCLEAR,2046,50 -R1,NUCLEAR,2047,50 -R1,NUCLEAR,2048,50 -R1,NUCLEAR,2049,50 -R1,NUCLEAR,2050,50 -R1,NUCLEAR,2051,50 -R1,NUCLEAR,2052,50 -R1,NUCLEAR,2053,50 -R1,NUCLEAR,2054,50 -R1,NUCLEAR,2055,50 -R1,NUCLEAR,2056,50 -R1,NUCLEAR,2057,50 -R1,NUCLEAR,2058,50 -R1,NUCLEAR,2059,50 -R1,NUCLEAR,2060,50 -R1,NUCLEAR,2061,50 -R1,NUCLEAR,2062,50 -R1,NUCLEAR,2063,50 -R1,NUCLEAR,2064,50 -R1,NUCLEAR,2065,50 -R1,NUCLEAR,2066,50 -R1,NUCLEAR,2067,50 -R1,NUCLEAR,2068,50 -R1,NUCLEAR,2069,50 -R1,NUCLEAR,2070,50 diff --git a/examples/Example_Three/data/InputActivityRatio.csv b/examples/Example_Three/data/InputActivityRatio.csv deleted file mode 100644 index a0b4138..0000000 --- a/examples/Example_Three/data/InputActivityRatio.csv +++ /dev/null @@ -1,52 +0,0 @@ -REGION,TECHNOLOGY,FUEL,MODE_OF_OPERATION,YEAR,VALUE -R1,NUCLEAR,URANIUM,1,2020,1.25 -R1,NUCLEAR,URANIUM,1,2021,1.25 -R1,NUCLEAR,URANIUM,1,2022,1.25 -R1,NUCLEAR,URANIUM,1,2023,1.25 -R1,NUCLEAR,URANIUM,1,2024,1.25 -R1,NUCLEAR,URANIUM,1,2025,1.25 -R1,NUCLEAR,URANIUM,1,2026,1.25 -R1,NUCLEAR,URANIUM,1,2027,1.25 -R1,NUCLEAR,URANIUM,1,2028,1.25 -R1,NUCLEAR,URANIUM,1,2029,1.25 -R1,NUCLEAR,URANIUM,1,2030,1.25 -R1,NUCLEAR,URANIUM,1,2031,1.25 -R1,NUCLEAR,URANIUM,1,2032,1.25 -R1,NUCLEAR,URANIUM,1,2033,1.25 -R1,NUCLEAR,URANIUM,1,2034,1.25 -R1,NUCLEAR,URANIUM,1,2035,1.25 -R1,NUCLEAR,URANIUM,1,2036,1.25 -R1,NUCLEAR,URANIUM,1,2037,1.25 -R1,NUCLEAR,URANIUM,1,2038,1.25 -R1,NUCLEAR,URANIUM,1,2039,1.25 -R1,NUCLEAR,URANIUM,1,2040,1.25 -R1,NUCLEAR,URANIUM,1,2041,1.25 -R1,NUCLEAR,URANIUM,1,2042,1.25 -R1,NUCLEAR,URANIUM,1,2043,1.25 -R1,NUCLEAR,URANIUM,1,2044,1.25 -R1,NUCLEAR,URANIUM,1,2045,1.25 -R1,NUCLEAR,URANIUM,1,2046,1.25 -R1,NUCLEAR,URANIUM,1,2047,1.25 -R1,NUCLEAR,URANIUM,1,2048,1.25 -R1,NUCLEAR,URANIUM,1,2049,1.25 -R1,NUCLEAR,URANIUM,1,2050,1.25 -R1,NUCLEAR,URANIUM,1,2051,1.25 -R1,NUCLEAR,URANIUM,1,2052,1.25 -R1,NUCLEAR,URANIUM,1,2053,1.25 -R1,NUCLEAR,URANIUM,1,2054,1.25 -R1,NUCLEAR,URANIUM,1,2055,1.25 -R1,NUCLEAR,URANIUM,1,2056,1.25 -R1,NUCLEAR,URANIUM,1,2057,1.25 -R1,NUCLEAR,URANIUM,1,2058,1.25 -R1,NUCLEAR,URANIUM,1,2059,1.25 -R1,NUCLEAR,URANIUM,1,2060,1.25 -R1,NUCLEAR,URANIUM,1,2061,1.25 -R1,NUCLEAR,URANIUM,1,2062,1.25 -R1,NUCLEAR,URANIUM,1,2063,1.25 -R1,NUCLEAR,URANIUM,1,2064,1.25 -R1,NUCLEAR,URANIUM,1,2065,1.25 -R1,NUCLEAR,URANIUM,1,2066,1.25 -R1,NUCLEAR,URANIUM,1,2067,1.25 -R1,NUCLEAR,URANIUM,1,2068,1.25 -R1,NUCLEAR,URANIUM,1,2069,1.25 -R1,NUCLEAR,URANIUM,1,2070,1.25 diff --git a/examples/Example_Three/data/MODE_OF_OPERATION.csv b/examples/Example_Three/data/MODE_OF_OPERATION.csv deleted file mode 100644 index 69e52e5..0000000 --- a/examples/Example_Three/data/MODE_OF_OPERATION.csv +++ /dev/null @@ -1,2 +0,0 @@ -VALUE -1 diff --git a/examples/Example_Three/data/MinStorageCharge.csv b/examples/Example_Three/data/MinStorageCharge.csv deleted file mode 100644 index a7bcbd7..0000000 --- a/examples/Example_Three/data/MinStorageCharge.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,YEAR,VALUE diff --git a/examples/Example_Three/data/ModelPeriodEmissionLimit.csv b/examples/Example_Three/data/ModelPeriodEmissionLimit.csv deleted file mode 100644 index ccd4bcb..0000000 --- a/examples/Example_Three/data/ModelPeriodEmissionLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,VALUE diff --git a/examples/Example_Three/data/ModelPeriodExogenousEmission.csv b/examples/Example_Three/data/ModelPeriodExogenousEmission.csv deleted file mode 100644 index ccd4bcb..0000000 --- a/examples/Example_Three/data/ModelPeriodExogenousEmission.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,VALUE diff --git a/examples/Example_Three/data/OperationalLife.csv b/examples/Example_Three/data/OperationalLife.csv deleted file mode 100644 index f1db5ed..0000000 --- a/examples/Example_Three/data/OperationalLife.csv +++ /dev/null @@ -1,2 +0,0 @@ -REGION,TECHNOLOGY,VALUE -R1,NUCLEAR,50 diff --git a/examples/Example_Three/data/OperationalLifeStorage.csv b/examples/Example_Three/data/OperationalLifeStorage.csv deleted file mode 100644 index 2176c14..0000000 --- a/examples/Example_Three/data/OperationalLifeStorage.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,VALUE diff --git a/examples/Example_Three/data/OutputActivityRatio.csv b/examples/Example_Three/data/OutputActivityRatio.csv deleted file mode 100644 index 2665fc3..0000000 --- a/examples/Example_Three/data/OutputActivityRatio.csv +++ /dev/null @@ -1,103 +0,0 @@ -REGION,TECHNOLOGY,FUEL,MODE_OF_OPERATION,YEAR,VALUE -R1,NUCLEAR,ELECTRICITY,1,2020,1 -R1,NUCLEAR,ELECTRICITY,1,2021,1 -R1,NUCLEAR,ELECTRICITY,1,2022,1 -R1,NUCLEAR,ELECTRICITY,1,2023,1 -R1,NUCLEAR,ELECTRICITY,1,2024,1 -R1,NUCLEAR,ELECTRICITY,1,2025,1 -R1,NUCLEAR,ELECTRICITY,1,2026,1 -R1,NUCLEAR,ELECTRICITY,1,2027,1 -R1,NUCLEAR,ELECTRICITY,1,2028,1 -R1,NUCLEAR,ELECTRICITY,1,2029,1 -R1,NUCLEAR,ELECTRICITY,1,2030,1 -R1,NUCLEAR,ELECTRICITY,1,2031,1 -R1,NUCLEAR,ELECTRICITY,1,2032,1 -R1,NUCLEAR,ELECTRICITY,1,2033,1 -R1,NUCLEAR,ELECTRICITY,1,2034,1 -R1,NUCLEAR,ELECTRICITY,1,2035,1 -R1,NUCLEAR,ELECTRICITY,1,2036,1 -R1,NUCLEAR,ELECTRICITY,1,2037,1 -R1,NUCLEAR,ELECTRICITY,1,2038,1 -R1,NUCLEAR,ELECTRICITY,1,2039,1 -R1,NUCLEAR,ELECTRICITY,1,2040,1 -R1,NUCLEAR,ELECTRICITY,1,2041,1 -R1,NUCLEAR,ELECTRICITY,1,2042,1 -R1,NUCLEAR,ELECTRICITY,1,2043,1 -R1,NUCLEAR,ELECTRICITY,1,2044,1 -R1,NUCLEAR,ELECTRICITY,1,2045,1 -R1,NUCLEAR,ELECTRICITY,1,2046,1 -R1,NUCLEAR,ELECTRICITY,1,2047,1 -R1,NUCLEAR,ELECTRICITY,1,2048,1 -R1,NUCLEAR,ELECTRICITY,1,2049,1 -R1,NUCLEAR,ELECTRICITY,1,2050,1 -R1,NUCLEAR,ELECTRICITY,1,2051,1 -R1,NUCLEAR,ELECTRICITY,1,2052,1 -R1,NUCLEAR,ELECTRICITY,1,2053,1 -R1,NUCLEAR,ELECTRICITY,1,2054,1 -R1,NUCLEAR,ELECTRICITY,1,2055,1 -R1,NUCLEAR,ELECTRICITY,1,2056,1 -R1,NUCLEAR,ELECTRICITY,1,2057,1 -R1,NUCLEAR,ELECTRICITY,1,2058,1 -R1,NUCLEAR,ELECTRICITY,1,2059,1 -R1,NUCLEAR,ELECTRICITY,1,2060,1 -R1,NUCLEAR,ELECTRICITY,1,2061,1 -R1,NUCLEAR,ELECTRICITY,1,2062,1 -R1,NUCLEAR,ELECTRICITY,1,2063,1 -R1,NUCLEAR,ELECTRICITY,1,2064,1 -R1,NUCLEAR,ELECTRICITY,1,2065,1 -R1,NUCLEAR,ELECTRICITY,1,2066,1 -R1,NUCLEAR,ELECTRICITY,1,2067,1 -R1,NUCLEAR,ELECTRICITY,1,2068,1 -R1,NUCLEAR,ELECTRICITY,1,2069,1 -R1,NUCLEAR,ELECTRICITY,1,2070,1 -R1,MINE_URANIUM,URANIUM,1,2020,1 -R1,MINE_URANIUM,URANIUM,1,2021,1 -R1,MINE_URANIUM,URANIUM,1,2022,1 -R1,MINE_URANIUM,URANIUM,1,2023,1 -R1,MINE_URANIUM,URANIUM,1,2024,1 -R1,MINE_URANIUM,URANIUM,1,2025,1 -R1,MINE_URANIUM,URANIUM,1,2026,1 -R1,MINE_URANIUM,URANIUM,1,2027,1 -R1,MINE_URANIUM,URANIUM,1,2028,1 -R1,MINE_URANIUM,URANIUM,1,2029,1 -R1,MINE_URANIUM,URANIUM,1,2030,1 -R1,MINE_URANIUM,URANIUM,1,2031,1 -R1,MINE_URANIUM,URANIUM,1,2032,1 -R1,MINE_URANIUM,URANIUM,1,2033,1 -R1,MINE_URANIUM,URANIUM,1,2034,1 -R1,MINE_URANIUM,URANIUM,1,2035,1 -R1,MINE_URANIUM,URANIUM,1,2036,1 -R1,MINE_URANIUM,URANIUM,1,2037,1 -R1,MINE_URANIUM,URANIUM,1,2038,1 -R1,MINE_URANIUM,URANIUM,1,2039,1 -R1,MINE_URANIUM,URANIUM,1,2040,1 -R1,MINE_URANIUM,URANIUM,1,2041,1 -R1,MINE_URANIUM,URANIUM,1,2042,1 -R1,MINE_URANIUM,URANIUM,1,2043,1 -R1,MINE_URANIUM,URANIUM,1,2044,1 -R1,MINE_URANIUM,URANIUM,1,2045,1 -R1,MINE_URANIUM,URANIUM,1,2046,1 -R1,MINE_URANIUM,URANIUM,1,2047,1 -R1,MINE_URANIUM,URANIUM,1,2048,1 -R1,MINE_URANIUM,URANIUM,1,2049,1 -R1,MINE_URANIUM,URANIUM,1,2050,1 -R1,MINE_URANIUM,URANIUM,1,2051,1 -R1,MINE_URANIUM,URANIUM,1,2052,1 -R1,MINE_URANIUM,URANIUM,1,2053,1 -R1,MINE_URANIUM,URANIUM,1,2054,1 -R1,MINE_URANIUM,URANIUM,1,2055,1 -R1,MINE_URANIUM,URANIUM,1,2056,1 -R1,MINE_URANIUM,URANIUM,1,2057,1 -R1,MINE_URANIUM,URANIUM,1,2058,1 -R1,MINE_URANIUM,URANIUM,1,2059,1 -R1,MINE_URANIUM,URANIUM,1,2060,1 -R1,MINE_URANIUM,URANIUM,1,2061,1 -R1,MINE_URANIUM,URANIUM,1,2062,1 -R1,MINE_URANIUM,URANIUM,1,2063,1 -R1,MINE_URANIUM,URANIUM,1,2064,1 -R1,MINE_URANIUM,URANIUM,1,2065,1 -R1,MINE_URANIUM,URANIUM,1,2066,1 -R1,MINE_URANIUM,URANIUM,1,2067,1 -R1,MINE_URANIUM,URANIUM,1,2068,1 -R1,MINE_URANIUM,URANIUM,1,2069,1 -R1,MINE_URANIUM,URANIUM,1,2070,1 diff --git a/examples/Example_Three/data/REGION.csv b/examples/Example_Three/data/REGION.csv deleted file mode 100644 index 82dabfa..0000000 --- a/examples/Example_Three/data/REGION.csv +++ /dev/null @@ -1,2 +0,0 @@ -VALUE -R1 diff --git a/examples/Example_Three/data/REMinProductionTarget.csv b/examples/Example_Three/data/REMinProductionTarget.csv deleted file mode 100644 index b55c226..0000000 --- a/examples/Example_Three/data/REMinProductionTarget.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,YEAR,VALUE diff --git a/examples/Example_Three/data/RETagFuel.csv b/examples/Example_Three/data/RETagFuel.csv deleted file mode 100644 index 326b28c..0000000 --- a/examples/Example_Three/data/RETagFuel.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,FUEL,YEAR,VALUE diff --git a/examples/Example_Three/data/RETagTechnology.csv b/examples/Example_Three/data/RETagTechnology.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Three/data/RETagTechnology.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Three/data/ReserveMargin.csv b/examples/Example_Three/data/ReserveMargin.csv deleted file mode 100644 index b55c226..0000000 --- a/examples/Example_Three/data/ReserveMargin.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,YEAR,VALUE diff --git a/examples/Example_Three/data/ReserveMarginTagFuel.csv b/examples/Example_Three/data/ReserveMarginTagFuel.csv deleted file mode 100644 index 326b28c..0000000 --- a/examples/Example_Three/data/ReserveMarginTagFuel.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,FUEL,YEAR,VALUE diff --git a/examples/Example_Three/data/ReserveMarginTagTechnology.csv b/examples/Example_Three/data/ReserveMarginTagTechnology.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Three/data/ReserveMarginTagTechnology.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Three/data/ResidualCapacity.csv b/examples/Example_Three/data/ResidualCapacity.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Three/data/ResidualCapacity.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Three/data/ResidualStorageCapacity.csv b/examples/Example_Three/data/ResidualStorageCapacity.csv deleted file mode 100644 index a7bcbd7..0000000 --- a/examples/Example_Three/data/ResidualStorageCapacity.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,YEAR,VALUE diff --git a/examples/Example_Three/data/SEASON.csv b/examples/Example_Three/data/SEASON.csv deleted file mode 100644 index fb1ad9a..0000000 --- a/examples/Example_Three/data/SEASON.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE \ No newline at end of file diff --git a/examples/Example_Three/data/STORAGE.csv b/examples/Example_Three/data/STORAGE.csv deleted file mode 100644 index 2dfe6a3..0000000 --- a/examples/Example_Three/data/STORAGE.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE diff --git a/examples/Example_Three/data/SpecifiedAnnualDemand.csv b/examples/Example_Three/data/SpecifiedAnnualDemand.csv deleted file mode 100644 index 578780a..0000000 --- a/examples/Example_Three/data/SpecifiedAnnualDemand.csv +++ /dev/null @@ -1,52 +0,0 @@ -REGION,FUEL,YEAR,VALUE -R1,ELECTRICITY,2020,1000.0 -R1,ELECTRICITY,2021,1050.0 -R1,ELECTRICITY,2022,1102.5 -R1,ELECTRICITY,2023,1157.6250000000002 -R1,ELECTRICITY,2024,1215.5062500000001 -R1,ELECTRICITY,2025,1276.2815625000003 -R1,ELECTRICITY,2026,1340.0956406250004 -R1,ELECTRICITY,2027,1407.1004226562504 -R1,ELECTRICITY,2028,1477.455443789063 -R1,ELECTRICITY,2029,1551.3282159785163 -R1,ELECTRICITY,2030,1628.894626777442 -R1,ELECTRICITY,2031,1710.3393581163143 -R1,ELECTRICITY,2032,1795.8563260221301 -R1,ELECTRICITY,2033,1885.6491423232367 -R1,ELECTRICITY,2034,1979.9315994393987 -R1,ELECTRICITY,2035,2078.9281794113685 -R1,ELECTRICITY,2036,2182.874588381937 -R1,ELECTRICITY,2037,2292.018317801034 -R1,ELECTRICITY,2038,2406.619233691086 -R1,ELECTRICITY,2039,2526.9501953756403 -R1,ELECTRICITY,2040,2653.2977051444223 -R1,ELECTRICITY,2041,2785.9625904016434 -R1,ELECTRICITY,2042,2925.260719921726 -R1,ELECTRICITY,2043,3071.523755917812 -R1,ELECTRICITY,2044,3225.099943713703 -R1,ELECTRICITY,2045,3386.3549408993886 -R1,ELECTRICITY,2046,3555.6726879443577 -R1,ELECTRICITY,2047,3733.456322341576 -R1,ELECTRICITY,2048,3920.129138458655 -R1,ELECTRICITY,2049,4116.135595381588 -R1,ELECTRICITY,2050,4321.942375150667 -R1,ELECTRICITY,2051,4538.039493908201 -R1,ELECTRICITY,2052,4764.941468603612 -R1,ELECTRICITY,2053,5003.188542033792 -R1,ELECTRICITY,2054,5253.347969135481 -R1,ELECTRICITY,2055,5516.015367592257 -R1,ELECTRICITY,2056,5791.816135971869 -R1,ELECTRICITY,2057,6081.406942770463 -R1,ELECTRICITY,2058,6385.477289908987 -R1,ELECTRICITY,2059,6704.7511544044355 -R1,ELECTRICITY,2060,7039.988712124658 -R1,ELECTRICITY,2061,7391.988147730891 -R1,ELECTRICITY,2062,7761.587555117436 -R1,ELECTRICITY,2063,8149.666932873309 -R1,ELECTRICITY,2064,8557.150279516974 -R1,ELECTRICITY,2065,8985.007793492823 -R1,ELECTRICITY,2066,9434.258183167465 -R1,ELECTRICITY,2067,9905.971092325839 -R1,ELECTRICITY,2068,10401.269646942132 -R1,ELECTRICITY,2069,10921.333129289238 -R1,ELECTRICITY,2070,11467.39755 diff --git a/examples/Example_Three/data/SpecifiedDemandProfile.csv b/examples/Example_Three/data/SpecifiedDemandProfile.csv deleted file mode 100644 index b50b2e9..0000000 --- a/examples/Example_Three/data/SpecifiedDemandProfile.csv +++ /dev/null @@ -1,409 +0,0 @@ -REGION,FUEL,TIMESLICE,YEAR,VALUE -R1,ELECTRICITY,S1D1,2020,0.125 -R1,ELECTRICITY,S1D2,2020,0.125 -R1,ELECTRICITY,S2D1,2020,0.125 -R1,ELECTRICITY,S2D2,2020,0.125 -R1,ELECTRICITY,S3D1,2020,0.125 -R1,ELECTRICITY,S3D2,2020,0.125 -R1,ELECTRICITY,S4D1,2020,0.125 -R1,ELECTRICITY,S4D2,2020,0.125 -R1,ELECTRICITY,S1D1,2021,0.125 -R1,ELECTRICITY,S1D2,2021,0.125 -R1,ELECTRICITY,S2D1,2021,0.125 -R1,ELECTRICITY,S2D2,2021,0.125 -R1,ELECTRICITY,S3D1,2021,0.125 -R1,ELECTRICITY,S3D2,2021,0.125 -R1,ELECTRICITY,S4D1,2021,0.125 -R1,ELECTRICITY,S4D2,2021,0.125 -R1,ELECTRICITY,S1D1,2022,0.125 -R1,ELECTRICITY,S1D2,2022,0.125 -R1,ELECTRICITY,S2D1,2022,0.125 -R1,ELECTRICITY,S2D2,2022,0.125 -R1,ELECTRICITY,S3D1,2022,0.125 -R1,ELECTRICITY,S3D2,2022,0.125 -R1,ELECTRICITY,S4D1,2022,0.125 -R1,ELECTRICITY,S4D2,2022,0.125 -R1,ELECTRICITY,S1D1,2023,0.125 -R1,ELECTRICITY,S1D2,2023,0.125 -R1,ELECTRICITY,S2D1,2023,0.125 -R1,ELECTRICITY,S2D2,2023,0.125 -R1,ELECTRICITY,S3D1,2023,0.125 -R1,ELECTRICITY,S3D2,2023,0.125 -R1,ELECTRICITY,S4D1,2023,0.125 -R1,ELECTRICITY,S4D2,2023,0.125 -R1,ELECTRICITY,S1D1,2024,0.125 -R1,ELECTRICITY,S1D2,2024,0.125 -R1,ELECTRICITY,S2D1,2024,0.125 -R1,ELECTRICITY,S2D2,2024,0.125 -R1,ELECTRICITY,S3D1,2024,0.125 -R1,ELECTRICITY,S3D2,2024,0.125 -R1,ELECTRICITY,S4D1,2024,0.125 -R1,ELECTRICITY,S4D2,2024,0.125 -R1,ELECTRICITY,S1D1,2025,0.125 -R1,ELECTRICITY,S1D2,2025,0.125 -R1,ELECTRICITY,S2D1,2025,0.125 -R1,ELECTRICITY,S2D2,2025,0.125 -R1,ELECTRICITY,S3D1,2025,0.125 -R1,ELECTRICITY,S3D2,2025,0.125 -R1,ELECTRICITY,S4D1,2025,0.125 -R1,ELECTRICITY,S4D2,2025,0.125 -R1,ELECTRICITY,S1D1,2026,0.125 -R1,ELECTRICITY,S1D2,2026,0.125 -R1,ELECTRICITY,S2D1,2026,0.125 -R1,ELECTRICITY,S2D2,2026,0.125 -R1,ELECTRICITY,S3D1,2026,0.125 -R1,ELECTRICITY,S3D2,2026,0.125 -R1,ELECTRICITY,S4D1,2026,0.125 -R1,ELECTRICITY,S4D2,2026,0.125 -R1,ELECTRICITY,S1D1,2027,0.125 -R1,ELECTRICITY,S1D2,2027,0.125 -R1,ELECTRICITY,S2D1,2027,0.125 -R1,ELECTRICITY,S2D2,2027,0.125 -R1,ELECTRICITY,S3D1,2027,0.125 -R1,ELECTRICITY,S3D2,2027,0.125 -R1,ELECTRICITY,S4D1,2027,0.125 -R1,ELECTRICITY,S4D2,2027,0.125 -R1,ELECTRICITY,S1D1,2028,0.125 -R1,ELECTRICITY,S1D2,2028,0.125 -R1,ELECTRICITY,S2D1,2028,0.125 -R1,ELECTRICITY,S2D2,2028,0.125 -R1,ELECTRICITY,S3D1,2028,0.125 -R1,ELECTRICITY,S3D2,2028,0.125 -R1,ELECTRICITY,S4D1,2028,0.125 -R1,ELECTRICITY,S4D2,2028,0.125 -R1,ELECTRICITY,S1D1,2029,0.125 -R1,ELECTRICITY,S1D2,2029,0.125 -R1,ELECTRICITY,S2D1,2029,0.125 -R1,ELECTRICITY,S2D2,2029,0.125 -R1,ELECTRICITY,S3D1,2029,0.125 -R1,ELECTRICITY,S3D2,2029,0.125 -R1,ELECTRICITY,S4D1,2029,0.125 -R1,ELECTRICITY,S4D2,2029,0.125 -R1,ELECTRICITY,S1D1,2030,0.125 -R1,ELECTRICITY,S1D2,2030,0.125 -R1,ELECTRICITY,S2D1,2030,0.125 -R1,ELECTRICITY,S2D2,2030,0.125 -R1,ELECTRICITY,S3D1,2030,0.125 -R1,ELECTRICITY,S3D2,2030,0.125 -R1,ELECTRICITY,S4D1,2030,0.125 -R1,ELECTRICITY,S4D2,2030,0.125 -R1,ELECTRICITY,S1D1,2031,0.125 -R1,ELECTRICITY,S1D2,2031,0.125 -R1,ELECTRICITY,S2D1,2031,0.125 -R1,ELECTRICITY,S2D2,2031,0.125 -R1,ELECTRICITY,S3D1,2031,0.125 -R1,ELECTRICITY,S3D2,2031,0.125 -R1,ELECTRICITY,S4D1,2031,0.125 -R1,ELECTRICITY,S4D2,2031,0.125 -R1,ELECTRICITY,S1D1,2032,0.125 -R1,ELECTRICITY,S1D2,2032,0.125 -R1,ELECTRICITY,S2D1,2032,0.125 -R1,ELECTRICITY,S2D2,2032,0.125 -R1,ELECTRICITY,S3D1,2032,0.125 -R1,ELECTRICITY,S3D2,2032,0.125 -R1,ELECTRICITY,S4D1,2032,0.125 -R1,ELECTRICITY,S4D2,2032,0.125 -R1,ELECTRICITY,S1D1,2033,0.125 -R1,ELECTRICITY,S1D2,2033,0.125 -R1,ELECTRICITY,S2D1,2033,0.125 -R1,ELECTRICITY,S2D2,2033,0.125 -R1,ELECTRICITY,S3D1,2033,0.125 -R1,ELECTRICITY,S3D2,2033,0.125 -R1,ELECTRICITY,S4D1,2033,0.125 -R1,ELECTRICITY,S4D2,2033,0.125 -R1,ELECTRICITY,S1D1,2034,0.125 -R1,ELECTRICITY,S1D2,2034,0.125 -R1,ELECTRICITY,S2D1,2034,0.125 -R1,ELECTRICITY,S2D2,2034,0.125 -R1,ELECTRICITY,S3D1,2034,0.125 -R1,ELECTRICITY,S3D2,2034,0.125 -R1,ELECTRICITY,S4D1,2034,0.125 -R1,ELECTRICITY,S4D2,2034,0.125 -R1,ELECTRICITY,S1D1,2035,0.125 -R1,ELECTRICITY,S1D2,2035,0.125 -R1,ELECTRICITY,S2D1,2035,0.125 -R1,ELECTRICITY,S2D2,2035,0.125 -R1,ELECTRICITY,S3D1,2035,0.125 -R1,ELECTRICITY,S3D2,2035,0.125 -R1,ELECTRICITY,S4D1,2035,0.125 -R1,ELECTRICITY,S4D2,2035,0.125 -R1,ELECTRICITY,S1D1,2036,0.125 -R1,ELECTRICITY,S1D2,2036,0.125 -R1,ELECTRICITY,S2D1,2036,0.125 -R1,ELECTRICITY,S2D2,2036,0.125 -R1,ELECTRICITY,S3D1,2036,0.125 -R1,ELECTRICITY,S3D2,2036,0.125 -R1,ELECTRICITY,S4D1,2036,0.125 -R1,ELECTRICITY,S4D2,2036,0.125 -R1,ELECTRICITY,S1D1,2037,0.125 -R1,ELECTRICITY,S1D2,2037,0.125 -R1,ELECTRICITY,S2D1,2037,0.125 -R1,ELECTRICITY,S2D2,2037,0.125 -R1,ELECTRICITY,S3D1,2037,0.125 -R1,ELECTRICITY,S3D2,2037,0.125 -R1,ELECTRICITY,S4D1,2037,0.125 -R1,ELECTRICITY,S4D2,2037,0.125 -R1,ELECTRICITY,S1D1,2038,0.125 -R1,ELECTRICITY,S1D2,2038,0.125 -R1,ELECTRICITY,S2D1,2038,0.125 -R1,ELECTRICITY,S2D2,2038,0.125 -R1,ELECTRICITY,S3D1,2038,0.125 -R1,ELECTRICITY,S3D2,2038,0.125 -R1,ELECTRICITY,S4D1,2038,0.125 -R1,ELECTRICITY,S4D2,2038,0.125 -R1,ELECTRICITY,S1D1,2039,0.125 -R1,ELECTRICITY,S1D2,2039,0.125 -R1,ELECTRICITY,S2D1,2039,0.125 -R1,ELECTRICITY,S2D2,2039,0.125 -R1,ELECTRICITY,S3D1,2039,0.125 -R1,ELECTRICITY,S3D2,2039,0.125 -R1,ELECTRICITY,S4D1,2039,0.125 -R1,ELECTRICITY,S4D2,2039,0.125 -R1,ELECTRICITY,S1D1,2040,0.125 -R1,ELECTRICITY,S1D2,2040,0.125 -R1,ELECTRICITY,S2D1,2040,0.125 -R1,ELECTRICITY,S2D2,2040,0.125 -R1,ELECTRICITY,S3D1,2040,0.125 -R1,ELECTRICITY,S3D2,2040,0.125 -R1,ELECTRICITY,S4D1,2040,0.125 -R1,ELECTRICITY,S4D2,2040,0.125 -R1,ELECTRICITY,S1D1,2041,0.125 -R1,ELECTRICITY,S1D2,2041,0.125 -R1,ELECTRICITY,S2D1,2041,0.125 -R1,ELECTRICITY,S2D2,2041,0.125 -R1,ELECTRICITY,S3D1,2041,0.125 -R1,ELECTRICITY,S3D2,2041,0.125 -R1,ELECTRICITY,S4D1,2041,0.125 -R1,ELECTRICITY,S4D2,2041,0.125 -R1,ELECTRICITY,S1D1,2042,0.125 -R1,ELECTRICITY,S1D2,2042,0.125 -R1,ELECTRICITY,S2D1,2042,0.125 -R1,ELECTRICITY,S2D2,2042,0.125 -R1,ELECTRICITY,S3D1,2042,0.125 -R1,ELECTRICITY,S3D2,2042,0.125 -R1,ELECTRICITY,S4D1,2042,0.125 -R1,ELECTRICITY,S4D2,2042,0.125 -R1,ELECTRICITY,S1D1,2043,0.125 -R1,ELECTRICITY,S1D2,2043,0.125 -R1,ELECTRICITY,S2D1,2043,0.125 -R1,ELECTRICITY,S2D2,2043,0.125 -R1,ELECTRICITY,S3D1,2043,0.125 -R1,ELECTRICITY,S3D2,2043,0.125 -R1,ELECTRICITY,S4D1,2043,0.125 -R1,ELECTRICITY,S4D2,2043,0.125 -R1,ELECTRICITY,S1D1,2044,0.125 -R1,ELECTRICITY,S1D2,2044,0.125 -R1,ELECTRICITY,S2D1,2044,0.125 -R1,ELECTRICITY,S2D2,2044,0.125 -R1,ELECTRICITY,S3D1,2044,0.125 -R1,ELECTRICITY,S3D2,2044,0.125 -R1,ELECTRICITY,S4D1,2044,0.125 -R1,ELECTRICITY,S4D2,2044,0.125 -R1,ELECTRICITY,S1D1,2045,0.125 -R1,ELECTRICITY,S1D2,2045,0.125 -R1,ELECTRICITY,S2D1,2045,0.125 -R1,ELECTRICITY,S2D2,2045,0.125 -R1,ELECTRICITY,S3D1,2045,0.125 -R1,ELECTRICITY,S3D2,2045,0.125 -R1,ELECTRICITY,S4D1,2045,0.125 -R1,ELECTRICITY,S4D2,2045,0.125 -R1,ELECTRICITY,S1D1,2046,0.125 -R1,ELECTRICITY,S1D2,2046,0.125 -R1,ELECTRICITY,S2D1,2046,0.125 -R1,ELECTRICITY,S2D2,2046,0.125 -R1,ELECTRICITY,S3D1,2046,0.125 -R1,ELECTRICITY,S3D2,2046,0.125 -R1,ELECTRICITY,S4D1,2046,0.125 -R1,ELECTRICITY,S4D2,2046,0.125 -R1,ELECTRICITY,S1D1,2047,0.125 -R1,ELECTRICITY,S1D2,2047,0.125 -R1,ELECTRICITY,S2D1,2047,0.125 -R1,ELECTRICITY,S2D2,2047,0.125 -R1,ELECTRICITY,S3D1,2047,0.125 -R1,ELECTRICITY,S3D2,2047,0.125 -R1,ELECTRICITY,S4D1,2047,0.125 -R1,ELECTRICITY,S4D2,2047,0.125 -R1,ELECTRICITY,S1D1,2048,0.125 -R1,ELECTRICITY,S1D2,2048,0.125 -R1,ELECTRICITY,S2D1,2048,0.125 -R1,ELECTRICITY,S2D2,2048,0.125 -R1,ELECTRICITY,S3D1,2048,0.125 -R1,ELECTRICITY,S3D2,2048,0.125 -R1,ELECTRICITY,S4D1,2048,0.125 -R1,ELECTRICITY,S4D2,2048,0.125 -R1,ELECTRICITY,S1D1,2049,0.125 -R1,ELECTRICITY,S1D2,2049,0.125 -R1,ELECTRICITY,S2D1,2049,0.125 -R1,ELECTRICITY,S2D2,2049,0.125 -R1,ELECTRICITY,S3D1,2049,0.125 -R1,ELECTRICITY,S3D2,2049,0.125 -R1,ELECTRICITY,S4D1,2049,0.125 -R1,ELECTRICITY,S4D2,2049,0.125 -R1,ELECTRICITY,S1D1,2050,0.125 -R1,ELECTRICITY,S1D2,2050,0.125 -R1,ELECTRICITY,S2D1,2050,0.125 -R1,ELECTRICITY,S2D2,2050,0.125 -R1,ELECTRICITY,S3D1,2050,0.125 -R1,ELECTRICITY,S3D2,2050,0.125 -R1,ELECTRICITY,S4D1,2050,0.125 -R1,ELECTRICITY,S4D2,2050,0.125 -R1,ELECTRICITY,S1D1,2051,0.125 -R1,ELECTRICITY,S1D2,2051,0.125 -R1,ELECTRICITY,S2D1,2051,0.125 -R1,ELECTRICITY,S2D2,2051,0.125 -R1,ELECTRICITY,S3D1,2051,0.125 -R1,ELECTRICITY,S3D2,2051,0.125 -R1,ELECTRICITY,S4D1,2051,0.125 -R1,ELECTRICITY,S4D2,2051,0.125 -R1,ELECTRICITY,S1D1,2052,0.125 -R1,ELECTRICITY,S1D2,2052,0.125 -R1,ELECTRICITY,S2D1,2052,0.125 -R1,ELECTRICITY,S2D2,2052,0.125 -R1,ELECTRICITY,S3D1,2052,0.125 -R1,ELECTRICITY,S3D2,2052,0.125 -R1,ELECTRICITY,S4D1,2052,0.125 -R1,ELECTRICITY,S4D2,2052,0.125 -R1,ELECTRICITY,S1D1,2053,0.125 -R1,ELECTRICITY,S1D2,2053,0.125 -R1,ELECTRICITY,S2D1,2053,0.125 -R1,ELECTRICITY,S2D2,2053,0.125 -R1,ELECTRICITY,S3D1,2053,0.125 -R1,ELECTRICITY,S3D2,2053,0.125 -R1,ELECTRICITY,S4D1,2053,0.125 -R1,ELECTRICITY,S4D2,2053,0.125 -R1,ELECTRICITY,S1D1,2054,0.125 -R1,ELECTRICITY,S1D2,2054,0.125 -R1,ELECTRICITY,S2D1,2054,0.125 -R1,ELECTRICITY,S2D2,2054,0.125 -R1,ELECTRICITY,S3D1,2054,0.125 -R1,ELECTRICITY,S3D2,2054,0.125 -R1,ELECTRICITY,S4D1,2054,0.125 -R1,ELECTRICITY,S4D2,2054,0.125 -R1,ELECTRICITY,S1D1,2055,0.125 -R1,ELECTRICITY,S1D2,2055,0.125 -R1,ELECTRICITY,S2D1,2055,0.125 -R1,ELECTRICITY,S2D2,2055,0.125 -R1,ELECTRICITY,S3D1,2055,0.125 -R1,ELECTRICITY,S3D2,2055,0.125 -R1,ELECTRICITY,S4D1,2055,0.125 -R1,ELECTRICITY,S4D2,2055,0.125 -R1,ELECTRICITY,S1D1,2056,0.125 -R1,ELECTRICITY,S1D2,2056,0.125 -R1,ELECTRICITY,S2D1,2056,0.125 -R1,ELECTRICITY,S2D2,2056,0.125 -R1,ELECTRICITY,S3D1,2056,0.125 -R1,ELECTRICITY,S3D2,2056,0.125 -R1,ELECTRICITY,S4D1,2056,0.125 -R1,ELECTRICITY,S4D2,2056,0.125 -R1,ELECTRICITY,S1D1,2057,0.125 -R1,ELECTRICITY,S1D2,2057,0.125 -R1,ELECTRICITY,S2D1,2057,0.125 -R1,ELECTRICITY,S2D2,2057,0.125 -R1,ELECTRICITY,S3D1,2057,0.125 -R1,ELECTRICITY,S3D2,2057,0.125 -R1,ELECTRICITY,S4D1,2057,0.125 -R1,ELECTRICITY,S4D2,2057,0.125 -R1,ELECTRICITY,S1D1,2058,0.125 -R1,ELECTRICITY,S1D2,2058,0.125 -R1,ELECTRICITY,S2D1,2058,0.125 -R1,ELECTRICITY,S2D2,2058,0.125 -R1,ELECTRICITY,S3D1,2058,0.125 -R1,ELECTRICITY,S3D2,2058,0.125 -R1,ELECTRICITY,S4D1,2058,0.125 -R1,ELECTRICITY,S4D2,2058,0.125 -R1,ELECTRICITY,S1D1,2059,0.125 -R1,ELECTRICITY,S1D2,2059,0.125 -R1,ELECTRICITY,S2D1,2059,0.125 -R1,ELECTRICITY,S2D2,2059,0.125 -R1,ELECTRICITY,S3D1,2059,0.125 -R1,ELECTRICITY,S3D2,2059,0.125 -R1,ELECTRICITY,S4D1,2059,0.125 -R1,ELECTRICITY,S4D2,2059,0.125 -R1,ELECTRICITY,S1D1,2060,0.125 -R1,ELECTRICITY,S1D2,2060,0.125 -R1,ELECTRICITY,S2D1,2060,0.125 -R1,ELECTRICITY,S2D2,2060,0.125 -R1,ELECTRICITY,S3D1,2060,0.125 -R1,ELECTRICITY,S3D2,2060,0.125 -R1,ELECTRICITY,S4D1,2060,0.125 -R1,ELECTRICITY,S4D2,2060,0.125 -R1,ELECTRICITY,S1D1,2061,0.125 -R1,ELECTRICITY,S1D2,2061,0.125 -R1,ELECTRICITY,S2D1,2061,0.125 -R1,ELECTRICITY,S2D2,2061,0.125 -R1,ELECTRICITY,S3D1,2061,0.125 -R1,ELECTRICITY,S3D2,2061,0.125 -R1,ELECTRICITY,S4D1,2061,0.125 -R1,ELECTRICITY,S4D2,2061,0.125 -R1,ELECTRICITY,S1D1,2062,0.125 -R1,ELECTRICITY,S1D2,2062,0.125 -R1,ELECTRICITY,S2D1,2062,0.125 -R1,ELECTRICITY,S2D2,2062,0.125 -R1,ELECTRICITY,S3D1,2062,0.125 -R1,ELECTRICITY,S3D2,2062,0.125 -R1,ELECTRICITY,S4D1,2062,0.125 -R1,ELECTRICITY,S4D2,2062,0.125 -R1,ELECTRICITY,S1D1,2063,0.125 -R1,ELECTRICITY,S1D2,2063,0.125 -R1,ELECTRICITY,S2D1,2063,0.125 -R1,ELECTRICITY,S2D2,2063,0.125 -R1,ELECTRICITY,S3D1,2063,0.125 -R1,ELECTRICITY,S3D2,2063,0.125 -R1,ELECTRICITY,S4D1,2063,0.125 -R1,ELECTRICITY,S4D2,2063,0.125 -R1,ELECTRICITY,S1D1,2064,0.125 -R1,ELECTRICITY,S1D2,2064,0.125 -R1,ELECTRICITY,S2D1,2064,0.125 -R1,ELECTRICITY,S2D2,2064,0.125 -R1,ELECTRICITY,S3D1,2064,0.125 -R1,ELECTRICITY,S3D2,2064,0.125 -R1,ELECTRICITY,S4D1,2064,0.125 -R1,ELECTRICITY,S4D2,2064,0.125 -R1,ELECTRICITY,S1D1,2065,0.125 -R1,ELECTRICITY,S1D2,2065,0.125 -R1,ELECTRICITY,S2D1,2065,0.125 -R1,ELECTRICITY,S2D2,2065,0.125 -R1,ELECTRICITY,S3D1,2065,0.125 -R1,ELECTRICITY,S3D2,2065,0.125 -R1,ELECTRICITY,S4D1,2065,0.125 -R1,ELECTRICITY,S4D2,2065,0.125 -R1,ELECTRICITY,S1D1,2066,0.125 -R1,ELECTRICITY,S1D2,2066,0.125 -R1,ELECTRICITY,S2D1,2066,0.125 -R1,ELECTRICITY,S2D2,2066,0.125 -R1,ELECTRICITY,S3D1,2066,0.125 -R1,ELECTRICITY,S3D2,2066,0.125 -R1,ELECTRICITY,S4D1,2066,0.125 -R1,ELECTRICITY,S4D2,2066,0.125 -R1,ELECTRICITY,S1D1,2067,0.125 -R1,ELECTRICITY,S1D2,2067,0.125 -R1,ELECTRICITY,S2D1,2067,0.125 -R1,ELECTRICITY,S2D2,2067,0.125 -R1,ELECTRICITY,S3D1,2067,0.125 -R1,ELECTRICITY,S3D2,2067,0.125 -R1,ELECTRICITY,S4D1,2067,0.125 -R1,ELECTRICITY,S4D2,2067,0.125 -R1,ELECTRICITY,S1D1,2068,0.125 -R1,ELECTRICITY,S1D2,2068,0.125 -R1,ELECTRICITY,S2D1,2068,0.125 -R1,ELECTRICITY,S2D2,2068,0.125 -R1,ELECTRICITY,S3D1,2068,0.125 -R1,ELECTRICITY,S3D2,2068,0.125 -R1,ELECTRICITY,S4D1,2068,0.125 -R1,ELECTRICITY,S4D2,2068,0.125 -R1,ELECTRICITY,S1D1,2069,0.125 -R1,ELECTRICITY,S1D2,2069,0.125 -R1,ELECTRICITY,S2D1,2069,0.125 -R1,ELECTRICITY,S2D2,2069,0.125 -R1,ELECTRICITY,S3D1,2069,0.125 -R1,ELECTRICITY,S3D2,2069,0.125 -R1,ELECTRICITY,S4D1,2069,0.125 -R1,ELECTRICITY,S4D2,2069,0.125 -R1,ELECTRICITY,S1D1,2070,0.125 -R1,ELECTRICITY,S1D2,2070,0.125 -R1,ELECTRICITY,S2D1,2070,0.125 -R1,ELECTRICITY,S2D2,2070,0.125 -R1,ELECTRICITY,S3D1,2070,0.125 -R1,ELECTRICITY,S3D2,2070,0.125 -R1,ELECTRICITY,S4D1,2070,0.125 -R1,ELECTRICITY,S4D2,2070,0.125 diff --git a/examples/Example_Three/data/StorageLevelStart.csv b/examples/Example_Three/data/StorageLevelStart.csv deleted file mode 100644 index 2176c14..0000000 --- a/examples/Example_Three/data/StorageLevelStart.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,VALUE diff --git a/examples/Example_Three/data/StorageMaxChargeRate.csv b/examples/Example_Three/data/StorageMaxChargeRate.csv deleted file mode 100644 index 2176c14..0000000 --- a/examples/Example_Three/data/StorageMaxChargeRate.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,VALUE diff --git a/examples/Example_Three/data/StorageMaxDischargeRate.csv b/examples/Example_Three/data/StorageMaxDischargeRate.csv deleted file mode 100644 index 2176c14..0000000 --- a/examples/Example_Three/data/StorageMaxDischargeRate.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,VALUE diff --git a/examples/Example_Three/data/TECHNOLOGY.csv b/examples/Example_Three/data/TECHNOLOGY.csv deleted file mode 100644 index 15e4301..0000000 --- a/examples/Example_Three/data/TECHNOLOGY.csv +++ /dev/null @@ -1,3 +0,0 @@ -VALUE -MINE_URANIUM -NUCLEAR \ No newline at end of file diff --git a/examples/Example_Three/data/TIMESLICE.csv b/examples/Example_Three/data/TIMESLICE.csv deleted file mode 100644 index bc81add..0000000 --- a/examples/Example_Three/data/TIMESLICE.csv +++ /dev/null @@ -1,9 +0,0 @@ -VALUE -S1D1 -S1D2 -S2D1 -S2D2 -S3D1 -S3D2 -S4D1 -S4D2 diff --git a/examples/Example_Three/data/TechnologyFromStorage.csv b/examples/Example_Three/data/TechnologyFromStorage.csv deleted file mode 100644 index 384c871..0000000 --- a/examples/Example_Three/data/TechnologyFromStorage.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,STORAGE,MODE_OF_OPERATION,VALUE diff --git a/examples/Example_Three/data/TechnologyToStorage.csv b/examples/Example_Three/data/TechnologyToStorage.csv deleted file mode 100644 index 1ae3429..0000000 --- a/examples/Example_Three/data/TechnologyToStorage.csv +++ /dev/null @@ -1,2 +0,0 @@ -REGION,TECHNOLOGY,STORAGE,MODE_OF_OPERATION,VALUE - diff --git a/examples/Example_Three/data/TotalAnnualMaxCapacity.csv b/examples/Example_Three/data/TotalAnnualMaxCapacity.csv deleted file mode 100644 index f77c5f0..0000000 --- a/examples/Example_Three/data/TotalAnnualMaxCapacity.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE \ No newline at end of file diff --git a/examples/Example_Three/data/TotalAnnualMaxCapacityInvestment.csv b/examples/Example_Three/data/TotalAnnualMaxCapacityInvestment.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Three/data/TotalAnnualMaxCapacityInvestment.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Three/data/TotalAnnualMinCapacity.csv b/examples/Example_Three/data/TotalAnnualMinCapacity.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Three/data/TotalAnnualMinCapacity.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Three/data/TotalAnnualMinCapacityInvestment.csv b/examples/Example_Three/data/TotalAnnualMinCapacityInvestment.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Three/data/TotalAnnualMinCapacityInvestment.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Three/data/TotalTechnologyAnnualActivityLowerLimit.csv b/examples/Example_Three/data/TotalTechnologyAnnualActivityLowerLimit.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Three/data/TotalTechnologyAnnualActivityLowerLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Three/data/TotalTechnologyAnnualActivityUpperLimit.csv b/examples/Example_Three/data/TotalTechnologyAnnualActivityUpperLimit.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Three/data/TotalTechnologyAnnualActivityUpperLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Three/data/TotalTechnologyModelPeriodActivityLowerLimit.csv b/examples/Example_Three/data/TotalTechnologyModelPeriodActivityLowerLimit.csv deleted file mode 100644 index 1ca1a8e..0000000 --- a/examples/Example_Three/data/TotalTechnologyModelPeriodActivityLowerLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,VALUE diff --git a/examples/Example_Three/data/TotalTechnologyModelPeriodActivityUpperLimit.csv b/examples/Example_Three/data/TotalTechnologyModelPeriodActivityUpperLimit.csv deleted file mode 100644 index 1ca1a8e..0000000 --- a/examples/Example_Three/data/TotalTechnologyModelPeriodActivityUpperLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,VALUE diff --git a/examples/Example_Three/data/TradeRoute.csv b/examples/Example_Three/data/TradeRoute.csv deleted file mode 100644 index 326b28c..0000000 --- a/examples/Example_Three/data/TradeRoute.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,FUEL,YEAR,VALUE diff --git a/examples/Example_Three/data/VariableCost.csv b/examples/Example_Three/data/VariableCost.csv deleted file mode 100644 index dff7c27..0000000 --- a/examples/Example_Three/data/VariableCost.csv +++ /dev/null @@ -1,52 +0,0 @@ -REGION,TECHNOLOGY,MODE_OF_OPERATION,YEAR,VALUE -R1,MINE_URANIUM,1,2020,2.5 -R1,MINE_URANIUM,1,2021,2.5 -R1,MINE_URANIUM,1,2022,2.5 -R1,MINE_URANIUM,1,2023,2.5 -R1,MINE_URANIUM,1,2024,2.5 -R1,MINE_URANIUM,1,2025,2.5 -R1,MINE_URANIUM,1,2026,2.5 -R1,MINE_URANIUM,1,2027,2.5 -R1,MINE_URANIUM,1,2028,2.5 -R1,MINE_URANIUM,1,2029,2.5 -R1,MINE_URANIUM,1,2030,2.5 -R1,MINE_URANIUM,1,2031,2.5 -R1,MINE_URANIUM,1,2032,2.5 -R1,MINE_URANIUM,1,2033,2.5 -R1,MINE_URANIUM,1,2034,2.5 -R1,MINE_URANIUM,1,2035,2.5 -R1,MINE_URANIUM,1,2036,2.5 -R1,MINE_URANIUM,1,2037,2.5 -R1,MINE_URANIUM,1,2038,2.5 -R1,MINE_URANIUM,1,2039,2.5 -R1,MINE_URANIUM,1,2040,2.5 -R1,MINE_URANIUM,1,2041,2.5 -R1,MINE_URANIUM,1,2042,2.5 -R1,MINE_URANIUM,1,2043,2.5 -R1,MINE_URANIUM,1,2044,2.5 -R1,MINE_URANIUM,1,2045,2.5 -R1,MINE_URANIUM,1,2046,2.5 -R1,MINE_URANIUM,1,2047,2.5 -R1,MINE_URANIUM,1,2048,2.5 -R1,MINE_URANIUM,1,2049,2.5 -R1,MINE_URANIUM,1,2050,2.5 -R1,MINE_URANIUM,1,2051,2.5 -R1,MINE_URANIUM,1,2052,2.5 -R1,MINE_URANIUM,1,2053,2.5 -R1,MINE_URANIUM,1,2054,2.5 -R1,MINE_URANIUM,1,2055,2.5 -R1,MINE_URANIUM,1,2056,2.5 -R1,MINE_URANIUM,1,2057,2.5 -R1,MINE_URANIUM,1,2058,2.5 -R1,MINE_URANIUM,1,2059,2.5 -R1,MINE_URANIUM,1,2060,2.5 -R1,MINE_URANIUM,1,2061,2.5 -R1,MINE_URANIUM,1,2062,2.5 -R1,MINE_URANIUM,1,2063,2.5 -R1,MINE_URANIUM,1,2064,2.5 -R1,MINE_URANIUM,1,2065,2.5 -R1,MINE_URANIUM,1,2066,2.5 -R1,MINE_URANIUM,1,2067,2.5 -R1,MINE_URANIUM,1,2068,2.5 -R1,MINE_URANIUM,1,2069,2.5 -R1,MINE_URANIUM,1,2070,2.5 diff --git a/examples/Example_Three/data/YEAR.csv b/examples/Example_Three/data/YEAR.csv deleted file mode 100644 index 83f6f1f..0000000 --- a/examples/Example_Three/data/YEAR.csv +++ /dev/null @@ -1,52 +0,0 @@ -VALUE -2020 -2021 -2022 -2023 -2024 -2025 -2026 -2027 -2028 -2029 -2030 -2031 -2032 -2033 -2034 -2035 -2036 -2037 -2038 -2039 -2040 -2041 -2042 -2043 -2044 -2045 -2046 -2047 -2048 -2049 -2050 -2051 -2052 -2053 -2054 -2055 -2056 -2057 -2058 -2059 -2060 -2061 -2062 -2063 -2064 -2065 -2066 -2067 -2068 -2069 -2070 diff --git a/examples/Example_Three/data/YearSplit.csv b/examples/Example_Three/data/YearSplit.csv deleted file mode 100644 index e81ca4d..0000000 --- a/examples/Example_Three/data/YearSplit.csv +++ /dev/null @@ -1,409 +0,0 @@ -TIMESLICE,YEAR,VALUE -S1D1,2020,0.125 -S1D2,2020,0.125 -S2D1,2020,0.125 -S2D2,2020,0.125 -S3D1,2020,0.125 -S3D2,2020,0.125 -S4D1,2020,0.125 -S4D2,2020,0.125 -S1D1,2021,0.125 -S1D2,2021,0.125 -S2D1,2021,0.125 -S2D2,2021,0.125 -S3D1,2021,0.125 -S3D2,2021,0.125 -S4D1,2021,0.125 -S4D2,2021,0.125 -S1D1,2022,0.125 -S1D2,2022,0.125 -S2D1,2022,0.125 -S2D2,2022,0.125 -S3D1,2022,0.125 -S3D2,2022,0.125 -S4D1,2022,0.125 -S4D2,2022,0.125 -S1D1,2023,0.125 -S1D2,2023,0.125 -S2D1,2023,0.125 -S2D2,2023,0.125 -S3D1,2023,0.125 -S3D2,2023,0.125 -S4D1,2023,0.125 -S4D2,2023,0.125 -S1D1,2024,0.125 -S1D2,2024,0.125 -S2D1,2024,0.125 -S2D2,2024,0.125 -S3D1,2024,0.125 -S3D2,2024,0.125 -S4D1,2024,0.125 -S4D2,2024,0.125 -S1D1,2025,0.125 -S1D2,2025,0.125 -S2D1,2025,0.125 -S2D2,2025,0.125 -S3D1,2025,0.125 -S3D2,2025,0.125 -S4D1,2025,0.125 -S4D2,2025,0.125 -S1D1,2026,0.125 -S1D2,2026,0.125 -S2D1,2026,0.125 -S2D2,2026,0.125 -S3D1,2026,0.125 -S3D2,2026,0.125 -S4D1,2026,0.125 -S4D2,2026,0.125 -S1D1,2027,0.125 -S1D2,2027,0.125 -S2D1,2027,0.125 -S2D2,2027,0.125 -S3D1,2027,0.125 -S3D2,2027,0.125 -S4D1,2027,0.125 -S4D2,2027,0.125 -S1D1,2028,0.125 -S1D2,2028,0.125 -S2D1,2028,0.125 -S2D2,2028,0.125 -S3D1,2028,0.125 -S3D2,2028,0.125 -S4D1,2028,0.125 -S4D2,2028,0.125 -S1D1,2029,0.125 -S1D2,2029,0.125 -S2D1,2029,0.125 -S2D2,2029,0.125 -S3D1,2029,0.125 -S3D2,2029,0.125 -S4D1,2029,0.125 -S4D2,2029,0.125 -S1D1,2030,0.125 -S1D2,2030,0.125 -S2D1,2030,0.125 -S2D2,2030,0.125 -S3D1,2030,0.125 -S3D2,2030,0.125 -S4D1,2030,0.125 -S4D2,2030,0.125 -S1D1,2031,0.125 -S1D2,2031,0.125 -S2D1,2031,0.125 -S2D2,2031,0.125 -S3D1,2031,0.125 -S3D2,2031,0.125 -S4D1,2031,0.125 -S4D2,2031,0.125 -S1D1,2032,0.125 -S1D2,2032,0.125 -S2D1,2032,0.125 -S2D2,2032,0.125 -S3D1,2032,0.125 -S3D2,2032,0.125 -S4D1,2032,0.125 -S4D2,2032,0.125 -S1D1,2033,0.125 -S1D2,2033,0.125 -S2D1,2033,0.125 -S2D2,2033,0.125 -S3D1,2033,0.125 -S3D2,2033,0.125 -S4D1,2033,0.125 -S4D2,2033,0.125 -S1D1,2034,0.125 -S1D2,2034,0.125 -S2D1,2034,0.125 -S2D2,2034,0.125 -S3D1,2034,0.125 -S3D2,2034,0.125 -S4D1,2034,0.125 -S4D2,2034,0.125 -S1D1,2035,0.125 -S1D2,2035,0.125 -S2D1,2035,0.125 -S2D2,2035,0.125 -S3D1,2035,0.125 -S3D2,2035,0.125 -S4D1,2035,0.125 -S4D2,2035,0.125 -S1D1,2036,0.125 -S1D2,2036,0.125 -S2D1,2036,0.125 -S2D2,2036,0.125 -S3D1,2036,0.125 -S3D2,2036,0.125 -S4D1,2036,0.125 -S4D2,2036,0.125 -S1D1,2037,0.125 -S1D2,2037,0.125 -S2D1,2037,0.125 -S2D2,2037,0.125 -S3D1,2037,0.125 -S3D2,2037,0.125 -S4D1,2037,0.125 -S4D2,2037,0.125 -S1D1,2038,0.125 -S1D2,2038,0.125 -S2D1,2038,0.125 -S2D2,2038,0.125 -S3D1,2038,0.125 -S3D2,2038,0.125 -S4D1,2038,0.125 -S4D2,2038,0.125 -S1D1,2039,0.125 -S1D2,2039,0.125 -S2D1,2039,0.125 -S2D2,2039,0.125 -S3D1,2039,0.125 -S3D2,2039,0.125 -S4D1,2039,0.125 -S4D2,2039,0.125 -S1D1,2040,0.125 -S1D2,2040,0.125 -S2D1,2040,0.125 -S2D2,2040,0.125 -S3D1,2040,0.125 -S3D2,2040,0.125 -S4D1,2040,0.125 -S4D2,2040,0.125 -S1D1,2041,0.125 -S1D2,2041,0.125 -S2D1,2041,0.125 -S2D2,2041,0.125 -S3D1,2041,0.125 -S3D2,2041,0.125 -S4D1,2041,0.125 -S4D2,2041,0.125 -S1D1,2042,0.125 -S1D2,2042,0.125 -S2D1,2042,0.125 -S2D2,2042,0.125 -S3D1,2042,0.125 -S3D2,2042,0.125 -S4D1,2042,0.125 -S4D2,2042,0.125 -S1D1,2043,0.125 -S1D2,2043,0.125 -S2D1,2043,0.125 -S2D2,2043,0.125 -S3D1,2043,0.125 -S3D2,2043,0.125 -S4D1,2043,0.125 -S4D2,2043,0.125 -S1D1,2044,0.125 -S1D2,2044,0.125 -S2D1,2044,0.125 -S2D2,2044,0.125 -S3D1,2044,0.125 -S3D2,2044,0.125 -S4D1,2044,0.125 -S4D2,2044,0.125 -S1D1,2045,0.125 -S1D2,2045,0.125 -S2D1,2045,0.125 -S2D2,2045,0.125 -S3D1,2045,0.125 -S3D2,2045,0.125 -S4D1,2045,0.125 -S4D2,2045,0.125 -S1D1,2046,0.125 -S1D2,2046,0.125 -S2D1,2046,0.125 -S2D2,2046,0.125 -S3D1,2046,0.125 -S3D2,2046,0.125 -S4D1,2046,0.125 -S4D2,2046,0.125 -S1D1,2047,0.125 -S1D2,2047,0.125 -S2D1,2047,0.125 -S2D2,2047,0.125 -S3D1,2047,0.125 -S3D2,2047,0.125 -S4D1,2047,0.125 -S4D2,2047,0.125 -S1D1,2048,0.125 -S1D2,2048,0.125 -S2D1,2048,0.125 -S2D2,2048,0.125 -S3D1,2048,0.125 -S3D2,2048,0.125 -S4D1,2048,0.125 -S4D2,2048,0.125 -S1D1,2049,0.125 -S1D2,2049,0.125 -S2D1,2049,0.125 -S2D2,2049,0.125 -S3D1,2049,0.125 -S3D2,2049,0.125 -S4D1,2049,0.125 -S4D2,2049,0.125 -S1D1,2050,0.125 -S1D2,2050,0.125 -S2D1,2050,0.125 -S2D2,2050,0.125 -S3D1,2050,0.125 -S3D2,2050,0.125 -S4D1,2050,0.125 -S4D2,2050,0.125 -S1D1,2051,0.125 -S1D2,2051,0.125 -S2D1,2051,0.125 -S2D2,2051,0.125 -S3D1,2051,0.125 -S3D2,2051,0.125 -S4D1,2051,0.125 -S4D2,2051,0.125 -S1D1,2052,0.125 -S1D2,2052,0.125 -S2D1,2052,0.125 -S2D2,2052,0.125 -S3D1,2052,0.125 -S3D2,2052,0.125 -S4D1,2052,0.125 -S4D2,2052,0.125 -S1D1,2053,0.125 -S1D2,2053,0.125 -S2D1,2053,0.125 -S2D2,2053,0.125 -S3D1,2053,0.125 -S3D2,2053,0.125 -S4D1,2053,0.125 -S4D2,2053,0.125 -S1D1,2054,0.125 -S1D2,2054,0.125 -S2D1,2054,0.125 -S2D2,2054,0.125 -S3D1,2054,0.125 -S3D2,2054,0.125 -S4D1,2054,0.125 -S4D2,2054,0.125 -S1D1,2055,0.125 -S1D2,2055,0.125 -S2D1,2055,0.125 -S2D2,2055,0.125 -S3D1,2055,0.125 -S3D2,2055,0.125 -S4D1,2055,0.125 -S4D2,2055,0.125 -S1D1,2056,0.125 -S1D2,2056,0.125 -S2D1,2056,0.125 -S2D2,2056,0.125 -S3D1,2056,0.125 -S3D2,2056,0.125 -S4D1,2056,0.125 -S4D2,2056,0.125 -S1D1,2057,0.125 -S1D2,2057,0.125 -S2D1,2057,0.125 -S2D2,2057,0.125 -S3D1,2057,0.125 -S3D2,2057,0.125 -S4D1,2057,0.125 -S4D2,2057,0.125 -S1D1,2058,0.125 -S1D2,2058,0.125 -S2D1,2058,0.125 -S2D2,2058,0.125 -S3D1,2058,0.125 -S3D2,2058,0.125 -S4D1,2058,0.125 -S4D2,2058,0.125 -S1D1,2059,0.125 -S1D2,2059,0.125 -S2D1,2059,0.125 -S2D2,2059,0.125 -S3D1,2059,0.125 -S3D2,2059,0.125 -S4D1,2059,0.125 -S4D2,2059,0.125 -S1D1,2060,0.125 -S1D2,2060,0.125 -S2D1,2060,0.125 -S2D2,2060,0.125 -S3D1,2060,0.125 -S3D2,2060,0.125 -S4D1,2060,0.125 -S4D2,2060,0.125 -S1D1,2061,0.125 -S1D2,2061,0.125 -S2D1,2061,0.125 -S2D2,2061,0.125 -S3D1,2061,0.125 -S3D2,2061,0.125 -S4D1,2061,0.125 -S4D2,2061,0.125 -S1D1,2062,0.125 -S1D2,2062,0.125 -S2D1,2062,0.125 -S2D2,2062,0.125 -S3D1,2062,0.125 -S3D2,2062,0.125 -S4D1,2062,0.125 -S4D2,2062,0.125 -S1D1,2063,0.125 -S1D2,2063,0.125 -S2D1,2063,0.125 -S2D2,2063,0.125 -S3D1,2063,0.125 -S3D2,2063,0.125 -S4D1,2063,0.125 -S4D2,2063,0.125 -S1D1,2064,0.125 -S1D2,2064,0.125 -S2D1,2064,0.125 -S2D2,2064,0.125 -S3D1,2064,0.125 -S3D2,2064,0.125 -S4D1,2064,0.125 -S4D2,2064,0.125 -S1D1,2065,0.125 -S1D2,2065,0.125 -S2D1,2065,0.125 -S2D2,2065,0.125 -S3D1,2065,0.125 -S3D2,2065,0.125 -S4D1,2065,0.125 -S4D2,2065,0.125 -S1D1,2066,0.125 -S1D2,2066,0.125 -S2D1,2066,0.125 -S2D2,2066,0.125 -S3D1,2066,0.125 -S3D2,2066,0.125 -S4D1,2066,0.125 -S4D2,2066,0.125 -S1D1,2067,0.125 -S1D2,2067,0.125 -S2D1,2067,0.125 -S2D2,2067,0.125 -S3D1,2067,0.125 -S3D2,2067,0.125 -S4D1,2067,0.125 -S4D2,2067,0.125 -S1D1,2068,0.125 -S1D2,2068,0.125 -S2D1,2068,0.125 -S2D2,2068,0.125 -S3D1,2068,0.125 -S3D2,2068,0.125 -S4D1,2068,0.125 -S4D2,2068,0.125 -S1D1,2069,0.125 -S1D2,2069,0.125 -S2D1,2069,0.125 -S2D2,2069,0.125 -S3D1,2069,0.125 -S3D2,2069,0.125 -S4D1,2069,0.125 -S4D2,2069,0.125 -S1D1,2070,0.125 -S1D2,2070,0.125 -S2D1,2070,0.125 -S2D2,2070,0.125 -S3D1,2070,0.125 -S3D2,2070,0.125 -S4D1,2070,0.125 -S4D2,2070,0.125 diff --git a/examples/Example_Three/data/default_values.csv b/examples/Example_Three/data/default_values.csv deleted file mode 100644 index c677fb9..0000000 --- a/examples/Example_Three/data/default_values.csv +++ /dev/null @@ -1,54 +0,0 @@ -name,default_value -AccumulatedAnnualDemand,0 -AnnualEmissionLimit,-1 -AnnualExogenousEmission,0 -AvailabilityFactor,1 -CapacityFactor,1 -CapacityOfOneTechnologyUnit,0 -CapacityToActivityUnit,1 -CapitalCost,0.1 -CapitalCostStorage,0 -Conversionld,0 -Conversionlh,0 -Conversionls,0 -DaysInDayType,7 -DaySplit,0.00137 -DepreciationMethod,1 -DiscountRate,0.05 -DiscountRateStorage,0.05 -EmissionActivityRatio,0 -EmissionsPenalty,0 -FixedCost,0 -InputActivityRatio,0 -MinStorageCharge,0 -ModelPeriodEmissionLimit,-1 -ModelPeriodExogenousEmission,0 -OperationalLife,1 -OperationalLifeStorage,0 -OutputActivityRatio,0 -REMinProductionTarget,0 -ReserveMargin,1 -ReserveMarginTagFuel,0 -ReserveMarginTagTechnology,0 -ResidualCapacity,0 -ResidualStorageCapacity,999 -RETagFuel,0 -RETagTechnology,0 -SpecifiedAnnualDemand,0 -SpecifiedDemandProfile,0 -StorageLevelStart,0 -StorageMaxChargeRate,0 -StorageMaxDischargeRate,0 -TechnologyFromStorage,0 -TechnologyToStorage,0 -TotalAnnualMaxCapacity,-1 -TotalAnnualMaxCapacityInvestment,-1 -TotalAnnualMinCapacity,0 -TotalAnnualMinCapacityInvestment,0 -TotalTechnologyAnnualActivityLowerLimit,0 -TotalTechnologyAnnualActivityUpperLimit,-1 -TotalTechnologyModelPeriodActivityLowerLimit,0 -TotalTechnologyModelPeriodActivityUpperLimit,-1 -TradeRoute,0 -VariableCost,0.001 -YearSplit,0 diff --git a/examples/Example_Three/osemosys.txt b/examples/Example_Three/osemosys.txt deleted file mode 100644 index 9d2fd45..0000000 --- a/examples/Example_Three/osemosys.txt +++ /dev/null @@ -1,1130 +0,0 @@ -# OSeMOSYS FAST -# -# Open Source energy MOdeling SYStem -# -# ============================================================================ -# -# Copyright [2010-2015] [OSeMOSYS Forum steering committee see: www.osemosys.org] -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================ -# -# To run OSeMOSYS, enter the following line into your command prompt after replacing FILEPATH & YOURDATAFILE with your folder structure and data file name: -# -# C:\...FILEPATH...\glpsol -m C:\...FILEPATH...\OSeMOSYS_2016_08_01_short.txt -d C:\...FILEPATH...\YOURDATAFILE.txt -o C:\...FILEPATH...\Results.txt -# -# Alternatively, install GUSEK (http://gusek.sourceforge.net/gusek.html) and run the model within this integrated development environment (IDE). -# To do so, open the .dat file and select "Use External .dat file" from the Options menu. Then change to the model file and select the "Go" icon or press F5. -# -# ######################################### -###################### Model Definition ############# -# ######################################### -# -############### -# Sets # -############### -# - -set YEAR; -set TECHNOLOGY; -set TIMESLICE; -set FUEL; -set EMISSION; -set MODE_OF_OPERATION; -set REGION; -set SEASON; -set DAYTYPE; -set DAILYTIMEBRACKET; -set FLEXIBLEDEMANDTYPE; -set STORAGE; -set MODEperTECHNOLOGY{TECHNOLOGY} within MODE_OF_OPERATION; -set MODExTECHNOLOGYperFUELout{FUEL} within MODE_OF_OPERATION cross TECHNOLOGY; -set MODExTECHNOLOGYperFUELin{FUEL} within MODE_OF_OPERATION cross TECHNOLOGY; -set MODExTECHNOLOGYperSTORAGEto{STORAGE} within MODE_OF_OPERATION cross TECHNOLOGY; -set MODExTECHNOLOGYperSTORAGEfrom{STORAGE} within MODE_OF_OPERATION cross TECHNOLOGY; -set MODExTECHNOLOGYperEMISSION{e in EMISSION} within MODE_OF_OPERATION cross TECHNOLOGY; -# -##################### -# Parameters # -##################### -# -######## Global ############# -# -param ResultsPath, symbolic default 'results'; -param YearSplit{l in TIMESLICE, y in YEAR}; -param DiscountRate{r in REGION}; -param DiscountRateIdv{r in REGION, t in TECHNOLOGY}, default DiscountRate[r]; - -param DiscountFactor{r in REGION, y in YEAR} := - (1 + DiscountRate[r]) ^ (y - min{yy in YEAR} min(yy) + 0.0); -param DiscountFactorMid{r in REGION, y in YEAR} := - (1 + DiscountRate[r]) ^ (y - min{yy in YEAR} min(yy) + 0.5); - -param OperationalLife{r in REGION, t in TECHNOLOGY}; - -param CapitalRecoveryFactor{r in REGION, t in TECHNOLOGY} := - (1 - (1 + DiscountRateIdv[r,t])^(-1))/(1 - (1 + DiscountRateIdv[r,t])^(-(OperationalLife[r,t]))); -param PvAnnuity{r in REGION, t in TECHNOLOGY} := - (1 - (1 + DiscountRate[r])^(-(OperationalLife[r,t]))) * (1 + DiscountRate[r]) / DiscountRate[r]; - -param DiscountRateStorage{r in REGION, s in STORAGE}; -param DiscountFactorStorage{r in REGION, s in STORAGE, y in YEAR} := - (1 + DiscountRateStorage[r,s]) ^ (y - min{yy in YEAR} min(yy) + 0.0); - - -param DaySplit{lh in DAILYTIMEBRACKET, y in YEAR}; -param Conversionls{l in TIMESLICE, ls in SEASON} binary; -param Conversionld{l in TIMESLICE, ld in DAYTYPE} binary; -param Conversionlh{l in TIMESLICE, lh in DAILYTIMEBRACKET} binary; -param DaysInDayType{ls in SEASON, ld in DAYTYPE, y in YEAR}; -param TradeRoute {r in REGION, rr in REGION, f in FUEL, y in YEAR} binary; -param DepreciationMethod{r in REGION}; -# -######## Demands ############# -# -param SpecifiedAnnualDemand{r in REGION, f in FUEL, y in YEAR}; -param SpecifiedDemandProfile{r in REGION, f in FUEL, l in TIMESLICE, y in YEAR}; -param AccumulatedAnnualDemand{r in REGION, f in FUEL, y in YEAR}; -# -######### Performance ############# -# -param CapacityToActivityUnit{r in REGION, t in TECHNOLOGY}; -param TechWithCapacityNeededToMeetPeakTS{r in REGION, t in TECHNOLOGY}; -param CapacityFactor{r in REGION, t in TECHNOLOGY, l in TIMESLICE, y in YEAR}; -param AvailabilityFactor{r in REGION, t in TECHNOLOGY, y in YEAR}; - -param ResidualCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}; -param InputActivityRatio{r in REGION, t in TECHNOLOGY, f in FUEL, m in MODE_OF_OPERATION, y in YEAR}; -param OutputActivityRatio{r in REGION, t in TECHNOLOGY, f in FUEL, m in MODE_OF_OPERATION, y in YEAR}; -# -######### Technology Costs ############# -# -param CapitalCost{r in REGION, t in TECHNOLOGY, y in YEAR}; -param VariableCost{r in REGION, t in TECHNOLOGY, m in MODE_OF_OPERATION, y in YEAR}; -param FixedCost{r in REGION, t in TECHNOLOGY, y in YEAR}; -# -######### Storage ############# -# -param TechnologyToStorage{r in REGION, t in TECHNOLOGY, s in STORAGE, m in MODE_OF_OPERATION}; -param TechnologyFromStorage{r in REGION, t in TECHNOLOGY, s in STORAGE, m in MODE_OF_OPERATION}; -param StorageLevelStart{r in REGION, s in STORAGE}; -param StorageMaxChargeRate{r in REGION, s in STORAGE}; -param StorageMaxDischargeRate{r in REGION, s in STORAGE}; -param MinStorageCharge{r in REGION, s in STORAGE, y in YEAR}; -param OperationalLifeStorage{r in REGION, s in STORAGE}; -param CapitalCostStorage{r in REGION, s in STORAGE, y in YEAR}; -param ResidualStorageCapacity{r in REGION, s in STORAGE, y in YEAR}; -# -######### Capacity Constraints ############# -# -param CapacityOfOneTechnologyUnit{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalAnnualMaxCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalAnnualMinCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}; -# -######### Investment Constraints ############# -# -param TotalAnnualMaxCapacityInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalAnnualMinCapacityInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}; -# -######### Activity Constraints ############# -# -param TotalTechnologyAnnualActivityUpperLimit{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalTechnologyAnnualActivityLowerLimit{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalTechnologyModelPeriodActivityUpperLimit{r in REGION, t in TECHNOLOGY}; -param TotalTechnologyModelPeriodActivityLowerLimit{r in REGION, t in TECHNOLOGY}; -# -######### Reserve Margin ############# - -param ReserveMarginTagTechnology{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0 <= 1; -param ReserveMarginTagFuel{r in REGION, f in FUEL, y in YEAR} binary; -param ReserveMargin{r in REGION, y in YEAR}; -# -######### RE Generation Target ############# -# -param RETagTechnology{r in REGION, t in TECHNOLOGY, y in YEAR} binary; -param RETagFuel{r in REGION, f in FUEL, y in YEAR} binary; -param REMinProductionTarget{r in REGION, y in YEAR}; -# -######### Emissions & Penalties ############# -# -param EmissionActivityRatio{r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODE_OF_OPERATION, y in YEAR}; -param EmissionsPenalty{r in REGION, e in EMISSION, y in YEAR}; -param AnnualExogenousEmission{r in REGION, e in EMISSION, y in YEAR}; -param AnnualEmissionLimit{r in REGION, e in EMISSION, y in YEAR}; -param ModelPeriodExogenousEmission{r in REGION, e in EMISSION}; -param ModelPeriodEmissionLimit{r in REGION, e in EMISSION}; -# -############## -## -######################################################################## -# Check statements to carry out simple debugging in model parameters # -######################################################################## - -##### 'Capacity investment' check ##### -printf "Checking Max and Min capcity-investment bounds for r in REGION, t in TECHNOLOGY, y in YEAR \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR:TotalAnnualMaxCapacityInvestment[r, t, y]<>-1 && TotalAnnualMinCapacityInvestment[r, t, y]<>0}: TotalAnnualMaxCapacityInvestment[r, t, y]>=TotalAnnualMinCapacityInvestment[r, t, y]; -# -##### 'Annual Activity' check ##### -printf "Checking Annual activity limits for r in REGION, t in TECHNOLOGY, y in YEAR \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR:TotalTechnologyAnnualActivityUpperLimit[r,t,y]<>-1 && TotalTechnologyAnnualActivityUpperLimit[r,t,y]<>0 && TotalTechnologyAnnualActivityLowerLimit[r,t,y]<>0}: TotalTechnologyAnnualActivityUpperLimit[r,t,y]>=TotalTechnologyAnnualActivityLowerLimit[r,t,y]; -# -##### 'Capacity' check 1 ##### -printf "Checking Residual and TotalAnnualMax Capacity for r in REGION, t in TECHNOLOGY, y in YEAR \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMaxCapacity[r,t,y]<>-1 && ResidualCapacity[r,t,y]<>0}: TotalAnnualMaxCapacity[r,t,y] >= ResidualCapacity[r,t,y]; -# -##### 'Capacity' check 2 ##### -printf "Checking Residual, Total annual maxcap and mincap investments for all Region, Tech and Year \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR:TotalAnnualMaxCapacity[r,t,y]<>-1 && ResidualCapacity[r,t,y]<>0}: TotalAnnualMaxCapacity[r,t,y]>= ResidualCapacity[r,t,y] + TotalAnnualMinCapacityInvestment[r,t,y]; -# -##### 'Minimum Annual activity' check ##### -printf "Checking Annual production by technology bounds for r in REGION, t in TECHNOLOGY, y in YEAR \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR:TotalAnnualMaxCapacity[r,t,y]<>0 && TotalAnnualMaxCapacity[r,t,y] <> -1 && TotalTechnologyAnnualActivityLowerLimit[r,t,y]<>0 && AvailabilityFactor[r,t,y]<>0 && CapacityToActivityUnit[r,t]<>0}: sum{l in TIMESLICE: CapacityFactor[r,t,l,y]<>0 && YearSplit[l,y]<>0}(CapacityFactor[r,t,l,y]*YearSplit[l,y])*TotalAnnualMaxCapacity[r,t,y]* AvailabilityFactor[r,t,y]*CapacityToActivityUnit[r,t] >= TotalTechnologyAnnualActivityLowerLimit[r,t,y]; -# -##### 'Time Slice' check ##### -printf "Checking TimeSlices/YearSplits for y in YEAR \n"; -# -check{y in YEAR}: sum{l in TIMESLICE} YearSplit[l,y] >= 0.98; -check{y in YEAR}: sum{l in TIMESLICE} YearSplit[l,y] <= 1.02; -# -##### 'Model period activity limit' check ##### -printf "Checking Model period activity bounds for r in REGION, t in TECHNOLOGY \n"; -# -check{r in REGION, t in TECHNOLOGY: TotalTechnologyModelPeriodActivityLowerLimit[r,t]<>0}:TotalTechnologyModelPeriodActivityLowerLimit[r,t] >= sum{y in YEAR: TotalTechnologyAnnualActivityLowerLimit[r,t,y] <>0}TotalTechnologyAnnualActivityLowerLimit[r,t,y]; - -# - -########## Fuel->Technology Connections ############# -#set MODExTECHNOLOGYperFUELout{f in FUEL} within MODE_OF_OPERATION cross TECHNOLOGY -# := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION, y in YEAR} OutputActivityRatio[r,t,f,m,y] <> 0}; -#set MODExTECHNOLOGYperFUELin{f in FUEL} within MODE_OF_OPERATION cross TECHNOLOGY -# := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION, y in YEAR} InputActivityRatio[r,t,f,m,y] <> 0}; - -#set MODExTECHNOLOGYperSTORAGEto{s in STORAGE} within MODE_OF_OPERATION cross TECHNOLOGY -# := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION} TechnologyToStorage[r,t,s,m] > 0}; -#set MODExTECHNOLOGYperSTORAGEfrom{s in STORAGE} within MODE_OF_OPERATION cross TECHNOLOGY -# := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION} TechnologyFromStorage[r,t,s,m] > 0}; - -set TIMESLICEofSEASON{ls in SEASON} within TIMESLICE := {l in TIMESLICE : Conversionls[l,ls] = 1}; -set TIMESLICEofDAYTYPE{ld in DAYTYPE} within TIMESLICE := {l in TIMESLICE : Conversionld[l,ld] = 1}; -set TIMESLICEofDAILYTIMEBRACKET{lh in DAILYTIMEBRACKET} within TIMESLICE := {l in TIMESLICE : Conversionlh[l,lh] = 1}; -set TIMESLICEofSDB{ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET} within TIMESLICE := TIMESLICEofSEASON[ls] inter TIMESLICEofDAYTYPE[ld] inter TIMESLICEofDAILYTIMEBRACKET[lh]; - -#set MODExTECHNOLOGYperEMISSION{e in EMISSION} within MODE_OF_OPERATION cross TECHNOLOGY -# := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION, y in YEAR} EmissionActivityRatio[r,t,e,m,y] <> 0}; - -#set MODEperTECHNOLOGY{t in TECHNOLOGY} within MODE_OF_OPERATION -# := {m in MODE_OF_OPERATION : (exists {f in FUEL} (m, t) in MODExTECHNOLOGYperFUELout[f] union MODExTECHNOLOGYperFUELin[f]) or -# (exists {s in STORAGE} (m, t) in MODExTECHNOLOGYperSTORAGEto[s] union MODExTECHNOLOGYperSTORAGEfrom[s]) or -# (exists {e in EMISSION} (m, t) in MODExTECHNOLOGYperEMISSION[e])}; - -# -###################### -# Model Variables # -###################### -# -######## Demands ############# -# -#var RateOfDemand{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}>= 0; -#var Demand{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}>= 0; -# -######## Storage ############# -# -var NewStorageCapacity{r in REGION, s in STORAGE, y in YEAR} >=0; -var SalvageValueStorage{r in REGION, s in STORAGE, y in YEAR} >=0; -var StorageLevelYearStart{r in REGION, s in STORAGE, y in YEAR} >=0; -var StorageLevelYearFinish{r in REGION, s in STORAGE, y in YEAR} >=0; -var StorageLevelSeasonStart{r in REGION, s in STORAGE, ls in SEASON, y in YEAR} >=0; -var StorageLevelDayTypeStart{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, y in YEAR} >=0; -var StorageLevelDayTypeFinish{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, y in YEAR} >=0; -#var RateOfStorageCharge{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}; -#var RateOfStorageDischarge{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}; -#var NetChargeWithinYear{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}; -#var NetChargeWithinDay{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}; -#var StorageLowerLimit{r in REGION, s in STORAGE, y in YEAR}>=0; -#var StorageUpperLimit{r in REGION, s in STORAGE, y in YEAR} >=0; -#var AccumulatedNewStorageCapacity{r in REGION, s in STORAGE, y in YEAR} >=0; -#var CapitalInvestmentStorage{r in REGION, s in STORAGE, y in YEAR} >=0; -#var DiscountedCapitalInvestmentStorage{r in REGION, s in STORAGE, y in YEAR} >=0; -#var DiscountedSalvageValueStorage{r in REGION, s in STORAGE, y in YEAR} >=0; -#var TotalDiscountedStorageCost{r in REGION, s in STORAGE, y in YEAR} >=0; -# -######### Capacity Variables ############# -# -var NumberOfNewTechnologyUnits{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0,integer; -var NewCapacity{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0; -#var AccumulatedNewCapacity{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0; -var TotalCapacityAnnual{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -# -######### Activity Variables ############# -# -var RateOfActivity{r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR} >= 0; -# var UseByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -var Trade{r in REGION, rr in REGION, l in TIMESLICE, f in FUEL, y in YEAR}; -var UseAnnual{r in REGION, f in FUEL, y in YEAR}>= 0; -#var RateOfTotalActivity{r in REGION, t in TECHNOLOGY, l in TIMESLICE, y in YEAR} >= 0; -#var TotalTechnologyAnnualActivity{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0; -#var TotalAnnualTechnologyActivityByMode{r in REGION, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR}>=0; -#var RateOfProductionByTechnologyByMode{r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], f in FUEL, y in YEAR}>= 0; -#var RateOfProductionByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -#var ProductionByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -#var ProductionByTechnologyAnnual{r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -#var RateOfProduction{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR} >= 0; -#var Production{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR} >= 0; -#var RateOfUseByTechnologyByMode{r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], f in FUEL, y in YEAR}>= 0; -#var RateOfUseByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR} >= 0; -#var UseByTechnologyAnnual{r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -#var RateOfUse{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}>= 0; -#var Use{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}>= 0; -#var TradeAnnual{r in REGION, rr in REGION, f in FUEL, y in YEAR}; -#var ProductionAnnual{r in REGION, f in FUEL, y in YEAR}>= 0; -# -######### Costing Variables ############# -# -#var CapitalInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -####var DiscountedCapitalInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -# -var VariableOperatingCost{r in REGION, t in TECHNOLOGY, l in TIMESLICE, y in YEAR}>= 0; -var SalvageValue{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -var DiscountedSalvageValue{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -var OperatingCost{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var DiscountedOperatingCost{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var AnnualVariableOperatingCost{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var AnnualFixedOperatingCost{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var TotalDiscountedCostByTechnology{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -var TotalDiscountedCost{r in REGION, y in YEAR}>= 0; -#var ModelPeriodCostByRegion{r in REGION} >= 0; -# -######### Reserve Margin ############# -# -#var TotalCapacityInReserveMargin{r in REGION, y in YEAR}>= 0; -#var DemandNeedingReserveMargin{r in REGION,l in TIMESLICE, y in YEAR}>= 0; -# -######### RE Gen Target ############# -# -#var TotalREProductionAnnual{r in REGION, y in YEAR}; -#var RETotalProductionOfTargetFuelAnnual{r in REGION, y in YEAR}; -# -#var TotalTechnologyModelPeriodActivity{r in REGION, t in TECHNOLOGY}; -# -######### Emissions ############# -# -var DiscountedTechnologyEmissionsPenalty{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -var ModelPeriodEmissions{r in REGION, e in EMISSION}>= 0; -#var AnnualTechnologyEmissionByMode{r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODEperTECHNOLOGY[t], y in YEAR}>= 0; -#var AnnualTechnologyEmission{r in REGION, t in TECHNOLOGY, e in EMISSION, y in YEAR}>= 0; -#var AnnualTechnologyEmissionPenaltyByEmission{r in REGION, t in TECHNOLOGY, e in EMISSION, y in YEAR}>= 0; -#var AnnualTechnologyEmissionsPenalty{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var AnnualEmissions{r in REGION, e in EMISSION, y in YEAR}>= 0; -# -# table data IN "CSV" "data.csv": s <- [FROM,TO], d~DISTANCE, c~COST; -# table capacity IN "CSV" "SpecifiedAnnualDemand.csv": [YEAR, FUEL, REGION], SpecifiedAnnualDemand~ColumnNameInCSVSheet; -# -###################### -# Objective Function # -###################### -# - -minimize cost: sum{r in REGION, t in TECHNOLOGY, y in YEAR} - (((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + - sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} - RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y]) / DiscountFactorMid[r,y] + - CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] / DiscountFactor[r,y] + - DiscountedTechnologyEmissionsPenalty[r,t,y] - DiscountedSalvageValue[r,t,y]) + - sum{s in STORAGE} (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / DiscountFactor[r,y] - - CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / DiscountFactor[r,y])); - -# -##################### -# Constraints # -##################### -# -#s.t. EQ_SpecifiedDemand{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] / YearSplit[l,y]=RateOfDemand[r,l,f,y]; -# -######### Capacity Adequacy A ############# -# -#s.t. CAa1_TotalNewCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}:AccumulatedNewCapacity[r,t,y] = sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy]; -s.t. CAa2_TotalAnnualCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}: ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) = TotalCapacityAnnual[r,t,y]; -#s.t. CAa3_TotalActivityOfEachTechnology{r in REGION, t in TECHNOLOGY, l in TIMESLICE, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y] = RateOfTotalActivity[r,t,l,y]; -s.t. CAa4_Constraint_Capacity{r in REGION, l in TIMESLICE, t in TECHNOLOGY, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y] <= ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*CapacityFactor[r,t,l,y]*CapacityToActivityUnit[r,t]; -s.t. CAa5_TotalNewCapacity{r in REGION, t in TECHNOLOGY, y in YEAR: CapacityOfOneTechnologyUnit[r,t,y]<>0}: CapacityOfOneTechnologyUnit[r,t,y]*NumberOfNewTechnologyUnits[r,t,y] = NewCapacity[r,t,y]; -# -# Note that the PlannedMaintenance equation below ensures that all other technologies have a capacity great enough to at least meet the annual average. -# -######### Capacity Adequacy B ############# -# -s.t. CAb1_PlannedMaintenance{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{l in TIMESLICE} sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] <= sum{l in TIMESLICE} (((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*CapacityFactor[r,t,l,y]*YearSplit[l,y])* AvailabilityFactor[r,t,y]*CapacityToActivityUnit[r,t]; -# -######### Energy Balance A ############# -# -#s.t. EBa1_RateOfFuelProduction1{r in REGION, l in TIMESLICE, f in FUEL, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR}: RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] = RateOfProductionByTechnologyByMode[r,l,t,m,f,y]; -#s.t. EBa2_RateOfFuelProduction2{r in REGION, l in TIMESLICE, f in FUEL, t in TECHNOLOGY, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] = RateOfProductionByTechnology[r,l,t,f,y] ; -#s.t. EBa3_RateOfFuelProduction3{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] = RateOfProduction[r,l,f,y]; -#s.t. EBa4_RateOfFuelUse1{r in REGION, l in TIMESLICE, f in FUEL, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR}: RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] = RateOfUseByTechnologyByMode[r,l,t,m,f,y]; -#s.t. EBa5_RateOfFuelUse2{r in REGION, l in TIMESLICE, f in FUEL, t in TECHNOLOGY, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] = RateOfUseByTechnology[r,l,t,f,y]; -#s.t. EBa6_RateOfFuelUse3{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELin[f]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] = RateOfUse[r,l,f,y]; -#s.t. EBa7_EnergyBalanceEachTS1{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = Production[r,l,f,y]; -#s.t. EBa8_EnergyBalanceEachTS2{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELin[f]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = Use[r,l,f,y]; -# s.t. EBa9_EnergyBalanceEachTS3{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] = Demand[r,l,f,y]; -s.t. EBa10_EnergyBalanceEachTS4{r in REGION, rr in REGION, l in TIMESLICE, f in FUEL, y in YEAR: - TradeRoute[r,rr,f,y] <> 0}: - Trade[r,rr,l,f,y] - = - -Trade[rr,r,l,f,y]; -s.t. EBa11_EnergyBalanceEachTS5{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >= SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] + sum{(m,t) in MODExTECHNOLOGYperFUELin[f]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] + sum{rr in REGION} Trade[r,rr,l,f,y]*TradeRoute[r,rr,f,y]; -# -######### Energy Balance B ############# -# -#s.t. EBb1_EnergyBalanceEachYear1{r in REGION, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = ProductionAnnual[r,f,y]; -#s.t. EBb2_EnergyBalanceEachYear2{r in REGION, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELin[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = UseAnnual[r,f,y]; -#s.t. EBb3_EnergyBalanceEachYear3{r in REGION, rr in REGION, f in FUEL, y in YEAR}: sum{l in TIMESLICE} Trade[r,rr,l,f,y] = TradeAnnual[r,rr,f,y]; -s.t. EBb4_EnergyBalanceEachYear4{r in REGION, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >= sum{(m,t) in MODExTECHNOLOGYperFUELin[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] + sum{l in TIMESLICE, rr in REGION} Trade[r,rr,l,f,y]*TradeRoute[r,rr,f,y] + AccumulatedAnnualDemand[r,f,y]; -# -######### Accounting Technology Production/Use ############# -# -#s.t. Acc1_FuelProductionByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] = ProductionByTechnology[r,l,t,f,y]; -#s.t. Acc2_FuelUseByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] * YearSplit[l,y] = UseByTechnology[r,l,t,f,y]; -#s.t. Acc3_AverageAnnualRateOfActivity{r in REGION, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR}: sum{l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = TotalAnnualTechnologyActivityByMode[r,t,m,y]; -#s.t. Acc4_ModelPeriodCostByRegion{r in REGION}:sum{t in TECHNOLOGY, y in YEAR}(((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y])/DiscountFactorMid[r,y]+CapitalCost[r,t,y] * NewCapacity[r,t,y]/DiscountFactor[r,y]+DiscountedTechnologyEmissionsPenalty[r,t,y]-DiscountedSalvageValue[r,t,y]) + sum{s in STORAGE} (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y]-CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y])) = ModelPeriodCostByRegion[r]; - -# -######### Storage Equations ############# -# -#s.t. S1_RateOfStorageCharge{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], l in TIMESLICE:TechnologyToStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh] = RateOfStorageCharge[r,s,ls,ld,lh,y]; -#s.t. S2_RateOfStorageDischarge{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], l in TIMESLICE:TechnologyFromStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh] = RateOfStorageDischarge[r,s,ls,ld,lh,y]; -#s.t. S3_NetChargeWithinYear{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{l in TIMESLICE:Conversionls[l,ls]>0&&Conversionld[l,ld]>0&&Conversionlh[l,lh]>0} (sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t]:TechnologyToStorage[r,t,s,m]>0} (RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh]) - (sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t]:TechnologyFromStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh])) * YearSplit[l,y] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh] = NetChargeWithinYear[r,s,ls,ld,lh,y]; -#s.t. S4_NetChargeWithinDay{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: ((sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], l in TIMESLICE:TechnologyToStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh]) - (sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], l in TIMESLICE:TechnologyFromStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh])) * DaySplit[lh,y] = NetChargeWithinDay[r,s,ls,ld,lh,y]; -s.t. S5_and_S6_StorageLevelYearStart{r in REGION, s in STORAGE, y in YEAR}: - if y = min{yy in YEAR} min(yy) - then StorageLevelStart[r,s] - else StorageLevelYearStart[r,s,y-1] + sum{ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, l in TIMESLICEofSDB[ls,ld,lh]} (sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s]} (RateOfActivity[r,l,t,m,y-1] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s]} RateOfActivity[r,l,t,m,y-1] * TechnologyFromStorage[r,t,s,m])) * YearSplit[l,y-1] - = StorageLevelYearStart[r,s,y]; -s.t. S7_and_S8_StorageLevelYearFinish{r in REGION, s in STORAGE, y in YEAR}: - if y < max{yy in YEAR} max(yy) - then StorageLevelYearStart[r,s,y+1] - else StorageLevelYearStart[r,s,y] + sum{ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, l in TIMESLICEofSDB[ls,ld,lh]} (sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s]} (RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * YearSplit[l,y] - = StorageLevelYearFinish[r,s,y]; -s.t. S9_and_S10_StorageLevelSeasonStart{r in REGION, s in STORAGE, ls in SEASON, y in YEAR}: - if ls = min{lsls in SEASON} min(lsls) - then StorageLevelYearStart[r,s,y] - else StorageLevelSeasonStart[r,s,ls-1,y] + sum{ld in DAYTYPE, lh in DAILYTIMEBRACKET, l in TIMESLICEofSDB[ls-1,ld,lh]} (sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s]} (RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * YearSplit[l,y] - = StorageLevelSeasonStart[r,s,ls,y]; -s.t. S11_and_S12_StorageLevelDayTypeStart{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, y in YEAR}: - if ld = min{ldld in DAYTYPE} min(ldld) - then StorageLevelSeasonStart[r,s,ls,y] - else StorageLevelDayTypeStart[r,s,ls,ld-1,y] + sum{lh in DAILYTIMEBRACKET} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld-1,lh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld-1,lh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lh,y]) * DaysInDayType[ls,ld-1,y] - = StorageLevelDayTypeStart[r,s,ls,ld,y]; -s.t. S13_and_S14_and_S15_StorageLevelDayTypeFinish{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, y in YEAR}: - if ls = max{lsls in SEASON} max(lsls) && ld = max{ldld in DAYTYPE} max(ldld) - then StorageLevelYearFinish[r,s,y] - else if ld = max{ldld in DAYTYPE} max(ldld) - then StorageLevelSeasonStart[r,s,ls+1,y] - else StorageLevelDayTypeFinish[r,s,ls,ld+1,y] - sum{lh in DAILYTIMEBRACKET} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld+1,lh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld+1,lh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lh,y]) * DaysInDayType[ls,ld+1,y] - = StorageLevelDayTypeFinish[r,s,ls,ld,y]; -# -########## Storage Constraints ############# -# -s.t. SC1_LowerLimit_BeginningOfDailyTimeBracketOfFirstInstanceOfDayTypeInFirstWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: - 0 <= (StorageLevelDayTypeStart[r,s,ls,ld,y]+sum{lhlh in DAILYTIMEBRACKET:lh-lhlh>0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]); -s.t. SC1_UpperLimit_BeginningOfDailyTimeBracketOfFirstInstanceOfDayTypeInFirstWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: - (StorageLevelDayTypeStart[r,s,ls,ld,y]+sum{lhlh in DAILYTIMEBRACKET:lh-lhlh>0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) <= 0; -s.t. SC2_LowerLimit_EndOfDailyTimeBracketOfLastInstanceOfDayTypeInFirstWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: 0 <= if ld > min{ldld in DAYTYPE} min(ldld) then (StorageLevelDayTypeStart[r,s,ls,ld,y]-sum{lhlh in DAILYTIMEBRACKET:lh-lhlh<0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]); -s.t. SC2_UpperLimit_EndOfDailyTimeBracketOfLastInstanceOfDayTypeInFirstWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: if ld > min{ldld in DAYTYPE} min(ldld) then (StorageLevelDayTypeStart[r,s,ls,ld,y]-sum{lhlh in DAILYTIMEBRACKET:lh-lhlh<0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) <= 0; -s.t. SC3_LowerLimit_EndOfDailyTimeBracketOfLastInstanceOfDayTypeInLastWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: 0 <= (StorageLevelDayTypeFinish[r,s,ls,ld,y] - sum{lhlh in DAILYTIMEBRACKET:lh-lhlh<0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]); -s.t. SC3_UpperLimit_EndOfDailyTimeBracketOfLastInstanceOfDayTypeInLastWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: (StorageLevelDayTypeFinish[r,s,ls,ld,y] - sum{lhlh in DAILYTIMEBRACKET:lh-lhlh<0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) <= 0; -s.t. SC4_LowerLimit_BeginningOfDailyTimeBracketOfFirstInstanceOfDayTypeInLastWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: 0 <= if ld > min{ldld in DAYTYPE} min(ldld) then (StorageLevelDayTypeFinish[r,s,ls,ld-1,y]+sum{lhlh in DAILYTIMEBRACKET:lh-lhlh>0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]); -s.t. SC4_UpperLimit_BeginningOfDailyTimeBracketOfFirstInstanceOfDayTypeInLastWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: if ld > min{ldld in DAYTYPE} min(ldld) then (StorageLevelDayTypeFinish[r,s,ls,ld-1,y]+sum{lhlh in DAILYTIMEBRACKET:lh-lhlh>0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) <= 0; -s.t. SC5_MaxChargeConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m] <= StorageMaxChargeRate[r,s]; -s.t. SC6_MaxDischargeConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m] <= StorageMaxDischargeRate[r,s]; -# -######### Storage Investments ############# -# -s.t. SI6_SalvageValueStorageAtEndOfPeriod1{r in REGION, s in STORAGE, y in YEAR: (y+OperationalLifeStorage[r,s]-1) <= (max{yy in YEAR} max(yy))}: 0 = SalvageValueStorage[r,s,y]; -#s.t. SI7_SalvageValueStorageAtEndOfPeriod2{r in REGION, s in STORAGE, y in YEAR: (DepreciationMethod[r]=1 && (y+OperationalLifeStorage[r,s]-1) > (max{yy in YEAR} max(yy)) && DiscountRateStorage[r,s]=0) || (DepreciationMethod[r]=2 && (y+OperationalLifeStorage[r,s]-1) > (max{yy in YEAR} max(yy)))}: CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]*(1-(max{yy in YEAR} max(yy) - y+1)/OperationalLifeStorage[r,s]) = SalvageValueStorage[r,s,y]; -#s.t. SI8_SalvageValueStorageAtEndOfPeriod3{r in REGION, s in STORAGE, y in YEAR: DepreciationMethod[r]=1 && (y+OperationalLifeStorage[r,s]-1) > (max{yy in YEAR} max(yy)) && DiscountRateStorage[r,s]>0}: CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]*(1-(((1+DiscountRateStorage[r,s])^(max{yy in YEAR} max(yy) - y+1)-1)/((1+DiscountRateStorage[r,s])^OperationalLifeStorage[r,s]-1))) = SalvageValueStorage[r,s,y]; -#s.t. SI1_StorageUpperLimit{r in REGION, s in STORAGE, y in YEAR}: sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y] = StorageUpperLimit[r,s,y]; -#s.t. SI2_StorageLowerLimit{r in REGION, s in STORAGE, y in YEAR}: MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) = StorageLowerLimit[r,s,y]; -#s.t. SI3_TotalNewStorage{r in REGION, s in STORAGE, y in YEAR}: sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]=AccumulatedNewStorageCapacity[r,s,y]; -#s.t. SI4_UndiscountedCapitalInvestmentStorage{r in REGION, s in STORAGE, y in YEAR}: CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] = CapitalInvestmentStorage[r,s,y]; -#s.t. SI5_DiscountingCapitalInvestmentStorage{r in REGION, s in STORAGE, y in YEAR}: CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y] = DiscountedCapitalInvestmentStorage[r,s,y]; -#s.t. SI9_SalvageValueStorageDiscountedToStartYear{r in REGION, s in STORAGE, y in YEAR}: SalvageValueStorage[r,s,y]/((1+DiscountRate[r])^(max{yy in YEAR} max(yy)-min{yy in YEAR} min(yy)+1)) = DiscountedSalvageValueStorage[r,s,y]; -#s.t. SI10_TotalDiscountedCostByStorage{r in REGION, s in STORAGE, y in YEAR}: (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y]-CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y]) = TotalDiscountedStorageCost[r,s,y]; -# -######### Capital Costs ############# -# -#s.t. CC1_UndiscountedCapitalInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}: CapitalCost[r,t,y] * NewCapacity[r,t,y] = CapitalInvestment[r,t,y]; -####s.t. CC2_DiscountingCapitalInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}: CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] / DiscountFactor[r,y]= DiscountedCapitalInvestment[r,t,y]; - -# -######### Salvage Value ############# -# -s.t. SV1_SalvageValueAtEndOfPeriod1{r in REGION, t in TECHNOLOGY, y in YEAR: (y + OperationalLife[r,t]-1) > (max{yy in YEAR} max(yy)) && DiscountRate[r]>0}: SalvageValue[r,t,y] = CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] * (1-(((1+DiscountRate[r])^(max{yy in YEAR} max(yy) - y+1)-1)/((1+DiscountRate[r])^OperationalLife[r,t]-1))); -s.t. SV2_SalvageValueAtEndOfPeriod2{r in REGION, t in TECHNOLOGY, y in YEAR: (y + OperationalLife[r,t]-1) > (max{yy in YEAR} max(yy)) && DiscountRate[r]=0}: SalvageValue[r,t,y] = CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] * (1-(max{yy in YEAR} max(yy) - y+1)/OperationalLife[r,t]); -s.t. SV3_SalvageValueAtEndOfPeriod3{r in REGION, t in TECHNOLOGY, y in YEAR: (y + OperationalLife[r,t]-1) <= (max{yy in YEAR} max(yy))}: SalvageValue[r,t,y] = 0; -s.t. SV4_SalvageValueDiscountedToStartYear{r in REGION, t in TECHNOLOGY, y in YEAR}: DiscountedSalvageValue[r,t,y] = SalvageValue[r,t,y]/((1+DiscountRate[r])^(1+max{yy in YEAR} max(yy)-min{yy in YEAR} min(yy))); -# -######### Operating Costs ############# -# -#s.t. OC1_OperatingCostsVariable{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y] = AnnualVariableOperatingCost[r,t,y]; -#s.t. OC2_OperatingCostsFixedAnnual{r in REGION, t in TECHNOLOGY, y in YEAR}: ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] = AnnualFixedOperatingCost[r,t,y]; -#s.t. OC3_OperatingCostsTotalAnnual{r in REGION, t in TECHNOLOGY, y in YEAR}: (((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y]) = OperatingCost[r,t,y]; -####s.t. OC4_DiscountedOperatingCostsTotalAnnual{r in REGION, t in TECHNOLOGY, y in YEAR}: (((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y])/DiscountFactorMid[r,y] = DiscountedOperatingCost[r,t,y]; -# -######### Total Discounted Costs ############# -# -#s.t. TDC1_TotalDiscountedCostByTechnology{r in REGION, t in TECHNOLOGY, y in YEAR}: ((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y])/DiscountFactorMid[r,y]+CapitalCost[r,t,y] * NewCapacity[r,t,y]/DiscountFactor[r,y]+DiscountedTechnologyEmissionsPenalty[r,t,y]-DiscountedSalvageValue[r,t,y]) = TotalDiscountedCostByTechnology[r,t,y]; -s.t. TDC2_TotalDiscountedCost{r in REGION, y in YEAR}: sum{t in TECHNOLOGY}((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y])/DiscountFactorMid[r,y]+CapitalCost[r,t,y] * NewCapacity[r,t,y]/DiscountFactor[r,y]+DiscountedTechnologyEmissionsPenalty[r,t,y]-DiscountedSalvageValue[r,t,y]) + sum{s in STORAGE} (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactor[r,y]-CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactor[r,y]) = TotalDiscountedCost[r,y]; -# -######### Total Capacity Constraints ############## -# -s.t. TCC1_TotalAnnualMaxCapacityConstraint{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMaxCapacity[r,t,y] <> -1}: - ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) - <= - TotalAnnualMaxCapacity[r,t,y]; - -s.t. TCC2_TotalAnnualMinCapacityConstraint{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMinCapacity[r,t,y]>0}: ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) >= TotalAnnualMinCapacity[r,t,y]; -# -######### New Capacity Constraints ############## -# -s.t. NCC1_TotalAnnualMaxNewCapacityConstraint{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMaxCapacityInvestment[r,t,y] <> -1}: - NewCapacity[r,t,y] - <= - TotalAnnualMaxCapacityInvestment[r,t,y]; -s.t. NCC2_TotalAnnualMinNewCapacityConstraint{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMinCapacityInvestment[r,t,y]>0}: NewCapacity[r,t,y] >= TotalAnnualMinCapacityInvestment[r,t,y]; -# -######### Annual Activity Constraints ############## -# -s.t. AAC2_TotalAnnualTechnologyActivityUpperLimit{r in REGION, t in TECHNOLOGY, y in YEAR: - TotalTechnologyAnnualActivityUpperLimit[r,t,y] <> -1}: - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y] - <= - TotalTechnologyAnnualActivityUpperLimit[r,t,y]; - -s.t. AAC3_TotalAnnualTechnologyActivityLowerLimit{r in REGION, t in TECHNOLOGY, y in YEAR: TotalTechnologyAnnualActivityLowerLimit[r,t,y]>0}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] >= TotalTechnologyAnnualActivityLowerLimit[r,t,y] ; -#s.t. AAC1_TotalAnnualTechnologyActivity{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = TotalTechnologyAnnualActivity[r,t,y]; -# -######### Total Activity Constraints ############## -# -s.t. TAC2_TotalModelHorizonTechnologyActivityUpperLimit{r in REGION, t in TECHNOLOGY: TotalTechnologyModelPeriodActivityUpperLimit[r,t]<>-1}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] <= TotalTechnologyModelPeriodActivityUpperLimit[r,t] ; -s.t. TAC3_TotalModelHorizenTechnologyActivityLowerLimit{r in REGION, t in TECHNOLOGY: TotalTechnologyModelPeriodActivityLowerLimit[r,t]>0}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] >= TotalTechnologyModelPeriodActivityLowerLimit[r,t] ; -#s.t. TAC1_TotalModelHorizonTechnologyActivity{r in REGION, t in TECHNOLOGY}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = TotalTechnologyModelPeriodActivity[r,t]; -# -######### Reserve Margin Constraint ############## NTS: Should change demand for production -# -s.t. RM3_ReserveMargin_Constraint{r in REGION, l in TIMESLICE, y in YEAR}: sum{f in FUEL, (m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * ReserveMarginTagFuel[r,f,y] * ReserveMargin[r,y]<= sum {t in TECHNOLOGY} ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) * ReserveMarginTagTechnology[r,t,y] * CapacityToActivityUnit[r,t]; -#s.t. RM1_ReserveMargin_TechnologiesIncluded_In_Activity_Units{r in REGION, l in TIMESLICE, y in YEAR}: sum {t in TECHNOLOGY} ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) * ReserveMarginTagTechnology[r,t,y] * CapacityToActivityUnit[r,t] = TotalCapacityInReserveMargin[r,y]; -#s.t. RM2_ReserveMargin_FuelsIncluded{r in REGION, l in TIMESLICE, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f], f in FUEL} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * ReserveMarginTagFuel[r,f,y] = DemandNeedingReserveMargin[r,l,y]; -# -######### RE Production Target ############## NTS: Should change demand for production -# -s.t. RE4_EnergyConstraint{r in REGION, y in YEAR}:REMinProductionTarget[r,y]*sum{l in TIMESLICE, f in FUEL} sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*RETagFuel[r,f,y] <= sum{f in FUEL, (m,t) in MODExTECHNOLOGYperFUELout[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y]*RETagTechnology[r,t,y]; -#s.t. RE1_FuelProductionByTechnologyAnnual{r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR}: sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] = ProductionByTechnologyAnnual[r,t,f,y]; -#s.t. RE2_TechIncluded{r in REGION, y in YEAR}: sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE, t in TECHNOLOGY, f in FUEL} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y]*RETagTechnology[r,t,y] = TotalREProductionAnnual[r,y]; -#s.t. RE3_FuelIncluded{r in REGION, y in YEAR}: sum{l in TIMESLICE, f in FUEL} sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*RETagFuel[r,f,y] = RETotalProductionOfTargetFuelAnnual[r,y]; -#s.t. RE5_FuelUseByTechnologyAnnual{r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR}: sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = UseByTechnologyAnnual[r,t,f,y]; -# -######### Emissions Accounting ############## -# -s.t. E5_DiscountedEmissionsPenaltyByTechnology{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{e in EMISSION, l in TIMESLICE, (m,tt) in MODExTECHNOLOGYperEMISSION[e]: t=tt} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*EmissionsPenalty[r,e,y]/DiscountFactorMid[r,y] = DiscountedTechnologyEmissionsPenalty[r,t,y]; -s.t. E8_AnnualEmissionsLimit{r in REGION, e in EMISSION, y in YEAR: AnnualEmissionLimit[r,e,y] <> -1}: sum{l in TIMESLICE, (m,t) in MODExTECHNOLOGYperEMISSION[e]} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]+AnnualExogenousEmission[r,e,y] <= AnnualEmissionLimit[r,e,y]; -s.t. E9_ModelPeriodEmissionsLimit{r in REGION, e in EMISSION: ModelPeriodEmissionLimit[r,e] <> -1}: sum{l in TIMESLICE, (m,t) in MODExTECHNOLOGYperEMISSION[e], y in YEAR} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] + ModelPeriodExogenousEmission[r,e] <= ModelPeriodEmissionLimit[r,e] ; -#s.t. E1_AnnualEmissionProductionByMode{r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODEperTECHNOLOGY[t], y in YEAR}: EmissionActivityRatio[r,t,e,m,y]*sum{l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]=AnnualTechnologyEmissionByMode[r,t,e,m,y]; -#s.t. E2_AnnualEmissionProduction{r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODEperTECHNOLOGY[t], y in YEAR}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = AnnualTechnologyEmission[r,t,e,y]; -#s.t. E3_EmissionsPenaltyByTechAndEmission{r in REGION, t in TECHNOLOGY, e in EMISSION, y in YEAR: EmissionActivityRatio[r,t,e,m,y]<>0}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*EmissionsPenalty[r,e,y] = AnnualTechnologyEmissionPenaltyByEmission[r,t,e,y]; -#s.t. E4_EmissionsPenaltyByTechnology{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{e in EMISSION, l in TIMESLICE, m in MODEperTECHNOLOGY[t]} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*EmissionsPenalty[r,e,y] = AnnualTechnologyEmissionsPenalty[r,t,y]; -#s.t. E6_EmissionsAccounting1{r in REGION, e in EMISSION, y in YEAR}: sum{l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = AnnualEmissions[r,e,y]; -#s.t. E7_EmissionsAccounting2{r in REGION, e in EMISSION}: sum{l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] + ModelPeriodExogenousEmission[r,e] = ModelPeriodEmissions[r,e]; -# -# -########################################################################################### -# - -solve; -# -######################################################################################################### -# # -# Summary results tables below are printed to a comma-separated file called ResultsPath & "/SelectedResults.csv" # -# For a full set of results please see "Results.txt" # -# If you don't want these printed, please comment-out or delete them. # -# # -######################################################################################################### -# -# table result{(f,t) in s} OUT "...": f~FROM, t~TO, x[f,t]~FLOW; -# table result{y in YEAR, r in REGION} OUT "CSV" "Output.csv": y~YEARS, r~REGION, TotalDiscountedCost[y,r]; -# -#### Summary results ### -# -### Total costs and emissions by region ### -# -printf "\n" > ResultsPath & "/SelectedResults.csv"; -printf "Summary" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - } -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Emissions" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} { - for {e in EMISSION} { - printf ",%s", e >> ResultsPath & "/SelectedResults.csv"; - printf ",%g", sum{l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] + ModelPeriodExogenousEmission[r,e] >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Cost" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} - {printf ",%g", - sum{t in TECHNOLOGY, y in YEAR} - ( - ( - ( - ( - (sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) + ResidualCapacity[r,t,y]) - * FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y] * VariableCost[r,t,m,y]) - / DiscountFactorMid[r,y] - + CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] / DiscountFactor[r,y] - + DiscountedTechnologyEmissionsPenalty[r,t,y] - DiscountedSalvageValue[r,t,y]) - + sum{s in STORAGE} - (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / DiscountFactorStorage[r,s,y] - - CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / DiscountFactorStorage[r,s,y])) >> ResultsPath & "/SelectedResults.csv"; -} -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -# -### Time Independent demand ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "TID Demand" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL} {printf "\n" >> ResultsPath & "/SelectedResults.csv"; - printf ",%s", f >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - printf ",%g", AccumulatedAnnualDemand[r,f,y] >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - } -# -### Time Dependent demand ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Time Dependent Demand (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL} {printf ",%s", f >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {l in TIMESLICE} { - printf ",%s", l >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for { l in TIMESLICE} { - printf ",%g", SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - } -# -### Time Dependent production ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Time Dependent Production (Energy Units) Test" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL} {printf ",%s", f >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {l in TIMESLICE} { - printf ",%s", l >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for { l in TIMESLICE} { - printf ",%g", sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - } -# -#### Total Annual Capacity ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "TotalAnnualCapacity (Capacity Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {t in TECHNOLOGY} {printf ",%s", t >> ResultsPath & "/SelectedResults.csv";} -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} { - for { y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for { t in TECHNOLOGY } { - printf ",%g", ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -# -#### New Annual Capacity ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "NewCapacity (Capacity Units )" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {t in TECHNOLOGY} {printf ",%s", t >> ResultsPath & "/SelectedResults.csv";} -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} { - for { y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for { t in TECHNOLOGY } { - printf ",%g", NewCapacity[r,t,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -# -### Annual Production ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Annual Production (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf",%s",f >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{ - printf ",%g", sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -# -### Annual Use ### -# -printf "Annual Use (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf",%s",f >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{ - printf ",%g", sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -# -### Technology Production in each TS ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "ProductionByTechnology (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf",%s",f >> ResultsPath & "/SelectedResults.csv"; - for {l in TIMESLICE}{ - printf ",%s", l >> ResultsPath & "/SelectedResults.csv"; - } - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf "," >> ResultsPath & "/SelectedResults.csv"; - for { l in TIMESLICE} { - printf ",%g", sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -} -# -### Technology Use in each TS ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Use By Technology (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf",%s",f >> ResultsPath & "/SelectedResults.csv"; - for {l in TIMESLICE}{ - printf ",%s", l >> ResultsPath & "/SelectedResults.csv"; - } - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf "," >> ResultsPath & "/SelectedResults.csv"; - for { l in TIMESLICE} { - printf ",%g", sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] * YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -} -# -### Total Annual Emissions ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Annual Emissions (Emissions Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {e in EMISSION} {printf ",%s", e >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - printf ",%g", sum{l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - } -# -### Annual Emissions by Technology ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Annual Emissions by Technology (Emissions Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {e in EMISSION}{printf",%s",e >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {e in EMISSION}{ - printf ",%g", sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - -table AnnualEmissions - {r in REGION, e in EMISSION, y in YEAR: - sum{t in TECHNOLOGY, l in TIMESLICE, m in MODE_OF_OPERATION: EmissionActivityRatio[r,t,e,m,y]<>0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/AnnualEmissions.csv" : - r~REGION, e~EMISSION, y~YEAR, - sum{t in TECHNOLOGY, l in TIMESLICE, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} - EmissionActivityRatio[r,t,e,m,y] * RateOfActivity[r,l,t,m,y] * YearSplit[l,y]~VALUE; - -table AccumulatedNewCapacity - {r in REGION, t in TECHNOLOGY, y in YEAR: - sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy] > 0} - OUT "CSV" - ResultsPath & "/AccumulatedNewCapacity.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy] ~VALUE; - -table AnnualFixedOperatingCost - {r in REGION, t in TECHNOLOGY, y in YEAR: - ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) + ResidualCapacity[r,t,y]) - > 0 && FixedCost[r,t,y] > 0 - } - OUT "CSV" - ResultsPath & "/AnnualFixedOperatingCost.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - FixedCost[r,t,y] * - ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) + ResidualCapacity[r,t,y]) ~VALUE; - -table AnnualTechnologyEmission - {r in REGION, t in TECHNOLOGY, e in EMISSION, y in YEAR: - sum{l in TIMESLICE, m in MODE_OF_OPERATION: EmissionActivityRatio[r,t,e,m,y]<>0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/AnnualTechnologyEmission.csv" : - r~REGION, t~TECHNOLOGY, e~EMISSION, y~YEAR, - sum{l in TIMESLICE, m in MODE_OF_OPERATION: EmissionActivityRatio[r,t,e,m,y]<>0} - EmissionActivityRatio[r,t,e,m,y] * RateOfActivity[r,l,t,m,y] * YearSplit[l,y] ~VALUE; - -table AnnualTechnologyEmissionByModeResults - {r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODE_OF_OPERATION, y in YEAR: - sum{l in TIMESLICE: EmissionActivityRatio[r,t,e,m,y]<>0} RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/AnnualTechnologyEmissionByMode.csv" : - r~REGION, t~TECHNOLOGY, e~EMISSION, m~MODE_OF_OPERATION, y~YEAR, - sum{l in TIMESLICE: EmissionActivityRatio[r,t,e,m,y] <> 0} - EmissionActivityRatio[r,t,e,m,y] * RateOfActivity[r,l,t,m,y] * YearSplit[l,y] ~VALUE; - -table AnnualVariableOperatingCostResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/AnnualVariableOperatingCost.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y] * VariableCost[r,t,m,y] ~VALUE; - -table CapitalInvestmentResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - NewCapacity[r,t,y] > 0 && CapitalCost[r,t,y] > 0} - OUT "CSV" - ResultsPath & "/CapitalInvestment.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] ~VALUE; - -table DemandResults - {r in REGION, l in TIMESLICE, f in FUEL, y in YEAR: - SpecifiedAnnualDemand[r,f,y] > 0} - OUT "CSV" - ResultsPath & "/Demand.csv" : - r~REGION, l~TIMESLICE, f~FUEL, y~YEAR, - SpecifiedAnnualDemand[r,f,y] * SpecifiedDemandProfile[r,f,l,y] ~VALUE; - -table DiscountedSalvageValueResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - DiscountedSalvageValue[r, t, y] > 0} - OUT "CSV" - ResultsPath & "/DiscountedSalvageValue.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - DiscountedSalvageValue[r, t, y] ~VALUE; - -table DiscountedTechnologyEmissionsPenaltyResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - DiscountedTechnologyEmissionsPenalty[r, t, y] > 0} - OUT "CSV" - ResultsPath & "/DiscountedTechnologyEmissionsPenalty.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - DiscountedTechnologyEmissionsPenalty[r, t, y] ~VALUE; - -table NewCapacityResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - NewCapacity[r, t, y] > 0} - OUT "CSV" ResultsPath & "/NewCapacity.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - NewCapacity[r, t, y] ~VALUE; - -table NewStorageCapacityResults - {r in REGION, s in STORAGE, y in YEAR: - NewStorageCapacity[r, s, y] > 0} - OUT "CSV" - ResultsPath & "/NewStorageCapacity.csv" : - r~REGION, s~STORAGE, y~YEAR, - NewStorageCapacity[r, s, y] ~VALUE; - -table NumberOfNewTechnologyUnitsResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - NumberOfNewTechnologyUnits[r, t, y] > 0} - OUT "CSV" - ResultsPath & "/NumberOfNewTechnologyUnits.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - NumberOfNewTechnologyUnits[r, t, y] ~VALUE; - -table ProductionByTechnology - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{m in MODE_OF_OPERATION: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/ProductionByTechnology.csv" : - r~REGION, l~TIMESLICE, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{m in MODEperTECHNOLOGY[t]: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] * OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] ~VALUE; - -table ProductionByTechnologyAnnual - {r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{l in TIMESLICE, m in MODE_OF_OPERATION: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/ProductionByTechnologyAnnual.csv" : - r~REGION, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] * OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] ~VALUE; - -table RateOfActivityResults - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR: - RateOfActivity[r, l, t, m, y] > 0} - OUT "CSV" - ResultsPath & "/RateOfActivity.csv" : - r~REGION, l~TIMESLICE, t~TECHNOLOGY, m~MODE_OF_OPERATION, y~YEAR, - RateOfActivity[r, l, t, m, y] ~VALUE; - -table RateOfProductionByTechnologyResults - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{m in MODEperTECHNOLOGY[t]: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/RateOfProductionByTechnology.csv" : - r~REGION, l~TIMESLICE, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{m in MODEperTECHNOLOGY[t]: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] * OutputActivityRatio[r,t,f,m,y]~VALUE; - -table RateOfProductionByTechnologyByMode - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], f in FUEL, y in YEAR: - RateOfActivity[r,l,t,m,y] > 0 && OutputActivityRatio[r,t,f,m,y] <> 0} - OUT "CSV" - ResultsPath & "/RateOfProductionByTechnologyByMode.csv" : - r~REGION, l~TIMESLICE, t~TECHNOLOGY, m~MODE_OF_OPERATION, f~FUEL, y~YEAR, - RateOfActivity[r,l,t,m,y] * OutputActivityRatio[r,t,f,m,y]~VALUE; - -table RateOfUseByTechnology - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{m in MODEperTECHNOLOGY[t]: InputActivityRatio[r,t,f,m,y]<>0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/RateOfUseByTechnology.csv": - r~REGION, l~TIMESLICE, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{m in MODEperTECHNOLOGY[t]: InputActivityRatio[r,t,f,m,y]<>0} - RateOfActivity[r,l,t,m,y] * InputActivityRatio[r,t,f,m,y]~VALUE; - -table RateOfUseByTechnologyByMode - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], f in FUEL, y in YEAR: - RateOfActivity[r,l,t,m,y] && InputActivityRatio[r,t,f,m,y] <> 0} - OUT "CSV" - ResultsPath & "/RateOfUseByTechnologyByMode.csv": - r~REGION, l~TIMESLICE, t~TECHNOLOGY, m~MODE_OF_OPERATION, f~FUEL, y~YEAR, - RateOfActivity[r,l,t,m,y] * InputActivityRatio[r,t,f,m,y]~VALUE; - -table SalvageValueResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - SalvageValue[r, t, y] > 0} - OUT "CSV" - ResultsPath & "/SalvageValue.csv": - r~REGION, t~TECHNOLOGY, y~YEAR, - SalvageValue[r, t, y]~VALUE; - -table SalvageValueStorageResults - {r in REGION, s in STORAGE, y in YEAR: - SalvageValueStorage[r, s, y] > 0} - OUT "CSV" - ResultsPath & "/SalvageValueStorage.csv": - r~REGION, s~STORAGE, y~YEAR, - SalvageValueStorage[r, s, y]~VALUE; - -table TotalAnnualTechnologyActivityByMode - {r in REGION, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR: - sum{l in TIMESLICE} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/TotalAnnualTechnologyActivityByMode.csv": - r~REGION, t~TECHNOLOGY, m~MODE_OF_OPERATION, y~YEAR, - sum{l in TIMESLICE} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y]~VALUE; - -table TotalCapacityAnnualResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - ResidualCapacity[r,t,y] + - (sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) - > 0} - OUT "CSV" - ResultsPath & "/TotalCapacityAnnual.csv": - r~REGION, t~TECHNOLOGY, y~YEAR, - ResidualCapacity[r,t,y] + - (sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy])~VALUE; - -table TotalDiscountedCostResults - {r in REGION, y in YEAR} - OUT "CSV" - ResultsPath & "/TotalDiscountedCost.csv": - r~REGION, y~YEAR, - sum{t in TECHNOLOGY} - ((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) + ResidualCapacity[r,t,y]) * FixedCost[r,t,y] - + sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y] * VariableCost[r,t,m,y]) / (DiscountFactorMid[r,y]) - + CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t]/ (DiscountFactor[r,y]) - + DiscountedTechnologyEmissionsPenalty[r,t,y] - - DiscountedSalvageValue[r,t,y]) - + sum{s in STORAGE} - (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / (DiscountFactorStorage[r,s,y]) - - CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / (DiscountFactorStorage[r,s,y]) - )~VALUE; - -table TotalTechnologyAnnualActivity - {r in REGION, t in TECHNOLOGY, y in YEAR: - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] - > 0} - OUT "CSV" - ResultsPath & "/TotalTechnologyAnnualActivity.csv": - r~REGION, t~TECHNOLOGY, y~YEAR, - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y]~VALUE; - -table TotalTechnologyModelPeriodActivity - {r in REGION, t in TECHNOLOGY: - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} - RateOfActivity[r,l,t,m,y] - > 0} - OUT "CSV" - ResultsPath & "/TotalTechnologyModelPeriodActivity.csv": - r~REGION, t~TECHNOLOGY, - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} - RateOfActivity[r,l,t,m,y]*YearSplit[l,y]~VALUE; - -table TradeResults - {r in REGION, rr in REGION, l in TIMESLICE, f in FUEL, y in YEAR: - Trade[r, rr, l, f, y] - <> 0} - OUT "CSV" - ResultsPath & "/Trade.csv": - r~REGION, rr~REGION, l~TIMESLICE, f~FUEL, y~YEAR, - Trade[r, rr, l, f, y]~VALUE; - -table UseByTechnologyResults - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * InputActivityRatio[r,t,f,m,y] * YearSplit[l,y] - > 0} - OUT "CSV" - ResultsPath & "/UseByTechnology.csv": - r~REGION, l~TIMESLICE, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * InputActivityRatio[r,t,f,m,y] * YearSplit[l,y]~VALUE; - -end; diff --git a/examples/Example_Three/parameters.csv b/examples/Example_Three/parameters.csv deleted file mode 100644 index 1c1f90a..0000000 --- a/examples/Example_Three/parameters.csv +++ /dev/null @@ -1,7 +0,0 @@ -name,group,indexes,min_value_base_year,max_value_base_year,min_value_end_year,max_value_end_year,dist,interpolation_index,action -CapitalCost,capital,"R1,NUCLEAR",XXX,XXX,XXX,XXX,"unif","YEAR","interpolate" -FixedCost,fixed,"R1,NUCLEAR",XXX,XXX,XXX,XXX,"unif","YEAR","fixed" -VariableCost,variable,"R1,MINE_URANIUM,1",XXX,XXX,XXX,XXX,"unif","YEAR","interpolate" -SpecifiedAnnualDemand,demand,"R1,ELECTRICITY",XXX,XXX,XXX,XXX,"unif","YEAR","interpolate" -InputActivityRatio,IAR,"R1,NUCLEAR,URANIUM,1",XXX,XXX,XXX,XXX,"unif","YEAR","interpolate" -OperationalLife,oplife,"R1,NUCLEAR",XXX,XXX,XXX,XXX,"unif","","fixed" \ No newline at end of file diff --git a/examples/Example_Three/results.csv b/examples/Example_Three/results.csv deleted file mode 100644 index 7c140c2..0000000 --- a/examples/Example_Three/results.csv +++ /dev/null @@ -1,2 +0,0 @@ -name -Demand \ No newline at end of file diff --git a/examples/Example_Three/scenarios.csv b/examples/Example_Three/scenarios.csv deleted file mode 100644 index 2cc02af..0000000 --- a/examples/Example_Three/scenarios.csv +++ /dev/null @@ -1,2 +0,0 @@ -name,description,path -0,"ExampleTwo",examples/Example_Three/datapackage.json \ No newline at end of file diff --git a/examples/Example_Two/agg_results.csv b/examples/Example_Two/agg_results.csv deleted file mode 100644 index 2366ac9..0000000 --- a/examples/Example_Two/agg_results.csv +++ /dev/null @@ -1 +0,0 @@ -resultfile,indices,filename diff --git a/examples/Example_Two/data/AccumulatedAnnualDemand.csv b/examples/Example_Two/data/AccumulatedAnnualDemand.csv deleted file mode 100644 index 326b28c..0000000 --- a/examples/Example_Two/data/AccumulatedAnnualDemand.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,FUEL,YEAR,VALUE diff --git a/examples/Example_Two/data/AnnualEmissionLimit.csv b/examples/Example_Two/data/AnnualEmissionLimit.csv deleted file mode 100644 index 1fa535a..0000000 --- a/examples/Example_Two/data/AnnualEmissionLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,YEAR,VALUE diff --git a/examples/Example_Two/data/AnnualExogenousEmission.csv b/examples/Example_Two/data/AnnualExogenousEmission.csv deleted file mode 100644 index 1fa535a..0000000 --- a/examples/Example_Two/data/AnnualExogenousEmission.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,YEAR,VALUE diff --git a/examples/Example_Two/data/AvailabilityFactor.csv b/examples/Example_Two/data/AvailabilityFactor.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Two/data/AvailabilityFactor.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Two/data/CapacityFactor.csv b/examples/Example_Two/data/CapacityFactor.csv deleted file mode 100644 index dc65c86..0000000 --- a/examples/Example_Two/data/CapacityFactor.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,TIMESLICE,YEAR,VALUE \ No newline at end of file diff --git a/examples/Example_Two/data/CapacityOfOneTechnologyUnit.csv b/examples/Example_Two/data/CapacityOfOneTechnologyUnit.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Two/data/CapacityOfOneTechnologyUnit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Two/data/CapacityToActivityUnit.csv b/examples/Example_Two/data/CapacityToActivityUnit.csv deleted file mode 100644 index e83e51b..0000000 --- a/examples/Example_Two/data/CapacityToActivityUnit.csv +++ /dev/null @@ -1,2 +0,0 @@ -REGION,TECHNOLOGY,VALUE -R1,NUCLEAR,31.536 diff --git a/examples/Example_Two/data/CapitalCost.csv b/examples/Example_Two/data/CapitalCost.csv deleted file mode 100644 index c74994c..0000000 --- a/examples/Example_Two/data/CapitalCost.csv +++ /dev/null @@ -1,52 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE -R1,NUCLEAR,2020,4000 -R1,NUCLEAR,2021,4000 -R1,NUCLEAR,2022,4000 -R1,NUCLEAR,2023,4000 -R1,NUCLEAR,2024,4000 -R1,NUCLEAR,2025,4000 -R1,NUCLEAR,2026,4000 -R1,NUCLEAR,2027,4000 -R1,NUCLEAR,2028,4000 -R1,NUCLEAR,2029,4000 -R1,NUCLEAR,2030,4000 -R1,NUCLEAR,2031,4000 -R1,NUCLEAR,2032,4000 -R1,NUCLEAR,2033,4000 -R1,NUCLEAR,2034,4000 -R1,NUCLEAR,2035,4000 -R1,NUCLEAR,2036,4000 -R1,NUCLEAR,2037,4000 -R1,NUCLEAR,2038,4000 -R1,NUCLEAR,2039,4000 -R1,NUCLEAR,2040,4000 -R1,NUCLEAR,2041,4000 -R1,NUCLEAR,2042,4000 -R1,NUCLEAR,2043,4000 -R1,NUCLEAR,2044,4000 -R1,NUCLEAR,2045,4000 -R1,NUCLEAR,2046,4000 -R1,NUCLEAR,2047,4000 -R1,NUCLEAR,2048,4000 -R1,NUCLEAR,2049,4000 -R1,NUCLEAR,2050,4000 -R1,NUCLEAR,2051,4000 -R1,NUCLEAR,2052,4000 -R1,NUCLEAR,2053,4000 -R1,NUCLEAR,2054,4000 -R1,NUCLEAR,2055,4000 -R1,NUCLEAR,2056,4000 -R1,NUCLEAR,2057,4000 -R1,NUCLEAR,2058,4000 -R1,NUCLEAR,2059,4000 -R1,NUCLEAR,2060,4000 -R1,NUCLEAR,2061,4000 -R1,NUCLEAR,2062,4000 -R1,NUCLEAR,2063,4000 -R1,NUCLEAR,2064,4000 -R1,NUCLEAR,2065,4000 -R1,NUCLEAR,2066,4000 -R1,NUCLEAR,2067,4000 -R1,NUCLEAR,2068,4000 -R1,NUCLEAR,2069,4000 -R1,NUCLEAR,2070,4000 diff --git a/examples/Example_Two/data/CapitalCostStorage.csv b/examples/Example_Two/data/CapitalCostStorage.csv deleted file mode 100644 index a7bcbd7..0000000 --- a/examples/Example_Two/data/CapitalCostStorage.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,YEAR,VALUE diff --git a/examples/Example_Two/data/Conversionld.csv b/examples/Example_Two/data/Conversionld.csv deleted file mode 100644 index 360887a..0000000 --- a/examples/Example_Two/data/Conversionld.csv +++ /dev/null @@ -1 +0,0 @@ -TIMESLICE,DAYTYPE,VALUE diff --git a/examples/Example_Two/data/Conversionlh.csv b/examples/Example_Two/data/Conversionlh.csv deleted file mode 100644 index 6fc0a29..0000000 --- a/examples/Example_Two/data/Conversionlh.csv +++ /dev/null @@ -1 +0,0 @@ -TIMESLICE,DAILYTIMEBRACKET,VALUE diff --git a/examples/Example_Two/data/Conversionls.csv b/examples/Example_Two/data/Conversionls.csv deleted file mode 100644 index 47b6ebd..0000000 --- a/examples/Example_Two/data/Conversionls.csv +++ /dev/null @@ -1 +0,0 @@ -TIMESLICE,SEASON,VALUE diff --git a/examples/Example_Two/data/DAILYTIMEBRACKET.csv b/examples/Example_Two/data/DAILYTIMEBRACKET.csv deleted file mode 100644 index 2dfe6a3..0000000 --- a/examples/Example_Two/data/DAILYTIMEBRACKET.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE diff --git a/examples/Example_Two/data/DAYTYPE.csv b/examples/Example_Two/data/DAYTYPE.csv deleted file mode 100644 index e1aeddd..0000000 --- a/examples/Example_Two/data/DAYTYPE.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE diff --git a/examples/Example_Two/data/DaySplit.csv b/examples/Example_Two/data/DaySplit.csv deleted file mode 100644 index 83dab5c..0000000 --- a/examples/Example_Two/data/DaySplit.csv +++ /dev/null @@ -1 +0,0 @@ -DAILYTIMEBRACKET,YEAR,VALUE diff --git a/examples/Example_Two/data/DaysInDayType.csv b/examples/Example_Two/data/DaysInDayType.csv deleted file mode 100644 index 7e5dd71..0000000 --- a/examples/Example_Two/data/DaysInDayType.csv +++ /dev/null @@ -1 +0,0 @@ -SEASON,DAYTYPE,YEAR,VALUE diff --git a/examples/Example_Two/data/DepreciationMethod.csv b/examples/Example_Two/data/DepreciationMethod.csv deleted file mode 100644 index 8f1fa36..0000000 --- a/examples/Example_Two/data/DepreciationMethod.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,VALUE diff --git a/examples/Example_Two/data/DiscountRate.csv b/examples/Example_Two/data/DiscountRate.csv deleted file mode 100644 index f819b3b..0000000 --- a/examples/Example_Two/data/DiscountRate.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,VALUE \ No newline at end of file diff --git a/examples/Example_Two/data/DiscountRateStorage.csv b/examples/Example_Two/data/DiscountRateStorage.csv deleted file mode 100644 index 8b80bbd..0000000 --- a/examples/Example_Two/data/DiscountRateStorage.csv +++ /dev/null @@ -1,2 +0,0 @@ -REGION,STORAGE,VALUE - diff --git a/examples/Example_Two/data/EMISSION.csv b/examples/Example_Two/data/EMISSION.csv deleted file mode 100644 index 2dfe6a3..0000000 --- a/examples/Example_Two/data/EMISSION.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE diff --git a/examples/Example_Two/data/EmissionActivityRatio.csv b/examples/Example_Two/data/EmissionActivityRatio.csv deleted file mode 100644 index 7c1c3ff..0000000 --- a/examples/Example_Two/data/EmissionActivityRatio.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,EMISSION,MODE_OF_OPERATION,YEAR,VALUE diff --git a/examples/Example_Two/data/EmissionsPenalty.csv b/examples/Example_Two/data/EmissionsPenalty.csv deleted file mode 100644 index 1fa535a..0000000 --- a/examples/Example_Two/data/EmissionsPenalty.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,YEAR,VALUE diff --git a/examples/Example_Two/data/FUEL.csv b/examples/Example_Two/data/FUEL.csv deleted file mode 100644 index 7858d8b..0000000 --- a/examples/Example_Two/data/FUEL.csv +++ /dev/null @@ -1,3 +0,0 @@ -VALUE -URANIUM -ELECTRICITY diff --git a/examples/Example_Two/data/FixedCost.csv b/examples/Example_Two/data/FixedCost.csv deleted file mode 100644 index eef6f8a..0000000 --- a/examples/Example_Two/data/FixedCost.csv +++ /dev/null @@ -1,52 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE -R1,NUCLEAR,2020,50 -R1,NUCLEAR,2021,50 -R1,NUCLEAR,2022,50 -R1,NUCLEAR,2023,50 -R1,NUCLEAR,2024,50 -R1,NUCLEAR,2025,50 -R1,NUCLEAR,2026,50 -R1,NUCLEAR,2027,50 -R1,NUCLEAR,2028,50 -R1,NUCLEAR,2029,50 -R1,NUCLEAR,2030,50 -R1,NUCLEAR,2031,50 -R1,NUCLEAR,2032,50 -R1,NUCLEAR,2033,50 -R1,NUCLEAR,2034,50 -R1,NUCLEAR,2035,50 -R1,NUCLEAR,2036,50 -R1,NUCLEAR,2037,50 -R1,NUCLEAR,2038,50 -R1,NUCLEAR,2039,50 -R1,NUCLEAR,2040,50 -R1,NUCLEAR,2041,50 -R1,NUCLEAR,2042,50 -R1,NUCLEAR,2043,50 -R1,NUCLEAR,2044,50 -R1,NUCLEAR,2045,50 -R1,NUCLEAR,2046,50 -R1,NUCLEAR,2047,50 -R1,NUCLEAR,2048,50 -R1,NUCLEAR,2049,50 -R1,NUCLEAR,2050,50 -R1,NUCLEAR,2051,50 -R1,NUCLEAR,2052,50 -R1,NUCLEAR,2053,50 -R1,NUCLEAR,2054,50 -R1,NUCLEAR,2055,50 -R1,NUCLEAR,2056,50 -R1,NUCLEAR,2057,50 -R1,NUCLEAR,2058,50 -R1,NUCLEAR,2059,50 -R1,NUCLEAR,2060,50 -R1,NUCLEAR,2061,50 -R1,NUCLEAR,2062,50 -R1,NUCLEAR,2063,50 -R1,NUCLEAR,2064,50 -R1,NUCLEAR,2065,50 -R1,NUCLEAR,2066,50 -R1,NUCLEAR,2067,50 -R1,NUCLEAR,2068,50 -R1,NUCLEAR,2069,50 -R1,NUCLEAR,2070,50 diff --git a/examples/Example_Two/data/InputActivityRatio.csv b/examples/Example_Two/data/InputActivityRatio.csv deleted file mode 100644 index a0b4138..0000000 --- a/examples/Example_Two/data/InputActivityRatio.csv +++ /dev/null @@ -1,52 +0,0 @@ -REGION,TECHNOLOGY,FUEL,MODE_OF_OPERATION,YEAR,VALUE -R1,NUCLEAR,URANIUM,1,2020,1.25 -R1,NUCLEAR,URANIUM,1,2021,1.25 -R1,NUCLEAR,URANIUM,1,2022,1.25 -R1,NUCLEAR,URANIUM,1,2023,1.25 -R1,NUCLEAR,URANIUM,1,2024,1.25 -R1,NUCLEAR,URANIUM,1,2025,1.25 -R1,NUCLEAR,URANIUM,1,2026,1.25 -R1,NUCLEAR,URANIUM,1,2027,1.25 -R1,NUCLEAR,URANIUM,1,2028,1.25 -R1,NUCLEAR,URANIUM,1,2029,1.25 -R1,NUCLEAR,URANIUM,1,2030,1.25 -R1,NUCLEAR,URANIUM,1,2031,1.25 -R1,NUCLEAR,URANIUM,1,2032,1.25 -R1,NUCLEAR,URANIUM,1,2033,1.25 -R1,NUCLEAR,URANIUM,1,2034,1.25 -R1,NUCLEAR,URANIUM,1,2035,1.25 -R1,NUCLEAR,URANIUM,1,2036,1.25 -R1,NUCLEAR,URANIUM,1,2037,1.25 -R1,NUCLEAR,URANIUM,1,2038,1.25 -R1,NUCLEAR,URANIUM,1,2039,1.25 -R1,NUCLEAR,URANIUM,1,2040,1.25 -R1,NUCLEAR,URANIUM,1,2041,1.25 -R1,NUCLEAR,URANIUM,1,2042,1.25 -R1,NUCLEAR,URANIUM,1,2043,1.25 -R1,NUCLEAR,URANIUM,1,2044,1.25 -R1,NUCLEAR,URANIUM,1,2045,1.25 -R1,NUCLEAR,URANIUM,1,2046,1.25 -R1,NUCLEAR,URANIUM,1,2047,1.25 -R1,NUCLEAR,URANIUM,1,2048,1.25 -R1,NUCLEAR,URANIUM,1,2049,1.25 -R1,NUCLEAR,URANIUM,1,2050,1.25 -R1,NUCLEAR,URANIUM,1,2051,1.25 -R1,NUCLEAR,URANIUM,1,2052,1.25 -R1,NUCLEAR,URANIUM,1,2053,1.25 -R1,NUCLEAR,URANIUM,1,2054,1.25 -R1,NUCLEAR,URANIUM,1,2055,1.25 -R1,NUCLEAR,URANIUM,1,2056,1.25 -R1,NUCLEAR,URANIUM,1,2057,1.25 -R1,NUCLEAR,URANIUM,1,2058,1.25 -R1,NUCLEAR,URANIUM,1,2059,1.25 -R1,NUCLEAR,URANIUM,1,2060,1.25 -R1,NUCLEAR,URANIUM,1,2061,1.25 -R1,NUCLEAR,URANIUM,1,2062,1.25 -R1,NUCLEAR,URANIUM,1,2063,1.25 -R1,NUCLEAR,URANIUM,1,2064,1.25 -R1,NUCLEAR,URANIUM,1,2065,1.25 -R1,NUCLEAR,URANIUM,1,2066,1.25 -R1,NUCLEAR,URANIUM,1,2067,1.25 -R1,NUCLEAR,URANIUM,1,2068,1.25 -R1,NUCLEAR,URANIUM,1,2069,1.25 -R1,NUCLEAR,URANIUM,1,2070,1.25 diff --git a/examples/Example_Two/data/MODE_OF_OPERATION.csv b/examples/Example_Two/data/MODE_OF_OPERATION.csv deleted file mode 100644 index 69e52e5..0000000 --- a/examples/Example_Two/data/MODE_OF_OPERATION.csv +++ /dev/null @@ -1,2 +0,0 @@ -VALUE -1 diff --git a/examples/Example_Two/data/MinStorageCharge.csv b/examples/Example_Two/data/MinStorageCharge.csv deleted file mode 100644 index a7bcbd7..0000000 --- a/examples/Example_Two/data/MinStorageCharge.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,YEAR,VALUE diff --git a/examples/Example_Two/data/ModelPeriodEmissionLimit.csv b/examples/Example_Two/data/ModelPeriodEmissionLimit.csv deleted file mode 100644 index ccd4bcb..0000000 --- a/examples/Example_Two/data/ModelPeriodEmissionLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,VALUE diff --git a/examples/Example_Two/data/ModelPeriodExogenousEmission.csv b/examples/Example_Two/data/ModelPeriodExogenousEmission.csv deleted file mode 100644 index ccd4bcb..0000000 --- a/examples/Example_Two/data/ModelPeriodExogenousEmission.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,EMISSION,VALUE diff --git a/examples/Example_Two/data/OperationalLife.csv b/examples/Example_Two/data/OperationalLife.csv deleted file mode 100644 index f1db5ed..0000000 --- a/examples/Example_Two/data/OperationalLife.csv +++ /dev/null @@ -1,2 +0,0 @@ -REGION,TECHNOLOGY,VALUE -R1,NUCLEAR,50 diff --git a/examples/Example_Two/data/OperationalLifeStorage.csv b/examples/Example_Two/data/OperationalLifeStorage.csv deleted file mode 100644 index 2176c14..0000000 --- a/examples/Example_Two/data/OperationalLifeStorage.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,VALUE diff --git a/examples/Example_Two/data/OutputActivityRatio.csv b/examples/Example_Two/data/OutputActivityRatio.csv deleted file mode 100644 index 2665fc3..0000000 --- a/examples/Example_Two/data/OutputActivityRatio.csv +++ /dev/null @@ -1,103 +0,0 @@ -REGION,TECHNOLOGY,FUEL,MODE_OF_OPERATION,YEAR,VALUE -R1,NUCLEAR,ELECTRICITY,1,2020,1 -R1,NUCLEAR,ELECTRICITY,1,2021,1 -R1,NUCLEAR,ELECTRICITY,1,2022,1 -R1,NUCLEAR,ELECTRICITY,1,2023,1 -R1,NUCLEAR,ELECTRICITY,1,2024,1 -R1,NUCLEAR,ELECTRICITY,1,2025,1 -R1,NUCLEAR,ELECTRICITY,1,2026,1 -R1,NUCLEAR,ELECTRICITY,1,2027,1 -R1,NUCLEAR,ELECTRICITY,1,2028,1 -R1,NUCLEAR,ELECTRICITY,1,2029,1 -R1,NUCLEAR,ELECTRICITY,1,2030,1 -R1,NUCLEAR,ELECTRICITY,1,2031,1 -R1,NUCLEAR,ELECTRICITY,1,2032,1 -R1,NUCLEAR,ELECTRICITY,1,2033,1 -R1,NUCLEAR,ELECTRICITY,1,2034,1 -R1,NUCLEAR,ELECTRICITY,1,2035,1 -R1,NUCLEAR,ELECTRICITY,1,2036,1 -R1,NUCLEAR,ELECTRICITY,1,2037,1 -R1,NUCLEAR,ELECTRICITY,1,2038,1 -R1,NUCLEAR,ELECTRICITY,1,2039,1 -R1,NUCLEAR,ELECTRICITY,1,2040,1 -R1,NUCLEAR,ELECTRICITY,1,2041,1 -R1,NUCLEAR,ELECTRICITY,1,2042,1 -R1,NUCLEAR,ELECTRICITY,1,2043,1 -R1,NUCLEAR,ELECTRICITY,1,2044,1 -R1,NUCLEAR,ELECTRICITY,1,2045,1 -R1,NUCLEAR,ELECTRICITY,1,2046,1 -R1,NUCLEAR,ELECTRICITY,1,2047,1 -R1,NUCLEAR,ELECTRICITY,1,2048,1 -R1,NUCLEAR,ELECTRICITY,1,2049,1 -R1,NUCLEAR,ELECTRICITY,1,2050,1 -R1,NUCLEAR,ELECTRICITY,1,2051,1 -R1,NUCLEAR,ELECTRICITY,1,2052,1 -R1,NUCLEAR,ELECTRICITY,1,2053,1 -R1,NUCLEAR,ELECTRICITY,1,2054,1 -R1,NUCLEAR,ELECTRICITY,1,2055,1 -R1,NUCLEAR,ELECTRICITY,1,2056,1 -R1,NUCLEAR,ELECTRICITY,1,2057,1 -R1,NUCLEAR,ELECTRICITY,1,2058,1 -R1,NUCLEAR,ELECTRICITY,1,2059,1 -R1,NUCLEAR,ELECTRICITY,1,2060,1 -R1,NUCLEAR,ELECTRICITY,1,2061,1 -R1,NUCLEAR,ELECTRICITY,1,2062,1 -R1,NUCLEAR,ELECTRICITY,1,2063,1 -R1,NUCLEAR,ELECTRICITY,1,2064,1 -R1,NUCLEAR,ELECTRICITY,1,2065,1 -R1,NUCLEAR,ELECTRICITY,1,2066,1 -R1,NUCLEAR,ELECTRICITY,1,2067,1 -R1,NUCLEAR,ELECTRICITY,1,2068,1 -R1,NUCLEAR,ELECTRICITY,1,2069,1 -R1,NUCLEAR,ELECTRICITY,1,2070,1 -R1,MINE_URANIUM,URANIUM,1,2020,1 -R1,MINE_URANIUM,URANIUM,1,2021,1 -R1,MINE_URANIUM,URANIUM,1,2022,1 -R1,MINE_URANIUM,URANIUM,1,2023,1 -R1,MINE_URANIUM,URANIUM,1,2024,1 -R1,MINE_URANIUM,URANIUM,1,2025,1 -R1,MINE_URANIUM,URANIUM,1,2026,1 -R1,MINE_URANIUM,URANIUM,1,2027,1 -R1,MINE_URANIUM,URANIUM,1,2028,1 -R1,MINE_URANIUM,URANIUM,1,2029,1 -R1,MINE_URANIUM,URANIUM,1,2030,1 -R1,MINE_URANIUM,URANIUM,1,2031,1 -R1,MINE_URANIUM,URANIUM,1,2032,1 -R1,MINE_URANIUM,URANIUM,1,2033,1 -R1,MINE_URANIUM,URANIUM,1,2034,1 -R1,MINE_URANIUM,URANIUM,1,2035,1 -R1,MINE_URANIUM,URANIUM,1,2036,1 -R1,MINE_URANIUM,URANIUM,1,2037,1 -R1,MINE_URANIUM,URANIUM,1,2038,1 -R1,MINE_URANIUM,URANIUM,1,2039,1 -R1,MINE_URANIUM,URANIUM,1,2040,1 -R1,MINE_URANIUM,URANIUM,1,2041,1 -R1,MINE_URANIUM,URANIUM,1,2042,1 -R1,MINE_URANIUM,URANIUM,1,2043,1 -R1,MINE_URANIUM,URANIUM,1,2044,1 -R1,MINE_URANIUM,URANIUM,1,2045,1 -R1,MINE_URANIUM,URANIUM,1,2046,1 -R1,MINE_URANIUM,URANIUM,1,2047,1 -R1,MINE_URANIUM,URANIUM,1,2048,1 -R1,MINE_URANIUM,URANIUM,1,2049,1 -R1,MINE_URANIUM,URANIUM,1,2050,1 -R1,MINE_URANIUM,URANIUM,1,2051,1 -R1,MINE_URANIUM,URANIUM,1,2052,1 -R1,MINE_URANIUM,URANIUM,1,2053,1 -R1,MINE_URANIUM,URANIUM,1,2054,1 -R1,MINE_URANIUM,URANIUM,1,2055,1 -R1,MINE_URANIUM,URANIUM,1,2056,1 -R1,MINE_URANIUM,URANIUM,1,2057,1 -R1,MINE_URANIUM,URANIUM,1,2058,1 -R1,MINE_URANIUM,URANIUM,1,2059,1 -R1,MINE_URANIUM,URANIUM,1,2060,1 -R1,MINE_URANIUM,URANIUM,1,2061,1 -R1,MINE_URANIUM,URANIUM,1,2062,1 -R1,MINE_URANIUM,URANIUM,1,2063,1 -R1,MINE_URANIUM,URANIUM,1,2064,1 -R1,MINE_URANIUM,URANIUM,1,2065,1 -R1,MINE_URANIUM,URANIUM,1,2066,1 -R1,MINE_URANIUM,URANIUM,1,2067,1 -R1,MINE_URANIUM,URANIUM,1,2068,1 -R1,MINE_URANIUM,URANIUM,1,2069,1 -R1,MINE_URANIUM,URANIUM,1,2070,1 diff --git a/examples/Example_Two/data/REGION.csv b/examples/Example_Two/data/REGION.csv deleted file mode 100644 index 82dabfa..0000000 --- a/examples/Example_Two/data/REGION.csv +++ /dev/null @@ -1,2 +0,0 @@ -VALUE -R1 diff --git a/examples/Example_Two/data/REMinProductionTarget.csv b/examples/Example_Two/data/REMinProductionTarget.csv deleted file mode 100644 index b55c226..0000000 --- a/examples/Example_Two/data/REMinProductionTarget.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,YEAR,VALUE diff --git a/examples/Example_Two/data/RETagFuel.csv b/examples/Example_Two/data/RETagFuel.csv deleted file mode 100644 index 326b28c..0000000 --- a/examples/Example_Two/data/RETagFuel.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,FUEL,YEAR,VALUE diff --git a/examples/Example_Two/data/RETagTechnology.csv b/examples/Example_Two/data/RETagTechnology.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Two/data/RETagTechnology.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Two/data/ReserveMargin.csv b/examples/Example_Two/data/ReserveMargin.csv deleted file mode 100644 index b55c226..0000000 --- a/examples/Example_Two/data/ReserveMargin.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,YEAR,VALUE diff --git a/examples/Example_Two/data/ReserveMarginTagFuel.csv b/examples/Example_Two/data/ReserveMarginTagFuel.csv deleted file mode 100644 index 326b28c..0000000 --- a/examples/Example_Two/data/ReserveMarginTagFuel.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,FUEL,YEAR,VALUE diff --git a/examples/Example_Two/data/ReserveMarginTagTechnology.csv b/examples/Example_Two/data/ReserveMarginTagTechnology.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Two/data/ReserveMarginTagTechnology.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Two/data/ResidualCapacity.csv b/examples/Example_Two/data/ResidualCapacity.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Two/data/ResidualCapacity.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Two/data/ResidualStorageCapacity.csv b/examples/Example_Two/data/ResidualStorageCapacity.csv deleted file mode 100644 index a7bcbd7..0000000 --- a/examples/Example_Two/data/ResidualStorageCapacity.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,YEAR,VALUE diff --git a/examples/Example_Two/data/SEASON.csv b/examples/Example_Two/data/SEASON.csv deleted file mode 100644 index fb1ad9a..0000000 --- a/examples/Example_Two/data/SEASON.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE \ No newline at end of file diff --git a/examples/Example_Two/data/STORAGE.csv b/examples/Example_Two/data/STORAGE.csv deleted file mode 100644 index 2dfe6a3..0000000 --- a/examples/Example_Two/data/STORAGE.csv +++ /dev/null @@ -1 +0,0 @@ -VALUE diff --git a/examples/Example_Two/data/SpecifiedAnnualDemand.csv b/examples/Example_Two/data/SpecifiedAnnualDemand.csv deleted file mode 100644 index 578780a..0000000 --- a/examples/Example_Two/data/SpecifiedAnnualDemand.csv +++ /dev/null @@ -1,52 +0,0 @@ -REGION,FUEL,YEAR,VALUE -R1,ELECTRICITY,2020,1000.0 -R1,ELECTRICITY,2021,1050.0 -R1,ELECTRICITY,2022,1102.5 -R1,ELECTRICITY,2023,1157.6250000000002 -R1,ELECTRICITY,2024,1215.5062500000001 -R1,ELECTRICITY,2025,1276.2815625000003 -R1,ELECTRICITY,2026,1340.0956406250004 -R1,ELECTRICITY,2027,1407.1004226562504 -R1,ELECTRICITY,2028,1477.455443789063 -R1,ELECTRICITY,2029,1551.3282159785163 -R1,ELECTRICITY,2030,1628.894626777442 -R1,ELECTRICITY,2031,1710.3393581163143 -R1,ELECTRICITY,2032,1795.8563260221301 -R1,ELECTRICITY,2033,1885.6491423232367 -R1,ELECTRICITY,2034,1979.9315994393987 -R1,ELECTRICITY,2035,2078.9281794113685 -R1,ELECTRICITY,2036,2182.874588381937 -R1,ELECTRICITY,2037,2292.018317801034 -R1,ELECTRICITY,2038,2406.619233691086 -R1,ELECTRICITY,2039,2526.9501953756403 -R1,ELECTRICITY,2040,2653.2977051444223 -R1,ELECTRICITY,2041,2785.9625904016434 -R1,ELECTRICITY,2042,2925.260719921726 -R1,ELECTRICITY,2043,3071.523755917812 -R1,ELECTRICITY,2044,3225.099943713703 -R1,ELECTRICITY,2045,3386.3549408993886 -R1,ELECTRICITY,2046,3555.6726879443577 -R1,ELECTRICITY,2047,3733.456322341576 -R1,ELECTRICITY,2048,3920.129138458655 -R1,ELECTRICITY,2049,4116.135595381588 -R1,ELECTRICITY,2050,4321.942375150667 -R1,ELECTRICITY,2051,4538.039493908201 -R1,ELECTRICITY,2052,4764.941468603612 -R1,ELECTRICITY,2053,5003.188542033792 -R1,ELECTRICITY,2054,5253.347969135481 -R1,ELECTRICITY,2055,5516.015367592257 -R1,ELECTRICITY,2056,5791.816135971869 -R1,ELECTRICITY,2057,6081.406942770463 -R1,ELECTRICITY,2058,6385.477289908987 -R1,ELECTRICITY,2059,6704.7511544044355 -R1,ELECTRICITY,2060,7039.988712124658 -R1,ELECTRICITY,2061,7391.988147730891 -R1,ELECTRICITY,2062,7761.587555117436 -R1,ELECTRICITY,2063,8149.666932873309 -R1,ELECTRICITY,2064,8557.150279516974 -R1,ELECTRICITY,2065,8985.007793492823 -R1,ELECTRICITY,2066,9434.258183167465 -R1,ELECTRICITY,2067,9905.971092325839 -R1,ELECTRICITY,2068,10401.269646942132 -R1,ELECTRICITY,2069,10921.333129289238 -R1,ELECTRICITY,2070,11467.39755 diff --git a/examples/Example_Two/data/SpecifiedDemandProfile.csv b/examples/Example_Two/data/SpecifiedDemandProfile.csv deleted file mode 100644 index b50b2e9..0000000 --- a/examples/Example_Two/data/SpecifiedDemandProfile.csv +++ /dev/null @@ -1,409 +0,0 @@ -REGION,FUEL,TIMESLICE,YEAR,VALUE -R1,ELECTRICITY,S1D1,2020,0.125 -R1,ELECTRICITY,S1D2,2020,0.125 -R1,ELECTRICITY,S2D1,2020,0.125 -R1,ELECTRICITY,S2D2,2020,0.125 -R1,ELECTRICITY,S3D1,2020,0.125 -R1,ELECTRICITY,S3D2,2020,0.125 -R1,ELECTRICITY,S4D1,2020,0.125 -R1,ELECTRICITY,S4D2,2020,0.125 -R1,ELECTRICITY,S1D1,2021,0.125 -R1,ELECTRICITY,S1D2,2021,0.125 -R1,ELECTRICITY,S2D1,2021,0.125 -R1,ELECTRICITY,S2D2,2021,0.125 -R1,ELECTRICITY,S3D1,2021,0.125 -R1,ELECTRICITY,S3D2,2021,0.125 -R1,ELECTRICITY,S4D1,2021,0.125 -R1,ELECTRICITY,S4D2,2021,0.125 -R1,ELECTRICITY,S1D1,2022,0.125 -R1,ELECTRICITY,S1D2,2022,0.125 -R1,ELECTRICITY,S2D1,2022,0.125 -R1,ELECTRICITY,S2D2,2022,0.125 -R1,ELECTRICITY,S3D1,2022,0.125 -R1,ELECTRICITY,S3D2,2022,0.125 -R1,ELECTRICITY,S4D1,2022,0.125 -R1,ELECTRICITY,S4D2,2022,0.125 -R1,ELECTRICITY,S1D1,2023,0.125 -R1,ELECTRICITY,S1D2,2023,0.125 -R1,ELECTRICITY,S2D1,2023,0.125 -R1,ELECTRICITY,S2D2,2023,0.125 -R1,ELECTRICITY,S3D1,2023,0.125 -R1,ELECTRICITY,S3D2,2023,0.125 -R1,ELECTRICITY,S4D1,2023,0.125 -R1,ELECTRICITY,S4D2,2023,0.125 -R1,ELECTRICITY,S1D1,2024,0.125 -R1,ELECTRICITY,S1D2,2024,0.125 -R1,ELECTRICITY,S2D1,2024,0.125 -R1,ELECTRICITY,S2D2,2024,0.125 -R1,ELECTRICITY,S3D1,2024,0.125 -R1,ELECTRICITY,S3D2,2024,0.125 -R1,ELECTRICITY,S4D1,2024,0.125 -R1,ELECTRICITY,S4D2,2024,0.125 -R1,ELECTRICITY,S1D1,2025,0.125 -R1,ELECTRICITY,S1D2,2025,0.125 -R1,ELECTRICITY,S2D1,2025,0.125 -R1,ELECTRICITY,S2D2,2025,0.125 -R1,ELECTRICITY,S3D1,2025,0.125 -R1,ELECTRICITY,S3D2,2025,0.125 -R1,ELECTRICITY,S4D1,2025,0.125 -R1,ELECTRICITY,S4D2,2025,0.125 -R1,ELECTRICITY,S1D1,2026,0.125 -R1,ELECTRICITY,S1D2,2026,0.125 -R1,ELECTRICITY,S2D1,2026,0.125 -R1,ELECTRICITY,S2D2,2026,0.125 -R1,ELECTRICITY,S3D1,2026,0.125 -R1,ELECTRICITY,S3D2,2026,0.125 -R1,ELECTRICITY,S4D1,2026,0.125 -R1,ELECTRICITY,S4D2,2026,0.125 -R1,ELECTRICITY,S1D1,2027,0.125 -R1,ELECTRICITY,S1D2,2027,0.125 -R1,ELECTRICITY,S2D1,2027,0.125 -R1,ELECTRICITY,S2D2,2027,0.125 -R1,ELECTRICITY,S3D1,2027,0.125 -R1,ELECTRICITY,S3D2,2027,0.125 -R1,ELECTRICITY,S4D1,2027,0.125 -R1,ELECTRICITY,S4D2,2027,0.125 -R1,ELECTRICITY,S1D1,2028,0.125 -R1,ELECTRICITY,S1D2,2028,0.125 -R1,ELECTRICITY,S2D1,2028,0.125 -R1,ELECTRICITY,S2D2,2028,0.125 -R1,ELECTRICITY,S3D1,2028,0.125 -R1,ELECTRICITY,S3D2,2028,0.125 -R1,ELECTRICITY,S4D1,2028,0.125 -R1,ELECTRICITY,S4D2,2028,0.125 -R1,ELECTRICITY,S1D1,2029,0.125 -R1,ELECTRICITY,S1D2,2029,0.125 -R1,ELECTRICITY,S2D1,2029,0.125 -R1,ELECTRICITY,S2D2,2029,0.125 -R1,ELECTRICITY,S3D1,2029,0.125 -R1,ELECTRICITY,S3D2,2029,0.125 -R1,ELECTRICITY,S4D1,2029,0.125 -R1,ELECTRICITY,S4D2,2029,0.125 -R1,ELECTRICITY,S1D1,2030,0.125 -R1,ELECTRICITY,S1D2,2030,0.125 -R1,ELECTRICITY,S2D1,2030,0.125 -R1,ELECTRICITY,S2D2,2030,0.125 -R1,ELECTRICITY,S3D1,2030,0.125 -R1,ELECTRICITY,S3D2,2030,0.125 -R1,ELECTRICITY,S4D1,2030,0.125 -R1,ELECTRICITY,S4D2,2030,0.125 -R1,ELECTRICITY,S1D1,2031,0.125 -R1,ELECTRICITY,S1D2,2031,0.125 -R1,ELECTRICITY,S2D1,2031,0.125 -R1,ELECTRICITY,S2D2,2031,0.125 -R1,ELECTRICITY,S3D1,2031,0.125 -R1,ELECTRICITY,S3D2,2031,0.125 -R1,ELECTRICITY,S4D1,2031,0.125 -R1,ELECTRICITY,S4D2,2031,0.125 -R1,ELECTRICITY,S1D1,2032,0.125 -R1,ELECTRICITY,S1D2,2032,0.125 -R1,ELECTRICITY,S2D1,2032,0.125 -R1,ELECTRICITY,S2D2,2032,0.125 -R1,ELECTRICITY,S3D1,2032,0.125 -R1,ELECTRICITY,S3D2,2032,0.125 -R1,ELECTRICITY,S4D1,2032,0.125 -R1,ELECTRICITY,S4D2,2032,0.125 -R1,ELECTRICITY,S1D1,2033,0.125 -R1,ELECTRICITY,S1D2,2033,0.125 -R1,ELECTRICITY,S2D1,2033,0.125 -R1,ELECTRICITY,S2D2,2033,0.125 -R1,ELECTRICITY,S3D1,2033,0.125 -R1,ELECTRICITY,S3D2,2033,0.125 -R1,ELECTRICITY,S4D1,2033,0.125 -R1,ELECTRICITY,S4D2,2033,0.125 -R1,ELECTRICITY,S1D1,2034,0.125 -R1,ELECTRICITY,S1D2,2034,0.125 -R1,ELECTRICITY,S2D1,2034,0.125 -R1,ELECTRICITY,S2D2,2034,0.125 -R1,ELECTRICITY,S3D1,2034,0.125 -R1,ELECTRICITY,S3D2,2034,0.125 -R1,ELECTRICITY,S4D1,2034,0.125 -R1,ELECTRICITY,S4D2,2034,0.125 -R1,ELECTRICITY,S1D1,2035,0.125 -R1,ELECTRICITY,S1D2,2035,0.125 -R1,ELECTRICITY,S2D1,2035,0.125 -R1,ELECTRICITY,S2D2,2035,0.125 -R1,ELECTRICITY,S3D1,2035,0.125 -R1,ELECTRICITY,S3D2,2035,0.125 -R1,ELECTRICITY,S4D1,2035,0.125 -R1,ELECTRICITY,S4D2,2035,0.125 -R1,ELECTRICITY,S1D1,2036,0.125 -R1,ELECTRICITY,S1D2,2036,0.125 -R1,ELECTRICITY,S2D1,2036,0.125 -R1,ELECTRICITY,S2D2,2036,0.125 -R1,ELECTRICITY,S3D1,2036,0.125 -R1,ELECTRICITY,S3D2,2036,0.125 -R1,ELECTRICITY,S4D1,2036,0.125 -R1,ELECTRICITY,S4D2,2036,0.125 -R1,ELECTRICITY,S1D1,2037,0.125 -R1,ELECTRICITY,S1D2,2037,0.125 -R1,ELECTRICITY,S2D1,2037,0.125 -R1,ELECTRICITY,S2D2,2037,0.125 -R1,ELECTRICITY,S3D1,2037,0.125 -R1,ELECTRICITY,S3D2,2037,0.125 -R1,ELECTRICITY,S4D1,2037,0.125 -R1,ELECTRICITY,S4D2,2037,0.125 -R1,ELECTRICITY,S1D1,2038,0.125 -R1,ELECTRICITY,S1D2,2038,0.125 -R1,ELECTRICITY,S2D1,2038,0.125 -R1,ELECTRICITY,S2D2,2038,0.125 -R1,ELECTRICITY,S3D1,2038,0.125 -R1,ELECTRICITY,S3D2,2038,0.125 -R1,ELECTRICITY,S4D1,2038,0.125 -R1,ELECTRICITY,S4D2,2038,0.125 -R1,ELECTRICITY,S1D1,2039,0.125 -R1,ELECTRICITY,S1D2,2039,0.125 -R1,ELECTRICITY,S2D1,2039,0.125 -R1,ELECTRICITY,S2D2,2039,0.125 -R1,ELECTRICITY,S3D1,2039,0.125 -R1,ELECTRICITY,S3D2,2039,0.125 -R1,ELECTRICITY,S4D1,2039,0.125 -R1,ELECTRICITY,S4D2,2039,0.125 -R1,ELECTRICITY,S1D1,2040,0.125 -R1,ELECTRICITY,S1D2,2040,0.125 -R1,ELECTRICITY,S2D1,2040,0.125 -R1,ELECTRICITY,S2D2,2040,0.125 -R1,ELECTRICITY,S3D1,2040,0.125 -R1,ELECTRICITY,S3D2,2040,0.125 -R1,ELECTRICITY,S4D1,2040,0.125 -R1,ELECTRICITY,S4D2,2040,0.125 -R1,ELECTRICITY,S1D1,2041,0.125 -R1,ELECTRICITY,S1D2,2041,0.125 -R1,ELECTRICITY,S2D1,2041,0.125 -R1,ELECTRICITY,S2D2,2041,0.125 -R1,ELECTRICITY,S3D1,2041,0.125 -R1,ELECTRICITY,S3D2,2041,0.125 -R1,ELECTRICITY,S4D1,2041,0.125 -R1,ELECTRICITY,S4D2,2041,0.125 -R1,ELECTRICITY,S1D1,2042,0.125 -R1,ELECTRICITY,S1D2,2042,0.125 -R1,ELECTRICITY,S2D1,2042,0.125 -R1,ELECTRICITY,S2D2,2042,0.125 -R1,ELECTRICITY,S3D1,2042,0.125 -R1,ELECTRICITY,S3D2,2042,0.125 -R1,ELECTRICITY,S4D1,2042,0.125 -R1,ELECTRICITY,S4D2,2042,0.125 -R1,ELECTRICITY,S1D1,2043,0.125 -R1,ELECTRICITY,S1D2,2043,0.125 -R1,ELECTRICITY,S2D1,2043,0.125 -R1,ELECTRICITY,S2D2,2043,0.125 -R1,ELECTRICITY,S3D1,2043,0.125 -R1,ELECTRICITY,S3D2,2043,0.125 -R1,ELECTRICITY,S4D1,2043,0.125 -R1,ELECTRICITY,S4D2,2043,0.125 -R1,ELECTRICITY,S1D1,2044,0.125 -R1,ELECTRICITY,S1D2,2044,0.125 -R1,ELECTRICITY,S2D1,2044,0.125 -R1,ELECTRICITY,S2D2,2044,0.125 -R1,ELECTRICITY,S3D1,2044,0.125 -R1,ELECTRICITY,S3D2,2044,0.125 -R1,ELECTRICITY,S4D1,2044,0.125 -R1,ELECTRICITY,S4D2,2044,0.125 -R1,ELECTRICITY,S1D1,2045,0.125 -R1,ELECTRICITY,S1D2,2045,0.125 -R1,ELECTRICITY,S2D1,2045,0.125 -R1,ELECTRICITY,S2D2,2045,0.125 -R1,ELECTRICITY,S3D1,2045,0.125 -R1,ELECTRICITY,S3D2,2045,0.125 -R1,ELECTRICITY,S4D1,2045,0.125 -R1,ELECTRICITY,S4D2,2045,0.125 -R1,ELECTRICITY,S1D1,2046,0.125 -R1,ELECTRICITY,S1D2,2046,0.125 -R1,ELECTRICITY,S2D1,2046,0.125 -R1,ELECTRICITY,S2D2,2046,0.125 -R1,ELECTRICITY,S3D1,2046,0.125 -R1,ELECTRICITY,S3D2,2046,0.125 -R1,ELECTRICITY,S4D1,2046,0.125 -R1,ELECTRICITY,S4D2,2046,0.125 -R1,ELECTRICITY,S1D1,2047,0.125 -R1,ELECTRICITY,S1D2,2047,0.125 -R1,ELECTRICITY,S2D1,2047,0.125 -R1,ELECTRICITY,S2D2,2047,0.125 -R1,ELECTRICITY,S3D1,2047,0.125 -R1,ELECTRICITY,S3D2,2047,0.125 -R1,ELECTRICITY,S4D1,2047,0.125 -R1,ELECTRICITY,S4D2,2047,0.125 -R1,ELECTRICITY,S1D1,2048,0.125 -R1,ELECTRICITY,S1D2,2048,0.125 -R1,ELECTRICITY,S2D1,2048,0.125 -R1,ELECTRICITY,S2D2,2048,0.125 -R1,ELECTRICITY,S3D1,2048,0.125 -R1,ELECTRICITY,S3D2,2048,0.125 -R1,ELECTRICITY,S4D1,2048,0.125 -R1,ELECTRICITY,S4D2,2048,0.125 -R1,ELECTRICITY,S1D1,2049,0.125 -R1,ELECTRICITY,S1D2,2049,0.125 -R1,ELECTRICITY,S2D1,2049,0.125 -R1,ELECTRICITY,S2D2,2049,0.125 -R1,ELECTRICITY,S3D1,2049,0.125 -R1,ELECTRICITY,S3D2,2049,0.125 -R1,ELECTRICITY,S4D1,2049,0.125 -R1,ELECTRICITY,S4D2,2049,0.125 -R1,ELECTRICITY,S1D1,2050,0.125 -R1,ELECTRICITY,S1D2,2050,0.125 -R1,ELECTRICITY,S2D1,2050,0.125 -R1,ELECTRICITY,S2D2,2050,0.125 -R1,ELECTRICITY,S3D1,2050,0.125 -R1,ELECTRICITY,S3D2,2050,0.125 -R1,ELECTRICITY,S4D1,2050,0.125 -R1,ELECTRICITY,S4D2,2050,0.125 -R1,ELECTRICITY,S1D1,2051,0.125 -R1,ELECTRICITY,S1D2,2051,0.125 -R1,ELECTRICITY,S2D1,2051,0.125 -R1,ELECTRICITY,S2D2,2051,0.125 -R1,ELECTRICITY,S3D1,2051,0.125 -R1,ELECTRICITY,S3D2,2051,0.125 -R1,ELECTRICITY,S4D1,2051,0.125 -R1,ELECTRICITY,S4D2,2051,0.125 -R1,ELECTRICITY,S1D1,2052,0.125 -R1,ELECTRICITY,S1D2,2052,0.125 -R1,ELECTRICITY,S2D1,2052,0.125 -R1,ELECTRICITY,S2D2,2052,0.125 -R1,ELECTRICITY,S3D1,2052,0.125 -R1,ELECTRICITY,S3D2,2052,0.125 -R1,ELECTRICITY,S4D1,2052,0.125 -R1,ELECTRICITY,S4D2,2052,0.125 -R1,ELECTRICITY,S1D1,2053,0.125 -R1,ELECTRICITY,S1D2,2053,0.125 -R1,ELECTRICITY,S2D1,2053,0.125 -R1,ELECTRICITY,S2D2,2053,0.125 -R1,ELECTRICITY,S3D1,2053,0.125 -R1,ELECTRICITY,S3D2,2053,0.125 -R1,ELECTRICITY,S4D1,2053,0.125 -R1,ELECTRICITY,S4D2,2053,0.125 -R1,ELECTRICITY,S1D1,2054,0.125 -R1,ELECTRICITY,S1D2,2054,0.125 -R1,ELECTRICITY,S2D1,2054,0.125 -R1,ELECTRICITY,S2D2,2054,0.125 -R1,ELECTRICITY,S3D1,2054,0.125 -R1,ELECTRICITY,S3D2,2054,0.125 -R1,ELECTRICITY,S4D1,2054,0.125 -R1,ELECTRICITY,S4D2,2054,0.125 -R1,ELECTRICITY,S1D1,2055,0.125 -R1,ELECTRICITY,S1D2,2055,0.125 -R1,ELECTRICITY,S2D1,2055,0.125 -R1,ELECTRICITY,S2D2,2055,0.125 -R1,ELECTRICITY,S3D1,2055,0.125 -R1,ELECTRICITY,S3D2,2055,0.125 -R1,ELECTRICITY,S4D1,2055,0.125 -R1,ELECTRICITY,S4D2,2055,0.125 -R1,ELECTRICITY,S1D1,2056,0.125 -R1,ELECTRICITY,S1D2,2056,0.125 -R1,ELECTRICITY,S2D1,2056,0.125 -R1,ELECTRICITY,S2D2,2056,0.125 -R1,ELECTRICITY,S3D1,2056,0.125 -R1,ELECTRICITY,S3D2,2056,0.125 -R1,ELECTRICITY,S4D1,2056,0.125 -R1,ELECTRICITY,S4D2,2056,0.125 -R1,ELECTRICITY,S1D1,2057,0.125 -R1,ELECTRICITY,S1D2,2057,0.125 -R1,ELECTRICITY,S2D1,2057,0.125 -R1,ELECTRICITY,S2D2,2057,0.125 -R1,ELECTRICITY,S3D1,2057,0.125 -R1,ELECTRICITY,S3D2,2057,0.125 -R1,ELECTRICITY,S4D1,2057,0.125 -R1,ELECTRICITY,S4D2,2057,0.125 -R1,ELECTRICITY,S1D1,2058,0.125 -R1,ELECTRICITY,S1D2,2058,0.125 -R1,ELECTRICITY,S2D1,2058,0.125 -R1,ELECTRICITY,S2D2,2058,0.125 -R1,ELECTRICITY,S3D1,2058,0.125 -R1,ELECTRICITY,S3D2,2058,0.125 -R1,ELECTRICITY,S4D1,2058,0.125 -R1,ELECTRICITY,S4D2,2058,0.125 -R1,ELECTRICITY,S1D1,2059,0.125 -R1,ELECTRICITY,S1D2,2059,0.125 -R1,ELECTRICITY,S2D1,2059,0.125 -R1,ELECTRICITY,S2D2,2059,0.125 -R1,ELECTRICITY,S3D1,2059,0.125 -R1,ELECTRICITY,S3D2,2059,0.125 -R1,ELECTRICITY,S4D1,2059,0.125 -R1,ELECTRICITY,S4D2,2059,0.125 -R1,ELECTRICITY,S1D1,2060,0.125 -R1,ELECTRICITY,S1D2,2060,0.125 -R1,ELECTRICITY,S2D1,2060,0.125 -R1,ELECTRICITY,S2D2,2060,0.125 -R1,ELECTRICITY,S3D1,2060,0.125 -R1,ELECTRICITY,S3D2,2060,0.125 -R1,ELECTRICITY,S4D1,2060,0.125 -R1,ELECTRICITY,S4D2,2060,0.125 -R1,ELECTRICITY,S1D1,2061,0.125 -R1,ELECTRICITY,S1D2,2061,0.125 -R1,ELECTRICITY,S2D1,2061,0.125 -R1,ELECTRICITY,S2D2,2061,0.125 -R1,ELECTRICITY,S3D1,2061,0.125 -R1,ELECTRICITY,S3D2,2061,0.125 -R1,ELECTRICITY,S4D1,2061,0.125 -R1,ELECTRICITY,S4D2,2061,0.125 -R1,ELECTRICITY,S1D1,2062,0.125 -R1,ELECTRICITY,S1D2,2062,0.125 -R1,ELECTRICITY,S2D1,2062,0.125 -R1,ELECTRICITY,S2D2,2062,0.125 -R1,ELECTRICITY,S3D1,2062,0.125 -R1,ELECTRICITY,S3D2,2062,0.125 -R1,ELECTRICITY,S4D1,2062,0.125 -R1,ELECTRICITY,S4D2,2062,0.125 -R1,ELECTRICITY,S1D1,2063,0.125 -R1,ELECTRICITY,S1D2,2063,0.125 -R1,ELECTRICITY,S2D1,2063,0.125 -R1,ELECTRICITY,S2D2,2063,0.125 -R1,ELECTRICITY,S3D1,2063,0.125 -R1,ELECTRICITY,S3D2,2063,0.125 -R1,ELECTRICITY,S4D1,2063,0.125 -R1,ELECTRICITY,S4D2,2063,0.125 -R1,ELECTRICITY,S1D1,2064,0.125 -R1,ELECTRICITY,S1D2,2064,0.125 -R1,ELECTRICITY,S2D1,2064,0.125 -R1,ELECTRICITY,S2D2,2064,0.125 -R1,ELECTRICITY,S3D1,2064,0.125 -R1,ELECTRICITY,S3D2,2064,0.125 -R1,ELECTRICITY,S4D1,2064,0.125 -R1,ELECTRICITY,S4D2,2064,0.125 -R1,ELECTRICITY,S1D1,2065,0.125 -R1,ELECTRICITY,S1D2,2065,0.125 -R1,ELECTRICITY,S2D1,2065,0.125 -R1,ELECTRICITY,S2D2,2065,0.125 -R1,ELECTRICITY,S3D1,2065,0.125 -R1,ELECTRICITY,S3D2,2065,0.125 -R1,ELECTRICITY,S4D1,2065,0.125 -R1,ELECTRICITY,S4D2,2065,0.125 -R1,ELECTRICITY,S1D1,2066,0.125 -R1,ELECTRICITY,S1D2,2066,0.125 -R1,ELECTRICITY,S2D1,2066,0.125 -R1,ELECTRICITY,S2D2,2066,0.125 -R1,ELECTRICITY,S3D1,2066,0.125 -R1,ELECTRICITY,S3D2,2066,0.125 -R1,ELECTRICITY,S4D1,2066,0.125 -R1,ELECTRICITY,S4D2,2066,0.125 -R1,ELECTRICITY,S1D1,2067,0.125 -R1,ELECTRICITY,S1D2,2067,0.125 -R1,ELECTRICITY,S2D1,2067,0.125 -R1,ELECTRICITY,S2D2,2067,0.125 -R1,ELECTRICITY,S3D1,2067,0.125 -R1,ELECTRICITY,S3D2,2067,0.125 -R1,ELECTRICITY,S4D1,2067,0.125 -R1,ELECTRICITY,S4D2,2067,0.125 -R1,ELECTRICITY,S1D1,2068,0.125 -R1,ELECTRICITY,S1D2,2068,0.125 -R1,ELECTRICITY,S2D1,2068,0.125 -R1,ELECTRICITY,S2D2,2068,0.125 -R1,ELECTRICITY,S3D1,2068,0.125 -R1,ELECTRICITY,S3D2,2068,0.125 -R1,ELECTRICITY,S4D1,2068,0.125 -R1,ELECTRICITY,S4D2,2068,0.125 -R1,ELECTRICITY,S1D1,2069,0.125 -R1,ELECTRICITY,S1D2,2069,0.125 -R1,ELECTRICITY,S2D1,2069,0.125 -R1,ELECTRICITY,S2D2,2069,0.125 -R1,ELECTRICITY,S3D1,2069,0.125 -R1,ELECTRICITY,S3D2,2069,0.125 -R1,ELECTRICITY,S4D1,2069,0.125 -R1,ELECTRICITY,S4D2,2069,0.125 -R1,ELECTRICITY,S1D1,2070,0.125 -R1,ELECTRICITY,S1D2,2070,0.125 -R1,ELECTRICITY,S2D1,2070,0.125 -R1,ELECTRICITY,S2D2,2070,0.125 -R1,ELECTRICITY,S3D1,2070,0.125 -R1,ELECTRICITY,S3D2,2070,0.125 -R1,ELECTRICITY,S4D1,2070,0.125 -R1,ELECTRICITY,S4D2,2070,0.125 diff --git a/examples/Example_Two/data/StorageLevelStart.csv b/examples/Example_Two/data/StorageLevelStart.csv deleted file mode 100644 index 2176c14..0000000 --- a/examples/Example_Two/data/StorageLevelStart.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,VALUE diff --git a/examples/Example_Two/data/StorageMaxChargeRate.csv b/examples/Example_Two/data/StorageMaxChargeRate.csv deleted file mode 100644 index 2176c14..0000000 --- a/examples/Example_Two/data/StorageMaxChargeRate.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,VALUE diff --git a/examples/Example_Two/data/StorageMaxDischargeRate.csv b/examples/Example_Two/data/StorageMaxDischargeRate.csv deleted file mode 100644 index 2176c14..0000000 --- a/examples/Example_Two/data/StorageMaxDischargeRate.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,STORAGE,VALUE diff --git a/examples/Example_Two/data/TECHNOLOGY.csv b/examples/Example_Two/data/TECHNOLOGY.csv deleted file mode 100644 index 15e4301..0000000 --- a/examples/Example_Two/data/TECHNOLOGY.csv +++ /dev/null @@ -1,3 +0,0 @@ -VALUE -MINE_URANIUM -NUCLEAR \ No newline at end of file diff --git a/examples/Example_Two/data/TIMESLICE.csv b/examples/Example_Two/data/TIMESLICE.csv deleted file mode 100644 index bc81add..0000000 --- a/examples/Example_Two/data/TIMESLICE.csv +++ /dev/null @@ -1,9 +0,0 @@ -VALUE -S1D1 -S1D2 -S2D1 -S2D2 -S3D1 -S3D2 -S4D1 -S4D2 diff --git a/examples/Example_Two/data/TechnologyFromStorage.csv b/examples/Example_Two/data/TechnologyFromStorage.csv deleted file mode 100644 index 384c871..0000000 --- a/examples/Example_Two/data/TechnologyFromStorage.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,STORAGE,MODE_OF_OPERATION,VALUE diff --git a/examples/Example_Two/data/TechnologyToStorage.csv b/examples/Example_Two/data/TechnologyToStorage.csv deleted file mode 100644 index 1ae3429..0000000 --- a/examples/Example_Two/data/TechnologyToStorage.csv +++ /dev/null @@ -1,2 +0,0 @@ -REGION,TECHNOLOGY,STORAGE,MODE_OF_OPERATION,VALUE - diff --git a/examples/Example_Two/data/TotalAnnualMaxCapacity.csv b/examples/Example_Two/data/TotalAnnualMaxCapacity.csv deleted file mode 100644 index f77c5f0..0000000 --- a/examples/Example_Two/data/TotalAnnualMaxCapacity.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE \ No newline at end of file diff --git a/examples/Example_Two/data/TotalAnnualMaxCapacityInvestment.csv b/examples/Example_Two/data/TotalAnnualMaxCapacityInvestment.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Two/data/TotalAnnualMaxCapacityInvestment.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Two/data/TotalAnnualMinCapacity.csv b/examples/Example_Two/data/TotalAnnualMinCapacity.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Two/data/TotalAnnualMinCapacity.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Two/data/TotalAnnualMinCapacityInvestment.csv b/examples/Example_Two/data/TotalAnnualMinCapacityInvestment.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Two/data/TotalAnnualMinCapacityInvestment.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Two/data/TotalTechnologyAnnualActivityLowerLimit.csv b/examples/Example_Two/data/TotalTechnologyAnnualActivityLowerLimit.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Two/data/TotalTechnologyAnnualActivityLowerLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Two/data/TotalTechnologyAnnualActivityUpperLimit.csv b/examples/Example_Two/data/TotalTechnologyAnnualActivityUpperLimit.csv deleted file mode 100644 index 6a91e60..0000000 --- a/examples/Example_Two/data/TotalTechnologyAnnualActivityUpperLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,YEAR,VALUE diff --git a/examples/Example_Two/data/TotalTechnologyModelPeriodActivityLowerLimit.csv b/examples/Example_Two/data/TotalTechnologyModelPeriodActivityLowerLimit.csv deleted file mode 100644 index 1ca1a8e..0000000 --- a/examples/Example_Two/data/TotalTechnologyModelPeriodActivityLowerLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,VALUE diff --git a/examples/Example_Two/data/TotalTechnologyModelPeriodActivityUpperLimit.csv b/examples/Example_Two/data/TotalTechnologyModelPeriodActivityUpperLimit.csv deleted file mode 100644 index 1ca1a8e..0000000 --- a/examples/Example_Two/data/TotalTechnologyModelPeriodActivityUpperLimit.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,TECHNOLOGY,VALUE diff --git a/examples/Example_Two/data/TradeRoute.csv b/examples/Example_Two/data/TradeRoute.csv deleted file mode 100644 index 326b28c..0000000 --- a/examples/Example_Two/data/TradeRoute.csv +++ /dev/null @@ -1 +0,0 @@ -REGION,FUEL,YEAR,VALUE diff --git a/examples/Example_Two/data/VariableCost.csv b/examples/Example_Two/data/VariableCost.csv deleted file mode 100644 index dff7c27..0000000 --- a/examples/Example_Two/data/VariableCost.csv +++ /dev/null @@ -1,52 +0,0 @@ -REGION,TECHNOLOGY,MODE_OF_OPERATION,YEAR,VALUE -R1,MINE_URANIUM,1,2020,2.5 -R1,MINE_URANIUM,1,2021,2.5 -R1,MINE_URANIUM,1,2022,2.5 -R1,MINE_URANIUM,1,2023,2.5 -R1,MINE_URANIUM,1,2024,2.5 -R1,MINE_URANIUM,1,2025,2.5 -R1,MINE_URANIUM,1,2026,2.5 -R1,MINE_URANIUM,1,2027,2.5 -R1,MINE_URANIUM,1,2028,2.5 -R1,MINE_URANIUM,1,2029,2.5 -R1,MINE_URANIUM,1,2030,2.5 -R1,MINE_URANIUM,1,2031,2.5 -R1,MINE_URANIUM,1,2032,2.5 -R1,MINE_URANIUM,1,2033,2.5 -R1,MINE_URANIUM,1,2034,2.5 -R1,MINE_URANIUM,1,2035,2.5 -R1,MINE_URANIUM,1,2036,2.5 -R1,MINE_URANIUM,1,2037,2.5 -R1,MINE_URANIUM,1,2038,2.5 -R1,MINE_URANIUM,1,2039,2.5 -R1,MINE_URANIUM,1,2040,2.5 -R1,MINE_URANIUM,1,2041,2.5 -R1,MINE_URANIUM,1,2042,2.5 -R1,MINE_URANIUM,1,2043,2.5 -R1,MINE_URANIUM,1,2044,2.5 -R1,MINE_URANIUM,1,2045,2.5 -R1,MINE_URANIUM,1,2046,2.5 -R1,MINE_URANIUM,1,2047,2.5 -R1,MINE_URANIUM,1,2048,2.5 -R1,MINE_URANIUM,1,2049,2.5 -R1,MINE_URANIUM,1,2050,2.5 -R1,MINE_URANIUM,1,2051,2.5 -R1,MINE_URANIUM,1,2052,2.5 -R1,MINE_URANIUM,1,2053,2.5 -R1,MINE_URANIUM,1,2054,2.5 -R1,MINE_URANIUM,1,2055,2.5 -R1,MINE_URANIUM,1,2056,2.5 -R1,MINE_URANIUM,1,2057,2.5 -R1,MINE_URANIUM,1,2058,2.5 -R1,MINE_URANIUM,1,2059,2.5 -R1,MINE_URANIUM,1,2060,2.5 -R1,MINE_URANIUM,1,2061,2.5 -R1,MINE_URANIUM,1,2062,2.5 -R1,MINE_URANIUM,1,2063,2.5 -R1,MINE_URANIUM,1,2064,2.5 -R1,MINE_URANIUM,1,2065,2.5 -R1,MINE_URANIUM,1,2066,2.5 -R1,MINE_URANIUM,1,2067,2.5 -R1,MINE_URANIUM,1,2068,2.5 -R1,MINE_URANIUM,1,2069,2.5 -R1,MINE_URANIUM,1,2070,2.5 diff --git a/examples/Example_Two/data/YEAR.csv b/examples/Example_Two/data/YEAR.csv deleted file mode 100644 index 83f6f1f..0000000 --- a/examples/Example_Two/data/YEAR.csv +++ /dev/null @@ -1,52 +0,0 @@ -VALUE -2020 -2021 -2022 -2023 -2024 -2025 -2026 -2027 -2028 -2029 -2030 -2031 -2032 -2033 -2034 -2035 -2036 -2037 -2038 -2039 -2040 -2041 -2042 -2043 -2044 -2045 -2046 -2047 -2048 -2049 -2050 -2051 -2052 -2053 -2054 -2055 -2056 -2057 -2058 -2059 -2060 -2061 -2062 -2063 -2064 -2065 -2066 -2067 -2068 -2069 -2070 diff --git a/examples/Example_Two/data/YearSplit.csv b/examples/Example_Two/data/YearSplit.csv deleted file mode 100644 index e81ca4d..0000000 --- a/examples/Example_Two/data/YearSplit.csv +++ /dev/null @@ -1,409 +0,0 @@ -TIMESLICE,YEAR,VALUE -S1D1,2020,0.125 -S1D2,2020,0.125 -S2D1,2020,0.125 -S2D2,2020,0.125 -S3D1,2020,0.125 -S3D2,2020,0.125 -S4D1,2020,0.125 -S4D2,2020,0.125 -S1D1,2021,0.125 -S1D2,2021,0.125 -S2D1,2021,0.125 -S2D2,2021,0.125 -S3D1,2021,0.125 -S3D2,2021,0.125 -S4D1,2021,0.125 -S4D2,2021,0.125 -S1D1,2022,0.125 -S1D2,2022,0.125 -S2D1,2022,0.125 -S2D2,2022,0.125 -S3D1,2022,0.125 -S3D2,2022,0.125 -S4D1,2022,0.125 -S4D2,2022,0.125 -S1D1,2023,0.125 -S1D2,2023,0.125 -S2D1,2023,0.125 -S2D2,2023,0.125 -S3D1,2023,0.125 -S3D2,2023,0.125 -S4D1,2023,0.125 -S4D2,2023,0.125 -S1D1,2024,0.125 -S1D2,2024,0.125 -S2D1,2024,0.125 -S2D2,2024,0.125 -S3D1,2024,0.125 -S3D2,2024,0.125 -S4D1,2024,0.125 -S4D2,2024,0.125 -S1D1,2025,0.125 -S1D2,2025,0.125 -S2D1,2025,0.125 -S2D2,2025,0.125 -S3D1,2025,0.125 -S3D2,2025,0.125 -S4D1,2025,0.125 -S4D2,2025,0.125 -S1D1,2026,0.125 -S1D2,2026,0.125 -S2D1,2026,0.125 -S2D2,2026,0.125 -S3D1,2026,0.125 -S3D2,2026,0.125 -S4D1,2026,0.125 -S4D2,2026,0.125 -S1D1,2027,0.125 -S1D2,2027,0.125 -S2D1,2027,0.125 -S2D2,2027,0.125 -S3D1,2027,0.125 -S3D2,2027,0.125 -S4D1,2027,0.125 -S4D2,2027,0.125 -S1D1,2028,0.125 -S1D2,2028,0.125 -S2D1,2028,0.125 -S2D2,2028,0.125 -S3D1,2028,0.125 -S3D2,2028,0.125 -S4D1,2028,0.125 -S4D2,2028,0.125 -S1D1,2029,0.125 -S1D2,2029,0.125 -S2D1,2029,0.125 -S2D2,2029,0.125 -S3D1,2029,0.125 -S3D2,2029,0.125 -S4D1,2029,0.125 -S4D2,2029,0.125 -S1D1,2030,0.125 -S1D2,2030,0.125 -S2D1,2030,0.125 -S2D2,2030,0.125 -S3D1,2030,0.125 -S3D2,2030,0.125 -S4D1,2030,0.125 -S4D2,2030,0.125 -S1D1,2031,0.125 -S1D2,2031,0.125 -S2D1,2031,0.125 -S2D2,2031,0.125 -S3D1,2031,0.125 -S3D2,2031,0.125 -S4D1,2031,0.125 -S4D2,2031,0.125 -S1D1,2032,0.125 -S1D2,2032,0.125 -S2D1,2032,0.125 -S2D2,2032,0.125 -S3D1,2032,0.125 -S3D2,2032,0.125 -S4D1,2032,0.125 -S4D2,2032,0.125 -S1D1,2033,0.125 -S1D2,2033,0.125 -S2D1,2033,0.125 -S2D2,2033,0.125 -S3D1,2033,0.125 -S3D2,2033,0.125 -S4D1,2033,0.125 -S4D2,2033,0.125 -S1D1,2034,0.125 -S1D2,2034,0.125 -S2D1,2034,0.125 -S2D2,2034,0.125 -S3D1,2034,0.125 -S3D2,2034,0.125 -S4D1,2034,0.125 -S4D2,2034,0.125 -S1D1,2035,0.125 -S1D2,2035,0.125 -S2D1,2035,0.125 -S2D2,2035,0.125 -S3D1,2035,0.125 -S3D2,2035,0.125 -S4D1,2035,0.125 -S4D2,2035,0.125 -S1D1,2036,0.125 -S1D2,2036,0.125 -S2D1,2036,0.125 -S2D2,2036,0.125 -S3D1,2036,0.125 -S3D2,2036,0.125 -S4D1,2036,0.125 -S4D2,2036,0.125 -S1D1,2037,0.125 -S1D2,2037,0.125 -S2D1,2037,0.125 -S2D2,2037,0.125 -S3D1,2037,0.125 -S3D2,2037,0.125 -S4D1,2037,0.125 -S4D2,2037,0.125 -S1D1,2038,0.125 -S1D2,2038,0.125 -S2D1,2038,0.125 -S2D2,2038,0.125 -S3D1,2038,0.125 -S3D2,2038,0.125 -S4D1,2038,0.125 -S4D2,2038,0.125 -S1D1,2039,0.125 -S1D2,2039,0.125 -S2D1,2039,0.125 -S2D2,2039,0.125 -S3D1,2039,0.125 -S3D2,2039,0.125 -S4D1,2039,0.125 -S4D2,2039,0.125 -S1D1,2040,0.125 -S1D2,2040,0.125 -S2D1,2040,0.125 -S2D2,2040,0.125 -S3D1,2040,0.125 -S3D2,2040,0.125 -S4D1,2040,0.125 -S4D2,2040,0.125 -S1D1,2041,0.125 -S1D2,2041,0.125 -S2D1,2041,0.125 -S2D2,2041,0.125 -S3D1,2041,0.125 -S3D2,2041,0.125 -S4D1,2041,0.125 -S4D2,2041,0.125 -S1D1,2042,0.125 -S1D2,2042,0.125 -S2D1,2042,0.125 -S2D2,2042,0.125 -S3D1,2042,0.125 -S3D2,2042,0.125 -S4D1,2042,0.125 -S4D2,2042,0.125 -S1D1,2043,0.125 -S1D2,2043,0.125 -S2D1,2043,0.125 -S2D2,2043,0.125 -S3D1,2043,0.125 -S3D2,2043,0.125 -S4D1,2043,0.125 -S4D2,2043,0.125 -S1D1,2044,0.125 -S1D2,2044,0.125 -S2D1,2044,0.125 -S2D2,2044,0.125 -S3D1,2044,0.125 -S3D2,2044,0.125 -S4D1,2044,0.125 -S4D2,2044,0.125 -S1D1,2045,0.125 -S1D2,2045,0.125 -S2D1,2045,0.125 -S2D2,2045,0.125 -S3D1,2045,0.125 -S3D2,2045,0.125 -S4D1,2045,0.125 -S4D2,2045,0.125 -S1D1,2046,0.125 -S1D2,2046,0.125 -S2D1,2046,0.125 -S2D2,2046,0.125 -S3D1,2046,0.125 -S3D2,2046,0.125 -S4D1,2046,0.125 -S4D2,2046,0.125 -S1D1,2047,0.125 -S1D2,2047,0.125 -S2D1,2047,0.125 -S2D2,2047,0.125 -S3D1,2047,0.125 -S3D2,2047,0.125 -S4D1,2047,0.125 -S4D2,2047,0.125 -S1D1,2048,0.125 -S1D2,2048,0.125 -S2D1,2048,0.125 -S2D2,2048,0.125 -S3D1,2048,0.125 -S3D2,2048,0.125 -S4D1,2048,0.125 -S4D2,2048,0.125 -S1D1,2049,0.125 -S1D2,2049,0.125 -S2D1,2049,0.125 -S2D2,2049,0.125 -S3D1,2049,0.125 -S3D2,2049,0.125 -S4D1,2049,0.125 -S4D2,2049,0.125 -S1D1,2050,0.125 -S1D2,2050,0.125 -S2D1,2050,0.125 -S2D2,2050,0.125 -S3D1,2050,0.125 -S3D2,2050,0.125 -S4D1,2050,0.125 -S4D2,2050,0.125 -S1D1,2051,0.125 -S1D2,2051,0.125 -S2D1,2051,0.125 -S2D2,2051,0.125 -S3D1,2051,0.125 -S3D2,2051,0.125 -S4D1,2051,0.125 -S4D2,2051,0.125 -S1D1,2052,0.125 -S1D2,2052,0.125 -S2D1,2052,0.125 -S2D2,2052,0.125 -S3D1,2052,0.125 -S3D2,2052,0.125 -S4D1,2052,0.125 -S4D2,2052,0.125 -S1D1,2053,0.125 -S1D2,2053,0.125 -S2D1,2053,0.125 -S2D2,2053,0.125 -S3D1,2053,0.125 -S3D2,2053,0.125 -S4D1,2053,0.125 -S4D2,2053,0.125 -S1D1,2054,0.125 -S1D2,2054,0.125 -S2D1,2054,0.125 -S2D2,2054,0.125 -S3D1,2054,0.125 -S3D2,2054,0.125 -S4D1,2054,0.125 -S4D2,2054,0.125 -S1D1,2055,0.125 -S1D2,2055,0.125 -S2D1,2055,0.125 -S2D2,2055,0.125 -S3D1,2055,0.125 -S3D2,2055,0.125 -S4D1,2055,0.125 -S4D2,2055,0.125 -S1D1,2056,0.125 -S1D2,2056,0.125 -S2D1,2056,0.125 -S2D2,2056,0.125 -S3D1,2056,0.125 -S3D2,2056,0.125 -S4D1,2056,0.125 -S4D2,2056,0.125 -S1D1,2057,0.125 -S1D2,2057,0.125 -S2D1,2057,0.125 -S2D2,2057,0.125 -S3D1,2057,0.125 -S3D2,2057,0.125 -S4D1,2057,0.125 -S4D2,2057,0.125 -S1D1,2058,0.125 -S1D2,2058,0.125 -S2D1,2058,0.125 -S2D2,2058,0.125 -S3D1,2058,0.125 -S3D2,2058,0.125 -S4D1,2058,0.125 -S4D2,2058,0.125 -S1D1,2059,0.125 -S1D2,2059,0.125 -S2D1,2059,0.125 -S2D2,2059,0.125 -S3D1,2059,0.125 -S3D2,2059,0.125 -S4D1,2059,0.125 -S4D2,2059,0.125 -S1D1,2060,0.125 -S1D2,2060,0.125 -S2D1,2060,0.125 -S2D2,2060,0.125 -S3D1,2060,0.125 -S3D2,2060,0.125 -S4D1,2060,0.125 -S4D2,2060,0.125 -S1D1,2061,0.125 -S1D2,2061,0.125 -S2D1,2061,0.125 -S2D2,2061,0.125 -S3D1,2061,0.125 -S3D2,2061,0.125 -S4D1,2061,0.125 -S4D2,2061,0.125 -S1D1,2062,0.125 -S1D2,2062,0.125 -S2D1,2062,0.125 -S2D2,2062,0.125 -S3D1,2062,0.125 -S3D2,2062,0.125 -S4D1,2062,0.125 -S4D2,2062,0.125 -S1D1,2063,0.125 -S1D2,2063,0.125 -S2D1,2063,0.125 -S2D2,2063,0.125 -S3D1,2063,0.125 -S3D2,2063,0.125 -S4D1,2063,0.125 -S4D2,2063,0.125 -S1D1,2064,0.125 -S1D2,2064,0.125 -S2D1,2064,0.125 -S2D2,2064,0.125 -S3D1,2064,0.125 -S3D2,2064,0.125 -S4D1,2064,0.125 -S4D2,2064,0.125 -S1D1,2065,0.125 -S1D2,2065,0.125 -S2D1,2065,0.125 -S2D2,2065,0.125 -S3D1,2065,0.125 -S3D2,2065,0.125 -S4D1,2065,0.125 -S4D2,2065,0.125 -S1D1,2066,0.125 -S1D2,2066,0.125 -S2D1,2066,0.125 -S2D2,2066,0.125 -S3D1,2066,0.125 -S3D2,2066,0.125 -S4D1,2066,0.125 -S4D2,2066,0.125 -S1D1,2067,0.125 -S1D2,2067,0.125 -S2D1,2067,0.125 -S2D2,2067,0.125 -S3D1,2067,0.125 -S3D2,2067,0.125 -S4D1,2067,0.125 -S4D2,2067,0.125 -S1D1,2068,0.125 -S1D2,2068,0.125 -S2D1,2068,0.125 -S2D2,2068,0.125 -S3D1,2068,0.125 -S3D2,2068,0.125 -S4D1,2068,0.125 -S4D2,2068,0.125 -S1D1,2069,0.125 -S1D2,2069,0.125 -S2D1,2069,0.125 -S2D2,2069,0.125 -S3D1,2069,0.125 -S3D2,2069,0.125 -S4D1,2069,0.125 -S4D2,2069,0.125 -S1D1,2070,0.125 -S1D2,2070,0.125 -S2D1,2070,0.125 -S2D2,2070,0.125 -S3D1,2070,0.125 -S3D2,2070,0.125 -S4D1,2070,0.125 -S4D2,2070,0.125 diff --git a/examples/Example_Two/data/default_values.csv b/examples/Example_Two/data/default_values.csv deleted file mode 100644 index c677fb9..0000000 --- a/examples/Example_Two/data/default_values.csv +++ /dev/null @@ -1,54 +0,0 @@ -name,default_value -AccumulatedAnnualDemand,0 -AnnualEmissionLimit,-1 -AnnualExogenousEmission,0 -AvailabilityFactor,1 -CapacityFactor,1 -CapacityOfOneTechnologyUnit,0 -CapacityToActivityUnit,1 -CapitalCost,0.1 -CapitalCostStorage,0 -Conversionld,0 -Conversionlh,0 -Conversionls,0 -DaysInDayType,7 -DaySplit,0.00137 -DepreciationMethod,1 -DiscountRate,0.05 -DiscountRateStorage,0.05 -EmissionActivityRatio,0 -EmissionsPenalty,0 -FixedCost,0 -InputActivityRatio,0 -MinStorageCharge,0 -ModelPeriodEmissionLimit,-1 -ModelPeriodExogenousEmission,0 -OperationalLife,1 -OperationalLifeStorage,0 -OutputActivityRatio,0 -REMinProductionTarget,0 -ReserveMargin,1 -ReserveMarginTagFuel,0 -ReserveMarginTagTechnology,0 -ResidualCapacity,0 -ResidualStorageCapacity,999 -RETagFuel,0 -RETagTechnology,0 -SpecifiedAnnualDemand,0 -SpecifiedDemandProfile,0 -StorageLevelStart,0 -StorageMaxChargeRate,0 -StorageMaxDischargeRate,0 -TechnologyFromStorage,0 -TechnologyToStorage,0 -TotalAnnualMaxCapacity,-1 -TotalAnnualMaxCapacityInvestment,-1 -TotalAnnualMinCapacity,0 -TotalAnnualMinCapacityInvestment,0 -TotalTechnologyAnnualActivityLowerLimit,0 -TotalTechnologyAnnualActivityUpperLimit,-1 -TotalTechnologyModelPeriodActivityLowerLimit,0 -TotalTechnologyModelPeriodActivityUpperLimit,-1 -TradeRoute,0 -VariableCost,0.001 -YearSplit,0 diff --git a/examples/Example_Two/osemosys.txt b/examples/Example_Two/osemosys.txt deleted file mode 100644 index 9d2fd45..0000000 --- a/examples/Example_Two/osemosys.txt +++ /dev/null @@ -1,1130 +0,0 @@ -# OSeMOSYS FAST -# -# Open Source energy MOdeling SYStem -# -# ============================================================================ -# -# Copyright [2010-2015] [OSeMOSYS Forum steering committee see: www.osemosys.org] -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================ -# -# To run OSeMOSYS, enter the following line into your command prompt after replacing FILEPATH & YOURDATAFILE with your folder structure and data file name: -# -# C:\...FILEPATH...\glpsol -m C:\...FILEPATH...\OSeMOSYS_2016_08_01_short.txt -d C:\...FILEPATH...\YOURDATAFILE.txt -o C:\...FILEPATH...\Results.txt -# -# Alternatively, install GUSEK (http://gusek.sourceforge.net/gusek.html) and run the model within this integrated development environment (IDE). -# To do so, open the .dat file and select "Use External .dat file" from the Options menu. Then change to the model file and select the "Go" icon or press F5. -# -# ######################################### -###################### Model Definition ############# -# ######################################### -# -############### -# Sets # -############### -# - -set YEAR; -set TECHNOLOGY; -set TIMESLICE; -set FUEL; -set EMISSION; -set MODE_OF_OPERATION; -set REGION; -set SEASON; -set DAYTYPE; -set DAILYTIMEBRACKET; -set FLEXIBLEDEMANDTYPE; -set STORAGE; -set MODEperTECHNOLOGY{TECHNOLOGY} within MODE_OF_OPERATION; -set MODExTECHNOLOGYperFUELout{FUEL} within MODE_OF_OPERATION cross TECHNOLOGY; -set MODExTECHNOLOGYperFUELin{FUEL} within MODE_OF_OPERATION cross TECHNOLOGY; -set MODExTECHNOLOGYperSTORAGEto{STORAGE} within MODE_OF_OPERATION cross TECHNOLOGY; -set MODExTECHNOLOGYperSTORAGEfrom{STORAGE} within MODE_OF_OPERATION cross TECHNOLOGY; -set MODExTECHNOLOGYperEMISSION{e in EMISSION} within MODE_OF_OPERATION cross TECHNOLOGY; -# -##################### -# Parameters # -##################### -# -######## Global ############# -# -param ResultsPath, symbolic default 'results'; -param YearSplit{l in TIMESLICE, y in YEAR}; -param DiscountRate{r in REGION}; -param DiscountRateIdv{r in REGION, t in TECHNOLOGY}, default DiscountRate[r]; - -param DiscountFactor{r in REGION, y in YEAR} := - (1 + DiscountRate[r]) ^ (y - min{yy in YEAR} min(yy) + 0.0); -param DiscountFactorMid{r in REGION, y in YEAR} := - (1 + DiscountRate[r]) ^ (y - min{yy in YEAR} min(yy) + 0.5); - -param OperationalLife{r in REGION, t in TECHNOLOGY}; - -param CapitalRecoveryFactor{r in REGION, t in TECHNOLOGY} := - (1 - (1 + DiscountRateIdv[r,t])^(-1))/(1 - (1 + DiscountRateIdv[r,t])^(-(OperationalLife[r,t]))); -param PvAnnuity{r in REGION, t in TECHNOLOGY} := - (1 - (1 + DiscountRate[r])^(-(OperationalLife[r,t]))) * (1 + DiscountRate[r]) / DiscountRate[r]; - -param DiscountRateStorage{r in REGION, s in STORAGE}; -param DiscountFactorStorage{r in REGION, s in STORAGE, y in YEAR} := - (1 + DiscountRateStorage[r,s]) ^ (y - min{yy in YEAR} min(yy) + 0.0); - - -param DaySplit{lh in DAILYTIMEBRACKET, y in YEAR}; -param Conversionls{l in TIMESLICE, ls in SEASON} binary; -param Conversionld{l in TIMESLICE, ld in DAYTYPE} binary; -param Conversionlh{l in TIMESLICE, lh in DAILYTIMEBRACKET} binary; -param DaysInDayType{ls in SEASON, ld in DAYTYPE, y in YEAR}; -param TradeRoute {r in REGION, rr in REGION, f in FUEL, y in YEAR} binary; -param DepreciationMethod{r in REGION}; -# -######## Demands ############# -# -param SpecifiedAnnualDemand{r in REGION, f in FUEL, y in YEAR}; -param SpecifiedDemandProfile{r in REGION, f in FUEL, l in TIMESLICE, y in YEAR}; -param AccumulatedAnnualDemand{r in REGION, f in FUEL, y in YEAR}; -# -######### Performance ############# -# -param CapacityToActivityUnit{r in REGION, t in TECHNOLOGY}; -param TechWithCapacityNeededToMeetPeakTS{r in REGION, t in TECHNOLOGY}; -param CapacityFactor{r in REGION, t in TECHNOLOGY, l in TIMESLICE, y in YEAR}; -param AvailabilityFactor{r in REGION, t in TECHNOLOGY, y in YEAR}; - -param ResidualCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}; -param InputActivityRatio{r in REGION, t in TECHNOLOGY, f in FUEL, m in MODE_OF_OPERATION, y in YEAR}; -param OutputActivityRatio{r in REGION, t in TECHNOLOGY, f in FUEL, m in MODE_OF_OPERATION, y in YEAR}; -# -######### Technology Costs ############# -# -param CapitalCost{r in REGION, t in TECHNOLOGY, y in YEAR}; -param VariableCost{r in REGION, t in TECHNOLOGY, m in MODE_OF_OPERATION, y in YEAR}; -param FixedCost{r in REGION, t in TECHNOLOGY, y in YEAR}; -# -######### Storage ############# -# -param TechnologyToStorage{r in REGION, t in TECHNOLOGY, s in STORAGE, m in MODE_OF_OPERATION}; -param TechnologyFromStorage{r in REGION, t in TECHNOLOGY, s in STORAGE, m in MODE_OF_OPERATION}; -param StorageLevelStart{r in REGION, s in STORAGE}; -param StorageMaxChargeRate{r in REGION, s in STORAGE}; -param StorageMaxDischargeRate{r in REGION, s in STORAGE}; -param MinStorageCharge{r in REGION, s in STORAGE, y in YEAR}; -param OperationalLifeStorage{r in REGION, s in STORAGE}; -param CapitalCostStorage{r in REGION, s in STORAGE, y in YEAR}; -param ResidualStorageCapacity{r in REGION, s in STORAGE, y in YEAR}; -# -######### Capacity Constraints ############# -# -param CapacityOfOneTechnologyUnit{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalAnnualMaxCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalAnnualMinCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}; -# -######### Investment Constraints ############# -# -param TotalAnnualMaxCapacityInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalAnnualMinCapacityInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}; -# -######### Activity Constraints ############# -# -param TotalTechnologyAnnualActivityUpperLimit{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalTechnologyAnnualActivityLowerLimit{r in REGION, t in TECHNOLOGY, y in YEAR}; -param TotalTechnologyModelPeriodActivityUpperLimit{r in REGION, t in TECHNOLOGY}; -param TotalTechnologyModelPeriodActivityLowerLimit{r in REGION, t in TECHNOLOGY}; -# -######### Reserve Margin ############# - -param ReserveMarginTagTechnology{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0 <= 1; -param ReserveMarginTagFuel{r in REGION, f in FUEL, y in YEAR} binary; -param ReserveMargin{r in REGION, y in YEAR}; -# -######### RE Generation Target ############# -# -param RETagTechnology{r in REGION, t in TECHNOLOGY, y in YEAR} binary; -param RETagFuel{r in REGION, f in FUEL, y in YEAR} binary; -param REMinProductionTarget{r in REGION, y in YEAR}; -# -######### Emissions & Penalties ############# -# -param EmissionActivityRatio{r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODE_OF_OPERATION, y in YEAR}; -param EmissionsPenalty{r in REGION, e in EMISSION, y in YEAR}; -param AnnualExogenousEmission{r in REGION, e in EMISSION, y in YEAR}; -param AnnualEmissionLimit{r in REGION, e in EMISSION, y in YEAR}; -param ModelPeriodExogenousEmission{r in REGION, e in EMISSION}; -param ModelPeriodEmissionLimit{r in REGION, e in EMISSION}; -# -############## -## -######################################################################## -# Check statements to carry out simple debugging in model parameters # -######################################################################## - -##### 'Capacity investment' check ##### -printf "Checking Max and Min capcity-investment bounds for r in REGION, t in TECHNOLOGY, y in YEAR \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR:TotalAnnualMaxCapacityInvestment[r, t, y]<>-1 && TotalAnnualMinCapacityInvestment[r, t, y]<>0}: TotalAnnualMaxCapacityInvestment[r, t, y]>=TotalAnnualMinCapacityInvestment[r, t, y]; -# -##### 'Annual Activity' check ##### -printf "Checking Annual activity limits for r in REGION, t in TECHNOLOGY, y in YEAR \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR:TotalTechnologyAnnualActivityUpperLimit[r,t,y]<>-1 && TotalTechnologyAnnualActivityUpperLimit[r,t,y]<>0 && TotalTechnologyAnnualActivityLowerLimit[r,t,y]<>0}: TotalTechnologyAnnualActivityUpperLimit[r,t,y]>=TotalTechnologyAnnualActivityLowerLimit[r,t,y]; -# -##### 'Capacity' check 1 ##### -printf "Checking Residual and TotalAnnualMax Capacity for r in REGION, t in TECHNOLOGY, y in YEAR \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMaxCapacity[r,t,y]<>-1 && ResidualCapacity[r,t,y]<>0}: TotalAnnualMaxCapacity[r,t,y] >= ResidualCapacity[r,t,y]; -# -##### 'Capacity' check 2 ##### -printf "Checking Residual, Total annual maxcap and mincap investments for all Region, Tech and Year \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR:TotalAnnualMaxCapacity[r,t,y]<>-1 && ResidualCapacity[r,t,y]<>0}: TotalAnnualMaxCapacity[r,t,y]>= ResidualCapacity[r,t,y] + TotalAnnualMinCapacityInvestment[r,t,y]; -# -##### 'Minimum Annual activity' check ##### -printf "Checking Annual production by technology bounds for r in REGION, t in TECHNOLOGY, y in YEAR \n"; -# -check{r in REGION, t in TECHNOLOGY, y in YEAR:TotalAnnualMaxCapacity[r,t,y]<>0 && TotalAnnualMaxCapacity[r,t,y] <> -1 && TotalTechnologyAnnualActivityLowerLimit[r,t,y]<>0 && AvailabilityFactor[r,t,y]<>0 && CapacityToActivityUnit[r,t]<>0}: sum{l in TIMESLICE: CapacityFactor[r,t,l,y]<>0 && YearSplit[l,y]<>0}(CapacityFactor[r,t,l,y]*YearSplit[l,y])*TotalAnnualMaxCapacity[r,t,y]* AvailabilityFactor[r,t,y]*CapacityToActivityUnit[r,t] >= TotalTechnologyAnnualActivityLowerLimit[r,t,y]; -# -##### 'Time Slice' check ##### -printf "Checking TimeSlices/YearSplits for y in YEAR \n"; -# -check{y in YEAR}: sum{l in TIMESLICE} YearSplit[l,y] >= 0.98; -check{y in YEAR}: sum{l in TIMESLICE} YearSplit[l,y] <= 1.02; -# -##### 'Model period activity limit' check ##### -printf "Checking Model period activity bounds for r in REGION, t in TECHNOLOGY \n"; -# -check{r in REGION, t in TECHNOLOGY: TotalTechnologyModelPeriodActivityLowerLimit[r,t]<>0}:TotalTechnologyModelPeriodActivityLowerLimit[r,t] >= sum{y in YEAR: TotalTechnologyAnnualActivityLowerLimit[r,t,y] <>0}TotalTechnologyAnnualActivityLowerLimit[r,t,y]; - -# - -########## Fuel->Technology Connections ############# -#set MODExTECHNOLOGYperFUELout{f in FUEL} within MODE_OF_OPERATION cross TECHNOLOGY -# := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION, y in YEAR} OutputActivityRatio[r,t,f,m,y] <> 0}; -#set MODExTECHNOLOGYperFUELin{f in FUEL} within MODE_OF_OPERATION cross TECHNOLOGY -# := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION, y in YEAR} InputActivityRatio[r,t,f,m,y] <> 0}; - -#set MODExTECHNOLOGYperSTORAGEto{s in STORAGE} within MODE_OF_OPERATION cross TECHNOLOGY -# := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION} TechnologyToStorage[r,t,s,m] > 0}; -#set MODExTECHNOLOGYperSTORAGEfrom{s in STORAGE} within MODE_OF_OPERATION cross TECHNOLOGY -# := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION} TechnologyFromStorage[r,t,s,m] > 0}; - -set TIMESLICEofSEASON{ls in SEASON} within TIMESLICE := {l in TIMESLICE : Conversionls[l,ls] = 1}; -set TIMESLICEofDAYTYPE{ld in DAYTYPE} within TIMESLICE := {l in TIMESLICE : Conversionld[l,ld] = 1}; -set TIMESLICEofDAILYTIMEBRACKET{lh in DAILYTIMEBRACKET} within TIMESLICE := {l in TIMESLICE : Conversionlh[l,lh] = 1}; -set TIMESLICEofSDB{ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET} within TIMESLICE := TIMESLICEofSEASON[ls] inter TIMESLICEofDAYTYPE[ld] inter TIMESLICEofDAILYTIMEBRACKET[lh]; - -#set MODExTECHNOLOGYperEMISSION{e in EMISSION} within MODE_OF_OPERATION cross TECHNOLOGY -# := {m in MODE_OF_OPERATION, t in TECHNOLOGY : exists{r in REGION, y in YEAR} EmissionActivityRatio[r,t,e,m,y] <> 0}; - -#set MODEperTECHNOLOGY{t in TECHNOLOGY} within MODE_OF_OPERATION -# := {m in MODE_OF_OPERATION : (exists {f in FUEL} (m, t) in MODExTECHNOLOGYperFUELout[f] union MODExTECHNOLOGYperFUELin[f]) or -# (exists {s in STORAGE} (m, t) in MODExTECHNOLOGYperSTORAGEto[s] union MODExTECHNOLOGYperSTORAGEfrom[s]) or -# (exists {e in EMISSION} (m, t) in MODExTECHNOLOGYperEMISSION[e])}; - -# -###################### -# Model Variables # -###################### -# -######## Demands ############# -# -#var RateOfDemand{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}>= 0; -#var Demand{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}>= 0; -# -######## Storage ############# -# -var NewStorageCapacity{r in REGION, s in STORAGE, y in YEAR} >=0; -var SalvageValueStorage{r in REGION, s in STORAGE, y in YEAR} >=0; -var StorageLevelYearStart{r in REGION, s in STORAGE, y in YEAR} >=0; -var StorageLevelYearFinish{r in REGION, s in STORAGE, y in YEAR} >=0; -var StorageLevelSeasonStart{r in REGION, s in STORAGE, ls in SEASON, y in YEAR} >=0; -var StorageLevelDayTypeStart{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, y in YEAR} >=0; -var StorageLevelDayTypeFinish{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, y in YEAR} >=0; -#var RateOfStorageCharge{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}; -#var RateOfStorageDischarge{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}; -#var NetChargeWithinYear{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}; -#var NetChargeWithinDay{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}; -#var StorageLowerLimit{r in REGION, s in STORAGE, y in YEAR}>=0; -#var StorageUpperLimit{r in REGION, s in STORAGE, y in YEAR} >=0; -#var AccumulatedNewStorageCapacity{r in REGION, s in STORAGE, y in YEAR} >=0; -#var CapitalInvestmentStorage{r in REGION, s in STORAGE, y in YEAR} >=0; -#var DiscountedCapitalInvestmentStorage{r in REGION, s in STORAGE, y in YEAR} >=0; -#var DiscountedSalvageValueStorage{r in REGION, s in STORAGE, y in YEAR} >=0; -#var TotalDiscountedStorageCost{r in REGION, s in STORAGE, y in YEAR} >=0; -# -######### Capacity Variables ############# -# -var NumberOfNewTechnologyUnits{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0,integer; -var NewCapacity{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0; -#var AccumulatedNewCapacity{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0; -var TotalCapacityAnnual{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -# -######### Activity Variables ############# -# -var RateOfActivity{r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR} >= 0; -# var UseByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -var Trade{r in REGION, rr in REGION, l in TIMESLICE, f in FUEL, y in YEAR}; -var UseAnnual{r in REGION, f in FUEL, y in YEAR}>= 0; -#var RateOfTotalActivity{r in REGION, t in TECHNOLOGY, l in TIMESLICE, y in YEAR} >= 0; -#var TotalTechnologyAnnualActivity{r in REGION, t in TECHNOLOGY, y in YEAR} >= 0; -#var TotalAnnualTechnologyActivityByMode{r in REGION, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR}>=0; -#var RateOfProductionByTechnologyByMode{r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], f in FUEL, y in YEAR}>= 0; -#var RateOfProductionByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -#var ProductionByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -#var ProductionByTechnologyAnnual{r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -#var RateOfProduction{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR} >= 0; -#var Production{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR} >= 0; -#var RateOfUseByTechnologyByMode{r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], f in FUEL, y in YEAR}>= 0; -#var RateOfUseByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR} >= 0; -#var UseByTechnologyAnnual{r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR}>= 0; -#var RateOfUse{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}>= 0; -#var Use{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}>= 0; -#var TradeAnnual{r in REGION, rr in REGION, f in FUEL, y in YEAR}; -#var ProductionAnnual{r in REGION, f in FUEL, y in YEAR}>= 0; -# -######### Costing Variables ############# -# -#var CapitalInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -####var DiscountedCapitalInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -# -var VariableOperatingCost{r in REGION, t in TECHNOLOGY, l in TIMESLICE, y in YEAR}>= 0; -var SalvageValue{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -var DiscountedSalvageValue{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -var OperatingCost{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var DiscountedOperatingCost{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var AnnualVariableOperatingCost{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var AnnualFixedOperatingCost{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var TotalDiscountedCostByTechnology{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -var TotalDiscountedCost{r in REGION, y in YEAR}>= 0; -#var ModelPeriodCostByRegion{r in REGION} >= 0; -# -######### Reserve Margin ############# -# -#var TotalCapacityInReserveMargin{r in REGION, y in YEAR}>= 0; -#var DemandNeedingReserveMargin{r in REGION,l in TIMESLICE, y in YEAR}>= 0; -# -######### RE Gen Target ############# -# -#var TotalREProductionAnnual{r in REGION, y in YEAR}; -#var RETotalProductionOfTargetFuelAnnual{r in REGION, y in YEAR}; -# -#var TotalTechnologyModelPeriodActivity{r in REGION, t in TECHNOLOGY}; -# -######### Emissions ############# -# -var DiscountedTechnologyEmissionsPenalty{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -var ModelPeriodEmissions{r in REGION, e in EMISSION}>= 0; -#var AnnualTechnologyEmissionByMode{r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODEperTECHNOLOGY[t], y in YEAR}>= 0; -#var AnnualTechnologyEmission{r in REGION, t in TECHNOLOGY, e in EMISSION, y in YEAR}>= 0; -#var AnnualTechnologyEmissionPenaltyByEmission{r in REGION, t in TECHNOLOGY, e in EMISSION, y in YEAR}>= 0; -#var AnnualTechnologyEmissionsPenalty{r in REGION, t in TECHNOLOGY, y in YEAR}>= 0; -#var AnnualEmissions{r in REGION, e in EMISSION, y in YEAR}>= 0; -# -# table data IN "CSV" "data.csv": s <- [FROM,TO], d~DISTANCE, c~COST; -# table capacity IN "CSV" "SpecifiedAnnualDemand.csv": [YEAR, FUEL, REGION], SpecifiedAnnualDemand~ColumnNameInCSVSheet; -# -###################### -# Objective Function # -###################### -# - -minimize cost: sum{r in REGION, t in TECHNOLOGY, y in YEAR} - (((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + - sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} - RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y]) / DiscountFactorMid[r,y] + - CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] / DiscountFactor[r,y] + - DiscountedTechnologyEmissionsPenalty[r,t,y] - DiscountedSalvageValue[r,t,y]) + - sum{s in STORAGE} (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / DiscountFactor[r,y] - - CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / DiscountFactor[r,y])); - -# -##################### -# Constraints # -##################### -# -#s.t. EQ_SpecifiedDemand{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] / YearSplit[l,y]=RateOfDemand[r,l,f,y]; -# -######### Capacity Adequacy A ############# -# -#s.t. CAa1_TotalNewCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}:AccumulatedNewCapacity[r,t,y] = sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy]; -s.t. CAa2_TotalAnnualCapacity{r in REGION, t in TECHNOLOGY, y in YEAR}: ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) = TotalCapacityAnnual[r,t,y]; -#s.t. CAa3_TotalActivityOfEachTechnology{r in REGION, t in TECHNOLOGY, l in TIMESLICE, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y] = RateOfTotalActivity[r,t,l,y]; -s.t. CAa4_Constraint_Capacity{r in REGION, l in TIMESLICE, t in TECHNOLOGY, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y] <= ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*CapacityFactor[r,t,l,y]*CapacityToActivityUnit[r,t]; -s.t. CAa5_TotalNewCapacity{r in REGION, t in TECHNOLOGY, y in YEAR: CapacityOfOneTechnologyUnit[r,t,y]<>0}: CapacityOfOneTechnologyUnit[r,t,y]*NumberOfNewTechnologyUnits[r,t,y] = NewCapacity[r,t,y]; -# -# Note that the PlannedMaintenance equation below ensures that all other technologies have a capacity great enough to at least meet the annual average. -# -######### Capacity Adequacy B ############# -# -s.t. CAb1_PlannedMaintenance{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{l in TIMESLICE} sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] <= sum{l in TIMESLICE} (((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*CapacityFactor[r,t,l,y]*YearSplit[l,y])* AvailabilityFactor[r,t,y]*CapacityToActivityUnit[r,t]; -# -######### Energy Balance A ############# -# -#s.t. EBa1_RateOfFuelProduction1{r in REGION, l in TIMESLICE, f in FUEL, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR}: RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] = RateOfProductionByTechnologyByMode[r,l,t,m,f,y]; -#s.t. EBa2_RateOfFuelProduction2{r in REGION, l in TIMESLICE, f in FUEL, t in TECHNOLOGY, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] = RateOfProductionByTechnology[r,l,t,f,y] ; -#s.t. EBa3_RateOfFuelProduction3{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] = RateOfProduction[r,l,f,y]; -#s.t. EBa4_RateOfFuelUse1{r in REGION, l in TIMESLICE, f in FUEL, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR}: RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] = RateOfUseByTechnologyByMode[r,l,t,m,f,y]; -#s.t. EBa5_RateOfFuelUse2{r in REGION, l in TIMESLICE, f in FUEL, t in TECHNOLOGY, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] = RateOfUseByTechnology[r,l,t,f,y]; -#s.t. EBa6_RateOfFuelUse3{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELin[f]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] = RateOfUse[r,l,f,y]; -#s.t. EBa7_EnergyBalanceEachTS1{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = Production[r,l,f,y]; -#s.t. EBa8_EnergyBalanceEachTS2{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELin[f]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = Use[r,l,f,y]; -# s.t. EBa9_EnergyBalanceEachTS3{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] = Demand[r,l,f,y]; -s.t. EBa10_EnergyBalanceEachTS4{r in REGION, rr in REGION, l in TIMESLICE, f in FUEL, y in YEAR: - TradeRoute[r,rr,f,y] <> 0}: - Trade[r,rr,l,f,y] - = - -Trade[rr,r,l,f,y]; -s.t. EBa11_EnergyBalanceEachTS5{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >= SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] + sum{(m,t) in MODExTECHNOLOGYperFUELin[f]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] + sum{rr in REGION} Trade[r,rr,l,f,y]*TradeRoute[r,rr,f,y]; -# -######### Energy Balance B ############# -# -#s.t. EBb1_EnergyBalanceEachYear1{r in REGION, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = ProductionAnnual[r,f,y]; -#s.t. EBb2_EnergyBalanceEachYear2{r in REGION, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELin[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = UseAnnual[r,f,y]; -#s.t. EBb3_EnergyBalanceEachYear3{r in REGION, rr in REGION, f in FUEL, y in YEAR}: sum{l in TIMESLICE} Trade[r,rr,l,f,y] = TradeAnnual[r,rr,f,y]; -s.t. EBb4_EnergyBalanceEachYear4{r in REGION, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >= sum{(m,t) in MODExTECHNOLOGYperFUELin[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] + sum{l in TIMESLICE, rr in REGION} Trade[r,rr,l,f,y]*TradeRoute[r,rr,f,y] + AccumulatedAnnualDemand[r,f,y]; -# -######### Accounting Technology Production/Use ############# -# -#s.t. Acc1_FuelProductionByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] = ProductionByTechnology[r,l,t,f,y]; -#s.t. Acc2_FuelUseByTechnology{r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR}: sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] * YearSplit[l,y] = UseByTechnology[r,l,t,f,y]; -#s.t. Acc3_AverageAnnualRateOfActivity{r in REGION, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR}: sum{l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = TotalAnnualTechnologyActivityByMode[r,t,m,y]; -#s.t. Acc4_ModelPeriodCostByRegion{r in REGION}:sum{t in TECHNOLOGY, y in YEAR}(((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y])/DiscountFactorMid[r,y]+CapitalCost[r,t,y] * NewCapacity[r,t,y]/DiscountFactor[r,y]+DiscountedTechnologyEmissionsPenalty[r,t,y]-DiscountedSalvageValue[r,t,y]) + sum{s in STORAGE} (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y]-CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y])) = ModelPeriodCostByRegion[r]; - -# -######### Storage Equations ############# -# -#s.t. S1_RateOfStorageCharge{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], l in TIMESLICE:TechnologyToStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh] = RateOfStorageCharge[r,s,ls,ld,lh,y]; -#s.t. S2_RateOfStorageDischarge{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], l in TIMESLICE:TechnologyFromStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh] = RateOfStorageDischarge[r,s,ls,ld,lh,y]; -#s.t. S3_NetChargeWithinYear{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{l in TIMESLICE:Conversionls[l,ls]>0&&Conversionld[l,ld]>0&&Conversionlh[l,lh]>0} (sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t]:TechnologyToStorage[r,t,s,m]>0} (RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh]) - (sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t]:TechnologyFromStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh])) * YearSplit[l,y] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh] = NetChargeWithinYear[r,s,ls,ld,lh,y]; -#s.t. S4_NetChargeWithinDay{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: ((sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], l in TIMESLICE:TechnologyToStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh]) - (sum{t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], l in TIMESLICE:TechnologyFromStorage[r,t,s,m]>0} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m] * Conversionls[l,ls] * Conversionld[l,ld] * Conversionlh[l,lh])) * DaySplit[lh,y] = NetChargeWithinDay[r,s,ls,ld,lh,y]; -s.t. S5_and_S6_StorageLevelYearStart{r in REGION, s in STORAGE, y in YEAR}: - if y = min{yy in YEAR} min(yy) - then StorageLevelStart[r,s] - else StorageLevelYearStart[r,s,y-1] + sum{ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, l in TIMESLICEofSDB[ls,ld,lh]} (sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s]} (RateOfActivity[r,l,t,m,y-1] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s]} RateOfActivity[r,l,t,m,y-1] * TechnologyFromStorage[r,t,s,m])) * YearSplit[l,y-1] - = StorageLevelYearStart[r,s,y]; -s.t. S7_and_S8_StorageLevelYearFinish{r in REGION, s in STORAGE, y in YEAR}: - if y < max{yy in YEAR} max(yy) - then StorageLevelYearStart[r,s,y+1] - else StorageLevelYearStart[r,s,y] + sum{ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, l in TIMESLICEofSDB[ls,ld,lh]} (sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s]} (RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * YearSplit[l,y] - = StorageLevelYearFinish[r,s,y]; -s.t. S9_and_S10_StorageLevelSeasonStart{r in REGION, s in STORAGE, ls in SEASON, y in YEAR}: - if ls = min{lsls in SEASON} min(lsls) - then StorageLevelYearStart[r,s,y] - else StorageLevelSeasonStart[r,s,ls-1,y] + sum{ld in DAYTYPE, lh in DAILYTIMEBRACKET, l in TIMESLICEofSDB[ls-1,ld,lh]} (sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s]} (RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * YearSplit[l,y] - = StorageLevelSeasonStart[r,s,ls,y]; -s.t. S11_and_S12_StorageLevelDayTypeStart{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, y in YEAR}: - if ld = min{ldld in DAYTYPE} min(ldld) - then StorageLevelSeasonStart[r,s,ls,y] - else StorageLevelDayTypeStart[r,s,ls,ld-1,y] + sum{lh in DAILYTIMEBRACKET} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld-1,lh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld-1,lh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lh,y]) * DaysInDayType[ls,ld-1,y] - = StorageLevelDayTypeStart[r,s,ls,ld,y]; -s.t. S13_and_S14_and_S15_StorageLevelDayTypeFinish{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, y in YEAR}: - if ls = max{lsls in SEASON} max(lsls) && ld = max{ldld in DAYTYPE} max(ldld) - then StorageLevelYearFinish[r,s,y] - else if ld = max{ldld in DAYTYPE} max(ldld) - then StorageLevelSeasonStart[r,s,ls+1,y] - else StorageLevelDayTypeFinish[r,s,ls,ld+1,y] - sum{lh in DAILYTIMEBRACKET} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld+1,lh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld+1,lh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lh,y]) * DaysInDayType[ls,ld+1,y] - = StorageLevelDayTypeFinish[r,s,ls,ld,y]; -# -########## Storage Constraints ############# -# -s.t. SC1_LowerLimit_BeginningOfDailyTimeBracketOfFirstInstanceOfDayTypeInFirstWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: - 0 <= (StorageLevelDayTypeStart[r,s,ls,ld,y]+sum{lhlh in DAILYTIMEBRACKET:lh-lhlh>0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]); -s.t. SC1_UpperLimit_BeginningOfDailyTimeBracketOfFirstInstanceOfDayTypeInFirstWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: - (StorageLevelDayTypeStart[r,s,ls,ld,y]+sum{lhlh in DAILYTIMEBRACKET:lh-lhlh>0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) <= 0; -s.t. SC2_LowerLimit_EndOfDailyTimeBracketOfLastInstanceOfDayTypeInFirstWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: 0 <= if ld > min{ldld in DAYTYPE} min(ldld) then (StorageLevelDayTypeStart[r,s,ls,ld,y]-sum{lhlh in DAILYTIMEBRACKET:lh-lhlh<0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]); -s.t. SC2_UpperLimit_EndOfDailyTimeBracketOfLastInstanceOfDayTypeInFirstWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: if ld > min{ldld in DAYTYPE} min(ldld) then (StorageLevelDayTypeStart[r,s,ls,ld,y]-sum{lhlh in DAILYTIMEBRACKET:lh-lhlh<0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) <= 0; -s.t. SC3_LowerLimit_EndOfDailyTimeBracketOfLastInstanceOfDayTypeInLastWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: 0 <= (StorageLevelDayTypeFinish[r,s,ls,ld,y] - sum{lhlh in DAILYTIMEBRACKET:lh-lhlh<0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]); -s.t. SC3_UpperLimit_EndOfDailyTimeBracketOfLastInstanceOfDayTypeInLastWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: (StorageLevelDayTypeFinish[r,s,ls,ld,y] - sum{lhlh in DAILYTIMEBRACKET:lh-lhlh<0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) <= 0; -s.t. SC4_LowerLimit_BeginningOfDailyTimeBracketOfFirstInstanceOfDayTypeInLastWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: 0 <= if ld > min{ldld in DAYTYPE} min(ldld) then (StorageLevelDayTypeFinish[r,s,ls,ld-1,y]+sum{lhlh in DAILYTIMEBRACKET:lh-lhlh>0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]); -s.t. SC4_UpperLimit_BeginningOfDailyTimeBracketOfFirstInstanceOfDayTypeInLastWeekConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: if ld > min{ldld in DAYTYPE} min(ldld) then (StorageLevelDayTypeFinish[r,s,ls,ld-1,y]+sum{lhlh in DAILYTIMEBRACKET:lh-lhlh>0} (((sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m]) - (sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lhlh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m])) * DaySplit[lhlh,y]))-(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) <= 0; -s.t. SC5_MaxChargeConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperSTORAGEto[s], l in TIMESLICEofSDB[ls,ld,lh]} RateOfActivity[r,l,t,m,y] * TechnologyToStorage[r,t,s,m] <= StorageMaxChargeRate[r,s]; -s.t. SC6_MaxDischargeConstraint{r in REGION, s in STORAGE, ls in SEASON, ld in DAYTYPE, lh in DAILYTIMEBRACKET, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperSTORAGEfrom[s], l in TIMESLICEofSDB[ls,ld,lh]} RateOfActivity[r,l,t,m,y] * TechnologyFromStorage[r,t,s,m] <= StorageMaxDischargeRate[r,s]; -# -######### Storage Investments ############# -# -s.t. SI6_SalvageValueStorageAtEndOfPeriod1{r in REGION, s in STORAGE, y in YEAR: (y+OperationalLifeStorage[r,s]-1) <= (max{yy in YEAR} max(yy))}: 0 = SalvageValueStorage[r,s,y]; -#s.t. SI7_SalvageValueStorageAtEndOfPeriod2{r in REGION, s in STORAGE, y in YEAR: (DepreciationMethod[r]=1 && (y+OperationalLifeStorage[r,s]-1) > (max{yy in YEAR} max(yy)) && DiscountRateStorage[r,s]=0) || (DepreciationMethod[r]=2 && (y+OperationalLifeStorage[r,s]-1) > (max{yy in YEAR} max(yy)))}: CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]*(1-(max{yy in YEAR} max(yy) - y+1)/OperationalLifeStorage[r,s]) = SalvageValueStorage[r,s,y]; -#s.t. SI8_SalvageValueStorageAtEndOfPeriod3{r in REGION, s in STORAGE, y in YEAR: DepreciationMethod[r]=1 && (y+OperationalLifeStorage[r,s]-1) > (max{yy in YEAR} max(yy)) && DiscountRateStorage[r,s]>0}: CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]*(1-(((1+DiscountRateStorage[r,s])^(max{yy in YEAR} max(yy) - y+1)-1)/((1+DiscountRateStorage[r,s])^OperationalLifeStorage[r,s]-1))) = SalvageValueStorage[r,s,y]; -#s.t. SI1_StorageUpperLimit{r in REGION, s in STORAGE, y in YEAR}: sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y] = StorageUpperLimit[r,s,y]; -#s.t. SI2_StorageLowerLimit{r in REGION, s in STORAGE, y in YEAR}: MinStorageCharge[r,s,y]*(sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]+ResidualStorageCapacity[r,s,y]) = StorageLowerLimit[r,s,y]; -#s.t. SI3_TotalNewStorage{r in REGION, s in STORAGE, y in YEAR}: sum{yy in YEAR: y-yy < OperationalLifeStorage[r,s] && y-yy>=0} NewStorageCapacity[r,s,yy]=AccumulatedNewStorageCapacity[r,s,y]; -#s.t. SI4_UndiscountedCapitalInvestmentStorage{r in REGION, s in STORAGE, y in YEAR}: CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] = CapitalInvestmentStorage[r,s,y]; -#s.t. SI5_DiscountingCapitalInvestmentStorage{r in REGION, s in STORAGE, y in YEAR}: CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y] = DiscountedCapitalInvestmentStorage[r,s,y]; -#s.t. SI9_SalvageValueStorageDiscountedToStartYear{r in REGION, s in STORAGE, y in YEAR}: SalvageValueStorage[r,s,y]/((1+DiscountRate[r])^(max{yy in YEAR} max(yy)-min{yy in YEAR} min(yy)+1)) = DiscountedSalvageValueStorage[r,s,y]; -#s.t. SI10_TotalDiscountedCostByStorage{r in REGION, s in STORAGE, y in YEAR}: (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y]-CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactorStorage[r,s,y]) = TotalDiscountedStorageCost[r,s,y]; -# -######### Capital Costs ############# -# -#s.t. CC1_UndiscountedCapitalInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}: CapitalCost[r,t,y] * NewCapacity[r,t,y] = CapitalInvestment[r,t,y]; -####s.t. CC2_DiscountingCapitalInvestment{r in REGION, t in TECHNOLOGY, y in YEAR}: CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] / DiscountFactor[r,y]= DiscountedCapitalInvestment[r,t,y]; - -# -######### Salvage Value ############# -# -s.t. SV1_SalvageValueAtEndOfPeriod1{r in REGION, t in TECHNOLOGY, y in YEAR: (y + OperationalLife[r,t]-1) > (max{yy in YEAR} max(yy)) && DiscountRate[r]>0}: SalvageValue[r,t,y] = CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] * (1-(((1+DiscountRate[r])^(max{yy in YEAR} max(yy) - y+1)-1)/((1+DiscountRate[r])^OperationalLife[r,t]-1))); -s.t. SV2_SalvageValueAtEndOfPeriod2{r in REGION, t in TECHNOLOGY, y in YEAR: (y + OperationalLife[r,t]-1) > (max{yy in YEAR} max(yy)) && DiscountRate[r]=0}: SalvageValue[r,t,y] = CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] * (1-(max{yy in YEAR} max(yy) - y+1)/OperationalLife[r,t]); -s.t. SV3_SalvageValueAtEndOfPeriod3{r in REGION, t in TECHNOLOGY, y in YEAR: (y + OperationalLife[r,t]-1) <= (max{yy in YEAR} max(yy))}: SalvageValue[r,t,y] = 0; -s.t. SV4_SalvageValueDiscountedToStartYear{r in REGION, t in TECHNOLOGY, y in YEAR}: DiscountedSalvageValue[r,t,y] = SalvageValue[r,t,y]/((1+DiscountRate[r])^(1+max{yy in YEAR} max(yy)-min{yy in YEAR} min(yy))); -# -######### Operating Costs ############# -# -#s.t. OC1_OperatingCostsVariable{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y] = AnnualVariableOperatingCost[r,t,y]; -#s.t. OC2_OperatingCostsFixedAnnual{r in REGION, t in TECHNOLOGY, y in YEAR}: ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] = AnnualFixedOperatingCost[r,t,y]; -#s.t. OC3_OperatingCostsTotalAnnual{r in REGION, t in TECHNOLOGY, y in YEAR}: (((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y]) = OperatingCost[r,t,y]; -####s.t. OC4_DiscountedOperatingCostsTotalAnnual{r in REGION, t in TECHNOLOGY, y in YEAR}: (((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y])/DiscountFactorMid[r,y] = DiscountedOperatingCost[r,t,y]; -# -######### Total Discounted Costs ############# -# -#s.t. TDC1_TotalDiscountedCostByTechnology{r in REGION, t in TECHNOLOGY, y in YEAR}: ((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y])/DiscountFactorMid[r,y]+CapitalCost[r,t,y] * NewCapacity[r,t,y]/DiscountFactor[r,y]+DiscountedTechnologyEmissionsPenalty[r,t,y]-DiscountedSalvageValue[r,t,y]) = TotalDiscountedCostByTechnology[r,t,y]; -s.t. TDC2_TotalDiscountedCost{r in REGION, y in YEAR}: sum{t in TECHNOLOGY}((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y])*FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*VariableCost[r,t,m,y])/DiscountFactorMid[r,y]+CapitalCost[r,t,y] * NewCapacity[r,t,y]/DiscountFactor[r,y]+DiscountedTechnologyEmissionsPenalty[r,t,y]-DiscountedSalvageValue[r,t,y]) + sum{s in STORAGE} (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactor[r,y]-CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y]/DiscountFactor[r,y]) = TotalDiscountedCost[r,y]; -# -######### Total Capacity Constraints ############## -# -s.t. TCC1_TotalAnnualMaxCapacityConstraint{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMaxCapacity[r,t,y] <> -1}: - ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) - <= - TotalAnnualMaxCapacity[r,t,y]; - -s.t. TCC2_TotalAnnualMinCapacityConstraint{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMinCapacity[r,t,y]>0}: ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) >= TotalAnnualMinCapacity[r,t,y]; -# -######### New Capacity Constraints ############## -# -s.t. NCC1_TotalAnnualMaxNewCapacityConstraint{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMaxCapacityInvestment[r,t,y] <> -1}: - NewCapacity[r,t,y] - <= - TotalAnnualMaxCapacityInvestment[r,t,y]; -s.t. NCC2_TotalAnnualMinNewCapacityConstraint{r in REGION, t in TECHNOLOGY, y in YEAR: TotalAnnualMinCapacityInvestment[r,t,y]>0}: NewCapacity[r,t,y] >= TotalAnnualMinCapacityInvestment[r,t,y]; -# -######### Annual Activity Constraints ############## -# -s.t. AAC2_TotalAnnualTechnologyActivityUpperLimit{r in REGION, t in TECHNOLOGY, y in YEAR: - TotalTechnologyAnnualActivityUpperLimit[r,t,y] <> -1}: - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y] - <= - TotalTechnologyAnnualActivityUpperLimit[r,t,y]; - -s.t. AAC3_TotalAnnualTechnologyActivityLowerLimit{r in REGION, t in TECHNOLOGY, y in YEAR: TotalTechnologyAnnualActivityLowerLimit[r,t,y]>0}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] >= TotalTechnologyAnnualActivityLowerLimit[r,t,y] ; -#s.t. AAC1_TotalAnnualTechnologyActivity{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = TotalTechnologyAnnualActivity[r,t,y]; -# -######### Total Activity Constraints ############## -# -s.t. TAC2_TotalModelHorizonTechnologyActivityUpperLimit{r in REGION, t in TECHNOLOGY: TotalTechnologyModelPeriodActivityUpperLimit[r,t]<>-1}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] <= TotalTechnologyModelPeriodActivityUpperLimit[r,t] ; -s.t. TAC3_TotalModelHorizenTechnologyActivityLowerLimit{r in REGION, t in TECHNOLOGY: TotalTechnologyModelPeriodActivityLowerLimit[r,t]>0}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] >= TotalTechnologyModelPeriodActivityLowerLimit[r,t] ; -#s.t. TAC1_TotalModelHorizonTechnologyActivity{r in REGION, t in TECHNOLOGY}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = TotalTechnologyModelPeriodActivity[r,t]; -# -######### Reserve Margin Constraint ############## NTS: Should change demand for production -# -s.t. RM3_ReserveMargin_Constraint{r in REGION, l in TIMESLICE, y in YEAR}: sum{f in FUEL, (m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * ReserveMarginTagFuel[r,f,y] * ReserveMargin[r,y]<= sum {t in TECHNOLOGY} ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) * ReserveMarginTagTechnology[r,t,y] * CapacityToActivityUnit[r,t]; -#s.t. RM1_ReserveMargin_TechnologiesIncluded_In_Activity_Units{r in REGION, l in TIMESLICE, y in YEAR}: sum {t in TECHNOLOGY} ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) * ReserveMarginTagTechnology[r,t,y] * CapacityToActivityUnit[r,t] = TotalCapacityInReserveMargin[r,y]; -#s.t. RM2_ReserveMargin_FuelsIncluded{r in REGION, l in TIMESLICE, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f], f in FUEL} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * ReserveMarginTagFuel[r,f,y] = DemandNeedingReserveMargin[r,l,y]; -# -######### RE Production Target ############## NTS: Should change demand for production -# -s.t. RE4_EnergyConstraint{r in REGION, y in YEAR}:REMinProductionTarget[r,y]*sum{l in TIMESLICE, f in FUEL} sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*RETagFuel[r,f,y] <= sum{f in FUEL, (m,t) in MODExTECHNOLOGYperFUELout[f], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y]*RETagTechnology[r,t,y]; -#s.t. RE1_FuelProductionByTechnologyAnnual{r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR}: sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] = ProductionByTechnologyAnnual[r,t,f,y]; -#s.t. RE2_TechIncluded{r in REGION, y in YEAR}: sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE, t in TECHNOLOGY, f in FUEL} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y]*RETagTechnology[r,t,y] = TotalREProductionAnnual[r,y]; -#s.t. RE3_FuelIncluded{r in REGION, y in YEAR}: sum{l in TIMESLICE, f in FUEL} sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*RETagFuel[r,f,y] = RETotalProductionOfTargetFuelAnnual[r,y]; -#s.t. RE5_FuelUseByTechnologyAnnual{r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR}: sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] = UseByTechnologyAnnual[r,t,f,y]; -# -######### Emissions Accounting ############## -# -s.t. E5_DiscountedEmissionsPenaltyByTechnology{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{e in EMISSION, l in TIMESLICE, (m,tt) in MODExTECHNOLOGYperEMISSION[e]: t=tt} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*EmissionsPenalty[r,e,y]/DiscountFactorMid[r,y] = DiscountedTechnologyEmissionsPenalty[r,t,y]; -s.t. E8_AnnualEmissionsLimit{r in REGION, e in EMISSION, y in YEAR: AnnualEmissionLimit[r,e,y] <> -1}: sum{l in TIMESLICE, (m,t) in MODExTECHNOLOGYperEMISSION[e]} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]+AnnualExogenousEmission[r,e,y] <= AnnualEmissionLimit[r,e,y]; -s.t. E9_ModelPeriodEmissionsLimit{r in REGION, e in EMISSION: ModelPeriodEmissionLimit[r,e] <> -1}: sum{l in TIMESLICE, (m,t) in MODExTECHNOLOGYperEMISSION[e], y in YEAR} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] + ModelPeriodExogenousEmission[r,e] <= ModelPeriodEmissionLimit[r,e] ; -#s.t. E1_AnnualEmissionProductionByMode{r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODEperTECHNOLOGY[t], y in YEAR}: EmissionActivityRatio[r,t,e,m,y]*sum{l in TIMESLICE} RateOfActivity[r,l,t,m,y]*YearSplit[l,y]=AnnualTechnologyEmissionByMode[r,t,e,m,y]; -#s.t. E2_AnnualEmissionProduction{r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODEperTECHNOLOGY[t], y in YEAR}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = AnnualTechnologyEmission[r,t,e,y]; -#s.t. E3_EmissionsPenaltyByTechAndEmission{r in REGION, t in TECHNOLOGY, e in EMISSION, y in YEAR: EmissionActivityRatio[r,t,e,m,y]<>0}: sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*EmissionsPenalty[r,e,y] = AnnualTechnologyEmissionPenaltyByEmission[r,t,e,y]; -#s.t. E4_EmissionsPenaltyByTechnology{r in REGION, t in TECHNOLOGY, y in YEAR}: sum{e in EMISSION, l in TIMESLICE, m in MODEperTECHNOLOGY[t]} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]*EmissionsPenalty[r,e,y] = AnnualTechnologyEmissionsPenalty[r,t,y]; -#s.t. E6_EmissionsAccounting1{r in REGION, e in EMISSION, y in YEAR}: sum{l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] = AnnualEmissions[r,e,y]; -#s.t. E7_EmissionsAccounting2{r in REGION, e in EMISSION}: sum{l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] + ModelPeriodExogenousEmission[r,e] = ModelPeriodEmissions[r,e]; -# -# -########################################################################################### -# - -solve; -# -######################################################################################################### -# # -# Summary results tables below are printed to a comma-separated file called ResultsPath & "/SelectedResults.csv" # -# For a full set of results please see "Results.txt" # -# If you don't want these printed, please comment-out or delete them. # -# # -######################################################################################################### -# -# table result{(f,t) in s} OUT "...": f~FROM, t~TO, x[f,t]~FLOW; -# table result{y in YEAR, r in REGION} OUT "CSV" "Output.csv": y~YEARS, r~REGION, TotalDiscountedCost[y,r]; -# -#### Summary results ### -# -### Total costs and emissions by region ### -# -printf "\n" > ResultsPath & "/SelectedResults.csv"; -printf "Summary" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - } -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Emissions" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} { - for {e in EMISSION} { - printf ",%s", e >> ResultsPath & "/SelectedResults.csv"; - printf ",%g", sum{l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] + ModelPeriodExogenousEmission[r,e] >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Cost" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} - {printf ",%g", - sum{t in TECHNOLOGY, y in YEAR} - ( - ( - ( - ( - (sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) + ResidualCapacity[r,t,y]) - * FixedCost[r,t,y] + sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y] * VariableCost[r,t,m,y]) - / DiscountFactorMid[r,y] - + CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] / DiscountFactor[r,y] - + DiscountedTechnologyEmissionsPenalty[r,t,y] - DiscountedSalvageValue[r,t,y]) - + sum{s in STORAGE} - (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / DiscountFactorStorage[r,s,y] - - CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / DiscountFactorStorage[r,s,y])) >> ResultsPath & "/SelectedResults.csv"; -} -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -# -### Time Independent demand ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "TID Demand" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL} {printf "\n" >> ResultsPath & "/SelectedResults.csv"; - printf ",%s", f >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - printf ",%g", AccumulatedAnnualDemand[r,f,y] >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - } -# -### Time Dependent demand ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Time Dependent Demand (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL} {printf ",%s", f >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {l in TIMESLICE} { - printf ",%s", l >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for { l in TIMESLICE} { - printf ",%g", SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - } -# -### Time Dependent production ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Time Dependent Production (Energy Units) Test" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL} {printf ",%s", f >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {l in TIMESLICE} { - printf ",%s", l >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for { l in TIMESLICE} { - printf ",%g", sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - } -# -#### Total Annual Capacity ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "TotalAnnualCapacity (Capacity Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {t in TECHNOLOGY} {printf ",%s", t >> ResultsPath & "/SelectedResults.csv";} -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} { - for { y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for { t in TECHNOLOGY } { - printf ",%g", ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} NewCapacity[r,t,yy])+ ResidualCapacity[r,t,y]) >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -# -#### New Annual Capacity ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "NewCapacity (Capacity Units )" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {t in TECHNOLOGY} {printf ",%s", t >> ResultsPath & "/SelectedResults.csv";} -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} { - for { y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for { t in TECHNOLOGY } { - printf ",%g", NewCapacity[r,t,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -# -### Annual Production ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Annual Production (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf",%s",f >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{ - printf ",%g", sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -# -### Annual Use ### -# -printf "Annual Use (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf",%s",f >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{ - printf ",%g", sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -# -### Technology Production in each TS ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "ProductionByTechnology (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf",%s",f >> ResultsPath & "/SelectedResults.csv"; - for {l in TIMESLICE}{ - printf ",%s", l >> ResultsPath & "/SelectedResults.csv"; - } - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf "," >> ResultsPath & "/SelectedResults.csv"; - for { l in TIMESLICE} { - printf ",%g", sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -} -# -### Technology Use in each TS ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Use By Technology (Energy Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf",%s",f >> ResultsPath & "/SelectedResults.csv"; - for {l in TIMESLICE}{ - printf ",%s", l >> ResultsPath & "/SelectedResults.csv"; - } - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {f in FUEL}{printf "," >> ResultsPath & "/SelectedResults.csv"; - for { l in TIMESLICE} { - printf ",%g", sum{m in MODEperTECHNOLOGY[t]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y] * YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } -} -# -### Total Annual Emissions ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Annual Emissions (Emissions Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {e in EMISSION} {printf ",%s", e >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - printf ",%g", sum{l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - } -# -### Annual Emissions by Technology ### -# -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -printf "Annual Emissions by Technology (Emissions Units)" >> ResultsPath & "/SelectedResults.csv"; -printf "\n" >> ResultsPath & "/SelectedResults.csv"; -for {r in REGION} {printf ",%s", r >> ResultsPath & "/SelectedResults.csv"; - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {t in TECHNOLOGY} {printf "%s", t >> ResultsPath & "/SelectedResults.csv"; - for {e in EMISSION}{printf",%s",e >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - for {y in YEAR } { - printf "%g", y >> ResultsPath & "/SelectedResults.csv"; - for {e in EMISSION}{ - printf ",%g", sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y] >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - printf "\n" >> ResultsPath & "/SelectedResults.csv"; - } - } - -table AnnualEmissions - {r in REGION, e in EMISSION, y in YEAR: - sum{t in TECHNOLOGY, l in TIMESLICE, m in MODE_OF_OPERATION: EmissionActivityRatio[r,t,e,m,y]<>0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/AnnualEmissions.csv" : - r~REGION, e~EMISSION, y~YEAR, - sum{t in TECHNOLOGY, l in TIMESLICE, m in MODEperTECHNOLOGY[t]: EmissionActivityRatio[r,t,e,m,y]<>0} - EmissionActivityRatio[r,t,e,m,y] * RateOfActivity[r,l,t,m,y] * YearSplit[l,y]~VALUE; - -table AccumulatedNewCapacity - {r in REGION, t in TECHNOLOGY, y in YEAR: - sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy] > 0} - OUT "CSV" - ResultsPath & "/AccumulatedNewCapacity.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy] ~VALUE; - -table AnnualFixedOperatingCost - {r in REGION, t in TECHNOLOGY, y in YEAR: - ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) + ResidualCapacity[r,t,y]) - > 0 && FixedCost[r,t,y] > 0 - } - OUT "CSV" - ResultsPath & "/AnnualFixedOperatingCost.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - FixedCost[r,t,y] * - ((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) + ResidualCapacity[r,t,y]) ~VALUE; - -table AnnualTechnologyEmission - {r in REGION, t in TECHNOLOGY, e in EMISSION, y in YEAR: - sum{l in TIMESLICE, m in MODE_OF_OPERATION: EmissionActivityRatio[r,t,e,m,y]<>0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/AnnualTechnologyEmission.csv" : - r~REGION, t~TECHNOLOGY, e~EMISSION, y~YEAR, - sum{l in TIMESLICE, m in MODE_OF_OPERATION: EmissionActivityRatio[r,t,e,m,y]<>0} - EmissionActivityRatio[r,t,e,m,y] * RateOfActivity[r,l,t,m,y] * YearSplit[l,y] ~VALUE; - -table AnnualTechnologyEmissionByModeResults - {r in REGION, t in TECHNOLOGY, e in EMISSION, m in MODE_OF_OPERATION, y in YEAR: - sum{l in TIMESLICE: EmissionActivityRatio[r,t,e,m,y]<>0} RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/AnnualTechnologyEmissionByMode.csv" : - r~REGION, t~TECHNOLOGY, e~EMISSION, m~MODE_OF_OPERATION, y~YEAR, - sum{l in TIMESLICE: EmissionActivityRatio[r,t,e,m,y] <> 0} - EmissionActivityRatio[r,t,e,m,y] * RateOfActivity[r,l,t,m,y] * YearSplit[l,y] ~VALUE; - -table AnnualVariableOperatingCostResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/AnnualVariableOperatingCost.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - sum{m in MODEperTECHNOLOGY[t], l in TIMESLICE} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y] * VariableCost[r,t,m,y] ~VALUE; - -table CapitalInvestmentResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - NewCapacity[r,t,y] > 0 && CapitalCost[r,t,y] > 0} - OUT "CSV" - ResultsPath & "/CapitalInvestment.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t] ~VALUE; - -table DemandResults - {r in REGION, l in TIMESLICE, f in FUEL, y in YEAR: - SpecifiedAnnualDemand[r,f,y] > 0} - OUT "CSV" - ResultsPath & "/Demand.csv" : - r~REGION, l~TIMESLICE, f~FUEL, y~YEAR, - SpecifiedAnnualDemand[r,f,y] * SpecifiedDemandProfile[r,f,l,y] ~VALUE; - -table DiscountedSalvageValueResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - DiscountedSalvageValue[r, t, y] > 0} - OUT "CSV" - ResultsPath & "/DiscountedSalvageValue.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - DiscountedSalvageValue[r, t, y] ~VALUE; - -table DiscountedTechnologyEmissionsPenaltyResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - DiscountedTechnologyEmissionsPenalty[r, t, y] > 0} - OUT "CSV" - ResultsPath & "/DiscountedTechnologyEmissionsPenalty.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - DiscountedTechnologyEmissionsPenalty[r, t, y] ~VALUE; - -table NewCapacityResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - NewCapacity[r, t, y] > 0} - OUT "CSV" ResultsPath & "/NewCapacity.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - NewCapacity[r, t, y] ~VALUE; - -table NewStorageCapacityResults - {r in REGION, s in STORAGE, y in YEAR: - NewStorageCapacity[r, s, y] > 0} - OUT "CSV" - ResultsPath & "/NewStorageCapacity.csv" : - r~REGION, s~STORAGE, y~YEAR, - NewStorageCapacity[r, s, y] ~VALUE; - -table NumberOfNewTechnologyUnitsResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - NumberOfNewTechnologyUnits[r, t, y] > 0} - OUT "CSV" - ResultsPath & "/NumberOfNewTechnologyUnits.csv" : - r~REGION, t~TECHNOLOGY, y~YEAR, - NumberOfNewTechnologyUnits[r, t, y] ~VALUE; - -table ProductionByTechnology - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{m in MODE_OF_OPERATION: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/ProductionByTechnology.csv" : - r~REGION, l~TIMESLICE, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{m in MODEperTECHNOLOGY[t]: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] * OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] ~VALUE; - -table ProductionByTechnologyAnnual - {r in REGION, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{l in TIMESLICE, m in MODE_OF_OPERATION: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/ProductionByTechnologyAnnual.csv" : - r~REGION, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] * OutputActivityRatio[r,t,f,m,y] * YearSplit[l,y] ~VALUE; - -table RateOfActivityResults - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR: - RateOfActivity[r, l, t, m, y] > 0} - OUT "CSV" - ResultsPath & "/RateOfActivity.csv" : - r~REGION, l~TIMESLICE, t~TECHNOLOGY, m~MODE_OF_OPERATION, y~YEAR, - RateOfActivity[r, l, t, m, y] ~VALUE; - -table RateOfProductionByTechnologyResults - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{m in MODEperTECHNOLOGY[t]: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/RateOfProductionByTechnology.csv" : - r~REGION, l~TIMESLICE, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{m in MODEperTECHNOLOGY[t]: OutputActivityRatio[r,t,f,m,y] <> 0} - RateOfActivity[r,l,t,m,y] * OutputActivityRatio[r,t,f,m,y]~VALUE; - -table RateOfProductionByTechnologyByMode - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], f in FUEL, y in YEAR: - RateOfActivity[r,l,t,m,y] > 0 && OutputActivityRatio[r,t,f,m,y] <> 0} - OUT "CSV" - ResultsPath & "/RateOfProductionByTechnologyByMode.csv" : - r~REGION, l~TIMESLICE, t~TECHNOLOGY, m~MODE_OF_OPERATION, f~FUEL, y~YEAR, - RateOfActivity[r,l,t,m,y] * OutputActivityRatio[r,t,f,m,y]~VALUE; - -table RateOfUseByTechnology - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{m in MODEperTECHNOLOGY[t]: InputActivityRatio[r,t,f,m,y]<>0} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/RateOfUseByTechnology.csv": - r~REGION, l~TIMESLICE, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{m in MODEperTECHNOLOGY[t]: InputActivityRatio[r,t,f,m,y]<>0} - RateOfActivity[r,l,t,m,y] * InputActivityRatio[r,t,f,m,y]~VALUE; - -table RateOfUseByTechnologyByMode - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], f in FUEL, y in YEAR: - RateOfActivity[r,l,t,m,y] && InputActivityRatio[r,t,f,m,y] <> 0} - OUT "CSV" - ResultsPath & "/RateOfUseByTechnologyByMode.csv": - r~REGION, l~TIMESLICE, t~TECHNOLOGY, m~MODE_OF_OPERATION, f~FUEL, y~YEAR, - RateOfActivity[r,l,t,m,y] * InputActivityRatio[r,t,f,m,y]~VALUE; - -table SalvageValueResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - SalvageValue[r, t, y] > 0} - OUT "CSV" - ResultsPath & "/SalvageValue.csv": - r~REGION, t~TECHNOLOGY, y~YEAR, - SalvageValue[r, t, y]~VALUE; - -table SalvageValueStorageResults - {r in REGION, s in STORAGE, y in YEAR: - SalvageValueStorage[r, s, y] > 0} - OUT "CSV" - ResultsPath & "/SalvageValueStorage.csv": - r~REGION, s~STORAGE, y~YEAR, - SalvageValueStorage[r, s, y]~VALUE; - -table TotalAnnualTechnologyActivityByMode - {r in REGION, t in TECHNOLOGY, m in MODEperTECHNOLOGY[t], y in YEAR: - sum{l in TIMESLICE} - RateOfActivity[r,l,t,m,y] > 0} - OUT "CSV" - ResultsPath & "/TotalAnnualTechnologyActivityByMode.csv": - r~REGION, t~TECHNOLOGY, m~MODE_OF_OPERATION, y~YEAR, - sum{l in TIMESLICE} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y]~VALUE; - -table TotalCapacityAnnualResults - {r in REGION, t in TECHNOLOGY, y in YEAR: - ResidualCapacity[r,t,y] + - (sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) - > 0} - OUT "CSV" - ResultsPath & "/TotalCapacityAnnual.csv": - r~REGION, t~TECHNOLOGY, y~YEAR, - ResidualCapacity[r,t,y] + - (sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy])~VALUE; - -table TotalDiscountedCostResults - {r in REGION, y in YEAR} - OUT "CSV" - ResultsPath & "/TotalDiscountedCost.csv": - r~REGION, y~YEAR, - sum{t in TECHNOLOGY} - ((((sum{yy in YEAR: y-yy < OperationalLife[r,t] && y-yy>=0} - NewCapacity[r,t,yy]) + ResidualCapacity[r,t,y]) * FixedCost[r,t,y] - + sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y] * VariableCost[r,t,m,y]) / (DiscountFactorMid[r,y]) - + CapitalCost[r,t,y] * NewCapacity[r,t,y] * CapitalRecoveryFactor[r,t] * PvAnnuity[r,t]/ (DiscountFactor[r,y]) - + DiscountedTechnologyEmissionsPenalty[r,t,y] - - DiscountedSalvageValue[r,t,y]) - + sum{s in STORAGE} - (CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / (DiscountFactorStorage[r,s,y]) - - CapitalCostStorage[r,s,y] * NewStorageCapacity[r,s,y] / (DiscountFactorStorage[r,s,y]) - )~VALUE; - -table TotalTechnologyAnnualActivity - {r in REGION, t in TECHNOLOGY, y in YEAR: - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] - > 0} - OUT "CSV" - ResultsPath & "/TotalTechnologyAnnualActivity.csv": - r~REGION, t~TECHNOLOGY, y~YEAR, - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * YearSplit[l,y]~VALUE; - -table TotalTechnologyModelPeriodActivity - {r in REGION, t in TECHNOLOGY: - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} - RateOfActivity[r,l,t,m,y] - > 0} - OUT "CSV" - ResultsPath & "/TotalTechnologyModelPeriodActivity.csv": - r~REGION, t~TECHNOLOGY, - sum{l in TIMESLICE, m in MODEperTECHNOLOGY[t], y in YEAR} - RateOfActivity[r,l,t,m,y]*YearSplit[l,y]~VALUE; - -table TradeResults - {r in REGION, rr in REGION, l in TIMESLICE, f in FUEL, y in YEAR: - Trade[r, rr, l, f, y] - <> 0} - OUT "CSV" - ResultsPath & "/Trade.csv": - r~REGION, rr~REGION, l~TIMESLICE, f~FUEL, y~YEAR, - Trade[r, rr, l, f, y]~VALUE; - -table UseByTechnologyResults - {r in REGION, l in TIMESLICE, t in TECHNOLOGY, f in FUEL, y in YEAR: - sum{m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * InputActivityRatio[r,t,f,m,y] * YearSplit[l,y] - > 0} - OUT "CSV" - ResultsPath & "/UseByTechnology.csv": - r~REGION, l~TIMESLICE, t~TECHNOLOGY, f~FUEL, y~YEAR, - sum{m in MODEperTECHNOLOGY[t]} - RateOfActivity[r,l,t,m,y] * InputActivityRatio[r,t,f,m,y] * YearSplit[l,y]~VALUE; - -end; diff --git a/examples/Example_Two/parameters.csv b/examples/Example_Two/parameters.csv deleted file mode 100644 index a3394d2..0000000 --- a/examples/Example_Two/parameters.csv +++ /dev/null @@ -1,4 +0,0 @@ -name,group,indexes,min_value_base_year,max_value_base_year,min_value_end_year,max_value_end_year,dist,interpolation_index,action -CapitalCost,capital,"R1,NUCLEAR",4000,5000,2000,3000,"unif","YEAR","interpolate" -VariableCost,variable,"R1,MINE_URANIUM,1",3.5,4.0,1.5,1.75,"unif","YEAR","interpolate" -InputActivityRatio,IAR,"R1,NUCLEAR,URANIUM,1",1.3,1.5,1.05,1.2,"unif","YEAR","interpolate" \ No newline at end of file diff --git a/examples/Example_Two/results.csv b/examples/Example_Two/results.csv deleted file mode 100644 index 7c140c2..0000000 --- a/examples/Example_Two/results.csv +++ /dev/null @@ -1,2 +0,0 @@ -name -Demand \ No newline at end of file diff --git a/examples/Example_Two/scenarios.csv b/examples/Example_Two/scenarios.csv deleted file mode 100644 index 2147fe0..0000000 --- a/examples/Example_Two/scenarios.csv +++ /dev/null @@ -1,2 +0,0 @@ -name,description,path -0,"ExampleTwo",examples/Example_Two/datapackage.json \ No newline at end of file diff --git a/resources/otoole_files.csv b/resources/otoole_files.csv new file mode 100644 index 0000000..f9116fe --- /dev/null +++ b/resources/otoole_files.csv @@ -0,0 +1,67 @@ +inputs,outputs +AccumulatedAnnualDemand,AccumulatedNewCapacity +AnnualEmissionLimit,AnnualEmissions +AnnualExogenousEmission,AnnualFixedOperatingCost +AvailabilityFactor,AnnualTechnologyEmission +CapacityFactor,AnnualTechnologyEmissionByMode +CapacityOfOneTechnologyUnit,AnnualVariableOperatingCost +CapacityToActivityUnit,CapitalInvestment +CapitalCost,Demand +CapitalCostStorage,DiscountedSalvageValue +Conversionld,DiscountedTechnologyEmissionsPenalty +Conversionlh,NewCapacity +Conversionls,ProductionByTechnology +DAILYTIMEBRACKET,ProductionByTechnologyAnnual +DaysInDayType,RateOfActivity +DaySplit,RateOfProductionByTechnology +DAYTYPE,RateOfProductionByTechnologyByMode +default_values,RateOfUseByTechnology +DepreciationMethod,RateOfUseByTechnologyByMode +DiscountRate,SalvageValue +DiscountRateIdv,TotalAnnualTechnologyActivityByMode +DiscountRateStorage,TotalCapacityAnnual +EMISSION,TotalDiscountedCost +EmissionActivityRatio,TotalTechnologyAnnualActivity +EmissionsPenalty,TotalTechnologyModelPeriodActivity +FixedCost,UseByTechnology +FUEL, +InputActivityRatio, +MinStorageCharge, +ModelPeriodEmissionLimit, +ModelPeriodExogenousEmission, +MODE_OF_OPERATION, +OperationalLife, +OperationalLifeStorage, +OutputActivityRatio, +REGION, +REMinProductionTarget, +ReserveMargin, +ReserveMarginTagFuel, +ReserveMarginTagTechnology, +ResidualCapacity, +ResidualStorageCapacity, +RETagFuel, +RETagTechnology, +SEASON, +SpecifiedAnnualDemand, +SpecifiedDemandProfile, +STORAGE, +StorageLevelStart, +StorageMaxChargeRate, +StorageMaxDischargeRate, +TECHNOLOGY, +TechnologyFromStorage, +TechnologyToStorage, +TIMESLICE, +TotalAnnualMaxCapacity, +TotalAnnualMaxCapacityInvestment, +TotalAnnualMinCapacity, +TotalAnnualMinCapacityInvestment, +TotalTechnologyAnnualActivityLowerLimit, +TotalTechnologyAnnualActivityUpperLimit, +TotalTechnologyModelPeriodActivityLowerLimit, +TotalTechnologyModelPeriodActivityUpperLimit, +TradeRoute, +VariableCost, +YEAR, +YearSplit, diff --git a/workflow/Snakefile b/workflow/Snakefile index f2b8d65..a9a418a 100644 --- a/workflow/Snakefile +++ b/workflow/Snakefile @@ -3,19 +3,21 @@ import sys configfile: "config/config.yaml" localrules: all, clean wildcard_constraints: - agg_result_file="[a-zA-Z_\-]+", + result_file="[^(objective)][a-zA-Z_\-]+", scenario="\d+", model_run="\d+" container: "docker://condaforge/mambaforge:4.10.1-0" -RESULTS = pd.read_csv(config["result_params"]).set_index('name') SCENARIOS = pd.read_csv(config["datapackage"]).set_index('name') GROUPS = pd.read_csv(config['parameters'])['group'].unique() # Calculates number of model runs for the Method of Morris MODELRUNS = range((len(GROUPS) + 1) * config['replicates']) -AGG_RESULTS = pd.read_csv(config["agg_results"]) +RESULTS = pd.read_csv(config["results"]) +RESULT_FILES = RESULTS['filename'].to_list() ZIP = '.gz' if config['zip'] else '' +INPUT_FILES = pd.read_csv('resources/otoole_files.csv')['inputs'].to_list() +OUTPUT_FILES = pd.read_csv('resources/otoole_files.csv')['outputs'].dropna().to_list() include: "rules/osemosys.smk" include: "rules/results.smk" @@ -35,9 +37,13 @@ onsuccess: rule all: input: - expand("results/SA_{scenario}.{extension}", scenario=SCENARIOS.index, extension=['csv', 'png']), - expand("results/{scenario}/model_{model_run}/results/{x}.csv", x=RESULTS.index, model_run=MODELRUNS, scenario=SCENARIOS.index) - message: "Running pipeline to generate the files '{input}'" + expand("results/{scenario}_summary/SA_objective.{extension}", scenario=SCENARIOS.index, extension=['csv', 'png']), + expand("results/{scenario}_summary/SA_{result_file}.{extension}", scenario=SCENARIOS.index, extension=['csv', 'png'], result_file=RESULT_FILES), + expand("results/{scenario}_summary/SA_interactions.png", scenario=SCENARIOS.index), + expand("results/{scenario}/model_{model_run}/results/{x}.csv", x=OUTPUT_FILES, model_run=MODELRUNS, scenario=SCENARIOS.index), + expand("results/{scenario}_summary/{result_file}_heatmap.png", scenario=SCENARIOS.index, result_file=RESULT_FILES), + + message: "Running pipeline to generate the sensitivity analysis results" rule get_status: params: diff --git a/workflow/rules/osemosys.smk b/workflow/rules/osemosys.smk index ed9abd0..d4676cd 100644 --- a/workflow/rules/osemosys.smk +++ b/workflow/rules/osemosys.smk @@ -13,26 +13,52 @@ def solver_output(wildcards): return rules.unzip_solution.output def datapackage_from_scenario(wildcards): - return SCENARIOS.loc[int(wildcards.scenario), 'path'] + return SCENARIOS.loc[int(wildcards.scenario), 'datapackage'] -rule copy_datapackage: - message: "Copying and modifying datapackage for '{output.folder}'" +def config_from_scenario(wildcards): + return SCENARIOS.loc[int(wildcards.scenario), 'config'] + +rule create_model_data: + message: "Copying and modifying data for '{params.folder}'" input: datapackage=datapackage_from_scenario, - sample="modelruns/{scenario}/model_{model_run}/sample_{model_run}.txt" + sample="modelruns/{scenario}/model_{model_run}/sample_{model_run}.txt", + config=config_from_scenario log: "results/log/copy_datapackage_{scenario}_{model_run}.log" + params: + folder=directory("results/{scenario}/model_{model_run}") conda: "../envs/otoole.yaml" group: "gen_lp" output: - folder=directory("results/{scenario}/model_{model_run}"), - datapackage="results/{scenario}/model_{model_run}/datapackage.json", + csv=expand("results/{{scenario}}/model_{{model_run}}/data/{csv}.csv", csv=INPUT_FILES) + shell: + "python workflow/scripts/create_modelrun.py {input.datapackage} {params.folder}/data {input.sample} {input.config}" + +rule copy_datapackage: + message: "Copying datapackage for '{params.folder}'" + input: + json=datapackage_from_scenario, + yaml=config_from_scenario, + csvs=rules.create_model_data.output, + log: "results/log/copy_datapackage_{scenario}_{model_run}.log" + params: + folder="results/{scenario}/model_{model_run}", + output: + json="results/{scenario}/model_{model_run}/datapackage.json", + yaml="results/{scenario}/model_{model_run}/config.yaml", + log: + "results/log/copy_datapackage_{scenario}_{model_run}.log" shell: - "python workflow/scripts/create_modelrun.py {input.datapackage} {output.folder} {input.sample}" + """ + cp {input.json} {output.json} + cp {input.yaml} {output.yaml} + """ rule generate_datafile: message: "Generating datafile for '{output}'" input: - datapackage="results/{scenario}/model_{model_run}/datapackage.json" + datapackage="results/{scenario}/model_{model_run}/datapackage.json", + config="results/{scenario}/model_{model_run}/config.yaml" output: temp("temp/{scenario}/model_{model_run}.txt") conda: "../envs/otoole.yaml" @@ -40,7 +66,7 @@ rule generate_datafile: log: "results/log/otoole_{scenario}_{model_run}.log" shell: - "otoole -v convert datapackage datafile {input} {output} 2> {log}" + "otoole -v convert datapackage datafile {input.datapackage} {output} {input.config} 2> {log}" rule modify_model_file: message: "Adding MODEX sets to model file" @@ -167,15 +193,18 @@ rule process_solution: group: 'results' input: solution=solver_output, - data="results/{scenario}/model_{model_run}/datapackage.json" - output: ["results/{{scenario}}/model_{{model_run}}/results/{}.csv".format(x) for x in RESULTS.index] + datapackage="results/{scenario}/model_{model_run}/datapackage.json", + config="results/{scenario}/model_{model_run}/config.yaml", + output: + expand("results/{{scenario}}/model_{{model_run}}/results/{csv}.csv", csv=OUTPUT_FILES) conda: "../envs/otoole.yaml" log: "results/log/process_solution_{scenario}_{model_run}.log" params: folder="results/{scenario}/model_{model_run}/results" - shell: """ + shell: + """ mkdir -p {params.folder} - otoole -v results {config[solver]} csv {input.solution} {params.folder} --input_datapackage {input.data} &> {log} + otoole -v results {config[solver]} csv {input.solution} {params.folder} --input_datapackage {input.datapackage} {input.config} &> {log} """ rule get_statistics: diff --git a/workflow/rules/results.smk b/workflow/rules/results.smk index 239c0c7..e453616 100644 --- a/workflow/rules/results.smk +++ b/workflow/rules/results.smk @@ -1,19 +1,27 @@ def get_input(wildcards): - input_file = AGG_RESULTS.set_index('filename').loc[wildcards.agg_result_file]['resultfile'] - return ["results/{scenario}/{modelrun}/{input_file}.csv".format( - modelrun=x, input_file=input_file, scenario=y) for x in MODELRUNS for y in SCENARIOS.index] + # input_file = RESULTS.set_index('filename').loc[wildcards.result_file]['resultfile'] + # return ["results/{scenario}/model_{modelrun}/results/{input_file}.csv".format( + # modelrun=x, input_file=input_file, scenario=y) for x in MODELRUNS for y in SCENARIOS.index] + input_file = RESULTS.set_index('filename').loc[wildcards.result_file]['resultfile'] + return ["results/{wildcards.scenario}/model_{modelrun}/results/{input_file}.csv".format( + modelrun=x, input_file=input_file, wildcards=wildcards) for x in MODELRUNS] def get_indices(wildcards): - return AGG_RESULTS.set_index('filename').loc[wildcards.agg_result_file]['indices'] + indices = RESULTS.set_index('filename').loc[wildcards.result_file].dropna().drop('resultfile').to_dict() + return {x:indices[x].split(',') for x in indices} rule extract_results: - input: get_input + input: + csvs=get_input, + config=config_from_scenario, + # csvs=expand("results/{{scenario}}/model_{{model_run}}/results/{csv}.csv", csv=OUTPUT_FILES) params: - parameter = get_indices - log: "results/log/extract_{agg_result_file}.log" - output: expand("results/{{agg_result_file}}.{ext}", ext=config['filetype']) - conda: "envs/otoole.yaml" - script: "scripts/extract_results.py" + parameter = get_indices, + folder=directory("results/{{scenario}}_summary/") + log: "results/log/extract_scenarion_{scenario}_{result_file}.log" + output: expand("results/{{scenario}}/{{result_file}}.{ext}", ext=config['filetype']) + conda: "../envs/otoole.yaml" + script: "../scripts/extract_results.py" rule calculate_hourly_demand: input: expand("results/annual_demand.{ext}", ext=config['filetype']) @@ -27,14 +35,56 @@ rule calculate_hourly_generation: conda: "envs/pandas.yaml" script: "scripts/calculate_hourly_generation.py" -rule calculate_SA_results: +rule calculate_SA_objective: + message: + "Calcualting objective cost sensitivity measures" params: - parameters = config['parameters'] + parameters=config['parameters'], + result_type='objective' input: sample = "modelruns/{scenario}/morris_sample.txt", results = "results/{scenario}/objective_{scenario}.csv" output: - SA_csv = "results/SA_{scenario}.csv", - SA_png = "results/SA_{scenario}.png" + expand("results/{{scenario}}_summary/SA_objective.{ext}",ext=['csv','png']) + conda: "../envs/sample.yaml" + shell: "python workflow/scripts/calculate_SA_results.py {params.parameters} {input.sample} {input.results} {output[0]} {params.result_type}" + +rule calculate_SA_user_defined: + message: + "Calcualting user defined sensitivity measures" + params: + parameters=config['parameters'], + result_type='variable' + input: + sample = "modelruns/{scenario}/morris_sample.txt", + results=expand("results/{{scenario}}/{{result_file}}.{ext}", ext=config['filetype']) + output: + expand("results/{{scenario}}_summary/SA_{{result_file}}.{ext}",ext=['csv','png']) conda: "../envs/sample.yaml" - shell: "python workflow/scripts/analyze_results.py {params.parameters} {input.sample} {input.results} {output.SA_csv}" \ No newline at end of file + shell: "python workflow/scripts/calculate_SA_results.py {params.parameters} {input.sample} {input.results} {output[0]} {params.result_type}" + +rule create_heatmap: + message: + "Calculating user defined sensitivity measures" + params: + parameters=config['parameters'] + input: + sample="modelruns/{scenario}/morris_sample.txt", + results=expand("results/{{scenario}}/{{result_file}}.{ext}", ext=config['filetype']) + output: + "results/{scenario}_summary/{result_file}_heatmap.png" + shell: + "python workflow/scripts/create_heatmap.py {params.parameters} {input.sample} {input.results} {output}" + +rule plot_interactions: + message: + "Creating interaction plots" + params: + parameters=config['parameters'] + input: + sample = "modelruns/{scenario}/morris_sample.txt", + results = "results/{scenario}/objective_{scenario}.csv" + output: + "results/{scenario}_summary/SA_interactions.png" + shell: + "python workflow/scripts/plot_interactions.py {params.parameters} {input.sample} {input.results} {output}" diff --git a/workflow/scripts/analyze_results.py b/workflow/scripts/calculate_SA_results.py similarity index 57% rename from workflow/scripts/analyze_results.py rename to workflow/scripts/calculate_SA_results.py index d7b7c27..ac7f83d 100644 --- a/workflow/scripts/analyze_results.py +++ b/workflow/scripts/calculate_SA_results.py @@ -1,18 +1,18 @@ -"""Analyzes results from model +"""Analyzes objective value results from model Arguments --------- path_to_parameters : str File containing the parameters for generated sample - model_inputs : str File path to sample model inputs - model_outputs : str File path to model outputs - location_to_save : str File path to save results +result_type : str + True for Objective result type + False for user defined result type Usage ----- @@ -21,35 +21,51 @@ python analyze_results.py path/to/parameters.csv path/to/inputs.txt path/to/model/results.csv path/to/save/SA/results.csv -The ``parameters.csv`` CSV file should be formatted as follows:: +The `parameters.csv` CSV file should be formatted as follows:: name,group,indexes,min_value,max_value,dist,interpolation_index,action CapitalCost,pvcapex,"GLOBAL,GCPSOUT0N",500,1900,unif,YEAR,interpolate DiscountRate,discountrate,"GLOBAL,GCIELEX0N",0.05,0.20,unif,None,fixed -The ``inputs.txt`` should be the output from SALib.sample.morris.sample - -The ``model/results.csv`` must have an 'OBJECTIVE' column holding results +The `inputs.txt` should be the output from SALib.sample.morris.sample """ from math import ceil from SALib.analyze import morris as analyze_morris from SALib.plotting import morris as plot_morris -import os import numpy as np import pandas as pd import csv -from typing import List import sys import utils import matplotlib.pyplot as plt import matplotlib.lines as mlines +from pathlib import Path from logging import getLogger logger = getLogger(__name__) +def parse_user_defined_results(df : pd.DataFrame) -> np.array: + """Extracts aggregated results from user defined results. + + Parameters + ---------- + df : pd.DataFrame + Aggregated result file parsed by model run + + Returns + ------- + Y : np.array + Array of reults per model run in model run order + """ + df = df.groupby(by=['MODELRUN']).sum().reset_index() + df['NUM'] = df['MODELRUN'].map(lambda x: int(x.split('_')[1])) + df = df.sort_values(by='NUM').reset_index(drop=True).drop(('NUM'), axis=1) + Y = df['VALUE'].to_numpy() + return Y + def plot_histogram(problem: dict, X: np.array, fig: plt.figure): # chnage histogram labels to legend for clarity @@ -67,41 +83,60 @@ def plot_histogram(problem: dict, X: np.array, fig: plt.figure): fig.legend(handles=legend_handles, ncol=ncols, frameon=False, fontsize='small') fig.suptitle(' ', fontsize=(ncols * 20)) -def main(parameters: dict, X: np.array, Y: np.array, save_file: str): +def sa_results(parameters: dict, X: np.array, Y: np.array, save_file: str): + """Performs SA and plots results. + + Parameters + ---------- + parameters : Dict + Parameters for generated sample + X : np.array + Input Sample + Y : np.array + Results + save_file : str + File path to save results + """ problem = utils.create_salib_problem(parameters) - Si = analyze_morris.analyze(problem, X, Y, print_to_console=True) + Si = analyze_morris.analyze(problem, X, Y, print_to_console=False) # Save text based results Si.to_df().to_csv(f'{save_file}.csv') # save graphical resutls - - ''' This is a temp fix for issue 19 ''' + title = Path(save_file).stem.capitalize() fig, axs = plt.subplots(2, figsize=(10,8)) + fig.suptitle(title, fontsize=20) plot_morris.horizontal_bar_plot(axs[0], Si, unit="(\$)") plot_morris.covariance_plot(axs[1], Si, unit="(\$)") - # fig = plt.figure(figsize=(16, 8), constrained_layout=True) - # subfigs = fig.subfigures(1, 2) - # plot_histogram(problem, X, subfigs[0]) - # axs_right = subfigs[1].subplots(2) - # plot_morris.horizontal_bar_plot(axs_right, Si, unit="(\$)") - # plot_morris.covariance_plot(axs_right, Si, unit="(\$)") - fig.savefig(f'{save_file}.png') + fig.savefig(f'{save_file}.png', bbox_inches='tight') if __name__ == "__main__": parameters_file = sys.argv[1] sample = sys.argv[2] model_results = sys.argv[3] - save_file = sys.argv[4][:-4] #remove '.csv' extension + save_file = str(Path(sys.argv[4]).with_suffix('')) + result_type = sys.argv[5] with open(parameters_file, 'r') as csv_file: parameters = list(csv.DictReader(csv_file)) - + X = np.loadtxt(sample, delimiter=',') - Y = pd.read_csv(model_results)['OBJECTIVE'].to_numpy() + + if result_type == 'objective': + Y = pd.read_csv(model_results)['OBJECTIVE'].to_numpy() + elif result_type == 'variable': + results = pd.read_csv(model_results) + Y = parse_user_defined_results(results) + else: + raise ValueError( + f"Result type must be 'objective' or 'variable'. Supplied value is " + f"{result_type}" + ) + + sa_results(parameters, X, Y, save_file) - main(parameters, X, Y, save_file) diff --git a/workflow/scripts/check_inputs.py b/workflow/scripts/check_inputs.py index 5a1f728..631687a 100644 --- a/workflow/scripts/check_inputs.py +++ b/workflow/scripts/check_inputs.py @@ -14,10 +14,12 @@ from pathlib import Path from typing import Dict, List, Union, Any from otoole.read_strategies import ReadDatapackage +from otoole.utils import _read_file import csv import pandas as pd import yaml import math +import os from logging import getLogger @@ -37,11 +39,15 @@ def check_datapackage(scenario : int, path: str): ------ FileNotFoundError If datapackage does not exist + ValueError + If datapackage is not a .json + """ if not Path(path).is_file(): raise FileNotFoundError( f"Datapackage {path} does not exist for scenario {scenario}." ) + check_file_extension(path, 'json') def check_scenario_file(path : str): """Checks the validity of the scenario file. @@ -62,17 +68,19 @@ def check_scenario_file(path : str): If scenario name is not an int """ + expected_headings = ['name','description','datapackage','config'] + if not Path(path).is_file(): raise FileNotFoundError( f"Scenario file {path} does not exist. Create the file " - "'resources/scenarios.csv' with the headings ['name','description','path']" + f"'resources/scenarios.csv' with the headings {expected_headings}" ) df = pd.read_csv(path) - if list(df) != ['name','description','path']: + if list(df) != expected_headings: raise ValueError( f"Scenario file {path} not formatted correctly. Expected the " - f"headings ['name','description','path']. Recieved headings {list(df)}" + f"headings {expected_headings}. Recieved headings {list(df)}" ) if df.empty: @@ -81,12 +89,15 @@ def check_scenario_file(path : str): for name in df['name']: if not type(name) is int: raise TypeError( - f"All scenario names must be of type int. Scenario {name} is not an int" + f"All scenario names must be of type int. Scenario {name} is " + f"not an int" ) - for name, datapackage in zip(df['name'], df['path']): + for name, datapackage in zip(df['name'], df['datapackage']): check_datapackage(name, datapackage) + + def check_model_file(path: str): """Checks for existance of model file. @@ -358,7 +369,8 @@ def check_parameter_data( def check_parameters( datapackage : str, - parameters: List[Dict[str, Union[str, int, float]]] + parameters : List[Dict[str, Union[str, int, float]]], + user_config : Dict ): """Checks parameter file. @@ -368,6 +380,7 @@ def check_parameters( path to master datapackage parameters: List[Dict[str, Union[str, int, float]]] Flattened parameter file + user_config : Raises ------ @@ -396,14 +409,12 @@ def check_parameters( ) # get model parameter definitions - reader = ReadDatapackage() - model_params, _ = reader.read(datapackage) - model_config = reader.input_config + model_params, _ = ReadDatapackage(user_config=user_config).read(datapackage) for parameter in parameters: - check_parameter_data(parameter, model_config) + check_parameter_data(parameter, user_config) check_parameter_interpolation_data(parameter) - check_parameter_index_data(parameter, model_config, model_params) + check_parameter_index_data(parameter, user_config, model_params) def read_parameters_file(path : str) -> List[Dict[str, Union[str, int, float]]]: """Reads in a flattened CSV file @@ -413,16 +424,73 @@ def read_parameters_file(path : str) -> List[Dict[str, Union[str, int, float]]]: path : str file path to parameters.csv - Returns: + Returns -------- parameters : List[Dict[str, Union[str, int, float]]] Flattened parameters file - """ with open(path, 'r') as csv_file: parameters = list(csv.DictReader(csv_file)) return parameters +def check_file_extension(file_name : str, extension : str): + """Checks the file for the correct extension. + + Parameters + ---------- + file_name : str + Name of file + extension : str + Expected file extension + + Rasies + ------ + ValueError + If the actual file extension is not the expected. + """ + _, ending = os.path.splitext(file_name) + if not extension.startswith('.'): + extension = f".{extension}" + if ending != extension: + raise ValueError( + f"Input configuration file must be a {extension} file. Recieved the" + f"file {file_name} with the extension {ending}" + ) + +def check_otoole_inputs( + actual_data : str, + scenario : int, + expected_data : str = 'otoole_files.csv', +): + """Checks that scenario data matches what snakemake will expect + + This is a useful sanity check on the otoole version you are using. + + Parameters + ---------- + input_data : str + path the directory holding otoole csv data + expected_data : str = 'otoole_files.csv' + name of the file in /resources holding input CSV data + scenario : int + scenario number + + Raises + ------ + FileNotFoundError + If the input csvs do not match the csvs in resources/otoole_files.csv + """ + missing_files = [] + expected_files = pd.read_csv(Path('resources', expected_data))['inputs'].to_list() + for csv in Path(actual_data).iterdir(): + if csv.stem not in expected_files: + missing_files.append(f"{csv.stem}.csv") + if missing_files: + raise FileNotFoundError( + f"The following CSV files are missing in the input data for scenario " + f"{scenario} : {missing_files}" + ) + def main(config : Dict[str, Any]): """Runs a series of checks on input data. @@ -430,6 +498,11 @@ def main(config : Dict[str, Any]): ---------- config : Dict[str, Any] Parsed config.yaml file + + Rasies + ------ + ValueError + If the input config file is not a yaml file """ # check config file @@ -438,11 +511,22 @@ def main(config : Dict[str, Any]): check_solver(config['solver']) check_replicates(config['replicates']) - # check parameter file - datapackages = pd.read_csv(config['datapackage'])['path'].to_list() + # read in datapackage path and user_config file + scenario_df = pd.read_csv(config['datapackage']) + scenarios = scenario_df['name'].to_list() + datapackages = scenario_df['datapackage'].to_list() + configs = scenario_df['config'].to_list() parameters = read_parameters_file(config['parameters']) - check_parameters(datapackages[0], parameters) + with open(configs[0], "r") as f: + user_config = _read_file(f, ".yaml") + + # check parameter file + check_parameters(datapackages[0], parameters, user_config) + # check otoole inputs + for scenario, datapackage in zip(scenarios, datapackages): + data_dir = Path(Path(datapackage).parent, 'data') + check_otoole_inputs(str(data_dir), scenario) if __name__ == "__main__": @@ -456,4 +540,5 @@ def main(config : Dict[str, Any]): parsed_yaml = yaml.safe_load(stream) except yaml.YAMLError as exc: print(exc) + raise exc main(parsed_yaml) \ No newline at end of file diff --git a/workflow/scripts/create_heatmap.py b/workflow/scripts/create_heatmap.py new file mode 100644 index 0000000..2784b3a --- /dev/null +++ b/workflow/scripts/create_heatmap.py @@ -0,0 +1,123 @@ +"""Creates a time series heat map from a model run. + +Arguments +--------- +path_to_parameters : str + File containing the parameters for generated sample +model_inputs : str + File path to sample model inputs +model_outputs : str + File path to model outputs +location_to_save : str + File path to save results + +Usage +----- +To run the script on the command line, type:: + + python analyze_results.py path/to/parameters.csv path/to/inputs.txt + path/to/model/results.csv path/to/save/SA/results.csv + +The ``parameters.csv`` CSV file should be formatted as follows:: + + name,group,indexes,min_value,max_value,dist,interpolation_index,action + CapitalCost,pvcapex,"GLOBAL,GCPSOUT0N",500,1900,unif,YEAR,interpolate + DiscountRate,discountrate,"GLOBAL,GCIELEX0N",0.05,0.20,unif,None,fixed + +The ``inputs.txt`` should be the output from SALib.sample.morris.sample + +The ``model/results.csv`` must have an 'OBJECTIVE' column holding results OR +be a formatted output of an OSeMOSYS parameter + +""" + +from pathlib import Path +from SALib.analyze import morris as analyze_morris +from SALib.plotting import morris as plot_morris +import numpy as np +import pandas as pd +import csv +import sys +import utils +import seaborn as sns +import matplotlib.pyplot as plt + + +from logging import getLogger + +logger = getLogger(__name__) + +def sort_results(df : pd.DataFrame, year : int) -> np.array: + """Organizes a model variable results file for a morris analysis + + Parameters + ---------- + df : pd.DataFrame + Dataframe grouped on model number and year + year : int + Year to sort results for + + Returns + ------- + Y : np.array + Results for morris analysis + """ + df = df.xs(year, level=('YEAR')).reset_index() + df['NUM'] = df['MODELRUN'].map(lambda x: int(x.split('_')[1])) + df = df.sort_values(by='NUM').reset_index(drop=True).drop(('NUM'), axis=1).set_index('MODELRUN') + Y = df.to_numpy() + return Y + +def main(parameters: dict, X: np.array, model_results: pd.DataFrame, save_file: str): + """Performs SA and plots results. + + Parameters + ---------- + parameters : Dict + Parameters for generated sample + X : np.array + Input Sample + model_results : pd.DataFrame + Model results for a OSeMOSYS variable + save_file : str + File path to save results + """ + + problem = utils.create_salib_problem(parameters) + model_results = model_results.groupby(['MODELRUN','YEAR']).sum() + + years = model_results.index.unique(level='YEAR') + SA_result_data = [] + + for year in model_results.index.unique(level='YEAR'): + Y = sort_results(model_results, year) + Si = analyze_morris.analyze(problem, X, Y, print_to_console=False) + SA_result_data.append(Si['mu_star']) + + SA_result_data = np.ma.concatenate([SA_result_data]) + columns = set([x['group'] for x in parameters]) + SA_results = pd.DataFrame(np.ma.getdata(SA_result_data), columns=columns, index=years).T + + # Save figure results + title = Path(save_file).stem.capitalize() + height = len(columns) / 2 + 1.5 + width = len(years) / 5 + fig, ax = plt.subplots(figsize=(width, height)) + sns.heatmap(SA_results, cmap="coolwarm", ax=ax).set_title(title) + ax.set_yticklabels(ax.get_yticklabels(), rotation = 0, fontsize = 8) + fig.savefig(f'{save_file}.png', bbox_inches='tight') + +if __name__ == "__main__": + + parameters_file = sys.argv[1] + sample = sys.argv[2] + result_file = sys.argv[3] + save_file = str(Path(sys.argv[4]).with_suffix('')) + with open(parameters_file, 'r') as csv_file: + parameters = list(csv.DictReader(csv_file)) + + X = np.loadtxt(sample, delimiter=',') + results = pd.read_csv(result_file) + + main(parameters, X, results, save_file) + diff --git a/workflow/scripts/create_modelrun.py b/workflow/scripts/create_modelrun.py index 902c277..cbf399c 100644 --- a/workflow/scripts/create_modelrun.py +++ b/workflow/scripts/create_modelrun.py @@ -5,7 +5,7 @@ Path to the master model datapackage - Path to the new model file + Path to the new model file directory Path the sample file @@ -30,7 +30,9 @@ import pandas as pd import numpy as np from otoole.read_strategies import ReadDatapackage -from otoole.write_strategies import WriteDatapackage +from otoole.write_strategies import WriteCsv +from otoole.utils import _read_file +import os from logging import getLogger @@ -288,27 +290,33 @@ def modify_parameters( return model_params -def main(input_filepath, output_filepath, parameters: List[Dict[str, Union[str, int, float]]]): +def main( + input_filepath, + output_filepath, + parameters: List[Dict[str, Union[str, int, float]]], + user_config): - reader = ReadDatapackage() - - writer = WriteDatapackage() + model_params, default_values = ReadDatapackage(user_config=user_config).read(input_filepath) logger.info("Reading datapackage {}".format(input_filepath)) - model_params, default_values = reader.read(input_filepath) for name, parameter in model_params.items(): parameter = parameter.sort_index() model_params[name] = parameter - config = reader.input_config - model_params = modify_parameters(model_params, parameters, config) - writer.write(model_params, output_filepath, default_values) + model_params = modify_parameters(model_params, parameters, user_config) + # WriteDatapackage(user_config=user_config).write(model_params, output_filepath, default_values) + WriteCsv(user_config=user_config, ).write(model_params, output_filepath, default_values) if __name__ == "__main__": - if len(sys.argv) != 4: - print("Usage: python create_modelrun.py ") + if len(sys.argv) != 5: + print("Usage: python create_modelrun.py ") else: with open(sys.argv[3], 'r') as csv_file: sample = list(csv.DictReader(csv_file)) - main(sys.argv[1], sys.argv[2], sample) + + _, ending = os.path.splitext(sys.argv[4]) + with open(sys.argv[4], "r") as f: + user_config = _read_file(f, ending) + + main(sys.argv[1], sys.argv[2], sample, user_config) diff --git a/workflow/scripts/extract_results.py b/workflow/scripts/extract_results.py index 13b2fad..cc94393 100644 --- a/workflow/scripts/extract_results.py +++ b/workflow/scripts/extract_results.py @@ -7,69 +7,95 @@ ``snakemake.input`` and ``snakemake.output[0]`` attributes on the snakemake object passed into this module at run time. """ + import pandas as pd -import pyarrow from typing import List, Tuple, Dict -from otoole.input import Strategy -from utils import get_model_run_scenario_from_filepath, get_model_run_scenario_from_input_filepath -import os +from pathlib import Path +from utils import get_model_run_scenario_from_filepath, parse_yaml import sys from utils import write_results, read_results +import itertools from logging import getLogger logger = getLogger(__name__) -def add_dtypes(config: Dict): - for name, details in config.items(): - if details["type"] == "param": - dtypes = {} - for column in details["indices"] + ["VALUE"]: - if column == "VALUE": - dtypes["VALUE"] = details["dtype"] - else: - dtypes[column] = config[column]["dtype"] - details["index_dtypes"] = dtypes - return config - - -def main(input_files: List, output_file: str, parameter: Tuple, config: Dict): - """Iterate over list of CSV files, extract defined results, write to output file +def get_indices(parameters : pd.DataFrame, filename : str) -> Dict : + indices = parameters.set_index('filename').loc[filename].dropna().drop('resultfile') + indices = indices.to_dict() + return {x:indices[x].split(',') for x in indices} + +def main(input_files: List, output_file: str, indices: Tuple, config: Dict): + """Iterate over list of CSV files, extract defined results, write to output file. + + Parameters + ---------- + input_files : List + List of CSVs to iterate over + output_file : str + Name of output file + indices : Dict + Indices to extract value over + ex. {'REGION':['SIMPLICITY], 'TECHNOLOGY':['GAS_EXTRACTION','HYD1']} + config : Dict + Datapackage holding type information """ aggregated_results = [] for filename in input_files: bits = get_model_run_scenario_from_filepath(filename) - - column_dtypes = config[bits['param']]['index_dtypes'] df_index = config[bits['param']]['indices'] - + column_dtypes = { + x:config[x]['dtype'] for x in df_index + } df = read_results(filename) df = df.astype(column_dtypes).set_index(df_index) - - try: - results = df.xs(parameter, drop_level=False) - results['SCENARIO'] = bits['scenario'] - results['MODELRUN'] = bits['model_run'] - results = results.reset_index( - ).set_index(['SCENARIO', 'MODELRUN'] + df_index) - - aggregated_results.append(results) - except KeyError: - logger.warning("No results found for %s in %s", parameter, bits['filepath']) + ################################################################ + # this method of slicing and then appending is super enefficient... + # will revist to speed this up + result_dfs = [] + parameters = tuple(itertools.product(*indices.values())) + indices_expanded = tuple([tuple(indices.keys())] * len(parameters)) + for index, param in zip(indices_expanded, parameters): + try: + results = df.xs(param, level=index, drop_level=False) + result_dfs.append(results) + except KeyError as ex: + raise ex + results = pd.concat(result_dfs) + results = results.reset_index(level='YEAR') + ################################################################ + # results['SCENARIO'] = bits['scenario'] + results['MODELRUN'] = bits['model_run'] + # results = results.reset_index( + # ).set_index(['SCENARIO', 'MODELRUN'] + df_index) + results = results.reset_index( + ).set_index(['MODELRUN'] + df_index) + aggregated_results.append(results) results = pd.concat(aggregated_results) - write_results(results, output_file, True) - -strategy = Strategy() -config = strategy.results_config.copy() -config.update(strategy.input_config) -logger.debug(config) -config = add_dtypes(config) - -input_files : List = snakemake.input -output_file = snakemake.output[0] -parameter = tuple(snakemake.params['parameter'].split(",")) -main(input_files, output_file, parameter, config) \ No newline at end of file +if __name__ == '__main__': + + if "snakemake" in globals(): + input_files = snakemake.input['csvs'] + yaml_config = snakemake.input['config'] + output_file_path = snakemake.output[0] + indices = snakemake.params['parameter'] + else: + if len(sys.argv) != 5: + raise ValueError( + "Usage: python extract_results.py " + ) + input_files = sys.argv[1] + if not isinstance(input_files, list): + input_files = [input_files] + yaml_config = sys.argv[2] + output_file_path = sys.argv[3] + parameters = pd.read_csv(sys.argv[4]) + output_file = Path(sys.argv[3]).stem + indices = get_indices(parameters, output_file) + + user_config = parse_yaml(yaml_config) + main(input_files, output_file_path, indices, user_config) \ No newline at end of file diff --git a/workflow/scripts/plot_interactions.py b/workflow/scripts/plot_interactions.py new file mode 100644 index 0000000..26ba929 --- /dev/null +++ b/workflow/scripts/plot_interactions.py @@ -0,0 +1,107 @@ +"""Plots interactions per trajectory. + +Arguments +--------- +path_to_parameters : str + File containing the parameters for generated sample +model_inputs : str + File path to sample model inputs +model_outputs : str + File path to model outputs +location_to_save : str + File path to save results +""" + +import matplotlib.pyplot as plt +import pandas as pd +import numpy as np +from math import ceil +import matplotlib.ticker as ticker +import sys +from pathlib import Path + +from logging import getLogger + +logger = getLogger(__name__) + +def main(parameters: pd.DataFrame, X: np.array, results: pd.DataFrame, save_file: str): + """Plots interactions. + + Parameters + ---------- + parameters : pd.DataFrame + Parameters for generated sample + X : np.array + Input Sample + model_results : pd.DataFrame + Model results for a OSeMOSYS variable + save_file : str + File path to save results + """ + + # Save sample data as dataframe + X = pd.DataFrame(X, columns=parameters['group'].to_list()) + X = X.loc[:,~X.columns.duplicated()] + + # Add objective cost column + Y_max = results['OBJECTIVE'].max() + Y = results['OBJECTIVE'] / Y_max + X['Objective_Cost'] = Y + + # save individual model results + models = {} + for row in range(len(X)): + models[f'model_{row}'] = X.loc[row, :].to_list() + categories = list(X) + + # plot + num_plots = int(len(X) / len(X.columns)) + num_rows = ceil(num_plots / 2) + runs_per_trajectory = len(X.columns) # + 1 taken care of by adding in result column + + fig, axs = plt.subplots(nrows=num_rows, ncols=2, sharex=True, sharey=True, figsize=(10,10), gridspec_kw = {'wspace':0.075, 'hspace':0.2}) + + counter = 0 + row = 0 + col = 0 + secondary_ax = [] + for model_num, model_data in models.items(): + axs[row, col].plot(categories, model_data, label = model_num) + axs[row, col].yaxis.set_major_locator(ticker.MultipleLocator(0.3333)) # 4 levels in morris + axs[row, col].yaxis.set_major_formatter(ticker.FormatStrFormatter('%0.2f')) + counter += 1 + if (counter) == runs_per_trajectory: + secondary_ax.append(axs[row, col].twinx()) + counter = 0 + col = (col + 1) % 2 + row = row if col == 1 else row + 1 + axs[num_rows - 1, 0].tick_params('x',labelrotation=90) + axs[num_rows - 1, 1].tick_params('x',labelrotation=90) + + row = -1 # start at -1 to put counter at start of loop + for index, _ in enumerate(secondary_ax): + row += 1 + if row % 2 != 0: + continue + secondary_ax[index].get_shared_y_axes().join(secondary_ax[index], secondary_ax[index + 1]) + secondary_ax[index].plot() + secondary_ax[index].yaxis.set_tick_params(labelright=False) + secondary_ax[index].set_ylim(0, Y_max) + + fig.supylabel('Sample Value', fontsize='x-large', x=0.05) + fig.suptitle('Interactions on Objective Cost', fontsize='x-large', y=0.93) + fig.savefig(f'{save_file}.png', bbox_inches='tight') + + +if __name__ == "__main__": + + parameters_file = sys.argv[1] + sample = sys.argv[2] + result_file = sys.argv[3] + save_file = str(Path(sys.argv[4]).with_suffix('')) + parameters = pd.read_csv(parameters_file) + + X = np.loadtxt(sample, delimiter=',') + results = pd.read_csv(result_file) + + main(parameters, X, results, save_file) diff --git a/workflow/scripts/utils.py b/workflow/scripts/utils.py index 611413a..21647c9 100644 --- a/workflow/scripts/utils.py +++ b/workflow/scripts/utils.py @@ -1,6 +1,8 @@ import os import pandas as pd -from typing import List +from typing import List, Dict +import yaml +from pathlib import Path from logging import getLogger @@ -19,17 +21,26 @@ def get_model_run_scenario_from_input_filepath(filename: str): return {'model_run': model_run, 'scenario': scenario, 'param': param, 'filepath': filepath} -def get_model_run_scenario_from_filepath(filename: str): - """Parses filepath to extract useful bits +def get_model_run_scenario_from_filepath(filepath: str) -> Dict: + """Parses filepath to extract useful bits. + + Input filepath is expected in the form of: + "results/{scenario}/{modelrun}/results/{input_file}.csv" + + Parameters + ---------- + file : str + file path from root directory - "results/{{scenario}}/{modelrun}/{input_file}.csv" + Returns + ------- + Dict + With model_run, scenario, OSeMOSYS parameter, and filepath directory """ - filepath, name = os.path.split(filename) - param = os.path.splitext(name)[0] - scenario_path, model_run = os.path.split(filepath) - scenario = os.path.split(scenario_path)[1] - return {'model_run': model_run, 'scenario': scenario, - 'param': param, 'filepath': filepath} + f = Path(filepath) + parts = f.parts + return {'model_run': parts[2], 'scenario': parts[1], + 'param': f.stem, 'filepath': str(f.parent)} def read_results(input_filepath: str) -> pd.DataFrame: extension = os.path.splitext(input_filepath)[1] @@ -43,7 +54,7 @@ def read_results(input_filepath: str) -> pd.DataFrame: def write_results(df: pd.DataFrame, output_filepath: str, index=None) -> None: - """Write out aggregated results to disk + """Write out aggregated results to disk by scenario Arguments --------- @@ -65,7 +76,7 @@ def write_results(df: pd.DataFrame, output_filepath: str, index=None) -> None: df.to_feather(output_filepath) def create_salib_problem(parameters: List) -> dict: - """Creates SALib problem from scenario configuration file. + """Creates SALib problem from scenario configuration. Arguments --------- @@ -88,8 +99,9 @@ def create_salib_problem(parameters: List) -> dict: problem = {} problem['num_vars'] = len(parameters) if problem['num_vars'] <= 1: - logger.error(f"Must define at least two variables in problem. User defined {problem['num_vars']} variable(s).") - raise ValueError + raise ValueError( + f"Must define at least two variables in problem. User defined " + f"{problem['num_vars']} variable(s).") names = [] bounds = [] @@ -106,7 +118,33 @@ def create_salib_problem(parameters: List) -> dict: problem['groups'] = groups num_groups = len(set(groups)) if num_groups <= 1: - logger.error(f"Must define at least two groups in problem. User defined {num_groups} group(s).") - raise ValueError + raise ValueError( + f"Must define at least two groups in problem. User defined " + f"{num_groups} group(s).") - return problem \ No newline at end of file + return problem + +def parse_yaml(path : str) -> Dict: + """Parses a YAML file to a dictionary + + Parameters + ---------- + path : str + input path the yaml file + + Returns + ------- + parsed_yaml : Dict + parsed YAML file + + Raises + ------ + YAMLError + If the yaml file can't be loaded + """ + with open(path, 'r') as stream: + try: + parsed_yaml = yaml.safe_load(stream) + except yaml.YAMLError as exc: + print(exc) + return parsed_yaml \ No newline at end of file