From 77af95a6ceffde6134959c71b1c2c1740c3b306e Mon Sep 17 00:00:00 2001 From: toniseibold Date: Thu, 19 Feb 2026 15:28:55 +0100 Subject: [PATCH 1/6] remove 'conservative estimate Mt from config to avoid double counting and make sure optimistic assumptions are >= neutral assumptions --- config/config.default.yaml | 1 - scripts/build_co2_sequestration_potentials.py | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/config/config.default.yaml b/config/config.default.yaml index 739cec2263..f7bfe6a18e 100644 --- a/config/config.default.yaml +++ b/config/config.default.yaml @@ -851,7 +851,6 @@ sector: regional_co2_sequestration_potential: enable: true attribute: - - conservative estimate Mt - conservative estimate GAS Mt - conservative estimate OIL Mt - conservative estimate aquifer Mt diff --git a/scripts/build_co2_sequestration_potentials.py b/scripts/build_co2_sequestration_potentials.py index 62987c400a..30f38f018e 100644 --- a/scripts/build_co2_sequestration_potentials.py +++ b/scripts/build_co2_sequestration_potentials.py @@ -320,4 +320,11 @@ def merge_maps( gdf = merge_maps(traps_map, storage_map) + types = [" OIL", " GAS", " aquifer", ""] + for t in types: + opt_col = f"optimistic estimate{t} Mt" + neu_col = f"neutral estimate{t} Mt" + + gdf[opt_col] = gdf[[opt_col, neu_col]].max(axis=1) + gdf.to_file(snakemake.output[0]) From 191e9a35587c9d5d120e04e51960741d5f417fa8 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 14:35:26 +0000 Subject: [PATCH 2/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- scripts/build_co2_sequestration_potentials.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_co2_sequestration_potentials.py b/scripts/build_co2_sequestration_potentials.py index 30f38f018e..55a794b825 100644 --- a/scripts/build_co2_sequestration_potentials.py +++ b/scripts/build_co2_sequestration_potentials.py @@ -324,7 +324,7 @@ def merge_maps( for t in types: opt_col = f"optimistic estimate{t} Mt" neu_col = f"neutral estimate{t} Mt" - + gdf[opt_col] = gdf[[opt_col, neu_col]].max(axis=1) gdf.to_file(snakemake.output[0]) From debca38a4b02975a5bff2a17b789e4feedcf0360 Mon Sep 17 00:00:00 2001 From: toniseibold Date: Thu, 19 Feb 2026 17:10:48 +0100 Subject: [PATCH 3/6] change schema defaults --- scripts/lib/validation/config/sector.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/lib/validation/config/sector.py b/scripts/lib/validation/config/sector.py index 5801f7fcbe..b6fa5e29cd 100644 --- a/scripts/lib/validation/config/sector.py +++ b/scripts/lib/validation/config/sector.py @@ -706,7 +706,6 @@ class SectorConfig(BaseModel): default_factory=lambda: { "enable": True, "attribute": [ - "conservative estimate Mt", "conservative estimate GAS Mt", "conservative estimate OIL Mt", "conservative estimate aquifer Mt", From c8f1e6da3f76e717912669bb51b3306ee4241942 Mon Sep 17 00:00:00 2001 From: toniseibold Date: Thu, 2 Jul 2026 14:10:02 +0200 Subject: [PATCH 4/6] reverting changes --- scripts/build_co2_sequestration_potentials.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/scripts/build_co2_sequestration_potentials.py b/scripts/build_co2_sequestration_potentials.py index 55a794b825..62987c400a 100644 --- a/scripts/build_co2_sequestration_potentials.py +++ b/scripts/build_co2_sequestration_potentials.py @@ -320,11 +320,4 @@ def merge_maps( gdf = merge_maps(traps_map, storage_map) - types = [" OIL", " GAS", " aquifer", ""] - for t in types: - opt_col = f"optimistic estimate{t} Mt" - neu_col = f"neutral estimate{t} Mt" - - gdf[opt_col] = gdf[[opt_col, neu_col]].max(axis=1) - gdf.to_file(snakemake.output[0]) From 5e486757cfc89d97ea51e47870cdad367a0e6240 Mon Sep 17 00:00:00 2001 From: toniseibold Date: Thu, 2 Jul 2026 14:15:55 +0200 Subject: [PATCH 5/6] document co2 storage potential categories --- scripts/lib/validation/config/sector.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/lib/validation/config/sector.py b/scripts/lib/validation/config/sector.py index b6fa5e29cd..548b9e5447 100644 --- a/scripts/lib/validation/config/sector.py +++ b/scripts/lib/validation/config/sector.py @@ -715,7 +715,7 @@ class SectorConfig(BaseModel): "max_size": 25, "years_of_storage": 25, }, - description="Add option for regionally-resolved geological carbon dioxide sequestration potentials based on `CO2StoP `_.", + description="Add option for regionally-resolved geological carbon dioxide sequestration potentials based on `CO2StoP `_.Note that 'conservative estimate Mt' is not a summary of gas/oil fields and aquifers but contains storage potential for geological reservoirs suitable for CO2 storage excluding those. The more conservative assumption is to only include the three attributes mentioned above.", ) co2_sequestration_potential: dict[int, float] = Field( default_factory=lambda: { From 297f283f383157aec7d849b05d2c3cb5028c4892 Mon Sep 17 00:00:00 2001 From: "pypsa[bot]" <181215446+pypsa[bot]@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:19:15 +0000 Subject: [PATCH 6/6] [pypsa-bot] run `generate-config` - `pixi run generate-config` --- config/schema.default.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/schema.default.json b/config/schema.default.json index 59fa6d544a..5e4b531268 100644 --- a/config/schema.default.json +++ b/config/schema.default.json @@ -4672,8 +4672,8 @@ }, "regional_co2_sequestration_potential": { "additionalProperties": true, - "description": "Add option for regionally-resolved geological carbon dioxide sequestration potentials based on `CO2StoP `_.", - "markdownDescription": "Add option for regionally-resolved geological carbon dioxide sequestration potentials based on [CO2StoP ](https://setis.ec.europa.eu/european-co2-storage-database_en).", + "description": "Add option for regionally-resolved geological carbon dioxide sequestration potentials based on `CO2StoP `_.Note that 'conservative estimate Mt' is not a summary of gas/oil fields and aquifers but contains storage potential for geological reservoirs suitable for CO2 storage excluding those. The more conservative assumption is to only include the three attributes mentioned above.", + "markdownDescription": "Add option for regionally-resolved geological carbon dioxide sequestration potentials based on [CO2StoP ](https://setis.ec.europa.eu/european-co2-storage-database_en).Note that 'conservative estimate Mt' is not a summary of gas/oil fields and aquifers but contains storage potential for geological reservoirs suitable for CO2 storage excluding those. The more conservative assumption is to only include the three attributes mentioned above.", "type": "object" }, "co2_sequestration_potential": { @@ -10960,8 +10960,8 @@ }, "regional_co2_sequestration_potential": { "additionalProperties": true, - "description": "Add option for regionally-resolved geological carbon dioxide sequestration potentials based on `CO2StoP `_.", - "markdownDescription": "Add option for regionally-resolved geological carbon dioxide sequestration potentials based on [CO2StoP ](https://setis.ec.europa.eu/european-co2-storage-database_en).", + "description": "Add option for regionally-resolved geological carbon dioxide sequestration potentials based on `CO2StoP `_.Note that 'conservative estimate Mt' is not a summary of gas/oil fields and aquifers but contains storage potential for geological reservoirs suitable for CO2 storage excluding those. The more conservative assumption is to only include the three attributes mentioned above.", + "markdownDescription": "Add option for regionally-resolved geological carbon dioxide sequestration potentials based on [CO2StoP ](https://setis.ec.europa.eu/european-co2-storage-database_en).Note that 'conservative estimate Mt' is not a summary of gas/oil fields and aquifers but contains storage potential for geological reservoirs suitable for CO2 storage excluding those. The more conservative assumption is to only include the three attributes mentioned above.", "type": "object" }, "co2_sequestration_potential": {