diff --git a/docs/inputs/toml.rst b/docs/inputs/toml.rst index 661de28d..de93a8d7 100644 --- a/docs/inputs/toml.rst +++ b/docs/inputs/toml.rst @@ -155,9 +155,8 @@ explained in the :ref:`toml-primer`. .. code-block:: TOML [global_input_files] - projections = '{path}/inputs/Projections.csv' - regions = '{path}/inputs/Regions.csv' - global_commodities = '{path}/inputs/MUSEGlobalCommodities.csv' + projections = '{path}/Projections.csv' + global_commodities = '{path}/GlobalCommodities.csv' *projections* Path to a csv file giving initial market projection. See :ref:`inputs-projection`. @@ -398,21 +397,21 @@ Sectors contain a number of subsections: .. code-block:: toml [sectors.gas.subsectors.all] - agents = '{path}/technodata/Agents.csv' - existing_capacity = '{path}/technodata/gas/Existing.csv' + agents = '{path}/gas/Agents.csv' + existing_capacity = '{path}/gas/ExistingCapacity.csv' A two-subsector could look like: .. code-block:: toml [sectors.gas.subsectors.methane_and_ethanol] - agents = '{path}/technodata/me_agents.csv' - existing_capacity = '{path}/technodata/gas/me_existing.csv' + agents = '{path}/gas/me_agents.csv' + existing_capacity = '{path}/gas/me_existing.csv' commodities = ["methane", "ethanol"] [sectors.gas.subsectors.natural] - agents = '{path}/technodata/nat_agents.csv' - existing_capacity = '{path}/technodata/gas/nat_existing.csv' + agents = '{path}/gas/nat_agents.csv' + existing_capacity = '{path}/gas/nat_existing.csv' commodities = ["refined", "crude"] In the case of multiple subsectors, it is important to specify disjoint sets of @@ -562,7 +561,7 @@ A common example would be the following, where commodity consumption is defined [sectors.commercial_presets] type = 'presets' priority = 0 - consumption_path = "{path}/technodata/preset/*Consumption.csv" + consumption_path = "{path}/commercial_presets/*Consumption.csv" Alternatively, you may define consumption as a function of macro-economic data, i.e. population and GDP: @@ -571,9 +570,9 @@ Alternatively, you may define consumption as a function of macro-economic data, [sectors.commercial_presets] type = 'presets' priority = 0 - timeslice_shares_path = '{path}/technodata/TimesliceShareCommercial.csv' - macrodrivers_path = '{path}/technodata/Macrodrivers.csv' - regression_path = '{path}/technodata/regressionparameters.csv' + timeslice_shares_path = '{path}/commercial_presets/TimesliceShareCommercial.csv' + macrodrivers_path = '{path}/commercial_presets/Macrodrivers.csv' + regression_path = '{path}/commercial_presets/regressionparameters.csv' The following attributes are accepted: diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/Agents.csv b/docs/tutorial-code/add-agent/1-single-objective/Agents.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/Agents.csv rename to docs/tutorial-code/add-agent/1-single-objective/Agents.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/input/GlobalCommodities.csv b/docs/tutorial-code/add-agent/1-single-objective/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/input/GlobalCommodities.csv rename to docs/tutorial-code/add-agent/1-single-objective/GlobalCommodities.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/input/Projections.csv b/docs/tutorial-code/add-agent/1-single-objective/Projections.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/input/Projections.csv rename to docs/tutorial-code/add-agent/1-single-objective/Projections.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/gas/CommIn.csv b/docs/tutorial-code/add-agent/1-single-objective/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/gas/CommIn.csv rename to docs/tutorial-code/add-agent/1-single-objective/gas/CommIn.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/gas/CommOut.csv b/docs/tutorial-code/add-agent/1-single-objective/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/gas/CommOut.csv rename to docs/tutorial-code/add-agent/1-single-objective/gas/CommOut.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/add-agent/1-single-objective/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/add-agent/1-single-objective/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/gas/Technodata.csv b/docs/tutorial-code/add-agent/1-single-objective/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/gas/Technodata.csv rename to docs/tutorial-code/add-agent/1-single-objective/gas/Technodata.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/input/BaseYearExport.csv b/docs/tutorial-code/add-agent/1-single-objective/input/BaseYearExport.csv deleted file mode 100644 index 7218c1fc..00000000 --- a/docs/tutorial-code/add-agent/1-single-objective/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/add-agent/1-single-objective/input/BaseYearImport.csv b/docs/tutorial-code/add-agent/1-single-objective/input/BaseYearImport.csv deleted file mode 100644 index 75b32276..00000000 --- a/docs/tutorial-code/add-agent/1-single-objective/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/power/CommIn.csv b/docs/tutorial-code/add-agent/1-single-objective/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/power/CommIn.csv rename to docs/tutorial-code/add-agent/1-single-objective/power/CommIn.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/power/CommOut.csv b/docs/tutorial-code/add-agent/1-single-objective/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/power/CommOut.csv rename to docs/tutorial-code/add-agent/1-single-objective/power/CommOut.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/add-agent/1-single-objective/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/add-agent/1-single-objective/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/power/Technodata.csv b/docs/tutorial-code/add-agent/1-single-objective/power/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/power/Technodata.csv rename to docs/tutorial-code/add-agent/1-single-objective/power/Technodata.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/residential/CommIn.csv b/docs/tutorial-code/add-agent/1-single-objective/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/residential/CommIn.csv rename to docs/tutorial-code/add-agent/1-single-objective/residential/CommIn.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/residential/CommOut.csv b/docs/tutorial-code/add-agent/1-single-objective/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/residential/CommOut.csv rename to docs/tutorial-code/add-agent/1-single-objective/residential/CommOut.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/add-agent/1-single-objective/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/add-agent/1-single-objective/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/residential/Technodata.csv b/docs/tutorial-code/add-agent/1-single-objective/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/residential/Technodata.csv rename to docs/tutorial-code/add-agent/1-single-objective/residential/Technodata.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/preset/Residential2020Consumption.csv b/docs/tutorial-code/add-agent/1-single-objective/residential_presets/Residential2020Consumption.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/preset/Residential2020Consumption.csv rename to docs/tutorial-code/add-agent/1-single-objective/residential_presets/Residential2020Consumption.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/technodata/preset/Residential2050Consumption.csv b/docs/tutorial-code/add-agent/1-single-objective/residential_presets/Residential2050Consumption.csv similarity index 100% rename from docs/tutorial-code/add-agent/1-single-objective/technodata/preset/Residential2050Consumption.csv rename to docs/tutorial-code/add-agent/1-single-objective/residential_presets/Residential2050Consumption.csv diff --git a/docs/tutorial-code/add-agent/1-single-objective/settings.toml b/docs/tutorial-code/add-agent/1-single-objective/settings.toml index 7b88375b..3f720ec3 100644 --- a/docs/tutorial-code/add-agent/1-single-objective/settings.toml +++ b/docs/tutorial-code/add-agent/1-single-objective/settings.toml @@ -1,96 +1,79 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/Agents.csv b/docs/tutorial-code/add-agent/2-multiple-objective/Agents.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/Agents.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/Agents.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/input/GlobalCommodities.csv b/docs/tutorial-code/add-agent/2-multiple-objective/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/input/GlobalCommodities.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/GlobalCommodities.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/input/Projections.csv b/docs/tutorial-code/add-agent/2-multiple-objective/Projections.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/input/Projections.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/Projections.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/gas/CommIn.csv b/docs/tutorial-code/add-agent/2-multiple-objective/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/gas/CommIn.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/gas/CommIn.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/gas/CommOut.csv b/docs/tutorial-code/add-agent/2-multiple-objective/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/gas/CommOut.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/gas/CommOut.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/add-agent/2-multiple-objective/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/gas/Technodata.csv b/docs/tutorial-code/add-agent/2-multiple-objective/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/gas/Technodata.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/gas/Technodata.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/input/BaseYearExport.csv b/docs/tutorial-code/add-agent/2-multiple-objective/input/BaseYearExport.csv deleted file mode 100644 index 7218c1fc..00000000 --- a/docs/tutorial-code/add-agent/2-multiple-objective/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/input/BaseYearImport.csv b/docs/tutorial-code/add-agent/2-multiple-objective/input/BaseYearImport.csv deleted file mode 100644 index 75b32276..00000000 --- a/docs/tutorial-code/add-agent/2-multiple-objective/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/power/CommIn.csv b/docs/tutorial-code/add-agent/2-multiple-objective/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/power/CommIn.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/power/CommIn.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/power/CommOut.csv b/docs/tutorial-code/add-agent/2-multiple-objective/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/power/CommOut.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/power/CommOut.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/add-agent/2-multiple-objective/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/power/Technodata.csv b/docs/tutorial-code/add-agent/2-multiple-objective/power/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/power/Technodata.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/power/Technodata.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/residential/CommIn.csv b/docs/tutorial-code/add-agent/2-multiple-objective/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/residential/CommIn.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/residential/CommIn.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/residential/CommOut.csv b/docs/tutorial-code/add-agent/2-multiple-objective/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/residential/CommOut.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/residential/CommOut.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/add-agent/2-multiple-objective/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/residential/Technodata.csv b/docs/tutorial-code/add-agent/2-multiple-objective/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/residential/Technodata.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/residential/Technodata.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/preset/Residential2020Consumption.csv b/docs/tutorial-code/add-agent/2-multiple-objective/residential_presets/Residential2020Consumption.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/preset/Residential2020Consumption.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/residential_presets/Residential2020Consumption.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/technodata/preset/Residential2050Consumption.csv b/docs/tutorial-code/add-agent/2-multiple-objective/residential_presets/Residential2050Consumption.csv similarity index 100% rename from docs/tutorial-code/add-agent/2-multiple-objective/technodata/preset/Residential2050Consumption.csv rename to docs/tutorial-code/add-agent/2-multiple-objective/residential_presets/Residential2050Consumption.csv diff --git a/docs/tutorial-code/add-agent/2-multiple-objective/settings.toml b/docs/tutorial-code/add-agent/2-multiple-objective/settings.toml index 7b88375b..3f720ec3 100644 --- a/docs/tutorial-code/add-agent/2-multiple-objective/settings.toml +++ b/docs/tutorial-code/add-agent/2-multiple-objective/settings.toml @@ -1,96 +1,79 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/docs/tutorial-code/add-agent/generate_models.py b/docs/tutorial-code/add-agent/generate_models.py index f898ef6f..65e3803d 100644 --- a/docs/tutorial-code/add-agent/generate_models.py +++ b/docs/tutorial-code/add-agent/generate_models.py @@ -34,20 +34,20 @@ def generate_model_1(): ) # Change objective for agent A2 - agents_file = model_path / "technodata/Agents.csv" + agents_file = model_path / "Agents.csv" df = pd.read_csv(agents_file) df.loc[df["Name"] == "A2", "Objective1"] = "fuel_consumption_cost" df.to_csv(agents_file, index=False) # Split population between the two agents - agents_file = model_path / "technodata/Agents.csv" + agents_file = model_path / "Agents.csv" df = pd.read_csv(agents_file) df.loc[:, "Quantity"] = 0.5 df.to_csv(agents_file, index=False) # Split capacity equally between the two agents for sector in get_sectors(model_path): - technodata_file = model_path / f"technodata/{sector}/Technodata.csv" + technodata_file = model_path / f"{sector}/Technodata.csv" df = pd.read_csv(technodata_file) df.loc[1:, "Agent1"] = 0.5 df.loc[1:, "Agent2"] = 0.5 @@ -71,7 +71,7 @@ def generate_model_2(): shutil.rmtree(model_path / "Results") # Add second objective for agent A2 - agents_file = model_path / "technodata/Agents.csv" + agents_file = model_path / "Agents.csv" df = pd.read_csv(agents_file) df.loc[df["Name"] == "A2", "Objective2"] = "LCOE" df.loc[df["Name"] == "A2", "DecisionMethod"] = "weighted_sum" diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/Agents.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/Agents.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/Agents.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/Agents.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/input/GlobalCommodities.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/input/GlobalCommodities.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/GlobalCommodities.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/input/Projections.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/Projections.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/input/Projections.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/Projections.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/gas/CommIn.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/gas/CommIn.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/gas/CommIn.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/gas/CommOut.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/gas/CommOut.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/gas/CommOut.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/gas/Technodata.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/gas/Technodata.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/gas/Technodata.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/input/BaseYearExport.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/input/BaseYearExport.csv deleted file mode 100644 index 7218c1fc..00000000 --- a/docs/tutorial-code/add-correlation-demand/1-correlation/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/input/BaseYearImport.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/input/BaseYearImport.csv deleted file mode 100644 index 75b32276..00000000 --- a/docs/tutorial-code/add-correlation-demand/1-correlation/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/power/CommIn.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/power/CommIn.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/power/CommIn.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/power/CommOut.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/power/CommOut.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/power/CommOut.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/power/Technodata.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/power/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/power/Technodata.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/power/Technodata.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/residential/CommIn.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/residential/CommIn.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/residential/CommIn.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/residential/CommOut.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/residential/CommOut.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/residential/CommOut.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/residential/Technodata.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/residential/Technodata.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/residential/Technodata.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/preset/Macrodrivers.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/residential_presets/Macrodrivers.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/preset/Macrodrivers.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/residential_presets/Macrodrivers.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/preset/TimesliceSharepreset.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/residential_presets/TimesliceSharepreset.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/preset/TimesliceSharepreset.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/residential_presets/TimesliceSharepreset.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/technodata/preset/regressionparameters.csv b/docs/tutorial-code/add-correlation-demand/1-correlation/residential_presets/regressionparameters.csv similarity index 100% rename from docs/tutorial-code/add-correlation-demand/1-correlation/technodata/preset/regressionparameters.csv rename to docs/tutorial-code/add-correlation-demand/1-correlation/residential_presets/regressionparameters.csv diff --git a/docs/tutorial-code/add-correlation-demand/1-correlation/settings.toml b/docs/tutorial-code/add-correlation-demand/1-correlation/settings.toml index 1ede2a50..0d47801a 100644 --- a/docs/tutorial-code/add-correlation-demand/1-correlation/settings.toml +++ b/docs/tutorial-code/add-correlation-demand/1-correlation/settings.toml @@ -1,98 +1,81 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -timeslice_shares_path = "{path}/technodata/preset/TimesliceSharepreset.csv" -macrodrivers_path = "{path}/technodata/preset/Macrodrivers.csv" -regression_path = "{path}/technodata/preset/regressionparameters.csv" +# Global outputs +timeslice_shares_path = "{path}/residential_presets/TimesliceSharepreset.csv" +macrodrivers_path = "{path}/residential_presets/Macrodrivers.csv" +regression_path = "{path}/residential_presets/regressionparameters.csv" -[timeslices] -level_names = ["month", "day", "hour"] +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/docs/tutorial-code/add-correlation-demand/generate_models.py b/docs/tutorial-code/add-correlation-demand/generate_models.py index 7744f3bc..e954575d 100644 --- a/docs/tutorial-code/add-correlation-demand/generate_models.py +++ b/docs/tutorial-code/add-correlation-demand/generate_models.py @@ -26,10 +26,10 @@ def generate_model_1() -> None: os.rename(parent_path / "model", model_path) # Delete presets - shutil.rmtree(model_path / "technodata/preset") + shutil.rmtree(model_path / "residential_presets") # Copy regression files - os.mkdir(model_path / "technodata/preset") + os.mkdir(model_path / "residential_presets") for file in [ "Macrodrivers.csv", "regressionparameters.csv", @@ -37,12 +37,12 @@ def generate_model_1() -> None: ]: shutil.copy( parent_path / file, - model_path / "technodata/preset" / file, + model_path / "residential_presets" / file, ) # Modify toml file to point to new presets settings_file = model_path / "settings.toml" - path_prefix = "{path}/technodata/preset/" + path_prefix = "{path}/residential_presets/" modify_toml( settings_file, lambda settings: ( diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/Agents.csv b/docs/tutorial-code/add-new-technology/1-introduction/Agents.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/Agents.csv rename to docs/tutorial-code/add-new-technology/1-introduction/Agents.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/input/GlobalCommodities.csv b/docs/tutorial-code/add-new-technology/1-introduction/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/input/GlobalCommodities.csv rename to docs/tutorial-code/add-new-technology/1-introduction/GlobalCommodities.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/input/Projections.csv b/docs/tutorial-code/add-new-technology/1-introduction/Projections.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/input/Projections.csv rename to docs/tutorial-code/add-new-technology/1-introduction/Projections.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/gas/CommIn.csv b/docs/tutorial-code/add-new-technology/1-introduction/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/gas/CommIn.csv rename to docs/tutorial-code/add-new-technology/1-introduction/gas/CommIn.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/gas/CommOut.csv b/docs/tutorial-code/add-new-technology/1-introduction/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/gas/CommOut.csv rename to docs/tutorial-code/add-new-technology/1-introduction/gas/CommOut.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/add-new-technology/1-introduction/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/add-new-technology/1-introduction/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/gas/Technodata.csv b/docs/tutorial-code/add-new-technology/1-introduction/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/gas/Technodata.csv rename to docs/tutorial-code/add-new-technology/1-introduction/gas/Technodata.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/input/BaseYearExport.csv b/docs/tutorial-code/add-new-technology/1-introduction/input/BaseYearExport.csv deleted file mode 100644 index 38c886d3..00000000 --- a/docs/tutorial-code/add-new-technology/1-introduction/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind,solar -Unit,-,Year,PJ,PJ,PJ,kt,PJ,PJ -R1,Exports,2010,0,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0,0 diff --git a/docs/tutorial-code/add-new-technology/1-introduction/input/BaseYearImport.csv b/docs/tutorial-code/add-new-technology/1-introduction/input/BaseYearImport.csv deleted file mode 100644 index 9c9cc695..00000000 --- a/docs/tutorial-code/add-new-technology/1-introduction/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind,solar -Unit,-,Year,PJ,PJ,PJ,kt,PJ,PJ -R1,Imports,2010,0,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0,0 diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/power/CommIn.csv b/docs/tutorial-code/add-new-technology/1-introduction/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/power/CommIn.csv rename to docs/tutorial-code/add-new-technology/1-introduction/power/CommIn.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/power/CommOut.csv b/docs/tutorial-code/add-new-technology/1-introduction/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/power/CommOut.csv rename to docs/tutorial-code/add-new-technology/1-introduction/power/CommOut.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/add-new-technology/1-introduction/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/add-new-technology/1-introduction/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/power/Technodata.csv b/docs/tutorial-code/add-new-technology/1-introduction/power/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/power/Technodata.csv rename to docs/tutorial-code/add-new-technology/1-introduction/power/Technodata.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/residential/CommIn.csv b/docs/tutorial-code/add-new-technology/1-introduction/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/residential/CommIn.csv rename to docs/tutorial-code/add-new-technology/1-introduction/residential/CommIn.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/residential/CommOut.csv b/docs/tutorial-code/add-new-technology/1-introduction/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/residential/CommOut.csv rename to docs/tutorial-code/add-new-technology/1-introduction/residential/CommOut.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/add-new-technology/1-introduction/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/add-new-technology/1-introduction/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/residential/Technodata.csv b/docs/tutorial-code/add-new-technology/1-introduction/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/residential/Technodata.csv rename to docs/tutorial-code/add-new-technology/1-introduction/residential/Technodata.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/preset/Residential2020Consumption.csv b/docs/tutorial-code/add-new-technology/1-introduction/residential_presets/Residential2020Consumption.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/preset/Residential2020Consumption.csv rename to docs/tutorial-code/add-new-technology/1-introduction/residential_presets/Residential2020Consumption.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/technodata/preset/Residential2050Consumption.csv b/docs/tutorial-code/add-new-technology/1-introduction/residential_presets/Residential2050Consumption.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/1-introduction/technodata/preset/Residential2050Consumption.csv rename to docs/tutorial-code/add-new-technology/1-introduction/residential_presets/Residential2050Consumption.csv diff --git a/docs/tutorial-code/add-new-technology/1-introduction/settings.toml b/docs/tutorial-code/add-new-technology/1-introduction/settings.toml index 1504187a..94cb1260 100644 --- a/docs/tutorial-code/add-new-technology/1-introduction/settings.toml +++ b/docs/tutorial-code/add-new-technology/1-introduction/settings.toml @@ -1,96 +1,79 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind", "solar"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind", "solar"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/Agents.csv b/docs/tutorial-code/add-new-technology/2-scenario/Agents.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/Agents.csv rename to docs/tutorial-code/add-new-technology/2-scenario/Agents.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/input/GlobalCommodities.csv b/docs/tutorial-code/add-new-technology/2-scenario/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/input/GlobalCommodities.csv rename to docs/tutorial-code/add-new-technology/2-scenario/GlobalCommodities.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/input/Projections.csv b/docs/tutorial-code/add-new-technology/2-scenario/Projections.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/input/Projections.csv rename to docs/tutorial-code/add-new-technology/2-scenario/Projections.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/gas/CommIn.csv b/docs/tutorial-code/add-new-technology/2-scenario/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/gas/CommIn.csv rename to docs/tutorial-code/add-new-technology/2-scenario/gas/CommIn.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/gas/CommOut.csv b/docs/tutorial-code/add-new-technology/2-scenario/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/gas/CommOut.csv rename to docs/tutorial-code/add-new-technology/2-scenario/gas/CommOut.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/add-new-technology/2-scenario/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/add-new-technology/2-scenario/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/gas/Technodata.csv b/docs/tutorial-code/add-new-technology/2-scenario/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/gas/Technodata.csv rename to docs/tutorial-code/add-new-technology/2-scenario/gas/Technodata.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/input/BaseYearExport.csv b/docs/tutorial-code/add-new-technology/2-scenario/input/BaseYearExport.csv deleted file mode 100644 index 38c886d3..00000000 --- a/docs/tutorial-code/add-new-technology/2-scenario/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind,solar -Unit,-,Year,PJ,PJ,PJ,kt,PJ,PJ -R1,Exports,2010,0,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0,0 diff --git a/docs/tutorial-code/add-new-technology/2-scenario/input/BaseYearImport.csv b/docs/tutorial-code/add-new-technology/2-scenario/input/BaseYearImport.csv deleted file mode 100644 index 9c9cc695..00000000 --- a/docs/tutorial-code/add-new-technology/2-scenario/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind,solar -Unit,-,Year,PJ,PJ,PJ,kt,PJ,PJ -R1,Imports,2010,0,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0,0 diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/power/CommIn.csv b/docs/tutorial-code/add-new-technology/2-scenario/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/power/CommIn.csv rename to docs/tutorial-code/add-new-technology/2-scenario/power/CommIn.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/power/CommOut.csv b/docs/tutorial-code/add-new-technology/2-scenario/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/power/CommOut.csv rename to docs/tutorial-code/add-new-technology/2-scenario/power/CommOut.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/add-new-technology/2-scenario/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/add-new-technology/2-scenario/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/power/Technodata.csv b/docs/tutorial-code/add-new-technology/2-scenario/power/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/power/Technodata.csv rename to docs/tutorial-code/add-new-technology/2-scenario/power/Technodata.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/residential/CommIn.csv b/docs/tutorial-code/add-new-technology/2-scenario/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/residential/CommIn.csv rename to docs/tutorial-code/add-new-technology/2-scenario/residential/CommIn.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/residential/CommOut.csv b/docs/tutorial-code/add-new-technology/2-scenario/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/residential/CommOut.csv rename to docs/tutorial-code/add-new-technology/2-scenario/residential/CommOut.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/add-new-technology/2-scenario/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/add-new-technology/2-scenario/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/residential/Technodata.csv b/docs/tutorial-code/add-new-technology/2-scenario/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/residential/Technodata.csv rename to docs/tutorial-code/add-new-technology/2-scenario/residential/Technodata.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/preset/Residential2020Consumption.csv b/docs/tutorial-code/add-new-technology/2-scenario/residential_presets/Residential2020Consumption.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/preset/Residential2020Consumption.csv rename to docs/tutorial-code/add-new-technology/2-scenario/residential_presets/Residential2020Consumption.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/technodata/preset/Residential2050Consumption.csv b/docs/tutorial-code/add-new-technology/2-scenario/residential_presets/Residential2050Consumption.csv similarity index 100% rename from docs/tutorial-code/add-new-technology/2-scenario/technodata/preset/Residential2050Consumption.csv rename to docs/tutorial-code/add-new-technology/2-scenario/residential_presets/Residential2050Consumption.csv diff --git a/docs/tutorial-code/add-new-technology/2-scenario/settings.toml b/docs/tutorial-code/add-new-technology/2-scenario/settings.toml index 1504187a..94cb1260 100644 --- a/docs/tutorial-code/add-new-technology/2-scenario/settings.toml +++ b/docs/tutorial-code/add-new-technology/2-scenario/settings.toml @@ -1,96 +1,79 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind", "solar"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind", "solar"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/docs/tutorial-code/add-new-technology/generate_models.py b/docs/tutorial-code/add-new-technology/generate_models.py index a6f1f173..639080b8 100644 --- a/docs/tutorial-code/add-new-technology/generate_models.py +++ b/docs/tutorial-code/add-new-technology/generate_models.py @@ -37,7 +37,7 @@ def generate_model_1() -> None: add_new_process(model_path, "solarPV", "power", "windturbine") # Modify input commodities - commin_file = model_path / "technodata/power/CommIn.csv" + commin_file = model_path / "power/CommIn.csv" df = pd.read_csv(commin_file) df.loc[(df["ProcessName"] == "solarPV"), "solar"] = 1 df.loc[(df["ProcessName"] == "solarPV"), "wind"] = 0 @@ -45,7 +45,7 @@ def generate_model_1() -> None: df.to_csv(commin_file, index=False) # Modify technodata for solarPV - technodata_file = model_path / "technodata/power/Technodata.csv" + technodata_file = model_path / "power/Technodata.csv" df = pd.read_csv(technodata_file) df.loc[df["ProcessName"] == "solarPV", "cap_par"] = 30 df.loc[df["ProcessName"] == "solarPV", "Fuel"] = "solar" @@ -78,7 +78,7 @@ def generate_model_2() -> None: add_price_data_for_new_year(model_path, "2040", "power", "2020") # Modify cap_par for solarPV - technodata_file = model_path / "technodata/power/Technodata.csv" + technodata_file = model_path / "power/Technodata.csv" df = pd.read_csv(technodata_file) df.loc[(df["ProcessName"] == "solarPV") & (df["Time"] == "2020"), "cap_par"] = 40 df.loc[(df["ProcessName"] == "solarPV") & (df["Time"] == "2040"), "cap_par"] = 30 diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/Agents.csv b/docs/tutorial-code/add-region/1-new-region/Agents.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/Agents.csv rename to docs/tutorial-code/add-region/1-new-region/Agents.csv diff --git a/docs/tutorial-code/add-region/1-new-region/input/GlobalCommodities.csv b/docs/tutorial-code/add-region/1-new-region/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/input/GlobalCommodities.csv rename to docs/tutorial-code/add-region/1-new-region/GlobalCommodities.csv diff --git a/docs/tutorial-code/add-region/1-new-region/input/Projections.csv b/docs/tutorial-code/add-region/1-new-region/Projections.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/input/Projections.csv rename to docs/tutorial-code/add-region/1-new-region/Projections.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/gas/CommIn.csv b/docs/tutorial-code/add-region/1-new-region/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/gas/CommIn.csv rename to docs/tutorial-code/add-region/1-new-region/gas/CommIn.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/gas/CommOut.csv b/docs/tutorial-code/add-region/1-new-region/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/gas/CommOut.csv rename to docs/tutorial-code/add-region/1-new-region/gas/CommOut.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/add-region/1-new-region/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/add-region/1-new-region/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/gas/Technodata.csv b/docs/tutorial-code/add-region/1-new-region/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/gas/Technodata.csv rename to docs/tutorial-code/add-region/1-new-region/gas/Technodata.csv diff --git a/docs/tutorial-code/add-region/1-new-region/input/BaseYearExport.csv b/docs/tutorial-code/add-region/1-new-region/input/BaseYearExport.csv deleted file mode 100644 index 36b5f3a4..00000000 --- a/docs/tutorial-code/add-region/1-new-region/input/BaseYearExport.csv +++ /dev/null @@ -1,40 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0 -R2,Exports,2010,0,0,0,0,0 -R2,Exports,2015,0,0,0,0,0 -R2,Exports,2020,0,0,0,0,0 -R2,Exports,2025,0,0,0,0,0 -R2,Exports,2030,0,0,0,0,0 -R2,Exports,2035,0,0,0,0,0 -R2,Exports,2040,0,0,0,0,0 -R2,Exports,2045,0,0,0,0,0 -R2,Exports,2050,0,0,0,0,0 -R2,Exports,2055,0,0,0,0,0 -R2,Exports,2060,0,0,0,0,0 -R2,Exports,2065,0,0,0,0,0 -R2,Exports,2070,0,0,0,0,0 -R2,Exports,2075,0,0,0,0,0 -R2,Exports,2080,0,0,0,0,0 -R2,Exports,2085,0,0,0,0,0 -R2,Exports,2090,0,0,0,0,0 -R2,Exports,2095,0,0,0,0,0 -R2,Exports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/add-region/1-new-region/input/BaseYearImport.csv b/docs/tutorial-code/add-region/1-new-region/input/BaseYearImport.csv deleted file mode 100644 index 8400b37e..00000000 --- a/docs/tutorial-code/add-region/1-new-region/input/BaseYearImport.csv +++ /dev/null @@ -1,40 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0 -R2,Imports,2010,0,0,0,0,0 -R2,Imports,2015,0,0,0,0,0 -R2,Imports,2020,0,0,0,0,0 -R2,Imports,2025,0,0,0,0,0 -R2,Imports,2030,0,0,0,0,0 -R2,Imports,2035,0,0,0,0,0 -R2,Imports,2040,0,0,0,0,0 -R2,Imports,2045,0,0,0,0,0 -R2,Imports,2050,0,0,0,0,0 -R2,Imports,2055,0,0,0,0,0 -R2,Imports,2060,0,0,0,0,0 -R2,Imports,2065,0,0,0,0,0 -R2,Imports,2070,0,0,0,0,0 -R2,Imports,2075,0,0,0,0,0 -R2,Imports,2080,0,0,0,0,0 -R2,Imports,2085,0,0,0,0,0 -R2,Imports,2090,0,0,0,0,0 -R2,Imports,2095,0,0,0,0,0 -R2,Imports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/power/CommIn.csv b/docs/tutorial-code/add-region/1-new-region/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/power/CommIn.csv rename to docs/tutorial-code/add-region/1-new-region/power/CommIn.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/power/CommOut.csv b/docs/tutorial-code/add-region/1-new-region/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/power/CommOut.csv rename to docs/tutorial-code/add-region/1-new-region/power/CommOut.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/add-region/1-new-region/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/add-region/1-new-region/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/power/Technodata.csv b/docs/tutorial-code/add-region/1-new-region/power/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/power/Technodata.csv rename to docs/tutorial-code/add-region/1-new-region/power/Technodata.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/residential/CommIn.csv b/docs/tutorial-code/add-region/1-new-region/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/residential/CommIn.csv rename to docs/tutorial-code/add-region/1-new-region/residential/CommIn.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/residential/CommOut.csv b/docs/tutorial-code/add-region/1-new-region/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/residential/CommOut.csv rename to docs/tutorial-code/add-region/1-new-region/residential/CommOut.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/add-region/1-new-region/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/add-region/1-new-region/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/residential/Technodata.csv b/docs/tutorial-code/add-region/1-new-region/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/residential/Technodata.csv rename to docs/tutorial-code/add-region/1-new-region/residential/Technodata.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/preset/Residential2020Consumption.csv b/docs/tutorial-code/add-region/1-new-region/residential_presets/Residential2020Consumption.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/preset/Residential2020Consumption.csv rename to docs/tutorial-code/add-region/1-new-region/residential_presets/Residential2020Consumption.csv diff --git a/docs/tutorial-code/add-region/1-new-region/technodata/preset/Residential2050Consumption.csv b/docs/tutorial-code/add-region/1-new-region/residential_presets/Residential2050Consumption.csv similarity index 100% rename from docs/tutorial-code/add-region/1-new-region/technodata/preset/Residential2050Consumption.csv rename to docs/tutorial-code/add-region/1-new-region/residential_presets/Residential2050Consumption.csv diff --git a/docs/tutorial-code/add-region/1-new-region/settings.toml b/docs/tutorial-code/add-region/1-new-region/settings.toml index ebd0e29b..e0960195 100644 --- a/docs/tutorial-code/add-region/1-new-region/settings.toml +++ b/docs/tutorial-code/add-region/1-new-region/settings.toml @@ -1,96 +1,79 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1", "R2"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/docs/tutorial-code/add-region/generate_models.py b/docs/tutorial-code/add-region/generate_models.py index d9ce280e..e9457423 100644 --- a/docs/tutorial-code/add-region/generate_models.py +++ b/docs/tutorial-code/add-region/generate_models.py @@ -29,7 +29,7 @@ def generate_model_1(): add_region(model_path, region_name="R2", copy_from="R1") # Reduce capacity limit for heatpump in R2 - technodata_file = model_path / "technodata/residential/Technodata.csv" + technodata_file = model_path / "residential/Technodata.csv" df = pd.read_csv(technodata_file) mask = (df["RegionName"] == "R2") & (df["ProcessName"] == "heatpump") df.loc[mask, "TotalCapacityLimit"] = 20 diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/Agents.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/Agents.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/Agents.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/Agents.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/input/GlobalCommodities.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/input/GlobalCommodities.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/GlobalCommodities.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/input/Projections.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/Projections.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/input/Projections.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/Projections.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/gas/CommIn.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/gas/CommIn.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/gas/CommIn.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/gas/CommOut.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/gas/CommOut.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/gas/CommOut.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/gas/Technodata.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/gas/Technodata.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/gas/Technodata.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/input/BaseYearExport.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/input/BaseYearExport.csv deleted file mode 100644 index 0d616590..00000000 --- a/docs/tutorial-code/add-service-demand/1-exogenous-demand/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind,cook -Unit,-,Year,PJ,PJ,PJ,kt,PJ,PJ -R1,Exports,2010,0,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0,0 diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/input/BaseYearImport.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/input/BaseYearImport.csv deleted file mode 100644 index 9cda51ee..00000000 --- a/docs/tutorial-code/add-service-demand/1-exogenous-demand/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind,cook -Unit,-,Year,PJ,PJ,PJ,kt,PJ,PJ -R1,Imports,2010,0,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0,0 diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/power/CommIn.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/power/CommIn.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/power/CommIn.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/power/CommOut.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/power/CommOut.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/power/CommOut.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/power/Technodata.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/power/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/power/Technodata.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/power/Technodata.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/residential/CommIn.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/residential/CommIn.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/residential/CommIn.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/residential/CommOut.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/residential/CommOut.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/residential/CommOut.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/residential/Technodata.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/residential/Technodata.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/residential/Technodata.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/preset/Residential2020Consumption.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/residential_presets/Residential2020Consumption.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/preset/Residential2020Consumption.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/residential_presets/Residential2020Consumption.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/preset/Residential2050Consumption.csv b/docs/tutorial-code/add-service-demand/1-exogenous-demand/residential_presets/Residential2050Consumption.csv similarity index 100% rename from docs/tutorial-code/add-service-demand/1-exogenous-demand/technodata/preset/Residential2050Consumption.csv rename to docs/tutorial-code/add-service-demand/1-exogenous-demand/residential_presets/Residential2050Consumption.csv diff --git a/docs/tutorial-code/add-service-demand/1-exogenous-demand/settings.toml b/docs/tutorial-code/add-service-demand/1-exogenous-demand/settings.toml index 7b88375b..3f720ec3 100644 --- a/docs/tutorial-code/add-service-demand/1-exogenous-demand/settings.toml +++ b/docs/tutorial-code/add-service-demand/1-exogenous-demand/settings.toml @@ -1,96 +1,79 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/docs/tutorial-code/add-service-demand/generate_models.py b/docs/tutorial-code/add-service-demand/generate_models.py index 635b629a..c579ae77 100644 --- a/docs/tutorial-code/add-service-demand/generate_models.py +++ b/docs/tutorial-code/add-service-demand/generate_models.py @@ -29,7 +29,7 @@ def generate_model_1(): add_new_commodity(model_path, "cook", "residential", "heat") # Modify cook projections - projections_file = model_path / "input/Projections.csv" + projections_file = model_path / "Projections.csv" df = pd.read_csv(projections_file) df.loc[1:, "cook"] = 100 df.to_csv(projections_file, index=False) @@ -39,7 +39,7 @@ def generate_model_1(): add_new_process(model_path, "gas_stove", "residential", "gasboiler") # Modify output commodities - commout_file = model_path / "technodata/residential/CommOut.csv" + commout_file = model_path / "residential/CommOut.csv" df = pd.read_csv(commout_file) df.loc[1:, "cook"] = 0 df.loc[df["ProcessName"] == "gas_stove", df.columns[-6:]] = [0, 0, 0, 50, 0, 1] @@ -47,13 +47,13 @@ def generate_model_1(): df.to_csv(commout_file, index=False) # Modify input commodities - commin_file = model_path / "technodata/residential/CommIn.csv" + commin_file = model_path / "residential/CommIn.csv" df = pd.read_csv(commin_file) df.loc[1:, "cook"] = 0 df.to_csv(commin_file, index=False) # Change cap_par, Fuel and EndUse - technodata_file = model_path / "technodata/residential/Technodata.csv" + technodata_file = model_path / "residential/Technodata.csv" df = pd.read_csv(technodata_file) df.loc[df["ProcessName"] == "gas_stove", "Fuel"] = "gas" df.loc[df["ProcessName"] == "electric_stove", "Fuel"] = "electricity" diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/Agents.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/Agents.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/Agents.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/Agents.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/input/GlobalCommodities.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/input/GlobalCommodities.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/GlobalCommodities.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/input/Projections.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/Projections.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/input/Projections.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/Projections.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/gas/CommIn.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/gas/CommIn.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/gas/CommIn.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/gas/CommOut.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/gas/CommOut.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/gas/CommOut.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/gas/Technodata.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/gas/Technodata.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/gas/Technodata.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/input/BaseYearExport.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/input/BaseYearExport.csv deleted file mode 100644 index 7218c1fc..00000000 --- a/docs/tutorial-code/carbon-budget/1-carbon-budget/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/input/BaseYearImport.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/input/BaseYearImport.csv deleted file mode 100644 index 75b32276..00000000 --- a/docs/tutorial-code/carbon-budget/1-carbon-budget/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/power/CommIn.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/power/CommIn.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/power/CommIn.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/power/CommOut.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/power/CommOut.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/power/CommOut.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/power/Technodata.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/power/Technodata.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/power/Technodata.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/power/Technodata.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/residential/CommIn.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/residential/CommIn.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/residential/CommIn.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/residential/CommOut.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/residential/CommOut.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/residential/CommOut.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/residential/Technodata.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/residential/Technodata.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/residential/Technodata.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/preset/Residential2020Consumption.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/residential_presets/Residential2020Consumption.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/preset/Residential2020Consumption.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/residential_presets/Residential2020Consumption.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/preset/Residential2050Consumption.csv b/docs/tutorial-code/carbon-budget/1-carbon-budget/residential_presets/Residential2050Consumption.csv similarity index 100% rename from docs/tutorial-code/carbon-budget/1-carbon-budget/technodata/preset/Residential2050Consumption.csv rename to docs/tutorial-code/carbon-budget/1-carbon-budget/residential_presets/Residential2050Consumption.csv diff --git a/docs/tutorial-code/carbon-budget/1-carbon-budget/settings.toml b/docs/tutorial-code/carbon-budget/1-carbon-budget/settings.toml index 9ff6687b..44aa5d67 100644 --- a/docs/tutorial-code/carbon-budget/1-carbon-budget/settings.toml +++ b/docs/tutorial-code/carbon-budget/1-carbon-budget/settings.toml @@ -1,109 +1,95 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "supply" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[carbon_budget_control] -budget = [300, 300, 300, 300] -commodities = ["CO2f"] -method = "bisection" -control_undershoot = false -control_overshoot = false +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control.method_options] -max_iterations = 5 -tolerance = 0.2 +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" + +[[outputs]] +quantity = "supply" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" + +[carbon_budget_control] +budget = [300, 300, 300, 300] +commodities = ["CO2f"] +method = "bisection" +control_undershoot = false +control_overshoot = false + +[carbon_budget_control.method_options] +max_iterations = 5 +tolerance = 0.2 diff --git a/docs/tutorial-code/carbon-budget/generate_models.py b/docs/tutorial-code/carbon-budget/generate_models.py index a548dd7d..c6d0b132 100644 --- a/docs/tutorial-code/carbon-budget/generate_models.py +++ b/docs/tutorial-code/carbon-budget/generate_models.py @@ -56,7 +56,7 @@ def generate_model_1() -> None: } modify_toml( settings_file, - lambda x: x["carbon_budget_control"].update(carbon_budget_settings), + lambda x: x.update({"carbon_budget_control": carbon_budget_settings}), ) diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/Agents.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/Agents.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/Agents.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/Agents.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/input/GlobalCommodities.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/input/GlobalCommodities.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/GlobalCommodities.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/input/Projections.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/Projections.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/input/Projections.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/Projections.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/gas/CommIn.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/gas/CommIn.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/gas/CommIn.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/gas/CommOut.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/gas/CommOut.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/gas/CommOut.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/gas/Technodata.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/gas/Technodata.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/gas/Technodata.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/input/BaseYearExport.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/input/BaseYearExport.csv deleted file mode 100644 index 7218c1fc..00000000 --- a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/input/BaseYearImport.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/input/BaseYearImport.csv deleted file mode 100644 index 75b32276..00000000 --- a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/output.py b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/output.py deleted file mode 100644 index 68225919..00000000 --- a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/output.py +++ /dev/null @@ -1,45 +0,0 @@ -from typing import Optional - -import xarray as xr - -from muse.outputs.sector import market_quantity, register_output_quantity - - -@register_output_quantity -def supply_timeslice( - market: xr.Dataset, - capacity: xr.DataArray, - technologies: xr.Dataset, - sum_over: Optional[list[str]] = None, - drop: Optional[list[str]] = None, - rounding: int = 4, -) -> xr.DataArray: - """Current supply.""" - market = market.reset_index("timeslice") - result = ( - market_quantity(market.supply, sum_over=sum_over, drop=drop) - .rename("supply") - .to_dataframe() - .round(rounding) - ) - return result[result.supply != 0] - - -@register_output_quantity -def consumption_timeslice( - market: xr.Dataset, - capacity: xr.DataArray, - technologies: xr.Dataset, - sum_over: Optional[list[str]] = None, - drop: Optional[list[str]] = None, - rounding: int = 4, -) -> xr.DataArray: - """Current consumption.""" - market = market.reset_index("timeslice") - result = ( - market_quantity(market.consumption, sum_over=sum_over, drop=drop) - .rename("consumption") - .to_dataframe() - .round(rounding) - ) - return result[result.consumption != 0] diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/power/CommIn.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/power/CommIn.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/power/CommIn.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/power/CommOut.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/power/CommOut.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/power/CommOut.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/power/Technodata.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/power/Technodata.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/power/Technodata.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/power/Technodata.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/power/TechnodataTimeslices.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/power/TechnodataTimeslices.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/power/TechnodataTimeslices.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/power/TechnodataTimeslices.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/residential/CommIn.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/residential/CommIn.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/residential/CommIn.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/residential/CommOut.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/residential/CommOut.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/residential/CommOut.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/residential/Technodata.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/residential/Technodata.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/residential/Technodata.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/preset/Residential2020Consumption.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/residential_presets/Residential2020Consumption.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/preset/Residential2020Consumption.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/residential_presets/Residential2020Consumption.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/preset/Residential2050Consumption.csv b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/residential_presets/Residential2050Consumption.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/technodata/preset/Residential2050Consumption.csv rename to docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/residential_presets/Residential2050Consumption.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/settings.toml b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/settings.toml index f65a0b03..8f2844a7 100644 --- a/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/settings.toml +++ b/docs/tutorial-code/min-max-timeslice-constraints/1-min-constraint/settings.toml @@ -1,70 +1,56 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -technodata_timeslices = '{path}/technodata/power/TechnodataTimeslices.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +technodata_timeslices = '{path}/power/TechnodataTimeslices.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [[sectors.power.outputs]] quantity = "supply" @@ -74,29 +60,26 @@ filename = "{cwd}/{default_output_dir}/{Sector}_{Quantity}.csv" [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/Agents.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/Agents.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/Agents.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/Agents.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/input/GlobalCommodities.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/input/GlobalCommodities.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/GlobalCommodities.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/input/Projections.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/Projections.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/input/Projections.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/Projections.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/gas/CommIn.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/gas/CommIn.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/gas/CommIn.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/gas/CommOut.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/gas/CommOut.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/gas/CommOut.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/gas/Technodata.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/gas/Technodata.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/gas/Technodata.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/input/BaseYearExport.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/input/BaseYearExport.csv deleted file mode 100644 index 7218c1fc..00000000 --- a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/input/BaseYearImport.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/input/BaseYearImport.csv deleted file mode 100644 index 75b32276..00000000 --- a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/output.py b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/output.py deleted file mode 100644 index 68225919..00000000 --- a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/output.py +++ /dev/null @@ -1,45 +0,0 @@ -from typing import Optional - -import xarray as xr - -from muse.outputs.sector import market_quantity, register_output_quantity - - -@register_output_quantity -def supply_timeslice( - market: xr.Dataset, - capacity: xr.DataArray, - technologies: xr.Dataset, - sum_over: Optional[list[str]] = None, - drop: Optional[list[str]] = None, - rounding: int = 4, -) -> xr.DataArray: - """Current supply.""" - market = market.reset_index("timeslice") - result = ( - market_quantity(market.supply, sum_over=sum_over, drop=drop) - .rename("supply") - .to_dataframe() - .round(rounding) - ) - return result[result.supply != 0] - - -@register_output_quantity -def consumption_timeslice( - market: xr.Dataset, - capacity: xr.DataArray, - technologies: xr.Dataset, - sum_over: Optional[list[str]] = None, - drop: Optional[list[str]] = None, - rounding: int = 4, -) -> xr.DataArray: - """Current consumption.""" - market = market.reset_index("timeslice") - result = ( - market_quantity(market.consumption, sum_over=sum_over, drop=drop) - .rename("consumption") - .to_dataframe() - .round(rounding) - ) - return result[result.consumption != 0] diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/power/CommIn.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/power/CommIn.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/power/CommIn.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/power/CommOut.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/power/CommOut.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/power/CommOut.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/power/Technodata.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/power/Technodata.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/power/Technodata.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/power/Technodata.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/power/TechnodataTimeslices.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/power/TechnodataTimeslices.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/power/TechnodataTimeslices.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/power/TechnodataTimeslices.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/residential/CommIn.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/residential/CommIn.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/residential/CommIn.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/residential/CommOut.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/residential/CommOut.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/residential/CommOut.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/residential/Technodata.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/residential/Technodata.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/residential/Technodata.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/preset/Residential2020Consumption.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/residential_presets/Residential2020Consumption.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/preset/Residential2020Consumption.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/residential_presets/Residential2020Consumption.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/preset/Residential2050Consumption.csv b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/residential_presets/Residential2050Consumption.csv similarity index 100% rename from docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/technodata/preset/Residential2050Consumption.csv rename to docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/residential_presets/Residential2050Consumption.csv diff --git a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/settings.toml b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/settings.toml index f65a0b03..8f2844a7 100644 --- a/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/settings.toml +++ b/docs/tutorial-code/min-max-timeslice-constraints/2-max-constraint/settings.toml @@ -1,70 +1,56 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -technodata_timeslices = '{path}/technodata/power/TechnodataTimeslices.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +technodata_timeslices = '{path}/power/TechnodataTimeslices.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [[sectors.power.outputs]] quantity = "supply" @@ -74,29 +60,26 @@ filename = "{cwd}/{default_output_dir}/{Sector}_{Quantity}.csv" [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/docs/tutorial-code/min-max-timeslice-constraints/generate_models.py b/docs/tutorial-code/min-max-timeslice-constraints/generate_models.py index 5f0cffce..9025229c 100644 --- a/docs/tutorial-code/min-max-timeslice-constraints/generate_models.py +++ b/docs/tutorial-code/min-max-timeslice-constraints/generate_models.py @@ -25,7 +25,7 @@ def generate_model_1() -> None: os.rename(parent_path / "model", model_path) # Modify MinimumServiceFactor for gasCCGT - timeslices_file = model_path / "technodata/power/TechnodataTimeslices.csv" + timeslices_file = model_path / "power/TechnodataTimeslices.csv" df = pd.read_csv(timeslices_file) df.loc[1:, "MinimumServiceFactor"] = 0 df.loc[df["ProcessName"] == "gasCCGT", "MinimumServiceFactor"] = [ @@ -56,7 +56,7 @@ def generate_model_2() -> None: shutil.rmtree(model_path / "Results") # Modify UtilizationFactor and MinimumServiceFactor for windturbine - timeslices_file = model_path / "technodata/power/TechnodataTimeslices.csv" + timeslices_file = model_path / "power/TechnodataTimeslices.csv" df = pd.read_csv(timeslices_file) df.loc[df["ProcessName"] == "gasCCGT", "MinimumServiceFactor"] = [ 0.2, diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/Agents.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/Agents.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/Agents.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/Agents.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/input/GlobalCommodities.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/input/GlobalCommodities.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/GlobalCommodities.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/input/Projections.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/Projections.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/input/Projections.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/Projections.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/gas/CommIn.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/gas/CommIn.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/gas/CommIn.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/gas/CommOut.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/gas/CommOut.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/gas/CommOut.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/gas/Technodata.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/gas/Technodata.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/gas/Technodata.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/input/BaseYearExport.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/input/BaseYearExport.csv deleted file mode 100644 index 7218c1fc..00000000 --- a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/input/BaseYearImport.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/input/BaseYearImport.csv deleted file mode 100644 index 75b32276..00000000 --- a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/power/CommIn.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/power/CommIn.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/power/CommIn.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/power/CommOut.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/power/CommOut.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/power/CommOut.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/power/Technodata.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/power/Technodata.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/power/Technodata.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/power/Technodata.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/residential/CommIn.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/residential/CommIn.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/residential/CommIn.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/residential/CommOut.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/residential/CommOut.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/residential/CommOut.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/residential/Technodata.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/residential/Technodata.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/residential/Technodata.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/preset/Residential2020Consumption.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/residential_presets/Residential2020Consumption.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/preset/Residential2020Consumption.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/residential_presets/Residential2020Consumption.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/preset/Residential2050Consumption.csv b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/residential_presets/Residential2050Consumption.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/1-modify-timeslices/technodata/preset/Residential2050Consumption.csv rename to docs/tutorial-code/modify-timing-data/1-modify-timeslices/residential_presets/Residential2050Consumption.csv diff --git a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/settings.toml b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/settings.toml index efbac483..4bcf4437 100644 --- a/docs/tutorial-code/modify-timing-data/1-modify-timeslices/settings.toml +++ b/docs/tutorial-code/modify-timing-data/1-modify-timeslices/settings.toml @@ -1,98 +1,80 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1095 +morning = 1095 +mid-afternoon = 1095 +early-peak = 1095 +late-peak = 1095 +evening = 1095 +early-morning = 1095 +late-afternoon = 1095 [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1095 -morning = 1095 -mid-afternoon = 1095 -early-peak = 1095 -late-peak = 1095 -evening = 1095 -early-morning = 1095 -late-afternoon = 1095 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/Agents.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/Agents.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/Agents.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/Agents.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/input/GlobalCommodities.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/input/GlobalCommodities.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/GlobalCommodities.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/input/Projections.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/Projections.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/input/Projections.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/Projections.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/Results/MCACapacity.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/Results/MCACapacity.csv index a1cf35c0..59c5a304 100644 --- a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/Results/MCACapacity.csv +++ b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/Results/MCACapacity.csv @@ -5,159 +5,124 @@ A1,15.00000000000,R1,2020,R1,gas,gassupply1,newcapa,2020 A1,8.00000000000,R1,2020,R1,residential,gasboiler,newcapa,2022 A1,11.04000000000,R1,2022,R1,residential,heatpump,newcapa,2022 A1,1.00000000000,R1,2020,R1,power,gasCCGT,newcapa,2022 -A1,3.00000000000,R1,2022,R1,power,gasCCGT,newcapa,2022 -A1,2.04000000000,R1,2022,R1,power,windturbine,newcapa,2022 -A1,15.00000000000,R1,2020,R1,gas,gassupply1,newcapa,2022 -A1,1.99110000000,R1,2022,R1,gas,gassupply1,newcapa,2022 +A1,1.25000000000,R1,2022,R1,power,gasCCGT,newcapa,2022 +A1,5.97750000000,R1,2022,R1,power,windturbine,newcapa,2022 A1,6.00000000000,R1,2020,R1,residential,gasboiler,newcapa,2024 A1,11.04000000000,R1,2022,R1,residential,heatpump,newcapa,2024 A1,4.24000000000,R1,2024,R1,residential,heatpump,newcapa,2024 A1,1.00000000000,R1,2020,R1,power,gasCCGT,newcapa,2024 -A1,3.00000000000,R1,2022,R1,power,gasCCGT,newcapa,2024 +A1,1.25000000000,R1,2022,R1,power,gasCCGT,newcapa,2024 A1,1.88440000000,R1,2024,R1,power,gasCCGT,newcapa,2024 -A1,2.04000000000,R1,2022,R1,power,windturbine,newcapa,2024 -A1,15.00000000000,R1,2020,R1,gas,gassupply1,newcapa,2024 -A1,1.99110000000,R1,2022,R1,gas,gassupply1,newcapa,2024 -A1,0.56920000000,R1,2024,R1,gas,gassupply1,newcapa,2024 +A1,5.97750000000,R1,2022,R1,power,windturbine,newcapa,2024 +A1,14.63790000000,R1,2024,R1,gas,gassupply1,newcapa,2024 A1,4.00000000000,R1,2020,R1,residential,gasboiler,newcapa,2026 A1,11.04000000000,R1,2022,R1,residential,heatpump,newcapa,2026 A1,4.24000000000,R1,2024,R1,residential,heatpump,newcapa,2026 A1,4.24000000000,R1,2026,R1,residential,heatpump,newcapa,2026 A1,0.80000000000,R1,2020,R1,power,gasCCGT,newcapa,2026 -A1,3.00000000000,R1,2022,R1,power,gasCCGT,newcapa,2026 +A1,1.25000000000,R1,2022,R1,power,gasCCGT,newcapa,2026 A1,1.88440000000,R1,2024,R1,power,gasCCGT,newcapa,2026 A1,2.08440000000,R1,2026,R1,power,gasCCGT,newcapa,2026 -A1,2.04000000000,R1,2022,R1,power,windturbine,newcapa,2026 -A1,13.50000000000,R1,2020,R1,gas,gassupply1,newcapa,2026 -A1,1.99110000000,R1,2022,R1,gas,gassupply1,newcapa,2026 -A1,0.56920000000,R1,2024,R1,gas,gassupply1,newcapa,2026 -A1,2.06920000000,R1,2026,R1,gas,gassupply1,newcapa,2026 +A1,5.97750000000,R1,2022,R1,power,windturbine,newcapa,2026 A1,2.00000000000,R1,2020,R1,residential,gasboiler,newcapa,2028 A1,11.04000000000,R1,2022,R1,residential,heatpump,newcapa,2028 A1,4.24000000000,R1,2024,R1,residential,heatpump,newcapa,2028 A1,4.24000000000,R1,2026,R1,residential,heatpump,newcapa,2028 A1,4.24000000000,R1,2028,R1,residential,heatpump,newcapa,2028 A1,0.40000000000,R1,2020,R1,power,gasCCGT,newcapa,2028 -A1,3.00000000000,R1,2022,R1,power,gasCCGT,newcapa,2028 +A1,1.25000000000,R1,2022,R1,power,gasCCGT,newcapa,2028 A1,1.88440000000,R1,2024,R1,power,gasCCGT,newcapa,2028 A1,2.08440000000,R1,2026,R1,power,gasCCGT,newcapa,2028 A1,2.28440000000,R1,2028,R1,power,gasCCGT,newcapa,2028 -A1,2.04000000000,R1,2022,R1,power,windturbine,newcapa,2028 -A1,10.50000000000,R1,2020,R1,gas,gassupply1,newcapa,2028 -A1,1.99110000000,R1,2022,R1,gas,gassupply1,newcapa,2028 -A1,0.56920000000,R1,2024,R1,gas,gassupply1,newcapa,2028 -A1,2.06920000000,R1,2026,R1,gas,gassupply1,newcapa,2028 -A1,3.56920000000,R1,2028,R1,gas,gassupply1,newcapa,2028 +A1,5.97750000000,R1,2022,R1,power,windturbine,newcapa,2028 +A1,15.77630000000,R1,2028,R1,gas,gassupply1,newcapa,2028 A1,11.04000000000,R1,2022,R1,residential,heatpump,newcapa,2030 A1,4.24000000000,R1,2024,R1,residential,heatpump,newcapa,2030 A1,4.24000000000,R1,2026,R1,residential,heatpump,newcapa,2030 A1,4.24000000000,R1,2028,R1,residential,heatpump,newcapa,2030 A1,4.24000000000,R1,2030,R1,residential,heatpump,newcapa,2030 -A1,3.00000000000,R1,2022,R1,power,gasCCGT,newcapa,2030 +A1,1.25000000000,R1,2022,R1,power,gasCCGT,newcapa,2030 A1,1.88440000000,R1,2024,R1,power,gasCCGT,newcapa,2030 A1,2.08440000000,R1,2026,R1,power,gasCCGT,newcapa,2030 A1,2.28440000000,R1,2028,R1,power,gasCCGT,newcapa,2030 -A1,2.04000000000,R1,2022,R1,power,windturbine,newcapa,2030 +A1,5.97750000000,R1,2022,R1,power,windturbine,newcapa,2030 A1,5.14000000000,R1,2030,R1,power,windturbine,newcapa,2030 A1,7.50000000000,R1,2020,R1,gas,gassupply1,newcapa,2030 -A1,1.99110000000,R1,2022,R1,gas,gassupply1,newcapa,2030 -A1,0.56920000000,R1,2024,R1,gas,gassupply1,newcapa,2030 -A1,2.06920000000,R1,2026,R1,gas,gassupply1,newcapa,2030 -A1,3.56920000000,R1,2028,R1,gas,gassupply1,newcapa,2030 +A1,14.63790000000,R1,2024,R1,gas,gassupply1,newcapa,2030 +A1,15.77630000000,R1,2028,R1,gas,gassupply1,newcapa,2030 A1,4.24000000000,R1,2024,R1,residential,heatpump,newcapa,2032 A1,4.24000000000,R1,2026,R1,residential,heatpump,newcapa,2032 A1,4.24000000000,R1,2028,R1,residential,heatpump,newcapa,2032 A1,4.24000000000,R1,2030,R1,residential,heatpump,newcapa,2032 A1,13.28000000000,R1,2032,R1,residential,heatpump,newcapa,2032 -A1,3.00000000000,R1,2022,R1,power,gasCCGT,newcapa,2032 +A1,1.25000000000,R1,2022,R1,power,gasCCGT,newcapa,2032 A1,1.88440000000,R1,2024,R1,power,gasCCGT,newcapa,2032 A1,2.08440000000,R1,2026,R1,power,gasCCGT,newcapa,2032 A1,2.28440000000,R1,2028,R1,power,gasCCGT,newcapa,2032 -A1,2.04000000000,R1,2022,R1,power,windturbine,newcapa,2032 +A1,5.97750000000,R1,2022,R1,power,windturbine,newcapa,2032 A1,5.14000000000,R1,2030,R1,power,windturbine,newcapa,2032 A1,2.24000000000,R1,2032,R1,power,windturbine,newcapa,2032 -A1,4.50000000000,R1,2020,R1,gas,gassupply1,newcapa,2032 -A1,1.99110000000,R1,2022,R1,gas,gassupply1,newcapa,2032 -A1,0.56920000000,R1,2024,R1,gas,gassupply1,newcapa,2032 -A1,2.06920000000,R1,2026,R1,gas,gassupply1,newcapa,2032 -A1,3.56920000000,R1,2028,R1,gas,gassupply1,newcapa,2032 -A1,2.75420000000,R1,2032,R1,gas,gassupply1,newcapa,2032 A1,4.24000000000,R1,2026,R1,residential,heatpump,newcapa,2034 A1,4.24000000000,R1,2028,R1,residential,heatpump,newcapa,2034 A1,4.24000000000,R1,2030,R1,residential,heatpump,newcapa,2034 A1,13.28000000000,R1,2032,R1,residential,heatpump,newcapa,2034 A1,6.48000000000,R1,2034,R1,residential,heatpump,newcapa,2034 -A1,3.00000000000,R1,2022,R1,power,gasCCGT,newcapa,2034 +A1,1.25000000000,R1,2022,R1,power,gasCCGT,newcapa,2034 A1,1.88440000000,R1,2024,R1,power,gasCCGT,newcapa,2034 A1,2.08440000000,R1,2026,R1,power,gasCCGT,newcapa,2034 A1,2.28440000000,R1,2028,R1,power,gasCCGT,newcapa,2034 -A1,2.04000000000,R1,2022,R1,power,windturbine,newcapa,2034 +A1,5.97750000000,R1,2022,R1,power,windturbine,newcapa,2034 A1,5.14000000000,R1,2030,R1,power,windturbine,newcapa,2034 A1,2.24000000000,R1,2032,R1,power,windturbine,newcapa,2034 A1,2.24000000000,R1,2034,R1,power,windturbine,newcapa,2034 -A1,1.50000000000,R1,2020,R1,gas,gassupply1,newcapa,2034 -A1,1.99110000000,R1,2022,R1,gas,gassupply1,newcapa,2034 -A1,0.56920000000,R1,2024,R1,gas,gassupply1,newcapa,2034 -A1,2.06920000000,R1,2026,R1,gas,gassupply1,newcapa,2034 -A1,3.56920000000,R1,2028,R1,gas,gassupply1,newcapa,2034 -A1,2.75420000000,R1,2032,R1,gas,gassupply1,newcapa,2034 -A1,3.00000000000,R1,2034,R1,gas,gassupply1,newcapa,2034 +A1,12.53060000000,R1,2034,R1,gas,gassupply1,newcapa,2034 A1,4.24000000000,R1,2028,R1,residential,heatpump,newcapa,2036 A1,4.24000000000,R1,2030,R1,residential,heatpump,newcapa,2036 A1,13.28000000000,R1,2032,R1,residential,heatpump,newcapa,2036 A1,6.48000000000,R1,2034,R1,residential,heatpump,newcapa,2036 A1,6.48000000000,R1,2036,R1,residential,heatpump,newcapa,2036 -A1,3.00000000000,R1,2022,R1,power,gasCCGT,newcapa,2036 +A1,1.25000000000,R1,2022,R1,power,gasCCGT,newcapa,2036 A1,1.88440000000,R1,2024,R1,power,gasCCGT,newcapa,2036 A1,2.08440000000,R1,2026,R1,power,gasCCGT,newcapa,2036 A1,2.28440000000,R1,2028,R1,power,gasCCGT,newcapa,2036 -A1,2.04000000000,R1,2022,R1,power,windturbine,newcapa,2036 +A1,5.97750000000,R1,2022,R1,power,windturbine,newcapa,2036 A1,5.14000000000,R1,2030,R1,power,windturbine,newcapa,2036 A1,2.24000000000,R1,2032,R1,power,windturbine,newcapa,2036 A1,2.24000000000,R1,2034,R1,power,windturbine,newcapa,2036 A1,2.24000000000,R1,2036,R1,power,windturbine,newcapa,2036 -A1,1.99110000000,R1,2022,R1,gas,gassupply1,newcapa,2036 -A1,0.56920000000,R1,2024,R1,gas,gassupply1,newcapa,2036 -A1,2.06920000000,R1,2026,R1,gas,gassupply1,newcapa,2036 -A1,3.56920000000,R1,2028,R1,gas,gassupply1,newcapa,2036 -A1,2.75420000000,R1,2032,R1,gas,gassupply1,newcapa,2036 -A1,3.00000000000,R1,2034,R1,gas,gassupply1,newcapa,2036 -A1,1.50000000000,R1,2036,R1,gas,gassupply1,newcapa,2036 A1,4.24000000000,R1,2030,R1,residential,heatpump,newcapa,2038 A1,13.28000000000,R1,2032,R1,residential,heatpump,newcapa,2038 A1,6.48000000000,R1,2034,R1,residential,heatpump,newcapa,2038 A1,6.48000000000,R1,2036,R1,residential,heatpump,newcapa,2038 A1,6.48000000000,R1,2038,R1,residential,heatpump,newcapa,2038 -A1,3.00000000000,R1,2022,R1,power,gasCCGT,newcapa,2038 +A1,1.25000000000,R1,2022,R1,power,gasCCGT,newcapa,2038 A1,1.88440000000,R1,2024,R1,power,gasCCGT,newcapa,2038 A1,2.08440000000,R1,2026,R1,power,gasCCGT,newcapa,2038 A1,2.28440000000,R1,2028,R1,power,gasCCGT,newcapa,2038 -A1,2.04000000000,R1,2022,R1,power,windturbine,newcapa,2038 +A1,5.97750000000,R1,2022,R1,power,windturbine,newcapa,2038 A1,5.14000000000,R1,2030,R1,power,windturbine,newcapa,2038 A1,2.24000000000,R1,2032,R1,power,windturbine,newcapa,2038 A1,2.24000000000,R1,2034,R1,power,windturbine,newcapa,2038 A1,2.24000000000,R1,2036,R1,power,windturbine,newcapa,2038 A1,2.24000000000,R1,2038,R1,power,windturbine,newcapa,2038 +A1,12.53060000000,R1,2038,R1,gas,gassupply1,newcapa,2038 A1,13.28000000000,R1,2032,R1,residential,heatpump,newcapa,2040 A1,6.48000000000,R1,2034,R1,residential,heatpump,newcapa,2040 A1,6.48000000000,R1,2036,R1,residential,heatpump,newcapa,2040 A1,6.48000000000,R1,2038,R1,residential,heatpump,newcapa,2040 A1,6.48000000000,R1,2040,R1,residential,heatpump,newcapa,2040 -A1,3.00000000000,R1,2022,R1,power,gasCCGT,newcapa,2040 +A1,1.25000000000,R1,2022,R1,power,gasCCGT,newcapa,2040 A1,1.88440000000,R1,2024,R1,power,gasCCGT,newcapa,2040 A1,2.08440000000,R1,2026,R1,power,gasCCGT,newcapa,2040 A1,2.28440000000,R1,2028,R1,power,gasCCGT,newcapa,2040 -A1,2.04000000000,R1,2022,R1,power,windturbine,newcapa,2040 +A1,5.97750000000,R1,2022,R1,power,windturbine,newcapa,2040 A1,5.14000000000,R1,2030,R1,power,windturbine,newcapa,2040 A1,2.24000000000,R1,2032,R1,power,windturbine,newcapa,2040 A1,2.24000000000,R1,2034,R1,power,windturbine,newcapa,2040 A1,2.24000000000,R1,2036,R1,power,windturbine,newcapa,2040 A1,2.24000000000,R1,2038,R1,power,windturbine,newcapa,2040 A1,2.24000000000,R1,2040,R1,power,windturbine,newcapa,2040 -A1,1.99110000000,R1,2022,R1,gas,gassupply1,newcapa,2040 -A1,0.56920000000,R1,2024,R1,gas,gassupply1,newcapa,2040 -A1,2.06920000000,R1,2026,R1,gas,gassupply1,newcapa,2040 -A1,3.56920000000,R1,2028,R1,gas,gassupply1,newcapa,2040 -A1,2.75420000000,R1,2032,R1,gas,gassupply1,newcapa,2040 -A1,3.00000000000,R1,2034,R1,gas,gassupply1,newcapa,2040 -A1,1.50000000000,R1,2036,R1,gas,gassupply1,newcapa,2040 +A1,14.63790000000,R1,2024,R1,gas,gassupply1,newcapa,2040 +A1,15.77630000000,R1,2028,R1,gas,gassupply1,newcapa,2040 +A1,12.53060000000,R1,2034,R1,gas,gassupply1,newcapa,2040 +A1,12.53060000000,R1,2038,R1,gas,gassupply1,newcapa,2040 diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/Results/MCAPrices.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/Results/MCAPrices.csv index bcd61a46..ef3c5b0b 100644 --- a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/Results/MCAPrices.csv +++ b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/Results/MCAPrices.csv @@ -31,323 +31,323 @@ electricity,all-week,late-afternoon,all-year,19.50000000000,R1,7,MUS$2010/PJ,202 gas,all-week,late-afternoon,all-year,7.15280000000,R1,7,MUS$2010/PJ,2020 heat,all-week,late-afternoon,all-year,100.00000000000,R1,7,MUS$2010/PJ,2020 CO2f,all-week,late-afternoon,all-year,0.08310000000,R1,7,MUS$2010/kt,2020 -electricity,all-week,night,all-year,17.85770000000,R1,0,MUS$2010/PJ,2022 +electricity,all-week,night,all-year,17.62220000000,R1,0,MUS$2010/PJ,2022 gas,all-week,night,all-year,2.55000000000,R1,0,MUS$2010/PJ,2022 -heat,all-week,night,all-year,9.94600000000,R1,0,MUS$2010/PJ,2022 +heat,all-week,night,all-year,9.89130000000,R1,0,MUS$2010/PJ,2022 CO2f,all-week,night,all-year,0.09790000000,R1,0,MUS$2010/kt,2022 -electricity,all-week,morning,all-year,17.85770000000,R1,1,MUS$2010/PJ,2022 +electricity,all-week,morning,all-year,17.62220000000,R1,1,MUS$2010/PJ,2022 gas,all-week,morning,all-year,2.55000000000,R1,1,MUS$2010/PJ,2022 -heat,all-week,morning,all-year,9.94600000000,R1,1,MUS$2010/PJ,2022 +heat,all-week,morning,all-year,9.89130000000,R1,1,MUS$2010/PJ,2022 CO2f,all-week,morning,all-year,0.09790000000,R1,1,MUS$2010/kt,2022 -electricity,all-week,mid-afternoon,all-year,17.85770000000,R1,2,MUS$2010/PJ,2022 +electricity,all-week,mid-afternoon,all-year,17.62220000000,R1,2,MUS$2010/PJ,2022 gas,all-week,mid-afternoon,all-year,2.55000000000,R1,2,MUS$2010/PJ,2022 -heat,all-week,mid-afternoon,all-year,9.94600000000,R1,2,MUS$2010/PJ,2022 +heat,all-week,mid-afternoon,all-year,9.89130000000,R1,2,MUS$2010/PJ,2022 CO2f,all-week,mid-afternoon,all-year,0.09790000000,R1,2,MUS$2010/kt,2022 -electricity,all-week,early-peak,all-year,17.85770000000,R1,3,MUS$2010/PJ,2022 +electricity,all-week,early-peak,all-year,17.62220000000,R1,3,MUS$2010/PJ,2022 gas,all-week,early-peak,all-year,2.55000000000,R1,3,MUS$2010/PJ,2022 -heat,all-week,early-peak,all-year,9.94600000000,R1,3,MUS$2010/PJ,2022 +heat,all-week,early-peak,all-year,9.89130000000,R1,3,MUS$2010/PJ,2022 CO2f,all-week,early-peak,all-year,0.09790000000,R1,3,MUS$2010/kt,2022 -electricity,all-week,late-peak,all-year,17.85770000000,R1,4,MUS$2010/PJ,2022 +electricity,all-week,late-peak,all-year,17.62220000000,R1,4,MUS$2010/PJ,2022 gas,all-week,late-peak,all-year,2.55000000000,R1,4,MUS$2010/PJ,2022 -heat,all-week,late-peak,all-year,9.94600000000,R1,4,MUS$2010/PJ,2022 +heat,all-week,late-peak,all-year,9.89130000000,R1,4,MUS$2010/PJ,2022 CO2f,all-week,late-peak,all-year,0.09790000000,R1,4,MUS$2010/kt,2022 -electricity,all-week,evening,all-year,17.85770000000,R1,5,MUS$2010/PJ,2022 +electricity,all-week,evening,all-year,17.62220000000,R1,5,MUS$2010/PJ,2022 gas,all-week,evening,all-year,2.55000000000,R1,5,MUS$2010/PJ,2022 -heat,all-week,evening,all-year,9.94600000000,R1,5,MUS$2010/PJ,2022 +heat,all-week,evening,all-year,9.89130000000,R1,5,MUS$2010/PJ,2022 CO2f,all-week,evening,all-year,0.09790000000,R1,5,MUS$2010/kt,2022 -electricity,all-week,early-morning,all-year,17.85770000000,R1,6,MUS$2010/PJ,2022 +electricity,all-week,early-morning,all-year,17.62220000000,R1,6,MUS$2010/PJ,2022 gas,all-week,early-morning,all-year,2.55000000000,R1,6,MUS$2010/PJ,2022 -heat,all-week,early-morning,all-year,9.94600000000,R1,6,MUS$2010/PJ,2022 +heat,all-week,early-morning,all-year,9.89130000000,R1,6,MUS$2010/PJ,2022 CO2f,all-week,early-morning,all-year,0.09790000000,R1,6,MUS$2010/kt,2022 -electricity,all-week,late-afternoon,all-year,17.85770000000,R1,7,MUS$2010/PJ,2022 +electricity,all-week,late-afternoon,all-year,17.62220000000,R1,7,MUS$2010/PJ,2022 gas,all-week,late-afternoon,all-year,2.55000000000,R1,7,MUS$2010/PJ,2022 -heat,all-week,late-afternoon,all-year,9.94600000000,R1,7,MUS$2010/PJ,2022 +heat,all-week,late-afternoon,all-year,9.89130000000,R1,7,MUS$2010/PJ,2022 CO2f,all-week,late-afternoon,all-year,0.09790000000,R1,7,MUS$2010/kt,2022 -electricity,all-week,night,all-year,19.06480000000,R1,0,MUS$2010/PJ,2024 +electricity,all-week,night,all-year,18.54580000000,R1,0,MUS$2010/PJ,2024 gas,all-week,night,all-year,2.55000000000,R1,0,MUS$2010/PJ,2024 -heat,all-week,night,all-year,10.46230000000,R1,0,MUS$2010/PJ,2024 +heat,all-week,night,all-year,10.31320000000,R1,0,MUS$2010/PJ,2024 CO2f,all-week,night,all-year,0.11270000000,R1,0,MUS$2010/kt,2024 -electricity,all-week,morning,all-year,19.06480000000,R1,1,MUS$2010/PJ,2024 +electricity,all-week,morning,all-year,18.54580000000,R1,1,MUS$2010/PJ,2024 gas,all-week,morning,all-year,2.55000000000,R1,1,MUS$2010/PJ,2024 -heat,all-week,morning,all-year,10.46230000000,R1,1,MUS$2010/PJ,2024 +heat,all-week,morning,all-year,10.31320000000,R1,1,MUS$2010/PJ,2024 CO2f,all-week,morning,all-year,0.11270000000,R1,1,MUS$2010/kt,2024 -electricity,all-week,mid-afternoon,all-year,19.06480000000,R1,2,MUS$2010/PJ,2024 +electricity,all-week,mid-afternoon,all-year,18.54580000000,R1,2,MUS$2010/PJ,2024 gas,all-week,mid-afternoon,all-year,2.55000000000,R1,2,MUS$2010/PJ,2024 -heat,all-week,mid-afternoon,all-year,10.46230000000,R1,2,MUS$2010/PJ,2024 +heat,all-week,mid-afternoon,all-year,10.31320000000,R1,2,MUS$2010/PJ,2024 CO2f,all-week,mid-afternoon,all-year,0.11270000000,R1,2,MUS$2010/kt,2024 -electricity,all-week,early-peak,all-year,19.06480000000,R1,3,MUS$2010/PJ,2024 +electricity,all-week,early-peak,all-year,18.54580000000,R1,3,MUS$2010/PJ,2024 gas,all-week,early-peak,all-year,2.55000000000,R1,3,MUS$2010/PJ,2024 -heat,all-week,early-peak,all-year,10.46230000000,R1,3,MUS$2010/PJ,2024 +heat,all-week,early-peak,all-year,10.31320000000,R1,3,MUS$2010/PJ,2024 CO2f,all-week,early-peak,all-year,0.11270000000,R1,3,MUS$2010/kt,2024 -electricity,all-week,late-peak,all-year,19.06480000000,R1,4,MUS$2010/PJ,2024 +electricity,all-week,late-peak,all-year,18.54580000000,R1,4,MUS$2010/PJ,2024 gas,all-week,late-peak,all-year,2.55000000000,R1,4,MUS$2010/PJ,2024 -heat,all-week,late-peak,all-year,10.46230000000,R1,4,MUS$2010/PJ,2024 +heat,all-week,late-peak,all-year,10.31320000000,R1,4,MUS$2010/PJ,2024 CO2f,all-week,late-peak,all-year,0.11270000000,R1,4,MUS$2010/kt,2024 -electricity,all-week,evening,all-year,19.06480000000,R1,5,MUS$2010/PJ,2024 +electricity,all-week,evening,all-year,18.54580000000,R1,5,MUS$2010/PJ,2024 gas,all-week,evening,all-year,2.55000000000,R1,5,MUS$2010/PJ,2024 -heat,all-week,evening,all-year,10.46230000000,R1,5,MUS$2010/PJ,2024 +heat,all-week,evening,all-year,10.31320000000,R1,5,MUS$2010/PJ,2024 CO2f,all-week,evening,all-year,0.11270000000,R1,5,MUS$2010/kt,2024 -electricity,all-week,early-morning,all-year,19.06480000000,R1,6,MUS$2010/PJ,2024 +electricity,all-week,early-morning,all-year,18.54580000000,R1,6,MUS$2010/PJ,2024 gas,all-week,early-morning,all-year,2.55000000000,R1,6,MUS$2010/PJ,2024 -heat,all-week,early-morning,all-year,10.46230000000,R1,6,MUS$2010/PJ,2024 +heat,all-week,early-morning,all-year,10.31320000000,R1,6,MUS$2010/PJ,2024 CO2f,all-week,early-morning,all-year,0.11270000000,R1,6,MUS$2010/kt,2024 -electricity,all-week,late-afternoon,all-year,19.06480000000,R1,7,MUS$2010/PJ,2024 +electricity,all-week,late-afternoon,all-year,18.54580000000,R1,7,MUS$2010/PJ,2024 gas,all-week,late-afternoon,all-year,2.55000000000,R1,7,MUS$2010/PJ,2024 -heat,all-week,late-afternoon,all-year,10.46230000000,R1,7,MUS$2010/PJ,2024 +heat,all-week,late-afternoon,all-year,10.31320000000,R1,7,MUS$2010/PJ,2024 CO2f,all-week,late-afternoon,all-year,0.11270000000,R1,7,MUS$2010/kt,2024 -electricity,all-week,night,all-year,20.33580000000,R1,0,MUS$2010/PJ,2026 +electricity,all-week,night,all-year,19.65640000000,R1,0,MUS$2010/PJ,2026 gas,all-week,night,all-year,2.55000000000,R1,0,MUS$2010/PJ,2026 -heat,all-week,night,all-year,10.91300000000,R1,0,MUS$2010/PJ,2026 +heat,all-week,night,all-year,10.68750000000,R1,0,MUS$2010/PJ,2026 CO2f,all-week,night,all-year,0.12750000000,R1,0,MUS$2010/kt,2026 -electricity,all-week,morning,all-year,20.33580000000,R1,1,MUS$2010/PJ,2026 +electricity,all-week,morning,all-year,19.65640000000,R1,1,MUS$2010/PJ,2026 gas,all-week,morning,all-year,2.55000000000,R1,1,MUS$2010/PJ,2026 -heat,all-week,morning,all-year,10.91300000000,R1,1,MUS$2010/PJ,2026 +heat,all-week,morning,all-year,10.68750000000,R1,1,MUS$2010/PJ,2026 CO2f,all-week,morning,all-year,0.12750000000,R1,1,MUS$2010/kt,2026 -electricity,all-week,mid-afternoon,all-year,20.33580000000,R1,2,MUS$2010/PJ,2026 +electricity,all-week,mid-afternoon,all-year,19.65640000000,R1,2,MUS$2010/PJ,2026 gas,all-week,mid-afternoon,all-year,2.55000000000,R1,2,MUS$2010/PJ,2026 -heat,all-week,mid-afternoon,all-year,10.91300000000,R1,2,MUS$2010/PJ,2026 +heat,all-week,mid-afternoon,all-year,10.68750000000,R1,2,MUS$2010/PJ,2026 CO2f,all-week,mid-afternoon,all-year,0.12750000000,R1,2,MUS$2010/kt,2026 -electricity,all-week,early-peak,all-year,20.33580000000,R1,3,MUS$2010/PJ,2026 +electricity,all-week,early-peak,all-year,19.65640000000,R1,3,MUS$2010/PJ,2026 gas,all-week,early-peak,all-year,2.55000000000,R1,3,MUS$2010/PJ,2026 -heat,all-week,early-peak,all-year,10.91300000000,R1,3,MUS$2010/PJ,2026 +heat,all-week,early-peak,all-year,10.68750000000,R1,3,MUS$2010/PJ,2026 CO2f,all-week,early-peak,all-year,0.12750000000,R1,3,MUS$2010/kt,2026 -electricity,all-week,late-peak,all-year,20.33580000000,R1,4,MUS$2010/PJ,2026 +electricity,all-week,late-peak,all-year,19.65640000000,R1,4,MUS$2010/PJ,2026 gas,all-week,late-peak,all-year,2.55000000000,R1,4,MUS$2010/PJ,2026 -heat,all-week,late-peak,all-year,10.91300000000,R1,4,MUS$2010/PJ,2026 +heat,all-week,late-peak,all-year,10.68750000000,R1,4,MUS$2010/PJ,2026 CO2f,all-week,late-peak,all-year,0.12750000000,R1,4,MUS$2010/kt,2026 -electricity,all-week,evening,all-year,20.33580000000,R1,5,MUS$2010/PJ,2026 +electricity,all-week,evening,all-year,19.65640000000,R1,5,MUS$2010/PJ,2026 gas,all-week,evening,all-year,2.55000000000,R1,5,MUS$2010/PJ,2026 -heat,all-week,evening,all-year,10.91300000000,R1,5,MUS$2010/PJ,2026 +heat,all-week,evening,all-year,10.68750000000,R1,5,MUS$2010/PJ,2026 CO2f,all-week,evening,all-year,0.12750000000,R1,5,MUS$2010/kt,2026 -electricity,all-week,early-morning,all-year,20.33580000000,R1,6,MUS$2010/PJ,2026 +electricity,all-week,early-morning,all-year,19.65640000000,R1,6,MUS$2010/PJ,2026 gas,all-week,early-morning,all-year,2.55000000000,R1,6,MUS$2010/PJ,2026 -heat,all-week,early-morning,all-year,10.91300000000,R1,6,MUS$2010/PJ,2026 +heat,all-week,early-morning,all-year,10.68750000000,R1,6,MUS$2010/PJ,2026 CO2f,all-week,early-morning,all-year,0.12750000000,R1,6,MUS$2010/kt,2026 -electricity,all-week,late-afternoon,all-year,20.33580000000,R1,7,MUS$2010/PJ,2026 +electricity,all-week,late-afternoon,all-year,19.65640000000,R1,7,MUS$2010/PJ,2026 gas,all-week,late-afternoon,all-year,2.55000000000,R1,7,MUS$2010/PJ,2026 -heat,all-week,late-afternoon,all-year,10.91300000000,R1,7,MUS$2010/PJ,2026 +heat,all-week,late-afternoon,all-year,10.68750000000,R1,7,MUS$2010/PJ,2026 CO2f,all-week,late-afternoon,all-year,0.12750000000,R1,7,MUS$2010/kt,2026 -electricity,all-week,night,all-year,21.63650000000,R1,0,MUS$2010/PJ,2028 +electricity,all-week,night,all-year,20.85390000000,R1,0,MUS$2010/PJ,2028 gas,all-week,night,all-year,2.55000000000,R1,0,MUS$2010/PJ,2028 -heat,all-week,night,all-year,11.31520000000,R1,0,MUS$2010/PJ,2028 +heat,all-week,night,all-year,11.02650000000,R1,0,MUS$2010/PJ,2028 CO2f,all-week,night,all-year,0.14220000000,R1,0,MUS$2010/kt,2028 -electricity,all-week,morning,all-year,21.63650000000,R1,1,MUS$2010/PJ,2028 +electricity,all-week,morning,all-year,20.85390000000,R1,1,MUS$2010/PJ,2028 gas,all-week,morning,all-year,2.55000000000,R1,1,MUS$2010/PJ,2028 -heat,all-week,morning,all-year,11.31520000000,R1,1,MUS$2010/PJ,2028 +heat,all-week,morning,all-year,11.02650000000,R1,1,MUS$2010/PJ,2028 CO2f,all-week,morning,all-year,0.14220000000,R1,1,MUS$2010/kt,2028 -electricity,all-week,mid-afternoon,all-year,21.63650000000,R1,2,MUS$2010/PJ,2028 +electricity,all-week,mid-afternoon,all-year,20.85390000000,R1,2,MUS$2010/PJ,2028 gas,all-week,mid-afternoon,all-year,2.55000000000,R1,2,MUS$2010/PJ,2028 -heat,all-week,mid-afternoon,all-year,11.31520000000,R1,2,MUS$2010/PJ,2028 +heat,all-week,mid-afternoon,all-year,11.02650000000,R1,2,MUS$2010/PJ,2028 CO2f,all-week,mid-afternoon,all-year,0.14220000000,R1,2,MUS$2010/kt,2028 -electricity,all-week,early-peak,all-year,21.63650000000,R1,3,MUS$2010/PJ,2028 +electricity,all-week,early-peak,all-year,20.85390000000,R1,3,MUS$2010/PJ,2028 gas,all-week,early-peak,all-year,2.55000000000,R1,3,MUS$2010/PJ,2028 -heat,all-week,early-peak,all-year,11.31520000000,R1,3,MUS$2010/PJ,2028 +heat,all-week,early-peak,all-year,11.02650000000,R1,3,MUS$2010/PJ,2028 CO2f,all-week,early-peak,all-year,0.14220000000,R1,3,MUS$2010/kt,2028 -electricity,all-week,late-peak,all-year,21.63650000000,R1,4,MUS$2010/PJ,2028 +electricity,all-week,late-peak,all-year,20.85390000000,R1,4,MUS$2010/PJ,2028 gas,all-week,late-peak,all-year,2.55000000000,R1,4,MUS$2010/PJ,2028 -heat,all-week,late-peak,all-year,11.31520000000,R1,4,MUS$2010/PJ,2028 +heat,all-week,late-peak,all-year,11.02650000000,R1,4,MUS$2010/PJ,2028 CO2f,all-week,late-peak,all-year,0.14220000000,R1,4,MUS$2010/kt,2028 -electricity,all-week,evening,all-year,21.63650000000,R1,5,MUS$2010/PJ,2028 +electricity,all-week,evening,all-year,20.85390000000,R1,5,MUS$2010/PJ,2028 gas,all-week,evening,all-year,2.55000000000,R1,5,MUS$2010/PJ,2028 -heat,all-week,evening,all-year,11.31520000000,R1,5,MUS$2010/PJ,2028 +heat,all-week,evening,all-year,11.02650000000,R1,5,MUS$2010/PJ,2028 CO2f,all-week,evening,all-year,0.14220000000,R1,5,MUS$2010/kt,2028 -electricity,all-week,early-morning,all-year,21.63650000000,R1,6,MUS$2010/PJ,2028 +electricity,all-week,early-morning,all-year,20.85390000000,R1,6,MUS$2010/PJ,2028 gas,all-week,early-morning,all-year,2.55000000000,R1,6,MUS$2010/PJ,2028 -heat,all-week,early-morning,all-year,11.31520000000,R1,6,MUS$2010/PJ,2028 +heat,all-week,early-morning,all-year,11.02650000000,R1,6,MUS$2010/PJ,2028 CO2f,all-week,early-morning,all-year,0.14220000000,R1,6,MUS$2010/kt,2028 -electricity,all-week,late-afternoon,all-year,21.63650000000,R1,7,MUS$2010/PJ,2028 +electricity,all-week,late-afternoon,all-year,20.85390000000,R1,7,MUS$2010/PJ,2028 gas,all-week,late-afternoon,all-year,2.55000000000,R1,7,MUS$2010/PJ,2028 -heat,all-week,late-afternoon,all-year,11.31520000000,R1,7,MUS$2010/PJ,2028 +heat,all-week,late-afternoon,all-year,11.02650000000,R1,7,MUS$2010/PJ,2028 CO2f,all-week,late-afternoon,all-year,0.14220000000,R1,7,MUS$2010/kt,2028 -electricity,all-week,night,all-year,21.83780000000,R1,0,MUS$2010/PJ,2030 +electricity,all-week,night,all-year,20.98330000000,R1,0,MUS$2010/PJ,2030 gas,all-week,night,all-year,2.55000000000,R1,0,MUS$2010/PJ,2030 -heat,all-week,night,all-year,11.23440000000,R1,0,MUS$2010/PJ,2030 +heat,all-week,night,all-year,10.89260000000,R1,0,MUS$2010/PJ,2030 CO2f,all-week,night,all-year,0.15700000000,R1,0,MUS$2010/kt,2030 -electricity,all-week,morning,all-year,21.83780000000,R1,1,MUS$2010/PJ,2030 +electricity,all-week,morning,all-year,20.98330000000,R1,1,MUS$2010/PJ,2030 gas,all-week,morning,all-year,2.55000000000,R1,1,MUS$2010/PJ,2030 -heat,all-week,morning,all-year,11.23440000000,R1,1,MUS$2010/PJ,2030 +heat,all-week,morning,all-year,10.89260000000,R1,1,MUS$2010/PJ,2030 CO2f,all-week,morning,all-year,0.15700000000,R1,1,MUS$2010/kt,2030 -electricity,all-week,mid-afternoon,all-year,21.83780000000,R1,2,MUS$2010/PJ,2030 +electricity,all-week,mid-afternoon,all-year,20.98330000000,R1,2,MUS$2010/PJ,2030 gas,all-week,mid-afternoon,all-year,2.55000000000,R1,2,MUS$2010/PJ,2030 -heat,all-week,mid-afternoon,all-year,11.23440000000,R1,2,MUS$2010/PJ,2030 +heat,all-week,mid-afternoon,all-year,10.89260000000,R1,2,MUS$2010/PJ,2030 CO2f,all-week,mid-afternoon,all-year,0.15700000000,R1,2,MUS$2010/kt,2030 -electricity,all-week,early-peak,all-year,21.83780000000,R1,3,MUS$2010/PJ,2030 +electricity,all-week,early-peak,all-year,20.98330000000,R1,3,MUS$2010/PJ,2030 gas,all-week,early-peak,all-year,2.55000000000,R1,3,MUS$2010/PJ,2030 -heat,all-week,early-peak,all-year,11.23440000000,R1,3,MUS$2010/PJ,2030 +heat,all-week,early-peak,all-year,10.89260000000,R1,3,MUS$2010/PJ,2030 CO2f,all-week,early-peak,all-year,0.15700000000,R1,3,MUS$2010/kt,2030 -electricity,all-week,late-peak,all-year,21.83780000000,R1,4,MUS$2010/PJ,2030 +electricity,all-week,late-peak,all-year,20.98330000000,R1,4,MUS$2010/PJ,2030 gas,all-week,late-peak,all-year,2.55000000000,R1,4,MUS$2010/PJ,2030 -heat,all-week,late-peak,all-year,11.23440000000,R1,4,MUS$2010/PJ,2030 +heat,all-week,late-peak,all-year,10.89260000000,R1,4,MUS$2010/PJ,2030 CO2f,all-week,late-peak,all-year,0.15700000000,R1,4,MUS$2010/kt,2030 -electricity,all-week,evening,all-year,21.83780000000,R1,5,MUS$2010/PJ,2030 +electricity,all-week,evening,all-year,20.98330000000,R1,5,MUS$2010/PJ,2030 gas,all-week,evening,all-year,2.55000000000,R1,5,MUS$2010/PJ,2030 -heat,all-week,evening,all-year,11.23440000000,R1,5,MUS$2010/PJ,2030 +heat,all-week,evening,all-year,10.89260000000,R1,5,MUS$2010/PJ,2030 CO2f,all-week,evening,all-year,0.15700000000,R1,5,MUS$2010/kt,2030 -electricity,all-week,early-morning,all-year,21.83780000000,R1,6,MUS$2010/PJ,2030 +electricity,all-week,early-morning,all-year,20.98330000000,R1,6,MUS$2010/PJ,2030 gas,all-week,early-morning,all-year,2.55000000000,R1,6,MUS$2010/PJ,2030 -heat,all-week,early-morning,all-year,11.23440000000,R1,6,MUS$2010/PJ,2030 +heat,all-week,early-morning,all-year,10.89260000000,R1,6,MUS$2010/PJ,2030 CO2f,all-week,early-morning,all-year,0.15700000000,R1,6,MUS$2010/kt,2030 -electricity,all-week,late-afternoon,all-year,21.83780000000,R1,7,MUS$2010/PJ,2030 +electricity,all-week,late-afternoon,all-year,20.98330000000,R1,7,MUS$2010/PJ,2030 gas,all-week,late-afternoon,all-year,2.55000000000,R1,7,MUS$2010/PJ,2030 -heat,all-week,late-afternoon,all-year,11.23440000000,R1,7,MUS$2010/PJ,2030 +heat,all-week,late-afternoon,all-year,10.89260000000,R1,7,MUS$2010/PJ,2030 CO2f,all-week,late-afternoon,all-year,0.15700000000,R1,7,MUS$2010/kt,2030 -electricity,all-week,night,all-year,22.96430000000,R1,0,MUS$2010/PJ,2032 +electricity,all-week,night,all-year,21.89680000000,R1,0,MUS$2010/PJ,2032 gas,all-week,night,all-year,2.55000000000,R1,0,MUS$2010/PJ,2032 -heat,all-week,night,all-year,11.68500000000,R1,0,MUS$2010/PJ,2032 +heat,all-week,night,all-year,11.25790000000,R1,0,MUS$2010/PJ,2032 CO2f,all-week,night,all-year,0.18020000000,R1,0,MUS$2010/kt,2032 -electricity,all-week,morning,all-year,22.96430000000,R1,1,MUS$2010/PJ,2032 +electricity,all-week,morning,all-year,21.89680000000,R1,1,MUS$2010/PJ,2032 gas,all-week,morning,all-year,2.55000000000,R1,1,MUS$2010/PJ,2032 -heat,all-week,morning,all-year,11.68500000000,R1,1,MUS$2010/PJ,2032 +heat,all-week,morning,all-year,11.25790000000,R1,1,MUS$2010/PJ,2032 CO2f,all-week,morning,all-year,0.18020000000,R1,1,MUS$2010/kt,2032 -electricity,all-week,mid-afternoon,all-year,22.96430000000,R1,2,MUS$2010/PJ,2032 +electricity,all-week,mid-afternoon,all-year,21.89680000000,R1,2,MUS$2010/PJ,2032 gas,all-week,mid-afternoon,all-year,2.55000000000,R1,2,MUS$2010/PJ,2032 -heat,all-week,mid-afternoon,all-year,11.68500000000,R1,2,MUS$2010/PJ,2032 +heat,all-week,mid-afternoon,all-year,11.25790000000,R1,2,MUS$2010/PJ,2032 CO2f,all-week,mid-afternoon,all-year,0.18020000000,R1,2,MUS$2010/kt,2032 -electricity,all-week,early-peak,all-year,22.96430000000,R1,3,MUS$2010/PJ,2032 +electricity,all-week,early-peak,all-year,21.89680000000,R1,3,MUS$2010/PJ,2032 gas,all-week,early-peak,all-year,2.55000000000,R1,3,MUS$2010/PJ,2032 -heat,all-week,early-peak,all-year,11.68500000000,R1,3,MUS$2010/PJ,2032 +heat,all-week,early-peak,all-year,11.25790000000,R1,3,MUS$2010/PJ,2032 CO2f,all-week,early-peak,all-year,0.18020000000,R1,3,MUS$2010/kt,2032 -electricity,all-week,late-peak,all-year,22.96430000000,R1,4,MUS$2010/PJ,2032 +electricity,all-week,late-peak,all-year,21.89680000000,R1,4,MUS$2010/PJ,2032 gas,all-week,late-peak,all-year,2.55000000000,R1,4,MUS$2010/PJ,2032 -heat,all-week,late-peak,all-year,11.68500000000,R1,4,MUS$2010/PJ,2032 +heat,all-week,late-peak,all-year,11.25790000000,R1,4,MUS$2010/PJ,2032 CO2f,all-week,late-peak,all-year,0.18020000000,R1,4,MUS$2010/kt,2032 -electricity,all-week,evening,all-year,22.96430000000,R1,5,MUS$2010/PJ,2032 +electricity,all-week,evening,all-year,21.89680000000,R1,5,MUS$2010/PJ,2032 gas,all-week,evening,all-year,2.55000000000,R1,5,MUS$2010/PJ,2032 -heat,all-week,evening,all-year,11.68500000000,R1,5,MUS$2010/PJ,2032 +heat,all-week,evening,all-year,11.25790000000,R1,5,MUS$2010/PJ,2032 CO2f,all-week,evening,all-year,0.18020000000,R1,5,MUS$2010/kt,2032 -electricity,all-week,early-morning,all-year,22.96430000000,R1,6,MUS$2010/PJ,2032 +electricity,all-week,early-morning,all-year,21.89680000000,R1,6,MUS$2010/PJ,2032 gas,all-week,early-morning,all-year,2.55000000000,R1,6,MUS$2010/PJ,2032 -heat,all-week,early-morning,all-year,11.68500000000,R1,6,MUS$2010/PJ,2032 +heat,all-week,early-morning,all-year,11.25790000000,R1,6,MUS$2010/PJ,2032 CO2f,all-week,early-morning,all-year,0.18020000000,R1,6,MUS$2010/kt,2032 -electricity,all-week,late-afternoon,all-year,22.96430000000,R1,7,MUS$2010/PJ,2032 +electricity,all-week,late-afternoon,all-year,21.89680000000,R1,7,MUS$2010/PJ,2032 gas,all-week,late-afternoon,all-year,2.55000000000,R1,7,MUS$2010/PJ,2032 -heat,all-week,late-afternoon,all-year,11.68500000000,R1,7,MUS$2010/PJ,2032 +heat,all-week,late-afternoon,all-year,11.25790000000,R1,7,MUS$2010/PJ,2032 CO2f,all-week,late-afternoon,all-year,0.18020000000,R1,7,MUS$2010/kt,2032 -electricity,all-week,night,all-year,23.93540000000,R1,0,MUS$2010/PJ,2034 +electricity,all-week,night,all-year,22.68420000000,R1,0,MUS$2010/PJ,2034 gas,all-week,night,all-year,2.55000000000,R1,0,MUS$2010/PJ,2034 -heat,all-week,night,all-year,12.07340000000,R1,0,MUS$2010/PJ,2034 +heat,all-week,night,all-year,11.57290000000,R1,0,MUS$2010/PJ,2034 CO2f,all-week,night,all-year,0.20330000000,R1,0,MUS$2010/kt,2034 -electricity,all-week,morning,all-year,23.93540000000,R1,1,MUS$2010/PJ,2034 +electricity,all-week,morning,all-year,22.68420000000,R1,1,MUS$2010/PJ,2034 gas,all-week,morning,all-year,2.55000000000,R1,1,MUS$2010/PJ,2034 -heat,all-week,morning,all-year,12.07340000000,R1,1,MUS$2010/PJ,2034 +heat,all-week,morning,all-year,11.57290000000,R1,1,MUS$2010/PJ,2034 CO2f,all-week,morning,all-year,0.20330000000,R1,1,MUS$2010/kt,2034 -electricity,all-week,mid-afternoon,all-year,23.93540000000,R1,2,MUS$2010/PJ,2034 +electricity,all-week,mid-afternoon,all-year,22.68420000000,R1,2,MUS$2010/PJ,2034 gas,all-week,mid-afternoon,all-year,2.55000000000,R1,2,MUS$2010/PJ,2034 -heat,all-week,mid-afternoon,all-year,12.07340000000,R1,2,MUS$2010/PJ,2034 +heat,all-week,mid-afternoon,all-year,11.57290000000,R1,2,MUS$2010/PJ,2034 CO2f,all-week,mid-afternoon,all-year,0.20330000000,R1,2,MUS$2010/kt,2034 -electricity,all-week,early-peak,all-year,23.93540000000,R1,3,MUS$2010/PJ,2034 +electricity,all-week,early-peak,all-year,22.68420000000,R1,3,MUS$2010/PJ,2034 gas,all-week,early-peak,all-year,2.55000000000,R1,3,MUS$2010/PJ,2034 -heat,all-week,early-peak,all-year,12.07340000000,R1,3,MUS$2010/PJ,2034 +heat,all-week,early-peak,all-year,11.57290000000,R1,3,MUS$2010/PJ,2034 CO2f,all-week,early-peak,all-year,0.20330000000,R1,3,MUS$2010/kt,2034 -electricity,all-week,late-peak,all-year,23.93540000000,R1,4,MUS$2010/PJ,2034 +electricity,all-week,late-peak,all-year,22.68420000000,R1,4,MUS$2010/PJ,2034 gas,all-week,late-peak,all-year,2.55000000000,R1,4,MUS$2010/PJ,2034 -heat,all-week,late-peak,all-year,12.07340000000,R1,4,MUS$2010/PJ,2034 +heat,all-week,late-peak,all-year,11.57290000000,R1,4,MUS$2010/PJ,2034 CO2f,all-week,late-peak,all-year,0.20330000000,R1,4,MUS$2010/kt,2034 -electricity,all-week,evening,all-year,23.93540000000,R1,5,MUS$2010/PJ,2034 +electricity,all-week,evening,all-year,22.68420000000,R1,5,MUS$2010/PJ,2034 gas,all-week,evening,all-year,2.55000000000,R1,5,MUS$2010/PJ,2034 -heat,all-week,evening,all-year,12.07340000000,R1,5,MUS$2010/PJ,2034 +heat,all-week,evening,all-year,11.57290000000,R1,5,MUS$2010/PJ,2034 CO2f,all-week,evening,all-year,0.20330000000,R1,5,MUS$2010/kt,2034 -electricity,all-week,early-morning,all-year,23.93540000000,R1,6,MUS$2010/PJ,2034 +electricity,all-week,early-morning,all-year,22.68420000000,R1,6,MUS$2010/PJ,2034 gas,all-week,early-morning,all-year,2.55000000000,R1,6,MUS$2010/PJ,2034 -heat,all-week,early-morning,all-year,12.07340000000,R1,6,MUS$2010/PJ,2034 +heat,all-week,early-morning,all-year,11.57290000000,R1,6,MUS$2010/PJ,2034 CO2f,all-week,early-morning,all-year,0.20330000000,R1,6,MUS$2010/kt,2034 -electricity,all-week,late-afternoon,all-year,23.93540000000,R1,7,MUS$2010/PJ,2034 +electricity,all-week,late-afternoon,all-year,22.68420000000,R1,7,MUS$2010/PJ,2034 gas,all-week,late-afternoon,all-year,2.55000000000,R1,7,MUS$2010/PJ,2034 -heat,all-week,late-afternoon,all-year,12.07340000000,R1,7,MUS$2010/PJ,2034 +heat,all-week,late-afternoon,all-year,11.57290000000,R1,7,MUS$2010/PJ,2034 CO2f,all-week,late-afternoon,all-year,0.20330000000,R1,7,MUS$2010/kt,2034 -electricity,all-week,night,all-year,24.78130000000,R1,0,MUS$2010/PJ,2036 +electricity,all-week,night,all-year,23.37010000000,R1,0,MUS$2010/PJ,2036 gas,all-week,night,all-year,2.55000000000,R1,0,MUS$2010/PJ,2036 -heat,all-week,night,all-year,12.41170000000,R1,0,MUS$2010/PJ,2036 +heat,all-week,night,all-year,11.84730000000,R1,0,MUS$2010/PJ,2036 CO2f,all-week,night,all-year,0.22650000000,R1,0,MUS$2010/kt,2036 -electricity,all-week,morning,all-year,24.78130000000,R1,1,MUS$2010/PJ,2036 +electricity,all-week,morning,all-year,23.37010000000,R1,1,MUS$2010/PJ,2036 gas,all-week,morning,all-year,2.55000000000,R1,1,MUS$2010/PJ,2036 -heat,all-week,morning,all-year,12.41170000000,R1,1,MUS$2010/PJ,2036 +heat,all-week,morning,all-year,11.84730000000,R1,1,MUS$2010/PJ,2036 CO2f,all-week,morning,all-year,0.22650000000,R1,1,MUS$2010/kt,2036 -electricity,all-week,mid-afternoon,all-year,24.78130000000,R1,2,MUS$2010/PJ,2036 +electricity,all-week,mid-afternoon,all-year,23.37010000000,R1,2,MUS$2010/PJ,2036 gas,all-week,mid-afternoon,all-year,2.55000000000,R1,2,MUS$2010/PJ,2036 -heat,all-week,mid-afternoon,all-year,12.41170000000,R1,2,MUS$2010/PJ,2036 +heat,all-week,mid-afternoon,all-year,11.84730000000,R1,2,MUS$2010/PJ,2036 CO2f,all-week,mid-afternoon,all-year,0.22650000000,R1,2,MUS$2010/kt,2036 -electricity,all-week,early-peak,all-year,24.78130000000,R1,3,MUS$2010/PJ,2036 +electricity,all-week,early-peak,all-year,23.37010000000,R1,3,MUS$2010/PJ,2036 gas,all-week,early-peak,all-year,2.55000000000,R1,3,MUS$2010/PJ,2036 -heat,all-week,early-peak,all-year,12.41170000000,R1,3,MUS$2010/PJ,2036 +heat,all-week,early-peak,all-year,11.84730000000,R1,3,MUS$2010/PJ,2036 CO2f,all-week,early-peak,all-year,0.22650000000,R1,3,MUS$2010/kt,2036 -electricity,all-week,late-peak,all-year,24.78130000000,R1,4,MUS$2010/PJ,2036 +electricity,all-week,late-peak,all-year,23.37010000000,R1,4,MUS$2010/PJ,2036 gas,all-week,late-peak,all-year,2.55000000000,R1,4,MUS$2010/PJ,2036 -heat,all-week,late-peak,all-year,12.41170000000,R1,4,MUS$2010/PJ,2036 +heat,all-week,late-peak,all-year,11.84730000000,R1,4,MUS$2010/PJ,2036 CO2f,all-week,late-peak,all-year,0.22650000000,R1,4,MUS$2010/kt,2036 -electricity,all-week,evening,all-year,24.78130000000,R1,5,MUS$2010/PJ,2036 +electricity,all-week,evening,all-year,23.37010000000,R1,5,MUS$2010/PJ,2036 gas,all-week,evening,all-year,2.55000000000,R1,5,MUS$2010/PJ,2036 -heat,all-week,evening,all-year,12.41170000000,R1,5,MUS$2010/PJ,2036 +heat,all-week,evening,all-year,11.84730000000,R1,5,MUS$2010/PJ,2036 CO2f,all-week,evening,all-year,0.22650000000,R1,5,MUS$2010/kt,2036 -electricity,all-week,early-morning,all-year,24.78130000000,R1,6,MUS$2010/PJ,2036 +electricity,all-week,early-morning,all-year,23.37010000000,R1,6,MUS$2010/PJ,2036 gas,all-week,early-morning,all-year,2.55000000000,R1,6,MUS$2010/PJ,2036 -heat,all-week,early-morning,all-year,12.41170000000,R1,6,MUS$2010/PJ,2036 +heat,all-week,early-morning,all-year,11.84730000000,R1,6,MUS$2010/PJ,2036 CO2f,all-week,early-morning,all-year,0.22650000000,R1,6,MUS$2010/kt,2036 -electricity,all-week,late-afternoon,all-year,24.78130000000,R1,7,MUS$2010/PJ,2036 +electricity,all-week,late-afternoon,all-year,23.37010000000,R1,7,MUS$2010/PJ,2036 gas,all-week,late-afternoon,all-year,2.55000000000,R1,7,MUS$2010/PJ,2036 -heat,all-week,late-afternoon,all-year,12.41170000000,R1,7,MUS$2010/PJ,2036 +heat,all-week,late-afternoon,all-year,11.84730000000,R1,7,MUS$2010/PJ,2036 CO2f,all-week,late-afternoon,all-year,0.22650000000,R1,7,MUS$2010/kt,2036 -electricity,all-week,night,all-year,25.52450000000,R1,0,MUS$2010/PJ,2038 +electricity,all-week,night,all-year,23.97280000000,R1,0,MUS$2010/PJ,2038 gas,all-week,night,all-year,2.55000000000,R1,0,MUS$2010/PJ,2038 -heat,all-week,night,all-year,12.70910000000,R1,0,MUS$2010/PJ,2038 +heat,all-week,night,all-year,12.08830000000,R1,0,MUS$2010/PJ,2038 CO2f,all-week,night,all-year,0.24960000000,R1,0,MUS$2010/kt,2038 -electricity,all-week,morning,all-year,25.52450000000,R1,1,MUS$2010/PJ,2038 +electricity,all-week,morning,all-year,23.97280000000,R1,1,MUS$2010/PJ,2038 gas,all-week,morning,all-year,2.55000000000,R1,1,MUS$2010/PJ,2038 -heat,all-week,morning,all-year,12.70910000000,R1,1,MUS$2010/PJ,2038 +heat,all-week,morning,all-year,12.08830000000,R1,1,MUS$2010/PJ,2038 CO2f,all-week,morning,all-year,0.24960000000,R1,1,MUS$2010/kt,2038 -electricity,all-week,mid-afternoon,all-year,25.52450000000,R1,2,MUS$2010/PJ,2038 +electricity,all-week,mid-afternoon,all-year,23.97280000000,R1,2,MUS$2010/PJ,2038 gas,all-week,mid-afternoon,all-year,2.55000000000,R1,2,MUS$2010/PJ,2038 -heat,all-week,mid-afternoon,all-year,12.70910000000,R1,2,MUS$2010/PJ,2038 +heat,all-week,mid-afternoon,all-year,12.08830000000,R1,2,MUS$2010/PJ,2038 CO2f,all-week,mid-afternoon,all-year,0.24960000000,R1,2,MUS$2010/kt,2038 -electricity,all-week,early-peak,all-year,25.52450000000,R1,3,MUS$2010/PJ,2038 +electricity,all-week,early-peak,all-year,23.97280000000,R1,3,MUS$2010/PJ,2038 gas,all-week,early-peak,all-year,2.55000000000,R1,3,MUS$2010/PJ,2038 -heat,all-week,early-peak,all-year,12.70910000000,R1,3,MUS$2010/PJ,2038 +heat,all-week,early-peak,all-year,12.08830000000,R1,3,MUS$2010/PJ,2038 CO2f,all-week,early-peak,all-year,0.24960000000,R1,3,MUS$2010/kt,2038 -electricity,all-week,late-peak,all-year,25.52450000000,R1,4,MUS$2010/PJ,2038 +electricity,all-week,late-peak,all-year,23.97280000000,R1,4,MUS$2010/PJ,2038 gas,all-week,late-peak,all-year,2.55000000000,R1,4,MUS$2010/PJ,2038 -heat,all-week,late-peak,all-year,12.70910000000,R1,4,MUS$2010/PJ,2038 +heat,all-week,late-peak,all-year,12.08830000000,R1,4,MUS$2010/PJ,2038 CO2f,all-week,late-peak,all-year,0.24960000000,R1,4,MUS$2010/kt,2038 -electricity,all-week,evening,all-year,25.52450000000,R1,5,MUS$2010/PJ,2038 +electricity,all-week,evening,all-year,23.97280000000,R1,5,MUS$2010/PJ,2038 gas,all-week,evening,all-year,2.55000000000,R1,5,MUS$2010/PJ,2038 -heat,all-week,evening,all-year,12.70910000000,R1,5,MUS$2010/PJ,2038 +heat,all-week,evening,all-year,12.08830000000,R1,5,MUS$2010/PJ,2038 CO2f,all-week,evening,all-year,0.24960000000,R1,5,MUS$2010/kt,2038 -electricity,all-week,early-morning,all-year,25.52450000000,R1,6,MUS$2010/PJ,2038 +electricity,all-week,early-morning,all-year,23.97280000000,R1,6,MUS$2010/PJ,2038 gas,all-week,early-morning,all-year,2.55000000000,R1,6,MUS$2010/PJ,2038 -heat,all-week,early-morning,all-year,12.70910000000,R1,6,MUS$2010/PJ,2038 +heat,all-week,early-morning,all-year,12.08830000000,R1,6,MUS$2010/PJ,2038 CO2f,all-week,early-morning,all-year,0.24960000000,R1,6,MUS$2010/kt,2038 -electricity,all-week,late-afternoon,all-year,25.52450000000,R1,7,MUS$2010/PJ,2038 +electricity,all-week,late-afternoon,all-year,23.97280000000,R1,7,MUS$2010/PJ,2038 gas,all-week,late-afternoon,all-year,2.55000000000,R1,7,MUS$2010/PJ,2038 -heat,all-week,late-afternoon,all-year,12.70910000000,R1,7,MUS$2010/PJ,2038 +heat,all-week,late-afternoon,all-year,12.08830000000,R1,7,MUS$2010/PJ,2038 CO2f,all-week,late-afternoon,all-year,0.24960000000,R1,7,MUS$2010/kt,2038 -electricity,all-week,night,all-year,26.18290000000,R1,0,MUS$2010/PJ,2040 +electricity,all-week,night,all-year,24.50660000000,R1,0,MUS$2010/PJ,2040 gas,all-week,night,all-year,2.55000000000,R1,0,MUS$2010/PJ,2040 -heat,all-week,night,all-year,12.97240000000,R1,0,MUS$2010/PJ,2040 +heat,all-week,night,all-year,12.30190000000,R1,0,MUS$2010/PJ,2040 CO2f,all-week,night,all-year,0.27280000000,R1,0,MUS$2010/kt,2040 -electricity,all-week,morning,all-year,26.18290000000,R1,1,MUS$2010/PJ,2040 +electricity,all-week,morning,all-year,24.50660000000,R1,1,MUS$2010/PJ,2040 gas,all-week,morning,all-year,2.55000000000,R1,1,MUS$2010/PJ,2040 -heat,all-week,morning,all-year,12.97240000000,R1,1,MUS$2010/PJ,2040 +heat,all-week,morning,all-year,12.30190000000,R1,1,MUS$2010/PJ,2040 CO2f,all-week,morning,all-year,0.27280000000,R1,1,MUS$2010/kt,2040 -electricity,all-week,mid-afternoon,all-year,26.18290000000,R1,2,MUS$2010/PJ,2040 +electricity,all-week,mid-afternoon,all-year,24.50660000000,R1,2,MUS$2010/PJ,2040 gas,all-week,mid-afternoon,all-year,2.55000000000,R1,2,MUS$2010/PJ,2040 -heat,all-week,mid-afternoon,all-year,12.97240000000,R1,2,MUS$2010/PJ,2040 +heat,all-week,mid-afternoon,all-year,12.30190000000,R1,2,MUS$2010/PJ,2040 CO2f,all-week,mid-afternoon,all-year,0.27280000000,R1,2,MUS$2010/kt,2040 -electricity,all-week,early-peak,all-year,26.18290000000,R1,3,MUS$2010/PJ,2040 +electricity,all-week,early-peak,all-year,24.50660000000,R1,3,MUS$2010/PJ,2040 gas,all-week,early-peak,all-year,2.55000000000,R1,3,MUS$2010/PJ,2040 -heat,all-week,early-peak,all-year,12.97240000000,R1,3,MUS$2010/PJ,2040 +heat,all-week,early-peak,all-year,12.30190000000,R1,3,MUS$2010/PJ,2040 CO2f,all-week,early-peak,all-year,0.27280000000,R1,3,MUS$2010/kt,2040 -electricity,all-week,late-peak,all-year,26.18290000000,R1,4,MUS$2010/PJ,2040 +electricity,all-week,late-peak,all-year,24.50660000000,R1,4,MUS$2010/PJ,2040 gas,all-week,late-peak,all-year,2.55000000000,R1,4,MUS$2010/PJ,2040 -heat,all-week,late-peak,all-year,12.97240000000,R1,4,MUS$2010/PJ,2040 +heat,all-week,late-peak,all-year,12.30190000000,R1,4,MUS$2010/PJ,2040 CO2f,all-week,late-peak,all-year,0.27280000000,R1,4,MUS$2010/kt,2040 -electricity,all-week,evening,all-year,26.18290000000,R1,5,MUS$2010/PJ,2040 +electricity,all-week,evening,all-year,24.50660000000,R1,5,MUS$2010/PJ,2040 gas,all-week,evening,all-year,2.55000000000,R1,5,MUS$2010/PJ,2040 -heat,all-week,evening,all-year,12.97240000000,R1,5,MUS$2010/PJ,2040 +heat,all-week,evening,all-year,12.30190000000,R1,5,MUS$2010/PJ,2040 CO2f,all-week,evening,all-year,0.27280000000,R1,5,MUS$2010/kt,2040 -electricity,all-week,early-morning,all-year,26.18290000000,R1,6,MUS$2010/PJ,2040 +electricity,all-week,early-morning,all-year,24.50660000000,R1,6,MUS$2010/PJ,2040 gas,all-week,early-morning,all-year,2.55000000000,R1,6,MUS$2010/PJ,2040 -heat,all-week,early-morning,all-year,12.97240000000,R1,6,MUS$2010/PJ,2040 +heat,all-week,early-morning,all-year,12.30190000000,R1,6,MUS$2010/PJ,2040 CO2f,all-week,early-morning,all-year,0.27280000000,R1,6,MUS$2010/kt,2040 -electricity,all-week,late-afternoon,all-year,26.18290000000,R1,7,MUS$2010/PJ,2040 +electricity,all-week,late-afternoon,all-year,24.50660000000,R1,7,MUS$2010/PJ,2040 gas,all-week,late-afternoon,all-year,2.55000000000,R1,7,MUS$2010/PJ,2040 -heat,all-week,late-afternoon,all-year,12.97240000000,R1,7,MUS$2010/PJ,2040 +heat,all-week,late-afternoon,all-year,12.30190000000,R1,7,MUS$2010/PJ,2040 CO2f,all-week,late-afternoon,all-year,0.27280000000,R1,7,MUS$2010/kt,2040 diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/gas/CommIn.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/gas/CommIn.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/gas/CommIn.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/gas/CommOut.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/gas/CommOut.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/gas/CommOut.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/gas/Technodata.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/gas/Technodata.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/gas/Technodata.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/input/BaseYearExport.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/input/BaseYearExport.csv deleted file mode 100644 index 7218c1fc..00000000 --- a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/input/BaseYearImport.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/input/BaseYearImport.csv deleted file mode 100644 index 75b32276..00000000 --- a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0 diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/power/CommIn.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/power/CommIn.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/power/CommIn.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/power/CommOut.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/power/CommOut.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/power/CommOut.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/power/ExistingCapacity.csv diff --git a/src/muse/data/example/default/technodata/power/Technodata.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/power/Technodata.csv similarity index 100% rename from src/muse/data/example/default/technodata/power/Technodata.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/power/Technodata.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/residential/CommIn.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/residential/CommIn.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/residential/CommIn.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/residential/CommOut.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/residential/CommOut.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/residential/CommOut.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/residential/Technodata.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/residential/Technodata.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/residential/Technodata.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/preset/Residential2020Consumption.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/residential_presets/Residential2020Consumption.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/preset/Residential2020Consumption.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/residential_presets/Residential2020Consumption.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/preset/Residential2050Consumption.csv b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/residential_presets/Residential2050Consumption.csv similarity index 100% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/preset/Residential2050Consumption.csv rename to docs/tutorial-code/modify-timing-data/2-modify-time-framework/residential_presets/Residential2050Consumption.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/settings.toml b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/settings.toml index 876b059a..24e893e8 100644 --- a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/settings.toml +++ b/docs/tutorial-code/modify-timing-data/2-modify-time-framework/settings.toml @@ -1,98 +1,80 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2022, 2024, 2026, 2028, 2030, 2032, 2034, 2036, 2038, 2040] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1095 +morning = 1095 +mid-afternoon = 1095 +early-peak = 1095 +late-peak = 1095 +evening = 1095 +early-morning = 1095 +late-afternoon = 1095 [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1095 -morning = 1095 -mid-afternoon = 1095 -early-peak = 1095 -late-peak = 1095 -evening = 1095 -early-morning = 1095 -late-afternoon = 1095 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/docs/tutorial-code/modify-timing-data/generate_models.py b/docs/tutorial-code/modify-timing-data/generate_models.py index 172735c9..d3425efb 100644 --- a/docs/tutorial-code/modify-timing-data/generate_models.py +++ b/docs/tutorial-code/modify-timing-data/generate_models.py @@ -54,7 +54,7 @@ def generate_model_1(): 1.4, ] for year, multiplier in zip([2020, 2050], [1, 3]): - file = model_path / f"technodata/preset/Residential{year}Consumption.csv" + file = model_path / f"residential_presets/Residential{year}Consumption.csv" df = pd.read_csv(file) df["heat"] = [round(i * multiplier, 1) for i in consumption_values] df.to_csv(file, index=False) diff --git a/docs/tutorial-code/new-decision-metric/technodata/Agents.csv b/docs/tutorial-code/new-decision-metric/Agents.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/Agents.csv rename to docs/tutorial-code/new-decision-metric/Agents.csv diff --git a/docs/tutorial-code/new-decision-metric/input/GlobalCommodities.csv b/docs/tutorial-code/new-decision-metric/GlobalCommodities.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/input/GlobalCommodities.csv rename to docs/tutorial-code/new-decision-metric/GlobalCommodities.csv diff --git a/docs/tutorial-code/new-decision-metric/input/Projections.csv b/docs/tutorial-code/new-decision-metric/Projections.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/input/Projections.csv rename to docs/tutorial-code/new-decision-metric/Projections.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/gas/CommIn.csv b/docs/tutorial-code/new-decision-metric/gas/CommIn.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/gas/CommIn.csv rename to docs/tutorial-code/new-decision-metric/gas/CommIn.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/gas/CommOut.csv b/docs/tutorial-code/new-decision-metric/gas/CommOut.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/gas/CommOut.csv rename to docs/tutorial-code/new-decision-metric/gas/CommOut.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/gas/ExistingCapacity.csv b/docs/tutorial-code/new-decision-metric/gas/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/gas/ExistingCapacity.csv rename to docs/tutorial-code/new-decision-metric/gas/ExistingCapacity.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/gas/Technodata.csv b/docs/tutorial-code/new-decision-metric/gas/Technodata.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/gas/Technodata.csv rename to docs/tutorial-code/new-decision-metric/gas/Technodata.csv diff --git a/docs/tutorial-code/new-decision-metric/input/BaseYearExport.csv b/docs/tutorial-code/new-decision-metric/input/BaseYearExport.csv deleted file mode 100644 index 38c886d3..00000000 --- a/docs/tutorial-code/new-decision-metric/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind,solar -Unit,-,Year,PJ,PJ,PJ,kt,PJ,PJ -R1,Exports,2010,0,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0,0 diff --git a/docs/tutorial-code/new-decision-metric/input/BaseYearImport.csv b/docs/tutorial-code/new-decision-metric/input/BaseYearImport.csv deleted file mode 100644 index 9c9cc695..00000000 --- a/docs/tutorial-code/new-decision-metric/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind,solar -Unit,-,Year,PJ,PJ,PJ,kt,PJ,PJ -R1,Imports,2010,0,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0,0 diff --git a/docs/tutorial-code/new-decision-metric/technodata/power/CommIn.csv b/docs/tutorial-code/new-decision-metric/power/CommIn.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/power/CommIn.csv rename to docs/tutorial-code/new-decision-metric/power/CommIn.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/power/CommOut.csv b/docs/tutorial-code/new-decision-metric/power/CommOut.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/power/CommOut.csv rename to docs/tutorial-code/new-decision-metric/power/CommOut.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/power/ExistingCapacity.csv b/docs/tutorial-code/new-decision-metric/power/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/power/ExistingCapacity.csv rename to docs/tutorial-code/new-decision-metric/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/power/Technodata.csv b/docs/tutorial-code/new-decision-metric/power/Technodata.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/power/Technodata.csv rename to docs/tutorial-code/new-decision-metric/power/Technodata.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/residential/CommIn.csv b/docs/tutorial-code/new-decision-metric/residential/CommIn.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/residential/CommIn.csv rename to docs/tutorial-code/new-decision-metric/residential/CommIn.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/residential/CommOut.csv b/docs/tutorial-code/new-decision-metric/residential/CommOut.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/residential/CommOut.csv rename to docs/tutorial-code/new-decision-metric/residential/CommOut.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/residential/ExistingCapacity.csv b/docs/tutorial-code/new-decision-metric/residential/ExistingCapacity.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/residential/ExistingCapacity.csv rename to docs/tutorial-code/new-decision-metric/residential/ExistingCapacity.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/residential/Technodata.csv b/docs/tutorial-code/new-decision-metric/residential/Technodata.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/residential/Technodata.csv rename to docs/tutorial-code/new-decision-metric/residential/Technodata.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/preset/Residential2020Consumption.csv b/docs/tutorial-code/new-decision-metric/residential_presets/Residential2020Consumption.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/preset/Residential2020Consumption.csv rename to docs/tutorial-code/new-decision-metric/residential_presets/Residential2020Consumption.csv diff --git a/docs/tutorial-code/new-decision-metric/technodata/preset/Residential2050Consumption.csv b/docs/tutorial-code/new-decision-metric/residential_presets/Residential2050Consumption.csv similarity index 100% rename from docs/tutorial-code/new-decision-metric/technodata/preset/Residential2050Consumption.csv rename to docs/tutorial-code/new-decision-metric/residential_presets/Residential2050Consumption.csv diff --git a/docs/tutorial-code/new-decision-metric/settings.toml b/docs/tutorial-code/new-decision-metric/settings.toml index 87dcc2f4..241e42b2 100644 --- a/docs/tutorial-code/new-decision-metric/settings.toml +++ b/docs/tutorial-code/new-decision-metric/settings.toml @@ -25,20 +25,20 @@ filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" budget = [] [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' [sectors.residential] type = 'default' priority = 1 dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' lpsolver = "scipy" # Optional, defaults to "scipy" constraints = [ # Optional, defaults to the constraints below @@ -53,13 +53,13 @@ demand_share = "standard_demand" # Optional, default to standard_demand type = 'default' priority = 2 dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' lpsolver = "scipy" demand_share = "standard_demand" @@ -67,20 +67,20 @@ demand_share = "standard_demand" type = 'default' priority = 3 dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' lpsolver = "scipy" demand_share = "standard_demand" [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" [timeslices] level_names = ["month", "day", "hour"] diff --git a/docs/user-guide/add-agent.ipynb b/docs/user-guide/add-agent.ipynb index 5d87588e..880de329 100644 --- a/docs/user-guide/add-agent.ipynb +++ b/docs/user-guide/add-agent.ipynb @@ -25,7 +25,7 @@ "\n", "To create the new agent, we must first modify the ```Agents.csv``` file in the directory:\n", "\n", - " {PATH_TO_MODEL}/technodata/Agents.csv" + " {PATH_TO_MODEL}/Agents.csv" ] }, { @@ -196,7 +196,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "muse_env", "language": "python", "name": "python3" }, diff --git a/docs/user-guide/add-gdp-correlation-demand.ipynb b/docs/user-guide/add-gdp-correlation-demand.ipynb index e17609fd..bc054c35 100644 --- a/docs/user-guide/add-gdp-correlation-demand.ipynb +++ b/docs/user-guide/add-gdp-correlation-demand.ipynb @@ -34,7 +34,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Similarly to before, we must amend the `technodata/preset` folder. As we are no longer explicitly specifying demand, we can delete the `Residential2020Consumption.csv` and `Residential2050Consumption.csv` files. Instead, we must replace these files with the following:\n", + "Similarly to before, we must amend the `residential_presets` folder. As we are no longer explicitly specifying demand, we can delete the `Residential2020Consumption.csv` and `Residential2050Consumption.csv` files. Instead, we must replace these files with the following:\n", "\n", "- __A macrodrivers file__: This contains the drivers of the service demand that we want to model. For this example, these will include GDP based on purchasing power parity (GDP PPP) and the population that we expect from 2010 to 2110.\n", "\n", @@ -44,11 +44,11 @@ "\n", "The example files for each of those just mentioned can be found below, respectively:\n", "\n", - "- [Macrodrivers.csv](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/6-add-correlation-demand/1-correlation/technodata/preset/Macrodrivers.csv)\n", + "- [Macrodrivers.csv](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/6-add-correlation-demand/1-correlation/residential_presets/Macrodrivers.csv)\n", "\n", - "- [regressionparameters.csv](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/6-add-correlation-demand/1-correlation/technodata/preset/regressionparameters.csv)\n", + "- [regressionparameters.csv](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/6-add-correlation-demand/1-correlation/residential_presets/regressionparameters.csv)\n", "\n", - "- [TimesliceSharepreset.csv](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/6-add-correlation-demand/1-correlation/technodata/preset/TimesliceSharepreset.csv)\n", + "- [TimesliceSharepreset.csv](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/6-add-correlation-demand/1-correlation/residential_presets/TimesliceSharepreset.csv)\n", "\n", "For a full description of these files, see the link [here](../inputs/correlation_files.rst).\n", "\n", @@ -74,7 +74,7 @@ "[sectors.residential_presets]\n", "type = 'presets'\n", "priority = 0\n", - "consumption_path= \"{path}/technodata/preset/*Consumption.csv\"\n", + "consumption_path= \"{path}/residential_presets/*Consumption.csv\"\n", "```\n", "\n", "This enables us to run the model in exogenous mode (i.e. explicitly specifying demand), but now we would like to run the model using the new regression files. This can be done by linking new variables to the new files, as follows:\n", @@ -83,9 +83,9 @@ "[sectors.residential_presets]\n", "type = 'presets'\n", "priority = 0\n", - "timeslice_shares_path = '{path}/technodata/preset/TimesliceSharepreset.csv'\n", - "macrodrivers_path = '{path}/technodata/preset/Macrodrivers.csv'\n", - "regression_path = '{path}/technodata/preset/regressionparameters.csv'\n", + "timeslice_shares_path = '{path}/residential_presets/TimesliceSharepreset.csv'\n", + "macrodrivers_path = '{path}/residential_presets/Macrodrivers.csv'\n", + "regression_path = '{path}/residential_presets/regressionparameters.csv'\n", "```" ] }, @@ -165,7 +165,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3.9.0 ('muse39')", + "display_name": "muse_env", "language": "python", "name": "python3" }, @@ -180,11 +180,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.4" - }, - "vscode": { - "interpreter": { - "hash": "22ff8bbda430c28f07def99f448c0c69dabbaf0c7d993cae69f87b3c458d04b2" - } } }, "nbformat": 4, diff --git a/docs/user-guide/add-region.ipynb b/docs/user-guide/add-region.ipynb index eda22720..81ad65ba 100644 --- a/docs/user-guide/add-region.ipynb +++ b/docs/user-guide/add-region.ipynb @@ -42,7 +42,7 @@ "\n", "We have placed two examples as to how to edit the residential sector below. Again, the edited data are highlighted in **bold**, with the original data in normal text. \n", "\n", - "The following file is the modified `/technodata/residential/CommIn.csv` file:\n", + "The following file is the modified `/residential/CommIn.csv` file:\n", "\n", "|ProcessName|RegionName|Time|Level|electricity|gas|heat|CO2f|wind|\n", "|-|-|-|-|-|-|-|-|-|\n", @@ -53,7 +53,7 @@ "|**heatpump**|**R2**|**2020**|**fixed**|**0.4**|**0**|**0**|**0**|**0**|\n", "|...|...|...|...|...|...|...|...|...|\n", "\n", - "Whereas the following file is the modified `/technodata/residential/ExistingCapacity.csv` file:\n", + "Whereas the following file is the modified `/residential/ExistingCapacity.csv` file:\n", "\n", "|ProcessName|RegionName|Unit|2020|2025|2030|2035|2040|2045|2050|\n", "|-|-|-|-|-|-|-|-|-|-|\n", @@ -62,7 +62,7 @@ "|**gasboiler**|**R2**|**PJ/y**|**10**|**5**|**0**|**0**|**0**|**0**|**0**|\n", "|**heatpump**|**R2**|**PJ/y**|**0**|**0**|**0**|**0**|**0**|**0**|**0**|\n", "\n", - "We will follow a similar process in the `/technodata/residential/Technodata.csv` file, copying the lines from `R1` to create `R2`. In this tutorial we will test the scenario where `heatpump` has a strict upper limit on total capacity in `R2`, using the `TotalCapacityLimit` parameter, which is highlighted below in bold. The rest of the elements are the same for `R1` as they are for `R2`.\n", + "We will follow a similar process in the `/residential/Technodata.csv` file, copying the lines from `R1` to create `R2`. In this tutorial we will test the scenario where `heatpump` has a strict upper limit on total capacity in `R2`, using the `TotalCapacityLimit` parameter, which is highlighted below in bold. The rest of the elements are the same for `R1` as they are for `R2`.\n", "\n", "|ProcessName|RegionName|Time|…|TotalCapacityLimit|…|Agent1|\n", "|-|-|-|-|-|-|-|\n", diff --git a/docs/user-guide/add-solar.ipynb b/docs/user-guide/add-solar.ipynb index e0b85daa..3163ef7b 100644 --- a/docs/user-guide/add-solar.ipynb +++ b/docs/user-guide/add-solar.ipynb @@ -380,7 +380,7 @@ "|solarPV|R1|2020|fixed|0|0|0|0|0|1|\n", "|**solarPV**|**R1**|**2040**|**fixed**|**0**|**0**|**0**|**0**|**0**|**1**|\n", "\n", - "We must do the same for the `CommOut.csv` file. For the sake of brevity we won't show you this, but the link to the file can be found [here](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/1-add-new-technology/2-scenario/technodata/power/CommOut.csv).\n", + "We must do the same for the `CommOut.csv` file. For the sake of brevity we won't show you this, but the link to the file can be found [here](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/1-add-new-technology/2-scenario/power/CommOut.csv).\n", "\n", "We will now rerun the simulation, using the same command as previously, import the new `MCACapacity.csv` file again, and visualise the results:" ] diff --git a/docs/user-guide/additional-service-demand.ipynb b/docs/user-guide/additional-service-demand.ipynb index 3766df86..bfe5bea9 100644 --- a/docs/user-guide/additional-service-demand.ipynb +++ b/docs/user-guide/additional-service-demand.ipynb @@ -34,7 +34,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In this example, we will add a cooking preset demand. To achieve this, we will first edit the `Residential2020Consumption.csv` and `Residential2050Consumption.csv` files, found within the `technodata/preset/` directory.\n", + "In this example, we will add a cooking preset demand. To achieve this, we will first edit the `Residential2020Consumption.csv` and `Residential2050Consumption.csv` files, found within the `residential_presets` directory.\n", "\n", "The `Residential2020Consumption.csv` file allows us to specify the demand in 2020 for each region and technology per timeslice. The `Residential2050Consumption.csv` file does the same, but for the year 2050. The datapoints between these years are interpolated.\n", "\n", @@ -59,7 +59,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The process is very similar for the `Residential2050Consumption.csv` file: again we copy the values over from the `heat` column. For the complete file see the link [here](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/5-add-service-demand/1-exogenous-demand/technodata/preset/Residential2050Consumption.csv)." + "The process is very similar for the `Residential2050Consumption.csv` file: again we copy the values over from the `heat` column. For the complete file see the link [here](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/5-add-service-demand/1-exogenous-demand/residential_presets/Residential2050Consumption.csv)." ] }, { @@ -107,7 +107,7 @@ "source": [ "Next, we must add a technology to service this new demand. This is similar to how we added the solarPV technology in a previous tutorial. However, we must be careful to specify the end-use of the technology as `cook`.\n", "\n", - "For this example, we will add two competing technologies to service the cooking demand (`electric_stove` and `gas_stove`) to the `Technodata.csv` file in `/technodata/residential`.\n", + "For this example, we will add two competing technologies to service the cooking demand (`electric_stove` and `gas_stove`) to the `residential/Technodata.csv` file.\n", "\n", "Again, in the interests of space, we have omitted the existing `gasboiler` and `heatpump` technologies. For the new `electric_stove` technology, we will copy and paste the data from the `heatpump` row. For `gas_stove`, we copy and paste the data for `gasboiler`. Importantly, however, we must specify the end-use for these new technologies to be `cook` and not `heat`:\n", "\n", @@ -118,7 +118,7 @@ "|**electric_stove**|**R1**|**2020**|**8.8667**|**…**|**electricity**|**cook**|**1**|\n", "|**gas_stove**|**R1**|**2020**|**3.8**|**…**|**gas**|**cook**|**1**|\n", "\n", - "As can be seen, we have added two technologies with different `cap_par` costs. We specified their respective fuels, and the enduse for both is `cook`. For the full file please see [here](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/5-add-service-demand/1-exogenous-demand/technodata/residential/Technodata.csv)." + "As can be seen, we have added two technologies with different `cap_par` costs. We specified their respective fuels, and the enduse for both is `cook`. For the full file please see [here](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/5-add-service-demand/1-exogenous-demand/residential/Technodata.csv)." ] }, { diff --git a/docs/user-guide/min-max-timeslice-constraints.ipynb b/docs/user-guide/min-max-timeslice-constraints.ipynb index 0d4d5f50..00ca9bf6 100644 --- a/docs/user-guide/min-max-timeslice-constraints.ipynb +++ b/docs/user-guide/min-max-timeslice-constraints.ipynb @@ -60,11 +60,10 @@ "[sectors.power]\n", "type = 'default'\n", "priority = 2\n", - "dispatch_production = 'share'\n", - "technodata = '{path}/technodata/power/Technodata.csv'\n", - "commodities_in = '{path}/technodata/power/CommIn.csv'\n", - "commodities_out = '{path}/technodata/power/CommOut.csv'\n", - "technodata_timeslices = '{path}/technodata/power/TechnodataTimeslices.csv'\n", + "technodata = '{path}/power/Technodata.csv'\n", + "commodities_in = '{path}/power/CommIn.csv'\n", + "commodities_out = '{path}/power/CommOut.csv'\n", + "technodata_timeslices = '{path}/power/TechnodataTimeslices.csv'\n", "```\n", " \n", "Notice the `technodata_timeslices` path in the bottom row." @@ -237,7 +236,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3.9.0 ('muse39')", + "display_name": "muse_env", "language": "python", "name": "python3" }, @@ -252,11 +251,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.4" - }, - "vscode": { - "interpreter": { - "hash": "22ff8bbda430c28f07def99f448c0c69dabbaf0c7d993cae69f87b3c458d04b2" - } } }, "nbformat": 4, diff --git a/docs/user-guide/modify-timing-data.ipynb b/docs/user-guide/modify-timing-data.ipynb index 6c619a10..4cd24eae 100644 --- a/docs/user-guide/modify-timing-data.ipynb +++ b/docs/user-guide/modify-timing-data.ipynb @@ -68,7 +68,7 @@ "|**R1**|**7**|**0**|**0**|**1.4**|**0**|**0**|**0**|\n", "|**R1**|**8**|**0**|**0**|**1.4**|**0**|**0**|**0**|\n", "\n", - "We do the same for the `Residential2050Consumption.csv`, but set the demand in 2050 to be triple that of 2020 in every timeslice. See [here](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/4-modify-timing-data/1-modify-timeslices/technodata/preset/Residential2050Consumption.csv) for the full file." + "We do the same for the `Residential2050Consumption.csv`, but set the demand in 2050 to be triple that of 2020 in every timeslice. See [here](https://github.com/EnergySystemsModellingLab/MUSE_OS/blob/main/docs/tutorial-code/4-modify-timing-data/1-modify-timeslices/residential_presets/Residential2050Consumption.csv) for the full file." ] }, { diff --git a/src/muse/data/default_settings.toml b/src/muse/data/default_settings.toml index ecc39ce6..83f3ac61 100644 --- a/src/muse/data/default_settings.toml +++ b/src/muse/data/default_settings.toml @@ -30,7 +30,7 @@ plugins = [] # paths to each additional plugin path = '{path}' projections = '{path}/Projections.csv' regions = 'OPTIONAL' -global_commodities = '{path}/MUSEGlobalCommodities.csv' +global_commodities = '{path}/GlobalCommodities.csv' base_year_export = "OPTIONAL" base_year_import = "OPTIONAL" diff --git a/src/muse/data/example/default/technodata/Agents.csv b/src/muse/data/example/default/Agents.csv similarity index 100% rename from src/muse/data/example/default/technodata/Agents.csv rename to src/muse/data/example/default/Agents.csv diff --git a/src/muse/data/example/default/input/GlobalCommodities.csv b/src/muse/data/example/default/GlobalCommodities.csv similarity index 100% rename from src/muse/data/example/default/input/GlobalCommodities.csv rename to src/muse/data/example/default/GlobalCommodities.csv diff --git a/src/muse/data/example/default/input/Projections.csv b/src/muse/data/example/default/Projections.csv similarity index 100% rename from src/muse/data/example/default/input/Projections.csv rename to src/muse/data/example/default/Projections.csv diff --git a/src/muse/data/example/default/technodata/gas/CommIn.csv b/src/muse/data/example/default/gas/CommIn.csv similarity index 100% rename from src/muse/data/example/default/technodata/gas/CommIn.csv rename to src/muse/data/example/default/gas/CommIn.csv diff --git a/src/muse/data/example/default/technodata/gas/CommOut.csv b/src/muse/data/example/default/gas/CommOut.csv similarity index 100% rename from src/muse/data/example/default/technodata/gas/CommOut.csv rename to src/muse/data/example/default/gas/CommOut.csv diff --git a/src/muse/data/example/default/technodata/gas/ExistingCapacity.csv b/src/muse/data/example/default/gas/ExistingCapacity.csv similarity index 100% rename from src/muse/data/example/default/technodata/gas/ExistingCapacity.csv rename to src/muse/data/example/default/gas/ExistingCapacity.csv diff --git a/src/muse/data/example/default/technodata/gas/Technodata.csv b/src/muse/data/example/default/gas/Technodata.csv similarity index 100% rename from src/muse/data/example/default/technodata/gas/Technodata.csv rename to src/muse/data/example/default/gas/Technodata.csv diff --git a/src/muse/data/example/default/input/BaseYearExport.csv b/src/muse/data/example/default/input/BaseYearExport.csv deleted file mode 100644 index 7218c1fc..00000000 --- a/src/muse/data/example/default/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0 diff --git a/src/muse/data/example/default/input/BaseYearImport.csv b/src/muse/data/example/default/input/BaseYearImport.csv deleted file mode 100644 index 75b32276..00000000 --- a/src/muse/data/example/default/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0 diff --git a/src/muse/data/example/default/technodata/power/CommIn.csv b/src/muse/data/example/default/power/CommIn.csv similarity index 100% rename from src/muse/data/example/default/technodata/power/CommIn.csv rename to src/muse/data/example/default/power/CommIn.csv diff --git a/src/muse/data/example/default/technodata/power/CommOut.csv b/src/muse/data/example/default/power/CommOut.csv similarity index 100% rename from src/muse/data/example/default/technodata/power/CommOut.csv rename to src/muse/data/example/default/power/CommOut.csv diff --git a/src/muse/data/example/default/technodata/power/ExistingCapacity.csv b/src/muse/data/example/default/power/ExistingCapacity.csv similarity index 100% rename from src/muse/data/example/default/technodata/power/ExistingCapacity.csv rename to src/muse/data/example/default/power/ExistingCapacity.csv diff --git a/src/muse/data/example/default_timeslice/technodata/power/Technodata.csv b/src/muse/data/example/default/power/Technodata.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/power/Technodata.csv rename to src/muse/data/example/default/power/Technodata.csv diff --git a/src/muse/data/example/default/technodata/residential/CommIn.csv b/src/muse/data/example/default/residential/CommIn.csv similarity index 100% rename from src/muse/data/example/default/technodata/residential/CommIn.csv rename to src/muse/data/example/default/residential/CommIn.csv diff --git a/src/muse/data/example/default/technodata/residential/CommOut.csv b/src/muse/data/example/default/residential/CommOut.csv similarity index 100% rename from src/muse/data/example/default/technodata/residential/CommOut.csv rename to src/muse/data/example/default/residential/CommOut.csv diff --git a/src/muse/data/example/default/technodata/residential/ExistingCapacity.csv b/src/muse/data/example/default/residential/ExistingCapacity.csv similarity index 100% rename from src/muse/data/example/default/technodata/residential/ExistingCapacity.csv rename to src/muse/data/example/default/residential/ExistingCapacity.csv diff --git a/src/muse/data/example/default/technodata/residential/Technodata.csv b/src/muse/data/example/default/residential/Technodata.csv similarity index 100% rename from src/muse/data/example/default/technodata/residential/Technodata.csv rename to src/muse/data/example/default/residential/Technodata.csv diff --git a/src/muse/data/example/default/technodata/preset/Residential2020Consumption.csv b/src/muse/data/example/default/residential_presets/Residential2020Consumption.csv similarity index 100% rename from src/muse/data/example/default/technodata/preset/Residential2020Consumption.csv rename to src/muse/data/example/default/residential_presets/Residential2020Consumption.csv diff --git a/src/muse/data/example/default/technodata/preset/Residential2050Consumption.csv b/src/muse/data/example/default/residential_presets/Residential2050Consumption.csv similarity index 100% rename from src/muse/data/example/default/technodata/preset/Residential2050Consumption.csv rename to src/muse/data/example/default/residential_presets/Residential2050Consumption.csv diff --git a/src/muse/data/example/default/settings.toml b/src/muse/data/example/default/settings.toml index 7b88375b..3f720ec3 100644 --- a/src/muse/data/example/default/settings.toml +++ b/src/muse/data/example/default/settings.toml @@ -1,96 +1,79 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/src/muse/data/example/default_retro/technodata/Agents.csv b/src/muse/data/example/default_retro/Agents.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/Agents.csv rename to src/muse/data/example/default_retro/Agents.csv diff --git a/src/muse/data/example/default_retro/input/GlobalCommodities.csv b/src/muse/data/example/default_retro/GlobalCommodities.csv similarity index 100% rename from src/muse/data/example/default_retro/input/GlobalCommodities.csv rename to src/muse/data/example/default_retro/GlobalCommodities.csv diff --git a/src/muse/data/example/default_retro/input/Projections.csv b/src/muse/data/example/default_retro/Projections.csv similarity index 100% rename from src/muse/data/example/default_retro/input/Projections.csv rename to src/muse/data/example/default_retro/Projections.csv diff --git a/src/muse/data/example/default_retro/technodata/gas/CommIn.csv b/src/muse/data/example/default_retro/gas/CommIn.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/gas/CommIn.csv rename to src/muse/data/example/default_retro/gas/CommIn.csv diff --git a/src/muse/data/example/default_retro/technodata/gas/CommOut.csv b/src/muse/data/example/default_retro/gas/CommOut.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/gas/CommOut.csv rename to src/muse/data/example/default_retro/gas/CommOut.csv diff --git a/src/muse/data/example/default_retro/technodata/gas/ExistingCapacity.csv b/src/muse/data/example/default_retro/gas/ExistingCapacity.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/gas/ExistingCapacity.csv rename to src/muse/data/example/default_retro/gas/ExistingCapacity.csv diff --git a/src/muse/data/example/default_retro/technodata/gas/Technodata.csv b/src/muse/data/example/default_retro/gas/Technodata.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/gas/Technodata.csv rename to src/muse/data/example/default_retro/gas/Technodata.csv diff --git a/src/muse/data/example/default_retro/input/BaseYearExport.csv b/src/muse/data/example/default_retro/input/BaseYearExport.csv deleted file mode 100644 index 7218c1fc..00000000 --- a/src/muse/data/example/default_retro/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0 diff --git a/src/muse/data/example/default_retro/input/BaseYearImport.csv b/src/muse/data/example/default_retro/input/BaseYearImport.csv deleted file mode 100644 index 75b32276..00000000 --- a/src/muse/data/example/default_retro/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0 diff --git a/src/muse/data/example/default_retro/technodata/power/CommIn.csv b/src/muse/data/example/default_retro/power/CommIn.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/power/CommIn.csv rename to src/muse/data/example/default_retro/power/CommIn.csv diff --git a/src/muse/data/example/default_retro/technodata/power/CommOut.csv b/src/muse/data/example/default_retro/power/CommOut.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/power/CommOut.csv rename to src/muse/data/example/default_retro/power/CommOut.csv diff --git a/src/muse/data/example/default_retro/technodata/power/ExistingCapacity.csv b/src/muse/data/example/default_retro/power/ExistingCapacity.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/power/ExistingCapacity.csv rename to src/muse/data/example/default_retro/power/ExistingCapacity.csv diff --git a/src/muse/data/example/default_retro/technodata/power/Technodata.csv b/src/muse/data/example/default_retro/power/Technodata.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/power/Technodata.csv rename to src/muse/data/example/default_retro/power/Technodata.csv diff --git a/src/muse/data/example/default_retro/technodata/residential/CommIn.csv b/src/muse/data/example/default_retro/residential/CommIn.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/residential/CommIn.csv rename to src/muse/data/example/default_retro/residential/CommIn.csv diff --git a/src/muse/data/example/default_retro/technodata/residential/CommOut.csv b/src/muse/data/example/default_retro/residential/CommOut.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/residential/CommOut.csv rename to src/muse/data/example/default_retro/residential/CommOut.csv diff --git a/src/muse/data/example/default_retro/technodata/residential/ExistingCapacity.csv b/src/muse/data/example/default_retro/residential/ExistingCapacity.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/residential/ExistingCapacity.csv rename to src/muse/data/example/default_retro/residential/ExistingCapacity.csv diff --git a/src/muse/data/example/default_retro/technodata/residential/Technodata.csv b/src/muse/data/example/default_retro/residential/Technodata.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/residential/Technodata.csv rename to src/muse/data/example/default_retro/residential/Technodata.csv diff --git a/src/muse/data/example/default_retro/technodata/preset/Residential2020Consumption.csv b/src/muse/data/example/default_retro/residential_presets/Residential2020Consumption.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/preset/Residential2020Consumption.csv rename to src/muse/data/example/default_retro/residential_presets/Residential2020Consumption.csv diff --git a/src/muse/data/example/default_retro/technodata/preset/Residential2050Consumption.csv b/src/muse/data/example/default_retro/residential_presets/Residential2050Consumption.csv similarity index 100% rename from src/muse/data/example/default_retro/technodata/preset/Residential2050Consumption.csv rename to src/muse/data/example/default_retro/residential_presets/Residential2050Consumption.csv diff --git a/src/muse/data/example/default_retro/settings.toml b/src/muse/data/example/default_retro/settings.toml index f7c621b4..f5bf71fd 100644 --- a/src/muse/data/example/default_retro/settings.toml +++ b/src/muse/data/example/default_retro/settings.toml @@ -1,55 +1,45 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.retro_and_new] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "new_and_retro" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' +demand_share = "new_and_retro" [[sectors.residential.interactions]] net = 'new_to_retro' @@ -58,15 +48,13 @@ interaction = 'transfer' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.retro_and_new] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' demand_share = "new_and_retro" [[sectors.power.interactions]] @@ -76,15 +64,13 @@ interaction = 'transfer' [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.retro_and_new] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' demand_share = "new_and_retro" [[sectors.gas.interactions]] @@ -94,15 +80,15 @@ interaction = 'transfer' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/src/muse/data/example/default_timeslice/technodata/Agents.csv b/src/muse/data/example/default_timeslice/Agents.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/Agents.csv rename to src/muse/data/example/default_timeslice/Agents.csv diff --git a/src/muse/data/example/default_timeslice/input/GlobalCommodities.csv b/src/muse/data/example/default_timeslice/GlobalCommodities.csv similarity index 100% rename from src/muse/data/example/default_timeslice/input/GlobalCommodities.csv rename to src/muse/data/example/default_timeslice/GlobalCommodities.csv diff --git a/src/muse/data/example/default_timeslice/input/Projections.csv b/src/muse/data/example/default_timeslice/Projections.csv similarity index 100% rename from src/muse/data/example/default_timeslice/input/Projections.csv rename to src/muse/data/example/default_timeslice/Projections.csv diff --git a/src/muse/data/example/default_timeslice/technodata/gas/CommIn.csv b/src/muse/data/example/default_timeslice/gas/CommIn.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/gas/CommIn.csv rename to src/muse/data/example/default_timeslice/gas/CommIn.csv diff --git a/src/muse/data/example/default_timeslice/technodata/gas/CommOut.csv b/src/muse/data/example/default_timeslice/gas/CommOut.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/gas/CommOut.csv rename to src/muse/data/example/default_timeslice/gas/CommOut.csv diff --git a/src/muse/data/example/default_timeslice/technodata/gas/ExistingCapacity.csv b/src/muse/data/example/default_timeslice/gas/ExistingCapacity.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/gas/ExistingCapacity.csv rename to src/muse/data/example/default_timeslice/gas/ExistingCapacity.csv diff --git a/src/muse/data/example/default_timeslice/technodata/gas/Technodata.csv b/src/muse/data/example/default_timeslice/gas/Technodata.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/gas/Technodata.csv rename to src/muse/data/example/default_timeslice/gas/Technodata.csv diff --git a/src/muse/data/example/default_timeslice/input/BaseYearExport.csv b/src/muse/data/example/default_timeslice/input/BaseYearExport.csv deleted file mode 100644 index 7218c1fc..00000000 --- a/src/muse/data/example/default_timeslice/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0 diff --git a/src/muse/data/example/default_timeslice/input/BaseYearImport.csv b/src/muse/data/example/default_timeslice/input/BaseYearImport.csv deleted file mode 100644 index 75b32276..00000000 --- a/src/muse/data/example/default_timeslice/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind -Unit,-,Year,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0 diff --git a/src/muse/data/example/default_timeslice/technodata/power/CommIn.csv b/src/muse/data/example/default_timeslice/power/CommIn.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/power/CommIn.csv rename to src/muse/data/example/default_timeslice/power/CommIn.csv diff --git a/src/muse/data/example/default_timeslice/technodata/power/CommOut.csv b/src/muse/data/example/default_timeslice/power/CommOut.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/power/CommOut.csv rename to src/muse/data/example/default_timeslice/power/CommOut.csv diff --git a/src/muse/data/example/default_timeslice/technodata/power/ExistingCapacity.csv b/src/muse/data/example/default_timeslice/power/ExistingCapacity.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/power/ExistingCapacity.csv rename to src/muse/data/example/default_timeslice/power/ExistingCapacity.csv diff --git a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/power/Technodata.csv b/src/muse/data/example/default_timeslice/power/Technodata.csv similarity index 60% rename from docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/power/Technodata.csv rename to src/muse/data/example/default_timeslice/power/Technodata.csv index a23d8d32..24109432 100644 --- a/docs/tutorial-code/modify-timing-data/2-modify-time-framework/technodata/power/Technodata.csv +++ b/src/muse/data/example/default_timeslice/power/Technodata.csv @@ -1,4 +1,4 @@ ProcessName,RegionName,Time,cap_par,cap_exp,fix_par,fix_exp,var_par,var_exp,MaxCapacityAddition,MaxCapacityGrowth,TotalCapacityLimit,TechnicalLife,UtilizationFactor,ScalingSize,efficiency,InterestRate,Type,Fuel,EndUse,Agent1 Unit,-,Year,MUS$2010/PJ_a,-,MUS$2010/PJ,-,MUS$2010/PJ,-,PJ,%,PJ,Years,-,PJ,%,-,-,-,-,New -gasCCGT,R1,2020,23.78234399,1,0,1,0,1,10,1,100,35,0.9,0.00000189,86,0.1,energy,gas,electricity,1 -windturbine,R1,2020,36.30771182,1,0,1,0,1,10,1,100,25,0.4,0.00000189,86,0.1,energy,wind,electricity,1 +gasCCGT,R1,2020,23.78234399,1,0,1,0,1,10,0.5,100,35,0.9,0.00000189,86,0.1,energy,gas,electricity,1 +windturbine,R1,2020,36.30771182,1,0,1,0,1,10,0.5,100,25,0.4,0.00000189,86,0.1,energy,wind,electricity,1 diff --git a/src/muse/data/example/default_timeslice/technodata/power/TechnodataTimeslices.csv b/src/muse/data/example/default_timeslice/power/TechnodataTimeslices.csv similarity index 98% rename from src/muse/data/example/default_timeslice/technodata/power/TechnodataTimeslices.csv rename to src/muse/data/example/default_timeslice/power/TechnodataTimeslices.csv index 23037f99..dd8f9c1a 100644 --- a/src/muse/data/example/default_timeslice/technodata/power/TechnodataTimeslices.csv +++ b/src/muse/data/example/default_timeslice/power/TechnodataTimeslices.csv @@ -1,14 +1,14 @@ -ProcessName,RegionName,Time,month,day,hour,UtilizationFactor,MinimumServiceFactor -Unit,-,Year,-,-,-,-,- -gasCCGT,R1,2020,all-year,all-week,night,1,0 -gasCCGT,R1,2020,all-year,all-week,morning,1,0 -gasCCGT,R1,2020,all-year,all-week,afternoon,1,0 -gasCCGT,R1,2020,all-year,all-week,early-peak,1,0 -gasCCGT,R1,2020,all-year,all-week,late-peak,1,0 -gasCCGT,R1,2020,all-year,all-week,evening,1,0 -windturbine,R1,2020,all-year,all-week,night,1,0 -windturbine,R1,2020,all-year,all-week,morning,1,0 -windturbine,R1,2020,all-year,all-week,afternoon,1,0 -windturbine,R1,2020,all-year,all-week,early-peak,1,0 -windturbine,R1,2020,all-year,all-week,late-peak,1,0 -windturbine,R1,2020,all-year,all-week,evening,1,0 +ProcessName,RegionName,Time,month,day,hour,UtilizationFactor,MinimumServiceFactor +Unit,-,Year,-,-,-,-,- +gasCCGT,R1,2020,all-year,all-week,night,1,0 +gasCCGT,R1,2020,all-year,all-week,morning,1,0 +gasCCGT,R1,2020,all-year,all-week,afternoon,1,0 +gasCCGT,R1,2020,all-year,all-week,early-peak,1,0 +gasCCGT,R1,2020,all-year,all-week,late-peak,1,0 +gasCCGT,R1,2020,all-year,all-week,evening,1,0 +windturbine,R1,2020,all-year,all-week,night,1,0 +windturbine,R1,2020,all-year,all-week,morning,1,0 +windturbine,R1,2020,all-year,all-week,afternoon,1,0 +windturbine,R1,2020,all-year,all-week,early-peak,1,0 +windturbine,R1,2020,all-year,all-week,late-peak,1,0 +windturbine,R1,2020,all-year,all-week,evening,1,0 diff --git a/src/muse/data/example/default_timeslice/technodata/residential/CommIn.csv b/src/muse/data/example/default_timeslice/residential/CommIn.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/residential/CommIn.csv rename to src/muse/data/example/default_timeslice/residential/CommIn.csv diff --git a/src/muse/data/example/default_timeslice/technodata/residential/CommOut.csv b/src/muse/data/example/default_timeslice/residential/CommOut.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/residential/CommOut.csv rename to src/muse/data/example/default_timeslice/residential/CommOut.csv diff --git a/src/muse/data/example/default_timeslice/technodata/residential/ExistingCapacity.csv b/src/muse/data/example/default_timeslice/residential/ExistingCapacity.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/residential/ExistingCapacity.csv rename to src/muse/data/example/default_timeslice/residential/ExistingCapacity.csv diff --git a/src/muse/data/example/default_timeslice/technodata/residential/Technodata.csv b/src/muse/data/example/default_timeslice/residential/Technodata.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/residential/Technodata.csv rename to src/muse/data/example/default_timeslice/residential/Technodata.csv diff --git a/src/muse/data/example/default_timeslice/technodata/preset/Residential2020Consumption.csv b/src/muse/data/example/default_timeslice/residential_presets/Residential2020Consumption.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/preset/Residential2020Consumption.csv rename to src/muse/data/example/default_timeslice/residential_presets/Residential2020Consumption.csv diff --git a/src/muse/data/example/default_timeslice/technodata/preset/Residential2050Consumption.csv b/src/muse/data/example/default_timeslice/residential_presets/Residential2050Consumption.csv similarity index 100% rename from src/muse/data/example/default_timeslice/technodata/preset/Residential2050Consumption.csv rename to src/muse/data/example/default_timeslice/residential_presets/Residential2050Consumption.csv diff --git a/src/muse/data/example/default_timeslice/settings.toml b/src/muse/data/example/default_timeslice/settings.toml index f65a0b03..8f2844a7 100644 --- a/src/muse/data/example/default_timeslice/settings.toml +++ b/src/muse/data/example/default_timeslice/settings.toml @@ -1,70 +1,56 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] -[carbon_budget_control] -budget = [] +[timeslices.all-year.all-week] +night = 1460 +morning = 1460 +afternoon = 1460 +early-peak = 1460 +late-peak = 1460 +evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' +# Sectors [sectors.residential] type = 'default' priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" # Optional, defaults to "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand +agents = '{path}/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' -technodata = '{path}/technodata/power/Technodata.csv' -technodata_timeslices = '{path}/technodata/power/TechnodataTimeslices.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +technodata_timeslices = '{path}/power/TechnodataTimeslices.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingCapacity.csv' [[sectors.power.outputs]] quantity = "supply" @@ -74,29 +60,26 @@ filename = "{cwd}/{default_output_dir}/{Sector}_{Quantity}.csv" [sectors.gas] type = 'default' priority = 3 -dispatch_production = 'share' -technodata = '{path}/technodata/gas/Technodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv' -lpsolver = "scipy" -demand_share = "standard_demand" +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingCapacity.csv' [sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" -[timeslices] -level_names = ["month", "day", "hour"] +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" -[timeslices.all-year.all-week] -night = 1460 -morning = 1460 -afternoon = 1460 -early-peak = 1460 -late-peak = 1460 -evening = 1460 +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/src/muse/data/example/medium/input/GlobalCommodities.csv b/src/muse/data/example/medium/GlobalCommodities.csv similarity index 100% rename from src/muse/data/example/medium/input/GlobalCommodities.csv rename to src/muse/data/example/medium/GlobalCommodities.csv diff --git a/src/muse/data/example/medium/input/Projections.csv b/src/muse/data/example/medium/Projections.csv similarity index 98% rename from src/muse/data/example/medium/input/Projections.csv rename to src/muse/data/example/medium/Projections.csv index 42f38845..4fc02cb4 100644 --- a/src/muse/data/example/medium/input/Projections.csv +++ b/src/muse/data/example/medium/Projections.csv @@ -1,21 +1,21 @@ -RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind,cook -Unit,-,Year,MUS$2010/PJ,MUS$2010/PJ,MUS$2010/PJ,MUS$2010/kt,MUS$2010/kt,MUS$2010/PJ -R1,CommodityPrice,2010,14.81481472,6.6759,100,0,0,100 -R1,CommodityPrice,2015,17.89814806,6.914325,100,0.052913851,0,100 -R1,CommodityPrice,2020,19.5,7.15275,100,0.08314119,0,100 -R1,CommodityPrice,2025,21.93518528,8.10645,100,0.120069795,0,100 -R1,CommodityPrice,2030,26.50925917,9.06015,100,0.156998399,0,100 -R1,CommodityPrice,2035,26.51851861,9.2191,100,0.214877567,0,100 -R1,CommodityPrice,2040,23.85185194,9.37805,100,0.272756734,0,100 -R1,CommodityPrice,2045,23.97222222,9.193829337,100,0.35394801,0,100 -R1,CommodityPrice,2050,24.06481472,9.009608674,100,0.435139285,0,100 -R1,CommodityPrice,2055,25.3425925,8.832625604,100,0.542365578,0,100 -R1,CommodityPrice,2060,25.53703694,8.655642534,100,0.649591871,0,100 -R1,CommodityPrice,2065,25.32407417,8.485612708,100,0.780892624,0,100 -R1,CommodityPrice,2070,23.36111111,8.315582883,100,0.912193378,0,100 -R1,CommodityPrice,2075,22.27777778,8.152233126,100,1.078321687,0,100 -R1,CommodityPrice,2080,22.25925917,7.988883368,100,1.244449995,0,100 -R1,CommodityPrice,2085,22.17592583,7.831951236,100,1.4253503,0,100 -R1,CommodityPrice,2090,22.03703694,7.675019103,100,1.606250604,0,100 -R1,CommodityPrice,2095,21.94444444,7.524252461,100,1.73877515,0,100 +RegionName,Attribute,Time,electricity,gas,heat,CO2f,wind,cook +Unit,-,Year,MUS$2010/PJ,MUS$2010/PJ,MUS$2010/PJ,MUS$2010/kt,MUS$2010/kt,MUS$2010/PJ +R1,CommodityPrice,2010,14.81481472,6.6759,100,0,0,100 +R1,CommodityPrice,2015,17.89814806,6.914325,100,0.052913851,0,100 +R1,CommodityPrice,2020,19.5,7.15275,100,0.08314119,0,100 +R1,CommodityPrice,2025,21.93518528,8.10645,100,0.120069795,0,100 +R1,CommodityPrice,2030,26.50925917,9.06015,100,0.156998399,0,100 +R1,CommodityPrice,2035,26.51851861,9.2191,100,0.214877567,0,100 +R1,CommodityPrice,2040,23.85185194,9.37805,100,0.272756734,0,100 +R1,CommodityPrice,2045,23.97222222,9.193829337,100,0.35394801,0,100 +R1,CommodityPrice,2050,24.06481472,9.009608674,100,0.435139285,0,100 +R1,CommodityPrice,2055,25.3425925,8.832625604,100,0.542365578,0,100 +R1,CommodityPrice,2060,25.53703694,8.655642534,100,0.649591871,0,100 +R1,CommodityPrice,2065,25.32407417,8.485612708,100,0.780892624,0,100 +R1,CommodityPrice,2070,23.36111111,8.315582883,100,0.912193378,0,100 +R1,CommodityPrice,2075,22.27777778,8.152233126,100,1.078321687,0,100 +R1,CommodityPrice,2080,22.25925917,7.988883368,100,1.244449995,0,100 +R1,CommodityPrice,2085,22.17592583,7.831951236,100,1.4253503,0,100 +R1,CommodityPrice,2090,22.03703694,7.675019103,100,1.606250604,0,100 +R1,CommodityPrice,2095,21.94444444,7.524252461,100,1.73877515,0,100 R1,CommodityPrice,2100,21.39814806,7.373485819,100,1.871299697,0,100 diff --git a/src/muse/data/example/medium/input/BaseYearExport.csv b/src/muse/data/example/medium/input/BaseYearExport.csv deleted file mode 100644 index 512e2438..00000000 --- a/src/muse/data/example/medium/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,cook,heat,CO2f,wind -Unit,-,Year,GWh,PJ,PJ,PJ,kt,PJ -R1,Exports,2010,0,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0,0 diff --git a/src/muse/data/example/medium/input/BaseYearImport.csv b/src/muse/data/example/medium/input/BaseYearImport.csv deleted file mode 100644 index 0403a924..00000000 --- a/src/muse/data/example/medium/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,electricity,gas,cook,heat,CO2f,wind -Unit,-,Year,GWh,PJ,PJ,PJ,kt,PJ -R1,Imports,2010,0,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0,0 diff --git a/src/muse/data/example/medium/technodata/residential/CommIn.csv b/src/muse/data/example/medium/residential/CommIn.csv similarity index 98% rename from src/muse/data/example/medium/technodata/residential/CommIn.csv rename to src/muse/data/example/medium/residential/CommIn.csv index 0b1c1ab6..248ccc37 100644 --- a/src/muse/data/example/medium/technodata/residential/CommIn.csv +++ b/src/muse/data/example/medium/residential/CommIn.csv @@ -1,6 +1,6 @@ -ProcessName,RegionName,Time,Level,electricity,gas,cook,heat,CO2f,wind -Unit,-,Year,-,PJ/PJ,PJ/PJ,PJ/PJ,PJ/PJ,kt/PJ,PJ/PJ -gasboiler,R1,2020,fixed,0,1.162790698,0,0,0,0 -heatpump,R1,2020,fixed,0.4,0,0,0,0,0 -estove,R1,2020,fixed,0.36,0,0,0,0,0 +ProcessName,RegionName,Time,Level,electricity,gas,cook,heat,CO2f,wind +Unit,-,Year,-,PJ/PJ,PJ/PJ,PJ/PJ,PJ/PJ,kt/PJ,PJ/PJ +gasboiler,R1,2020,fixed,0,1.162790698,0,0,0,0 +heatpump,R1,2020,fixed,0.4,0,0,0,0,0 +estove,R1,2020,fixed,0.36,0,0,0,0,0 gasstove,R1,2020,fixed,0,1,0,0,0,0 diff --git a/src/muse/data/example/medium/technodata/residential/CommOut.csv b/src/muse/data/example/medium/residential/CommOut.csv similarity index 97% rename from src/muse/data/example/medium/technodata/residential/CommOut.csv rename to src/muse/data/example/medium/residential/CommOut.csv index e791e310..c04fabcf 100644 --- a/src/muse/data/example/medium/technodata/residential/CommOut.csv +++ b/src/muse/data/example/medium/residential/CommOut.csv @@ -1,6 +1,6 @@ -ProcessName,RegionName,Time,electricity,gas,heat,CO2f,cook,wind -Unit,-,Year,PJ/PJ,PJ/PJ,PJ/PJ,kt/PJ,PJ/PJ,PJ/PJ -gasboiler,R1,2020,0,0,1,64.70588235,0,0 -heatpump,R1,2020,0,0,1,0,0,0 -estove,R1,2020,0,0,0,50,1,0 -gasstove,R1,2020,0,0,0,0,1,0 +ProcessName,RegionName,Time,electricity,gas,heat,CO2f,cook,wind +Unit,-,Year,PJ/PJ,PJ/PJ,PJ/PJ,kt/PJ,PJ/PJ,PJ/PJ +gasboiler,R1,2020,0,0,1,64.70588235,0,0 +heatpump,R1,2020,0,0,1,0,0,0 +estove,R1,2020,0,0,0,50,1,0 +gasstove,R1,2020,0,0,0,0,1,0 diff --git a/src/muse/data/example/medium/technodata/residential/ExistingCapacity.csv b/src/muse/data/example/medium/residential/ExistingCapacity.csv similarity index 97% rename from src/muse/data/example/medium/technodata/residential/ExistingCapacity.csv rename to src/muse/data/example/medium/residential/ExistingCapacity.csv index 72b6b1a2..17047c30 100644 --- a/src/muse/data/example/medium/technodata/residential/ExistingCapacity.csv +++ b/src/muse/data/example/medium/residential/ExistingCapacity.csv @@ -1,5 +1,5 @@ -ProcessName,RegionName,Unit,2020,2025,2030,2035,2040,2045,2050 -gasboiler,R1,PJ/y,10,8,0,0,0,0,0 -heatpump,R1,PJ/y,0,0,0,0,0,0,0 -gasstove,R1,PJ/y,10,8,0,0,0,0,0 +ProcessName,RegionName,Unit,2020,2025,2030,2035,2040,2045,2050 +gasboiler,R1,PJ/y,10,8,0,0,0,0,0 +heatpump,R1,PJ/y,0,0,0,0,0,0,0 +gasstove,R1,PJ/y,10,8,0,0,0,0,0 estove,R1,PJ/y,0,0,0,0,0,0,0 diff --git a/src/muse/data/example/medium/technodata/residential/Technodata.csv b/src/muse/data/example/medium/residential/Technodata.csv similarity index 99% rename from src/muse/data/example/medium/technodata/residential/Technodata.csv rename to src/muse/data/example/medium/residential/Technodata.csv index 832e0b87..4826c9f2 100644 --- a/src/muse/data/example/medium/technodata/residential/Technodata.csv +++ b/src/muse/data/example/medium/residential/Technodata.csv @@ -1,6 +1,6 @@ -ProcessName,RegionName,Time,cap_par,cap_exp,fix_par,fix_exp,var_par,var_exp,MaxCapacityAddition,MaxCapacityGrowth,TotalCapacityLimit,TechnicalLife,UtilizationFactor,ScalingSize,efficiency,InterestRate,Type,Fuel,EndUse,Agent1 -Unit,-,Year,MUS$2010/PJ_a,-,MUS$2010/PJ,-,MUS$2010/PJ,-,PJ,-,PJ,Years,-,PJ,%,-,-,-,-,New -gasboiler,R1,2020,3.8,1,0,1,0,1,10,0.2,60,10,1,0.00000189,86,0.1,energy,gas,heat,1 -heatpump,R1,2020,8.866666667,1,0,1,0,1,10,0.2,60,10,1,0.00000189,86,0.1,energy,electricity,heat,1 -estove,R1,2020,3.8,1,0,1,0,1,10,0.2,60,10,1,0.00000189,86,0.1,energy,gas,cook,1 -gasstove,R1,2020,8.866666667,1,0,1,0,1,10,0.2,60,10,1,0.00000189,86,0.1,energy,electricity,cook,1 +ProcessName,RegionName,Time,cap_par,cap_exp,fix_par,fix_exp,var_par,var_exp,MaxCapacityAddition,MaxCapacityGrowth,TotalCapacityLimit,TechnicalLife,UtilizationFactor,ScalingSize,efficiency,InterestRate,Type,Fuel,EndUse,Agent1 +Unit,-,Year,MUS$2010/PJ_a,-,MUS$2010/PJ,-,MUS$2010/PJ,-,PJ,-,PJ,Years,-,PJ,%,-,-,-,-,New +gasboiler,R1,2020,3.8,1,0,1,0,1,10,0.2,60,10,1,0.00000189,86,0.1,energy,gas,heat,1 +heatpump,R1,2020,8.866666667,1,0,1,0,1,10,0.2,60,10,1,0.00000189,86,0.1,energy,electricity,heat,1 +estove,R1,2020,3.8,1,0,1,0,1,10,0.2,60,10,1,0.00000189,86,0.1,energy,gas,cook,1 +gasstove,R1,2020,8.866666667,1,0,1,0,1,10,0.2,60,10,1,0.00000189,86,0.1,energy,electricity,cook,1 diff --git a/src/muse/data/example/medium/technodata/preset/Residential2020Consumption.csv b/src/muse/data/example/medium/residential_presets/Residential2020Consumption.csv similarity index 96% rename from src/muse/data/example/medium/technodata/preset/Residential2020Consumption.csv rename to src/muse/data/example/medium/residential_presets/Residential2020Consumption.csv index a06b5b89..c15a0bf0 100644 --- a/src/muse/data/example/medium/technodata/preset/Residential2020Consumption.csv +++ b/src/muse/data/example/medium/residential_presets/Residential2020Consumption.csv @@ -1,7 +1,7 @@ -RegionName,Timeslice,electricity,gas,cook,heat,CO2f,wind -R1,1,0,0,0.5,0.5,0,0 -R1,2,0,0,0.75,0.75,0,0 -R1,3,0,0,0.5,0.5,0,0 -R1,4,0,0,0.75,0.75,0,0 -R1,5,0,0,1.5,1.5,0,0 -R1,6,0,0,1,1,0,0 +RegionName,Timeslice,electricity,gas,cook,heat,CO2f,wind +R1,1,0,0,0.5,0.5,0,0 +R1,2,0,0,0.75,0.75,0,0 +R1,3,0,0,0.5,0.5,0,0 +R1,4,0,0,0.75,0.75,0,0 +R1,5,0,0,1.5,1.5,0,0 +R1,6,0,0,1,1,0,0 diff --git a/src/muse/data/example/medium/technodata/preset/Residential2050Consumption.csv b/src/muse/data/example/medium/residential_presets/Residential2050Consumption.csv similarity index 96% rename from src/muse/data/example/medium/technodata/preset/Residential2050Consumption.csv rename to src/muse/data/example/medium/residential_presets/Residential2050Consumption.csv index 1a819e23..753e5b25 100644 --- a/src/muse/data/example/medium/technodata/preset/Residential2050Consumption.csv +++ b/src/muse/data/example/medium/residential_presets/Residential2050Consumption.csv @@ -1,7 +1,7 @@ -RegionName,Timeslice,electricity,gas,heat,cook,CO2f,wind -R1,1,0,0,1.5,1.5,0,0 -R1,2,0,0,2.25,2.25,0,0 -R1,3,0,0,1.5,1.5,0,0 -R1,4,0,0,2.25,2.25,0,0 -R1,5,0,0,4.5,4.5,0,0 -R1,6,0,0,3,3,0,0 +RegionName,Timeslice,electricity,gas,heat,cook,CO2f,wind +R1,1,0,0,1.5,1.5,0,0 +R1,2,0,0,2.25,2.25,0,0 +R1,3,0,0,1.5,1.5,0,0 +R1,4,0,0,2.25,2.25,0,0 +R1,5,0,0,4.5,4.5,0,0 +R1,6,0,0,3,3,0,0 diff --git a/src/muse/data/example/minimum_service/technodata/Agents.csv b/src/muse/data/example/minimum_service/Agents.csv similarity index 100% rename from src/muse/data/example/minimum_service/technodata/Agents.csv rename to src/muse/data/example/minimum_service/Agents.csv diff --git a/src/muse/data/example/minimum_service/input/GlobalCommodities.csv b/src/muse/data/example/minimum_service/GlobalCommodities.csv similarity index 100% rename from src/muse/data/example/minimum_service/input/GlobalCommodities.csv rename to src/muse/data/example/minimum_service/GlobalCommodities.csv diff --git a/src/muse/data/example/minimum_service/input/Projections.csv b/src/muse/data/example/minimum_service/Projections.csv similarity index 100% rename from src/muse/data/example/minimum_service/input/Projections.csv rename to src/muse/data/example/minimum_service/Projections.csv diff --git a/src/muse/data/example/minimum_service/technodata/industry/CommIn.csv b/src/muse/data/example/minimum_service/industry/CommIn.csv similarity index 100% rename from src/muse/data/example/minimum_service/technodata/industry/CommIn.csv rename to src/muse/data/example/minimum_service/industry/CommIn.csv diff --git a/src/muse/data/example/minimum_service/technodata/industry/CommOut.csv b/src/muse/data/example/minimum_service/industry/CommOut.csv similarity index 100% rename from src/muse/data/example/minimum_service/technodata/industry/CommOut.csv rename to src/muse/data/example/minimum_service/industry/CommOut.csv diff --git a/src/muse/data/example/minimum_service/technodata/industry/Existing.csv b/src/muse/data/example/minimum_service/industry/Existing.csv similarity index 100% rename from src/muse/data/example/minimum_service/technodata/industry/Existing.csv rename to src/muse/data/example/minimum_service/industry/Existing.csv diff --git a/src/muse/data/example/minimum_service/technodata/industry/Technodata.csv b/src/muse/data/example/minimum_service/industry/Technodata.csv similarity index 100% rename from src/muse/data/example/minimum_service/technodata/industry/Technodata.csv rename to src/muse/data/example/minimum_service/industry/Technodata.csv diff --git a/src/muse/data/example/minimum_service/technodata/preset/Industry2010Consumption.csv b/src/muse/data/example/minimum_service/industry_presets/Industry2010Consumption.csv similarity index 100% rename from src/muse/data/example/minimum_service/technodata/preset/Industry2010Consumption.csv rename to src/muse/data/example/minimum_service/industry_presets/Industry2010Consumption.csv diff --git a/src/muse/data/example/minimum_service/technodata/preset/Industry2020Consumption.csv b/src/muse/data/example/minimum_service/industry_presets/Industry2020Consumption.csv similarity index 100% rename from src/muse/data/example/minimum_service/technodata/preset/Industry2020Consumption.csv rename to src/muse/data/example/minimum_service/industry_presets/Industry2020Consumption.csv diff --git a/src/muse/data/example/minimum_service/technodata/preset/Industry2030Consumption.csv b/src/muse/data/example/minimum_service/industry_presets/Industry2030Consumption.csv similarity index 100% rename from src/muse/data/example/minimum_service/technodata/preset/Industry2030Consumption.csv rename to src/muse/data/example/minimum_service/industry_presets/Industry2030Consumption.csv diff --git a/src/muse/data/example/minimum_service/technodata/preset/Industry2040Consumption.csv b/src/muse/data/example/minimum_service/industry_presets/Industry2040Consumption.csv similarity index 100% rename from src/muse/data/example/minimum_service/technodata/preset/Industry2040Consumption.csv rename to src/muse/data/example/minimum_service/industry_presets/Industry2040Consumption.csv diff --git a/src/muse/data/example/minimum_service/technodata/preset/Industry2050Consumption.csv b/src/muse/data/example/minimum_service/industry_presets/Industry2050Consumption.csv similarity index 100% rename from src/muse/data/example/minimum_service/technodata/preset/Industry2050Consumption.csv rename to src/muse/data/example/minimum_service/industry_presets/Industry2050Consumption.csv diff --git a/src/muse/data/example/minimum_service/input/BaseYearExport.csv b/src/muse/data/example/minimum_service/input/BaseYearExport.csv deleted file mode 100644 index 8af42b83..00000000 --- a/src/muse/data/example/minimum_service/input/BaseYearExport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,fuel1,fuel2,fuel3,ammonia,CO2f,CO2r,CO2c,CO2s,N2O -Unit,-,Year,PJ,PJ,PJ,Mt,kt,kt,kt,kt,kt -R1,Exports,2010,0,0,0,0,0,0,0,0,0 -R1,Exports,2015,0,0,0,0,0,0,0,0,0 -R1,Exports,2020,0,0,0,0,0,0,0,0,0 -R1,Exports,2025,0,0,0,0,0,0,0,0,0 -R1,Exports,2030,0,0,0,0,0,0,0,0,0 -R1,Exports,2035,0,0,0,0,0,0,0,0,0 -R1,Exports,2040,0,0,0,0,0,0,0,0,0 -R1,Exports,2045,0,0,0,0,0,0,0,0,0 -R1,Exports,2050,0,0,0,0,0,0,0,0,0 -R1,Exports,2055,0,0,0,0,0,0,0,0,0 -R1,Exports,2060,0,0,0,0,0,0,0,0,0 -R1,Exports,2065,0,0,0,0,0,0,0,0,0 -R1,Exports,2070,0,0,0,0,0,0,0,0,0 -R1,Exports,2075,0,0,0,0,0,0,0,0,0 -R1,Exports,2080,0,0,0,0,0,0,0,0,0 -R1,Exports,2085,0,0,0,0,0,0,0,0,0 -R1,Exports,2090,0,0,0,0,0,0,0,0,0 -R1,Exports,2095,0,0,0,0,0,0,0,0,0 -R1,Exports,2100,0,0,0,0,0,0,0,0,0 diff --git a/src/muse/data/example/minimum_service/input/BaseYearImport.csv b/src/muse/data/example/minimum_service/input/BaseYearImport.csv deleted file mode 100644 index e247eee0..00000000 --- a/src/muse/data/example/minimum_service/input/BaseYearImport.csv +++ /dev/null @@ -1,21 +0,0 @@ -RegionName,Attribute,Time,fuel1,fuel2,fuel3,ammonia,CO2f,CO2r,CO2c,CO2s,N2O -Unit,-,Year,PJ,PJ,PJ,Mt,kt,kt,kt,kt,kt -R1,Imports,2010,0,0,0,0,0,0,0,0,0 -R1,Imports,2015,0,0,0,0,0,0,0,0,0 -R1,Imports,2020,0,0,0,0,0,0,0,0,0 -R1,Imports,2025,0,0,0,0,0,0,0,0,0 -R1,Imports,2030,0,0,0,0,0,0,0,0,0 -R1,Imports,2035,0,0,0,0,0,0,0,0,0 -R1,Imports,2040,0,0,0,0,0,0,0,0,0 -R1,Imports,2045,0,0,0,0,0,0,0,0,0 -R1,Imports,2050,0,0,0,0,0,0,0,0,0 -R1,Imports,2055,0,0,0,0,0,0,0,0,0 -R1,Imports,2060,0,0,0,0,0,0,0,0,0 -R1,Imports,2065,0,0,0,0,0,0,0,0,0 -R1,Imports,2070,0,0,0,0,0,0,0,0,0 -R1,Imports,2075,0,0,0,0,0,0,0,0,0 -R1,Imports,2080,0,0,0,0,0,0,0,0,0 -R1,Imports,2085,0,0,0,0,0,0,0,0,0 -R1,Imports,2090,0,0,0,0,0,0,0,0,0 -R1,Imports,2095,0,0,0,0,0,0,0,0,0 -R1,Imports,2100,0,0,0,0,0,0,0,0,0 diff --git a/src/muse/data/example/minimum_service/settings.toml b/src/muse/data/example/minimum_service/settings.toml index 09e7497b..9ca2c5fe 100644 --- a/src/muse/data/example/minimum_service/settings.toml +++ b/src/muse/data/example/minimum_service/settings.toml @@ -1,23 +1,46 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2010, 2015, 2020, 2025, 2030, 2035, 2040, 2045, 2050] regions = ["R1"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["fuel1", "fuel2", "fuel3"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["fuel1", "fuel2", "fuel3"] -[carbon_budget_control] -budget = [] +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] +winter.all-week.all-day = 2920 +summer.all-week.all-day = 2920 +spring-autumn.all-week.all-day = 2920 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' + +# Sectors +[sectors.industry] +type = 'default' +priority = 1 +technodata = '{path}/industry/Technodata.csv' +commodities_in = '{path}/industry/CommIn.csv' +commodities_out = '{path}/industry/CommOut.csv' + +[sectors.industry.subsectors.all] +agents = '{path}/Agents.csv' +existing_capacity = '{path}/industry/Existing.csv' + +[sectors.industry_presets] +type = 'presets' +priority = 0 +consumption_path = "{path}/industry_presets/*Consumption.csv" +# Global outputs [[outputs]] quantity = "capacity" sink = "aggregate" @@ -32,37 +55,3 @@ filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" quantity = "prices" sink = "aggregate" filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[sectors.industry] -type = 'default' -priority = 1 -dispatch_production = 'share' -technodata = '{path}/technodata/industry/Technodata.csv' -commodities_in = '{path}/technodata/industry/CommIn.csv' -commodities_out = '{path}/technodata/industry/CommOut.csv' - -[sectors.industry.subsectors.all] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/industry/Existing.csv' -lpsolver = "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] -demand_share = "standard_demand" # Optional, default to standard_demand - -[sectors.industry_presets] -type = 'presets' -priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" - -[timeslices] -level_names = ["month", "day", "hour"] -winter.all-week.all-day = 2920 -summer.all-week.all-day = 2920 -spring-autumn.all-week.all-day = 2920 diff --git a/src/muse/data/example/multiple_agents/residential/ExistingCapacity.csv b/src/muse/data/example/multiple_agents/residential/ExistingCapacity.csv deleted file mode 100644 index 13d33330..00000000 --- a/src/muse/data/example/multiple_agents/residential/ExistingCapacity.csv +++ /dev/null @@ -1,3 +0,0 @@ -ProcessName,RegionName,Unit,2020,2025,2030,2035,2040,2045,2050,2060,2070 -gasboiler,R1,PJ/y,20,7,0.0000001,0.0000001,0.0000001,0.0000001,0.0000001,0.0000001,0.0000001 -heatpump,R1,PJ/y,0,0,0,0,0,0,0,0,0 diff --git a/src/muse/data/example/trade/technodata/Agents.csv b/src/muse/data/example/trade/Agents.csv similarity index 98% rename from src/muse/data/example/trade/technodata/Agents.csv rename to src/muse/data/example/trade/Agents.csv index 99ceb608..09a10e64 100644 --- a/src/muse/data/example/trade/technodata/Agents.csv +++ b/src/muse/data/example/trade/Agents.csv @@ -1,3 +1,3 @@ -AgentShare,Name,RegionName,Objective,ObjData,Objsort,SearchRule,DecisionMethod,MaturityThreshold,SpendLimit,Type -Agent1,A1,R1,ALCOE,1,TRUE,from_assets->compress->reduce_assets,singleObj,-1,inf,default -Agent1,A1,R2,ALCOE,1,TRUE,from_assets->compress->reduce_assets,singleObj,-1,inf,default +AgentShare,Name,RegionName,Objective,ObjData,Objsort,SearchRule,DecisionMethod,MaturityThreshold,SpendLimit,Type +Agent1,A1,R1,ALCOE,1,TRUE,from_assets->compress->reduce_assets,singleObj,-1,inf,default +Agent1,A1,R2,ALCOE,1,TRUE,from_assets->compress->reduce_assets,singleObj,-1,inf,default diff --git a/src/muse/data/example/trade/input/GlobalCommodities.csv b/src/muse/data/example/trade/GlobalCommodities.csv similarity index 100% rename from src/muse/data/example/trade/input/GlobalCommodities.csv rename to src/muse/data/example/trade/GlobalCommodities.csv diff --git a/src/muse/data/example/trade/input/Projections.csv b/src/muse/data/example/trade/Projections.csv similarity index 100% rename from src/muse/data/example/trade/input/Projections.csv rename to src/muse/data/example/trade/Projections.csv diff --git a/src/muse/data/example/trade/technodata/gas/CommIn.csv b/src/muse/data/example/trade/gas/CommIn.csv similarity index 100% rename from src/muse/data/example/trade/technodata/gas/CommIn.csv rename to src/muse/data/example/trade/gas/CommIn.csv diff --git a/src/muse/data/example/trade/technodata/gas/CommOut.csv b/src/muse/data/example/trade/gas/CommOut.csv similarity index 100% rename from src/muse/data/example/trade/technodata/gas/CommOut.csv rename to src/muse/data/example/trade/gas/CommOut.csv diff --git a/src/muse/data/example/trade/technodata/gas/ExistingTrade.csv b/src/muse/data/example/trade/gas/ExistingTrade.csv similarity index 100% rename from src/muse/data/example/trade/technodata/gas/ExistingTrade.csv rename to src/muse/data/example/trade/gas/ExistingTrade.csv diff --git a/src/muse/data/example/trade/technodata/gas/Technodata.csv b/src/muse/data/example/trade/gas/Technodata.csv similarity index 98% rename from src/muse/data/example/trade/technodata/gas/Technodata.csv rename to src/muse/data/example/trade/gas/Technodata.csv index fb71f05e..4968c8ea 100644 --- a/src/muse/data/example/trade/technodata/gas/Technodata.csv +++ b/src/muse/data/example/trade/gas/Technodata.csv @@ -1,4 +1,4 @@ -ProcessName,RegionName,Time,var_par,var_exp,TechnicalLife,UtilizationFactor,ScalingSize,efficiency,InterestRate,Type,Fuel,EndUse,Agent1 -Unit,-,Year,MUS$2010/PJ,-,Years,-,PJ,%,-,-,-,-,New -gassupply1,R1,2010,3,1,10,0.9,0.00000189,86,0.1,energy,gas,gas,1 -gassupply1,R2,2010,3,1,10,0.9,0.00000189,86,0.1,energy,gas,gas,1 +ProcessName,RegionName,Time,var_par,var_exp,TechnicalLife,UtilizationFactor,ScalingSize,efficiency,InterestRate,Type,Fuel,EndUse,Agent1 +Unit,-,Year,MUS$2010/PJ,-,Years,-,PJ,%,-,-,-,-,New +gassupply1,R1,2010,3,1,10,0.9,0.00000189,86,0.1,energy,gas,gas,1 +gassupply1,R2,2010,3,1,10,0.9,0.00000189,86,0.1,energy,gas,gas,1 diff --git a/src/muse/data/example/trade/technodata/gas/TradeTechnodata.csv b/src/muse/data/example/trade/gas/TradeTechnodata.csv similarity index 100% rename from src/muse/data/example/trade/technodata/gas/TradeTechnodata.csv rename to src/muse/data/example/trade/gas/TradeTechnodata.csv diff --git a/src/muse/data/example/trade/technodata/power/CommIn.csv b/src/muse/data/example/trade/power/CommIn.csv similarity index 100% rename from src/muse/data/example/trade/technodata/power/CommIn.csv rename to src/muse/data/example/trade/power/CommIn.csv diff --git a/src/muse/data/example/trade/technodata/power/CommOut.csv b/src/muse/data/example/trade/power/CommOut.csv similarity index 100% rename from src/muse/data/example/trade/technodata/power/CommOut.csv rename to src/muse/data/example/trade/power/CommOut.csv diff --git a/src/muse/data/example/trade/technodata/power/ExistingTrade.csv b/src/muse/data/example/trade/power/ExistingTrade.csv similarity index 100% rename from src/muse/data/example/trade/technodata/power/ExistingTrade.csv rename to src/muse/data/example/trade/power/ExistingTrade.csv diff --git a/src/muse/data/example/trade/technodata/power/Technodata.csv b/src/muse/data/example/trade/power/Technodata.csv similarity index 98% rename from src/muse/data/example/trade/technodata/power/Technodata.csv rename to src/muse/data/example/trade/power/Technodata.csv index e587dc93..84e68a57 100644 --- a/src/muse/data/example/trade/technodata/power/Technodata.csv +++ b/src/muse/data/example/trade/power/Technodata.csv @@ -1,6 +1,6 @@ -ProcessName,RegionName,Time,cap_exp,fix_exp,var_par,var_exp,TechnicalLife,UtilizationFactor,ScalingSize,efficiency,InterestRate,Type,Fuel,EndUse,Agent1 -Unit,-,Year,-,-,MUS$2010/PJ,-,Years,-,PJ,%,-,-,-,-,New -gasCCGT,R1,2010,1,1,0,1,35,0.9,0.00000189,86,0.1,energy,gas,electricity,1 -windturbine,R1,2010,1,1,0,1,25,0.4,0.00000189,86,0.1,energy,wind,electricity,1 -gasCCGT,R2,2010,1,1,0,1,35,0.9,0.00000189,86,0.1,energy,gas,electricity,1 -windturbine,R2,2010,1,1,0,1,25,0.4,0.00000189,86,0.1,energy,wind,electricity,1 +ProcessName,RegionName,Time,cap_exp,fix_exp,var_par,var_exp,TechnicalLife,UtilizationFactor,ScalingSize,efficiency,InterestRate,Type,Fuel,EndUse,Agent1 +Unit,-,Year,-,-,MUS$2010/PJ,-,Years,-,PJ,%,-,-,-,-,New +gasCCGT,R1,2010,1,1,0,1,35,0.9,0.00000189,86,0.1,energy,gas,electricity,1 +windturbine,R1,2010,1,1,0,1,25,0.4,0.00000189,86,0.1,energy,wind,electricity,1 +gasCCGT,R2,2010,1,1,0,1,35,0.9,0.00000189,86,0.1,energy,gas,electricity,1 +windturbine,R2,2010,1,1,0,1,25,0.4,0.00000189,86,0.1,energy,wind,electricity,1 diff --git a/src/muse/data/example/trade/technodata/power/TradeTechnodata.csv b/src/muse/data/example/trade/power/TradeTechnodata.csv similarity index 100% rename from src/muse/data/example/trade/technodata/power/TradeTechnodata.csv rename to src/muse/data/example/trade/power/TradeTechnodata.csv diff --git a/src/muse/data/example/trade/technodata/residential/Agents.csv b/src/muse/data/example/trade/residential/Agents.csv similarity index 100% rename from src/muse/data/example/trade/technodata/residential/Agents.csv rename to src/muse/data/example/trade/residential/Agents.csv diff --git a/src/muse/data/example/trade/technodata/residential/CommIn.csv b/src/muse/data/example/trade/residential/CommIn.csv similarity index 100% rename from src/muse/data/example/trade/technodata/residential/CommIn.csv rename to src/muse/data/example/trade/residential/CommIn.csv diff --git a/src/muse/data/example/trade/technodata/residential/CommOut.csv b/src/muse/data/example/trade/residential/CommOut.csv similarity index 100% rename from src/muse/data/example/trade/technodata/residential/CommOut.csv rename to src/muse/data/example/trade/residential/CommOut.csv diff --git a/src/muse/data/example/trade/technodata/residential/ExistingCapacity.csv b/src/muse/data/example/trade/residential/ExistingCapacity.csv similarity index 100% rename from src/muse/data/example/trade/technodata/residential/ExistingCapacity.csv rename to src/muse/data/example/trade/residential/ExistingCapacity.csv diff --git a/src/muse/data/example/trade/technodata/residential/Technodata.csv b/src/muse/data/example/trade/residential/Technodata.csv similarity index 100% rename from src/muse/data/example/trade/technodata/residential/Technodata.csv rename to src/muse/data/example/trade/residential/Technodata.csv diff --git a/src/muse/data/example/trade/technodata/preset/Residential2020Consumption.csv b/src/muse/data/example/trade/residential_presets/Residential2020Consumption.csv similarity index 100% rename from src/muse/data/example/trade/technodata/preset/Residential2020Consumption.csv rename to src/muse/data/example/trade/residential_presets/Residential2020Consumption.csv diff --git a/src/muse/data/example/trade/technodata/preset/Residential2030Consumption.csv b/src/muse/data/example/trade/residential_presets/Residential2030Consumption.csv similarity index 100% rename from src/muse/data/example/trade/technodata/preset/Residential2030Consumption.csv rename to src/muse/data/example/trade/residential_presets/Residential2030Consumption.csv diff --git a/src/muse/data/example/trade/technodata/preset/Residential2050Consumption.csv b/src/muse/data/example/trade/residential_presets/Residential2050Consumption.csv similarity index 100% rename from src/muse/data/example/trade/technodata/preset/Residential2050Consumption.csv rename to src/muse/data/example/trade/residential_presets/Residential2050Consumption.csv diff --git a/src/muse/data/example/trade/settings.toml b/src/muse/data/example/trade/settings.toml index 7d58fd68..904ec866 100644 --- a/src/muse/data/example/trade/settings.toml +++ b/src/muse/data/example/trade/settings.toml @@ -1,37 +1,36 @@ -# Global settings - most REQUIRED +# MUSE settings file +# Global settings time_framework = [2020, 2025, 2030, 2035] regions = ["R1", "R2"] interpolation_mode = 'linear' log_level = 'info' -excluded_commodities = ["wind"] -# Convergence parameters equilibrium_variable = 'demand' maximum_iterations = 100 tolerance = 0.1 tolerance_unmet_demand = -0.1 +excluded_commodities = ["wind"] -[[outputs]] -quantity = "capacity" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[[outputs]] -quantity = "prices" -sink = "aggregate" -filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" - -[carbon_budget_control] -budget = [] +# Timeslices +[timeslices] +level_names = ["month", "day", "hour"] +all-year.all-week.night = 1460 +all-year.all-week.morning = 1460 +all-year.all-week.afternoon = 1460 +all-year.all-week.early-peak = 1460 +all-year.all-week.late-peak = 1460 +all-year.all-week.evening = 1460 +# Global inputs [global_input_files] -projections = '{path}/input/Projections.csv' -global_commodities = '{path}/input/GlobalCommodities.csv' +projections = '{path}/Projections.csv' +global_commodities = '{path}/GlobalCommodities.csv' -[sectors.presets] +# Sectors +[sectors.residential_presets] type = 'presets' priority = 0 -consumption_path = "{path}/technodata/preset/*Consumption.csv" +consumption_path = "{path}/residential_presets/*Consumption.csv" [sectors.residential] type = 'default' @@ -39,23 +38,13 @@ priority = 1 dispatch_production = 'share' [sectors.residential.technodata] -technodata = '{path}/technodata/residential/Technodata.csv' -commodities_in = '{path}/technodata/residential/CommIn.csv' -commodities_out = '{path}/technodata/residential/CommOut.csv' +technodata = '{path}/residential/Technodata.csv' +commodities_in = '{path}/residential/CommIn.csv' +commodities_out = '{path}/residential/CommOut.csv' [sectors.residential.subsectors.retro_and_new] -agents = '{path}/technodata/residential/Agents.csv' -existing_capacity = '{path}/technodata/residential/ExistingCapacity.csv' -lpsolver = "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] +agents = '{path}/residential/Agents.csv' +existing_capacity = '{path}/residential/ExistingCapacity.csv' demand_share = "new_and_retro" asset_threshold = 1e-4 @@ -66,27 +55,16 @@ interaction = 'transfer' [sectors.power] type = 'default' priority = 2 -dispatch_production = 'share' [sectors.power.technodata] -technodata = '{path}/technodata/power/Technodata.csv' -trade = '{path}/technodata/power/TradeTechnodata.csv' -commodities_in = '{path}/technodata/power/CommIn.csv' -commodities_out = '{path}/technodata/power/CommOut.csv' +technodata = '{path}/power/Technodata.csv' +trade = '{path}/power/TradeTechnodata.csv' +commodities_in = '{path}/power/CommIn.csv' +commodities_out = '{path}/power/CommOut.csv' [sectors.power.subsectors.trade] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/power/ExistingTrade.csv' -lpsolver = "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] +agents = '{path}/Agents.csv' +existing_capacity = '{path}/power/ExistingTrade.csv' demand_share = "unmet_forecasted_demand" asset_threshold = 1e-4 @@ -96,32 +74,24 @@ priority = 3 dispatch_production = 'share' [sectors.gas.technodata] -technodata = '{path}/technodata/gas/Technodata.csv' -trade = '{path}/technodata/gas/TradeTechnodata.csv' -commodities_in = '{path}/technodata/gas/CommIn.csv' -commodities_out = '{path}/technodata/gas/CommOut.csv' +technodata = '{path}/gas/Technodata.csv' +trade = '{path}/gas/TradeTechnodata.csv' +commodities_in = '{path}/gas/CommIn.csv' +commodities_out = '{path}/gas/CommOut.csv' [sectors.gas.subsectors.trade] -agents = '{path}/technodata/Agents.csv' -existing_capacity = '{path}/technodata/gas/ExistingTrade.csv' -lpsolver = "scipy" -constraints = [ - # Optional, defaults to the constraints below - "max_production", - "max_capacity_expansion", - "demand", - "search_space", - "minimum_service", - "demand_limiting_capacity" -] +agents = '{path}/Agents.csv' +existing_capacity = '{path}/gas/ExistingTrade.csv' demand_share = "unmet_forecasted_demand" asset_threshold = 1e-4 -[timeslices] -level_names = ["month", "day", "hour"] -all-year.all-week.night = 1460 -all-year.all-week.morning = 1460 -all-year.all-week.afternoon = 1460 -all-year.all-week.early-peak = 1460 -all-year.all-week.late-peak = 1460 -all-year.all-week.evening = 1460 +# Global outputs +[[outputs]] +quantity = "capacity" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" + +[[outputs]] +quantity = "prices" +sink = "aggregate" +filename = "{cwd}/{default_output_dir}/MCA{Quantity}.csv" diff --git a/src/muse/examples.py b/src/muse/examples.py index 5b141482..e2598c6f 100644 --- a/src/muse/examples.py +++ b/src/muse/examples.py @@ -29,6 +29,7 @@ from logging import getLogger from pathlib import Path +from shutil import copyfile, copytree from typing import cast import numpy as np @@ -295,31 +296,17 @@ def matching_market(sector: str, model: str = "default") -> xr.Dataset: def _copy_default(path: Path): - from shutil import copyfile, copytree - - copytree(example_data_dir() / "default" / "input", path / "input") - copytree(example_data_dir() / "default" / "technodata", path / "technodata") - copyfile(example_data_dir() / "default" / "settings.toml", path / "settings.toml") + copytree(example_data_dir() / "default", path) def _copy_default_retro(path: Path): - from shutil import copyfile, copytree - - copytree(example_data_dir() / "default_retro" / "input", path / "input") - copytree(example_data_dir() / "default_retro" / "technodata", path / "technodata") - copyfile( - example_data_dir() / "default_retro" / "settings.toml", path / "settings.toml" - ) + copytree(example_data_dir() / "default_retro", path) def _copy_default_adhoc(path: Path): - from shutil import copyfile, copytree - from muse.wizard import modify_toml - copytree(example_data_dir() / "default" / "input", path / "input") - copytree(example_data_dir() / "default" / "technodata", path / "technodata") - copyfile(example_data_dir() / "default" / "settings.toml", path / "settings.toml") + copytree(example_data_dir() / "default", path) def update_lpsolver(data): for sector in data.get("sectors", {}): @@ -331,77 +318,48 @@ def update_lpsolver(data): def _copy_default_timeslice(path: Path): - from shutil import copyfile, copytree - - copytree(example_data_dir() / "default_timeslice" / "input", path / "input") - copytree( - example_data_dir() / "default_timeslice" / "technodata", path / "technodata" - ) - copyfile( - example_data_dir() / "default_timeslice" / "settings.toml", - path / "settings.toml", - ) + copytree(example_data_dir() / "default_timeslice", path) def _copy_multiple_agents(path: Path): - from shutil import copyfile, copytree - from toml import dump, load - copytree(example_data_dir() / "default" / "input", path / "input") - copytree(example_data_dir() / "default" / "technodata", path / "technodata") - toml = load(example_data_dir() / "default" / "settings.toml") - toml["sectors"]["residential"]["subsectors"]["all"]["agents"] = ( - "{path}/technodata/residential/Agents.csv" - ) - with (path / "settings.toml").open("w") as fileobj: - dump(toml, fileobj) + # Start with default model + copytree(example_data_dir() / "default", path) + + # Copy new agents file and modified technodata file copyfile( example_data_dir() / "multiple_agents" / "Agents.csv", - path / "technodata" / "residential" / "Agents.csv", + path / "residential" / "Agents.csv", ) copyfile( example_data_dir() / "multiple_agents" / "residential" / "Technodata.csv", - path / "technodata" / "residential" / "Technodata.csv", + path / "residential" / "Technodata.csv", ) + # Link to new agents file in settings.toml + toml = load(path / "settings.toml") + toml["sectors"]["residential"]["subsectors"]["all"]["agents"] = ( + "{path}/residential/Agents.csv" + ) + with (path / "settings.toml").open("w") as fileobj: + dump(toml, fileobj) -def _copy_medium(path: Path): - from shutil import copyfile, copytree - copytree(example_data_dir() / "medium" / "input", path / "input") - copytree(example_data_dir() / "medium" / "technodata", path / "technodata") - copytree( - example_data_dir() / "default" / "technodata" / "power", - path / "technodata" / "power", - ) - copytree( - example_data_dir() / "default" / "technodata" / "gas", - path / "technodata" / "gas", - ) - copyfile( - example_data_dir() / "default" / "technodata" / "Agents.csv", - path / "technodata" / "Agents.csv", - ) +def _copy_medium(path: Path): + copytree(example_data_dir() / "medium", path) + copytree(example_data_dir() / "default" / "power", path / "power") + copytree(example_data_dir() / "default" / "gas", path / "gas") + copyfile(example_data_dir() / "default" / "Agents.csv", path / "Agents.csv") copyfile(example_data_dir() / "default" / "settings.toml", path / "settings.toml") def _copy_minimum_service(path: Path): - from shutil import copyfile, copytree - - copytree(example_data_dir() / "minimum_service" / "input", path / "input") - copytree(example_data_dir() / "minimum_service" / "technodata", path / "technodata") - copyfile( - example_data_dir() / "minimum_service" / "settings.toml", path / "settings.toml" - ) + copytree(example_data_dir() / "minimum_service", path) def _copy_trade(path: Path): - from shutil import copyfile, copytree - - copytree(example_data_dir() / "trade" / "input", path / "input") - copytree(example_data_dir() / "trade" / "technodata", path / "technodata") - copyfile(example_data_dir() / "trade" / "settings.toml", path / "settings.toml") + copytree(example_data_dir() / "trade", path) def _trade_search_space(sector: str, model: str = "default") -> xr.DataArray: diff --git a/src/muse/wizard.py b/src/muse/wizard.py index 28b55513..18c32ddb 100644 --- a/src/muse/wizard.py +++ b/src/muse/wizard.py @@ -1,6 +1,14 @@ +"""Functions to modify MUSE input files. + +For example, adding new commodities or agents to a model. + +These functions are designed specifically to work with models following the conventional +file structure and naming scheme of the example models provided with MUSE, and will +not necessarily work with models that deviate from this structure. +""" + from __future__ import annotations -import os from itertools import chain from pathlib import Path from typing import Callable @@ -32,11 +40,7 @@ def get_sectors(model_path: Path) -> list[str]: Returns: List of sector names """ - return [ - s.name - for s in (model_path / "technodata").iterdir() - if (s / "Technodata.csv").is_file() - ] + return [s.name for s in model_path.iterdir() if (s / "Technodata.csv").is_file()] def add_new_commodity( @@ -51,7 +55,7 @@ def add_new_commodity( copy_from: Name of the commodity to copy from. """ # Add commodity to global commodities file - global_commodities_file = model_path / "input/GlobalCommodities.csv" + global_commodities_file = model_path / "GlobalCommodities.csv" df = pd.read_csv(global_commodities_file) new_rows = df[df["Commodity"] == copy_from.capitalize()].assign( Commodity=commodity_name.capitalize(), CommodityName=commodity_name @@ -63,14 +67,12 @@ def add_new_commodity( files_to_update = ( model_path / file for file in ( - f"technodata/{sector}/CommIn.csv", - f"technodata/{sector}/CommOut.csv", - "input/BaseYearImport.csv", - "input/BaseYearExport.csv", - "input/Projections.csv", + f"{sector}/CommIn.csv", + f"{sector}/CommOut.csv", + "Projections.csv", ) ) - preset_files = (model_path / "technodata/preset").glob("*") + preset_files = model_path.glob("*preset*/*") for file in chain(files_to_update, preset_files): df = pd.read_csv(file) df[commodity_name] = df[copy_from] @@ -91,10 +93,10 @@ def add_new_process( files_to_update = ( model_path / file for file in ( - f"technodata/{sector}/CommIn.csv", - f"technodata/{sector}/CommOut.csv", - f"technodata/{sector}/ExistingCapacity.csv", - f"technodata/{sector}/Technodata.csv", + f"{sector}/CommIn.csv", + f"{sector}/CommOut.csv", + f"{sector}/ExistingCapacity.csv", + f"{sector}/Technodata.csv", ) ) @@ -118,7 +120,7 @@ def add_price_data_for_new_year( copy_from: Year to copy the price data from. """ files_to_update = ( - model_path / f"technodata/{sector}/{file}" + model_path / f"{sector}/{file}" for file in ["Technodata.csv", "CommIn.csv", "CommOut.csv"] ) @@ -151,7 +153,7 @@ def add_agent( agentshare_retrofit: Name of the 'retrofit' agent share for new agent. If None, the new agent will not have a 'retrofit' share. """ - agents_file = model_path / "technodata/Agents.csv" + agents_file = model_path / "Agents.csv" agents_df = pd.read_csv(agents_file) # Create mapping between share names @@ -180,7 +182,7 @@ def add_agent( # Update technodata files for each sector for sector in get_sectors(model_path): - technodata_file = model_path / f"technodata/{sector}/Technodata.csv" + technodata_file = model_path / f"{sector}/Technodata.csv" technodata_df = pd.read_csv(technodata_file) for share_type in ["New", "Retrofit"]: if ( @@ -208,7 +210,7 @@ def add_region(model_path: Path, region_name: str, copy_from: str) -> None: # Modify csv files sector_files = ( - model_path / "technodata" / sector / file + model_path / sector / file for sector in get_sectors(model_path) for file in ( "Technodata.csv", @@ -217,17 +219,12 @@ def add_region(model_path: Path, region_name: str, copy_from: str) -> None: "ExistingCapacity.csv", ) ) - preset_files = ( - model_path / "technodata" / "preset" / file - for file in os.listdir(model_path / "technodata" / "preset") - ) + preset_files = model_path.glob("*preset*/*") global_files = ( model_path / file for file in ( - "technodata/Agents.csv", - "input/BaseYearImport.csv", - "input/BaseYearExport.csv", - "input/Projections.csv", + "Agents.csv", + "Projections.csv", ) ) for file_path in chain(sector_files, preset_files, global_files): @@ -255,9 +252,8 @@ def add_timeslice(model_path: Path, timeslice_name: str, copy_from: str) -> None settings_file.write_text(dumps(settings)) # Loop through all preset files - preset_dir = model_path / "technodata" / "preset" - for file_name in os.listdir(preset_dir): - file_path = preset_dir / file_name + preset_files = model_path.glob("*preset*/*") + for file_path in preset_files: df = pd.read_csv(file_path) new_rows = df[df["Timeslice"] == copy_from_number].copy() new_rows["Timeslice"] = len(timeslices) diff --git a/tests/test_agents.py b/tests/test_agents.py index 6c6b9689..764068a2 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -203,9 +203,7 @@ def test_initial_assets(tmp_path): copy_model("trade", tmp_path / "trade") def path(x, y): - return ( - tmp_path / x / "model" / "technodata" / "gas" / f"Existing{y.title()}.csv" - ) + return tmp_path / x / "model" / "gas" / f"Existing{y.title()}.csv" assets = read_initial_assets(path("default", "capacity")) assert set(assets.dims) == {"year", "region", "asset"} diff --git a/tests/test_minimum_service.py b/tests/test_minimum_service.py index 383c4b7e..8d68a249 100644 --- a/tests/test_minimum_service.py +++ b/tests/test_minimum_service.py @@ -11,7 +11,7 @@ def modify_minimum_service_factors( import pandas as pd technodata_timeslices = pd.read_csv( - model_path / "technodata" / sector / "TechnodataTimeslices.csv" + model_path / sector / "TechnodataTimeslices.csv" ) for process, minimum in zip(processes, minimum_service_factors): @@ -51,14 +51,14 @@ def test_minimum_service_factor(check_mock, tmpdir, minimum_service_factors): ) technodata_timeslices.to_csv( - model_path / "technodata" / sector / "TechnodataTimeslices.csv", index=False + model_path / sector / "TechnodataTimeslices.csv", index=False ) with tmpdir.as_cwd(): MCA.factory(model_path / "settings.toml").run() check_mock.assert_called() - techno_out = pd.read_csv(model_path / "technodata" / sector / "CommOut.csv") + techno_out = pd.read_csv(model_path / sector / "CommOut.csv") capacity = pd.read_csv(tmpdir / "Results/MCACapacity.csv") capacity_summed = capacity.groupby(["year", "technology"]).sum().reset_index() supply = pd.read_csv(tmpdir / "Results/MCAMetric_Supply.csv") diff --git a/tests/test_readers.py b/tests/test_readers.py index ec00d172..7eee3cd6 100644 --- a/tests/test_readers.py +++ b/tests/test_readers.py @@ -348,7 +348,7 @@ def test_read_existing_trade(tmp_path): from muse.readers.csv import read_trade copy_model("trade", tmp_path) - path = tmp_path / "model" / "technodata" / "gas" / "ExistingTrade.csv" + path = tmp_path / "model" / "gas" / "ExistingTrade.csv" data = read_trade(path, skiprows=[1]) assert isinstance(data, xr.DataArray) @@ -364,7 +364,7 @@ def test_read_trade_technodata(tmp_path): from muse.readers.csv import read_trade copy_model("trade", tmp_path) - path = tmp_path / "model" / "technodata" / "gas" / "TradeTechnodata.csv" + path = tmp_path / "model" / "gas" / "TradeTechnodata.csv" data = read_trade(path, drop="Unit") assert isinstance(data, xr.Dataset) @@ -396,7 +396,7 @@ def default_model(tmp_path): def test_read_technodictionary(default_model): from muse.readers.csv import read_technodictionary - path = default_model / "technodata" / "residential" / "Technodata.csv" + path = default_model / "residential" / "Technodata.csv" data = read_technodictionary(path) assert isinstance(data, xr.Dataset) assert set(data.dims) == {"technology", "region"} @@ -441,7 +441,7 @@ def test_read_technodata_timeslices(tmp_path): settings_path = tmp_path / "model" / "settings.toml" settings = toml.load(settings_path) setup_module(settings) # configure global timeslicing scheme - data_path = tmp_path / "model" / "technodata" / "power" / "TechnodataTimeslices.csv" + data_path = tmp_path / "model" / "power" / "TechnodataTimeslices.csv" data = read_technodata_timeslices(data_path) assert isinstance(data, xr.Dataset) @@ -475,7 +475,7 @@ def test_read_technodata_timeslices(tmp_path): def test_read_io_technodata(default_model): from muse.readers.csv import read_io_technodata - path = default_model / "technodata" / "residential" / "CommOut.csv" + path = default_model / "residential" / "CommOut.csv" data = read_io_technodata(path) assert isinstance(data, xr.Dataset) @@ -502,7 +502,7 @@ def test_read_io_technodata(default_model): def test_read_initial_assets(default_model): from muse.readers.csv import read_initial_assets - path = default_model / "technodata" / "residential" / "ExistingCapacity.csv" + path = default_model / "residential" / "ExistingCapacity.csv" data = read_initial_assets(path) assert isinstance(data, xr.DataArray) @@ -518,7 +518,7 @@ def test_read_initial_assets(default_model): def test_global_commodities(default_model): from muse.readers.csv import read_global_commodities - path = default_model / "input" / "GlobalCommodities.csv" + path = default_model / "GlobalCommodities.csv" data = read_global_commodities(path) assert isinstance(data, xr.Dataset) @@ -544,7 +544,7 @@ def test_global_commodities(default_model): def test_read_csv_agent_parameters(default_model): from muse.readers.csv import read_csv_agent_parameters - path = default_model / "technodata" / "Agents.csv" + path = default_model / "Agents.csv" data = read_csv_agent_parameters(path) assert data == [ @@ -566,7 +566,7 @@ def test_read_csv_agent_parameters(default_model): def test_read_initial_market(default_model): from muse.readers.csv import read_initial_market - path = default_model / "input" / "Projections.csv" + path = default_model / "Projections.csv" data = read_initial_market(path) assert isinstance(data, xr.Dataset) @@ -614,7 +614,7 @@ def test_read_initial_market(default_model): def test_read_attribute_table(default_model): from muse.readers.csv import read_attribute_table - path = default_model / "input" / "Projections.csv" + path = default_model / "Projections.csv" data = read_attribute_table(path) assert isinstance(data, xr.DataArray) @@ -639,7 +639,7 @@ def test_read_attribute_table(default_model): def test_read_presets(default_model): from muse.readers.csv import read_presets - path = default_model / "technodata" / "preset" / "*Consumption.csv" + path = default_model / "residential_presets" / "*Consumption.csv" data = read_presets(str(path)) assert isinstance(data, xr.DataArray) diff --git a/tests/test_subsector.py b/tests/test_subsector.py index f0162b8a..23406139 100644 --- a/tests/test_subsector.py +++ b/tests/test_subsector.py @@ -1,7 +1,5 @@ -from unittest.mock import MagicMock, patch - import xarray as xr -from pytest import fixture, raises +from pytest import fixture @fixture @@ -68,7 +66,7 @@ def test_subsector_noninvesting_aggregation(market, model, technologies, tmp_pat from muse.sectors.subsector import Subsector, aggregate_enduses examples.copy_model(model, tmp_path) - path = tmp_path / "model" / "technodata" / "Agents.csv" + path = tmp_path / "model" / "Agents.csv" params = readers.read_csv_agent_parameters(path) capa = readers.read_initial_assets( path.with_name("residential") / "ExistingCapacity.csv" @@ -121,41 +119,3 @@ def test_factory_smoke_test(model, technologies, tmp_path): assert isinstance(subsector, Subsector) assert len(subsector.agents) == 1 - - -def test_factory_constraints_passed_to_agents(model, technologies, tmp_path): - from muse import examples - from muse.readers.toml import read_settings - from muse.sectors.subsector import Subsector - - examples.copy_model(model, tmp_path) - settings = read_settings(tmp_path / "model" / "settings.toml") - - # The constraints in the settings are not none - assert len(settings.sectors.residential.subsectors.all.constraints) > 0 - - class BreakException(Exception): - pass - - _withness = MagicMock() - - def agent_factory(*args, **kwargs): - _withness(*args, **kwargs) - raise BreakException() - - # We asses they are indeed passed to the agents factory - with patch("muse.agents.agents_factory", new=agent_factory): - with raises(BreakException): - Subsector.factory(settings.sectors.residential.subsectors.all, technologies) - assert ( - _withness.call_args[1]["constraints"] - == settings.sectors.residential.subsectors.all.constraints - ) - - # But if there are no constraints, we pass an empty tuple - settings.sectors.residential.subsectors.all.constraints.clear() - _withness.reset_mock() - with patch("muse.agents.agents_factory", new=agent_factory): - with raises(BreakException): - Subsector.factory(settings.sectors.residential.subsectors.all, technologies) - assert tuple(_withness.call_args[1]["constraints"]) == () diff --git a/tests/test_timeslice_output.py b/tests/test_timeslice_output.py index b9b2a2fa..6212a81e 100644 --- a/tests/test_timeslice_output.py +++ b/tests/test_timeslice_output.py @@ -5,7 +5,7 @@ def modify_technodata_timeslices(model_path, sector, process_name, utilization_f import pandas as pd technodata_timeslices = pd.read_csv( - model_path / "technodata" / sector / "TechnodataTimeslices.csv" + model_path / sector / "TechnodataTimeslices.csv" ) technodata_timeslices.loc[ @@ -43,7 +43,7 @@ def test_fullsim_timeslices(tmpdir, utilization_factors, process_name): ) technodata_timeslices.to_csv( - model_path / "technodata" / sector / "TechnodataTimeslices.csv", index=False + model_path / sector / "TechnodataTimeslices.csv", index=False ) with tmpdir.as_cwd(): @@ -103,7 +103,7 @@ def test_zero_utilization_factor_supply_timeslice( ) technodata_timeslices.to_csv( - model_path / "technodata" / sector / "TechnodataTimeslices.csv", index=False + model_path / sector / "TechnodataTimeslices.csv", index=False ) with tmpdir.as_cwd(): @@ -149,7 +149,7 @@ def test_all_zero_fatal_error(tmpdir, utilization_factors, process_name): ) technodata_timeslices.to_csv( - model_path / "technodata" / sector / "TechnodataTimeslices.csv", index=False + model_path / sector / "TechnodataTimeslices.csv", index=False ) with tmpdir.as_cwd(), raises(ValueError): diff --git a/tests/test_wizard.py b/tests/test_wizard.py index 47f1f092..0f35125b 100644 --- a/tests/test_wizard.py +++ b/tests/test_wizard.py @@ -63,15 +63,15 @@ def test_get_sectors(tmp_path): model_path.mkdir() # Create some sector folders with Technodata.csv files - sector1 = model_path / "technodata" / "sector1" + sector1 = model_path / "sector1" sector1.mkdir(parents=True) (sector1 / "Technodata.csv").touch() - sector2 = model_path / "technodata" / "sector2" + sector2 = model_path / "sector2" sector2.mkdir(parents=True) (sector2 / "Technodata.csv").touch() - sector3 = model_path / "technodata" / "sector3" + sector3 = model_path / "sector3" sector3.mkdir(parents=True) # Call the get_sectors function @@ -86,7 +86,7 @@ def test_add_new_commodity(model_path): add_new_commodity(model_path, "new_commodity", "power", "wind") # Check if the new commodity is added to the global commodities file - global_commodities_file = model_path / "input/GlobalCommodities.csv" + global_commodities_file = model_path / "GlobalCommodities.csv" df = pd.read_csv(global_commodities_file) assert "new_commodity" in df["CommodityName"].values @@ -94,13 +94,11 @@ def test_add_new_commodity(model_path): files_to_check = [ model_path / file for file in [ - "technodata/power/CommIn.csv", - "technodata/power/CommOut.csv", - "input/BaseYearImport.csv", - "input/BaseYearExport.csv", - "input/Projections.csv", + "power/CommIn.csv", + "power/CommOut.csv", + "Projections.csv", ] - ] + list((model_path / "technodata/preset").glob("*")) + ] + list((model_path / "residential_presets").glob("*")) for file in files_to_check: df = pd.read_csv(model_path / file) assert "new_commodity" in df.columns @@ -112,10 +110,10 @@ def test_add_new_process(model_path): # Check if the new process is added to the files files_to_check = [ - "technodata/power/CommIn.csv", - "technodata/power/CommOut.csv", - "technodata/power/ExistingCapacity.csv", - "technodata/power/Technodata.csv", + "power/CommIn.csv", + "power/CommOut.csv", + "power/ExistingCapacity.csv", + "power/Technodata.csv", ] for file in files_to_check: df = pd.read_csv(model_path / file) @@ -128,9 +126,9 @@ def test_add_price_data_for_new_year(model_path): # Check if the new price data is added to the files files_to_check = [ - "technodata/power/Technodata.csv", - "technodata/power/CommIn.csv", - "technodata/power/CommOut.csv", + "power/Technodata.csv", + "power/CommIn.csv", + "power/CommOut.csv", ] for file in files_to_check: df = pd.read_csv(model_path / file) @@ -142,14 +140,14 @@ def test_add_agent(model_path_retro): add_agent(model_path_retro, "A2", "A1", "Agent3", "Agent4") # Check if the new agent is added to the Agents.csv file - df = pd.read_csv(model_path_retro / "technodata/Agents.csv") + df = pd.read_csv(model_path_retro / "Agents.csv") assert "A2" in df["Name"].values assert "Agent3" in df["AgentShare"].values assert "Agent4" in df["AgentShare"].values # Check if the retrofit agent is added to the Technodata.csv files - sector1_file = model_path_retro / "technodata/power/Technodata.csv" - sector2_file = model_path_retro / "technodata/gas/Technodata.csv" + sector1_file = model_path_retro / "power/Technodata.csv" + sector2_file = model_path_retro / "gas/Technodata.csv" df_sector1 = pd.read_csv(sector1_file) df_sector2 = pd.read_csv(sector2_file) assert "Agent4" in df_sector1.columns @@ -167,7 +165,7 @@ def test_add_region(model_path): # Check if the new region is added to the technodata files sector_files = [ - model_path / "technodata" / sector / file + model_path / sector / file for sector in get_sectors(model_path) for file in [ "Technodata.csv", @@ -193,10 +191,10 @@ def test_add_timeslice(model_path): # Check if the new timeslice is added to the preset files df_preset1 = pd.read_csv( - model_path / "technodata/preset/Residential2020Consumption.csv" + model_path / "residential_presets/Residential2020Consumption.csv" ) df_preset2 = pd.read_csv( - model_path / "technodata/preset/Residential2050Consumption.csv" + model_path / "residential_presets/Residential2050Consumption.csv" ) assert len(df_preset1["Timeslice"].unique()) == n_timeslices assert len(df_preset2["Timeslice"].unique()) == n_timeslices