Skip to content
Open
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
5e8d03c
implementing existing ammonia plants
toniseibold Jun 25, 2025
243ef47
refining existing Haber-Bosch plants + Documentation
toniseibold Jun 27, 2025
643fcc9
endogenizing steel and cement production and add existing industry ca…
toniseibold Oct 20, 2025
ef8e50f
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Dec 1, 2025
5af80f0
cleaning up plotting colors
toniseibold Dec 1, 2025
018cf57
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Dec 1, 2025
870ca70
own rule for industry plant data preparation, restructuring of the co…
toniseibold Dec 4, 2025
321cb4b
adding data files
toniseibold Dec 5, 2025
91977cc
Merge branch 'master' into industry_plants. Updated to schema.
bobbyxng Jan 15, 2026
221cbcc
Updated config.default from schema and schema.json.
bobbyxng Jan 15, 2026
c921adb
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jan 15, 2026
b75e18c
Merge branch 'master' into industry_plants
bobbyxng Jan 15, 2026
7f4cb06
Added PR test config.
bobbyxng Jan 15, 2026
74e5fdc
Removed configtables, not used anymore in master.
bobbyxng Jan 15, 2026
08a0053
Merge branch 'master' into industry_plants
bobbyxng Jan 16, 2026
f760f70
Readded grouping_years_industry key and added respective schema entry.
bobbyxng Jan 16, 2026
01a9fb7
Added temporary dev technology-data which includes grey methanol. TOD…
bobbyxng Jan 16, 2026
63f8d7f
Updated dev config.
bobbyxng Jan 16, 2026
fcfb34f
Updated dev config.
bobbyxng Jan 16, 2026
eb93737
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jan 16, 2026
2aabfc1
Removed stray config from other PR.
bobbyxng Mar 11, 2026
2062ff0
Updated temporary PR config.
bobbyxng Mar 11, 2026
806b54a
Merge remote-tracking branch 'origin/master' into industry_plants
toniseibold Mar 13, 2026
47a7fd3
[pypsa-bot] run `sync-locks` & `generate-config`
pypsa[bot] Mar 13, 2026
9fe0a03
Requested changes and improvements
toniseibold Mar 16, 2026
b20a39a
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 16, 2026
e9e4553
[pypsa-bot] run `sync-locks` & `generate-config`
pypsa[bot] Mar 16, 2026
76b329d
minor bugfixes
toniseibold Mar 16, 2026
7706973
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 16, 2026
f8219bb
flatten keys
toniseibold Mar 16, 2026
093abd6
add unique plotting colors for all new carriers
toniseibold Mar 16, 2026
39ec842
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 16, 2026
f0b4efa
adding existing global cement tracker data
toniseibold Mar 25, 2026
81aa0aa
Merge branch 'master' into industry_plants
toniseibold Mar 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions config/config.default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -973,6 +973,14 @@ sector:
methanol: 121
gas: 122
oil: 125
endogenous_sectors:
Comment thread
toniseibold marked this conversation as resolved.
- steel
- cement
hbi_relocation: false
steel_bof:
pledge: true
pledge_delay: 0
default_phase_out: 2035
Comment thread
toniseibold marked this conversation as resolved.
Outdated

# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#industry
industry:
Expand Down
24 changes: 24 additions & 0 deletions config/config.pr1719.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
%YAML 1.1
---
# yaml-language-server: $schema=./schema.json

run:
name: pr1719

foresight: myopic

scenario:
clusters:
- 39
planning_horizons:
- 2030
- 2040

sector:
Comment thread
toniseibold marked this conversation as resolved.
methanol:
regional_methanol_demand: true
ammonia: regional

clustering:
temporal:
resolution_sector: 365H
16 changes: 16 additions & 0 deletions config/plotting.default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -712,3 +712,19 @@ plotting:
import NH3: '#e2ed74'
import oil: '#93eda2'
import methanol: '#87d0e6'
steel: '#22333B'
steel emission: '#5E503F'
steel emission CC: '#A9927D'
hbi: '#CCDBDC'
DRI: '#8E7C93'
EAF: '#586357'
H2 DRI: '#618ab0'
gas DRI: '#baaf68'
BOF: '#0A0908'
grey methanol: '#7C6C77'
cement: '#c98349'
cement emission: '#119DA4'
cement emission CC: '#0C7489'
cement kiln: '#D90368'
cement finishing: '#820263'
clinker: '#F5FDC6'
113 changes: 113 additions & 0 deletions config/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -4758,6 +4758,49 @@
"type": "object"
}
}
},
"endogenous_sectors": {
"description": "Sectors modelled endogenously.",
"items": {
"enum": [
"steel",
"cement"
],
"type": "string"
},
"type": "array"
},
"hbi_relocation": {
"default": false,
"description": "Allow the relocation of iron ore reduction step.",
"type": "boolean"
},
"steel_bof": {
"description": "Configuration for `sector.steel_bof` settings.",
"properties": {
"pledge": {
"default": true,
"description": "Decommissions coal blast furnaces at their pledged phase out year.",
"type": "boolean"
},
"pledge_delay": {
"default": 0,
"description": "Delays the decommission year by number of years.",
"type": "integer"
},
"default_phase_out": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "integer"
}
],
"default": 2035,
"description": "Decommissions the coal blast furnaces that do not have a pledged phase out year."
}
}
}
}
},
Expand Down Expand Up @@ -7433,6 +7476,33 @@
}
}
},
"_SteelBOFConfig": {
"description": "Configuration for `sector.steel_bof` settings.",
"properties": {
"pledge": {
"default": true,
"description": "Decommissions coal blast furnaces at their pledged phase out year.",
"type": "boolean"
},
"pledge_delay": {
"default": 0,
"description": "Delays the decommission year by number of years.",
"type": "integer"
},
"default_phase_out": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "integer"
}
],
"default": 2035,
"description": "Decommissions the coal blast furnaces that do not have a pledged phase out year."
}
}
},
"_TechnologyMappingConfig": {
"description": "Configuration for `electricity.estimate_renewable_capacities.technology_mapping` settings.",
"properties": {
Expand Down Expand Up @@ -10868,6 +10938,49 @@
"type": "object"
}
}
},
"endogenous_sectors": {
"description": "Sectors modelled endogenously.",
"items": {
"enum": [
"steel",
"cement"
],
"type": "string"
},
"type": "array"
},
"hbi_relocation": {
"default": false,
"description": "Allow the relocation of iron ore reduction step.",
"type": "boolean"
},
"steel_bof": {
"description": "Configuration for `sector.steel_bof` settings.",
"properties": {
"pledge": {
"default": true,
"description": "Decommissions coal blast furnaces at their pledged phase out year.",
"type": "boolean"
},
"pledge_delay": {
"default": 0,
"description": "Delays the decommission year by number of years.",
"type": "integer"
},
"default_phase_out": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "integer"
}
],
"default": 2035,
"description": "Decommissions the coal blast furnaces that do not have a pledged phase out year."
}
}
}
}
},
Expand Down
Binary file added data/1-s2.0-S0196890424010586-mmc2.xlsx
Comment thread
toniseibold marked this conversation as resolved.
Binary file not shown.
Comment thread
toniseibold marked this conversation as resolved.
Binary file not shown.
24 changes: 24 additions & 0 deletions rules/build_sector.smk
Original file line number Diff line number Diff line change
Expand Up @@ -1444,6 +1444,27 @@ def input_heat_source_power(w):
}


rule build_industry_plants:
params:
countries=config_provider("countries"),
input:
regions_onshore=resources("regions_onshore_base_s_{clusters}.geojson"),
ammonia="data/ammonia_plants.csv",
isi_database="data/1-s2.0-S0196890424010586-mmc2.xlsx",
gem_gcct="data/gem/Global-Cement-and-Concrete-Tracker_July-2025.xlsx",
Comment thread
toniseibold marked this conversation as resolved.
Outdated
output:
industry_plants=resources("industry_plants_{clusters}.csv"),
threads: 1
resources:
mem_mb=2000,
log:
logs("build_industry_plants_{clusters}.log"),
benchmark:
benchmarks("build_industry_plants_{clusters}")
script:
"../scripts/build_industry_plants.py"


rule prepare_sector_network:
params:
time_resolution=config_provider("clustering", "temporal", "resolution_sector"),
Expand Down Expand Up @@ -1603,6 +1624,9 @@ rule prepare_sector_network:
if config_provider("sector", "district_heating", "ates", "enable")(w)
else []
),
industry_sector_ratios=resources(
"industry_sector_ratios_{planning_horizons}.csv"
),
output:
resources(
"networks/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}.nc"
Expand Down
3 changes: 3 additions & 0 deletions rules/solve_myopic.smk
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ rule add_existing_baseyear:
costs=config_provider("costs"),
heat_pump_sources=config_provider("sector", "heat_pump_sources"),
energy_totals_year=config_provider("energy", "energy_totals_year"),
MWh_NH3_per_tNH3=config_provider("industry", "MWh_NH3_per_tNH3"),
MWh_MeOH_per_tMeOH=config_provider("industry", "MWh_MeOH_per_tMeOH"),
input:
network=resources(
"networks/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}.nc"
Expand All @@ -25,6 +27,7 @@ rule add_existing_baseyear:
"existing_heating_distribution_base_s_{clusters}_{planning_horizons}.csv"
),
heating_efficiencies=resources("heating_efficiencies.csv"),
industry_plants=resources("industry_plants_{clusters}.csv"),
output:
resources(
"networks/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}_brownfield.nc"
Expand Down
5 changes: 5 additions & 0 deletions rules/solve_perfect.smk
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ rule add_existing_baseyear:
costs=config_provider("costs"),
heat_pump_sources=config_provider("sector", "heat_pump_sources"),
energy_totals_year=config_provider("energy", "energy_totals_year"),
countries=config_provider("countries"),
MWh_NH3_per_tNH3=config_provider("industry", "MWh_NH3_per_tNH3"),
input:
network=resources(
"networks/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}.nc"
Expand All @@ -27,6 +29,9 @@ rule add_existing_baseyear:
),
existing_heating="data/existing_infrastructure/existing_heating_raw.csv",
heating_efficiencies=resources("heating_efficiencies.csv"),
regions_onshore=resources("regions_onshore_base_s_{clusters}.geojson"),
ammonia="data/ammonia_plants.csv",
isi_database="data/1-s2.0-S0196890424010586-mmc2.xlsx",
output:
resources(
"networks/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}_brownfield.nc"
Expand Down
Loading
Loading