-
Notifications
You must be signed in to change notification settings - Fork 251
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #651 from PyPSA/validation
Validation
- Loading branch information
Showing
46 changed files
with
1,625 additions
and
189 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# SPDX-FileCopyrightText: : 2021-2023 The PyPSA-Eur Authors | ||
# | ||
# SPDX-License-Identifier: CC0-1.0 | ||
|
||
rules | ||
scripts | ||
config | ||
config/test | ||
envs | ||
matplotlibrc | ||
Snakefile |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors | ||
# | ||
# SPDX-License-Identifier: CC0-1.0 | ||
run: | ||
name: "validation" | ||
|
||
scenario: | ||
ll: | ||
- v1.0 | ||
clusters: | ||
- 37 | ||
opts: | ||
- 'Ept' | ||
|
||
snapshots: | ||
start: "2019-01-01" | ||
end: "2020-01-01" | ||
inclusive: 'left' | ||
|
||
enable: | ||
retrieve_cutout: false | ||
|
||
electricity: | ||
co2limit: 1e9 | ||
|
||
extendable_carriers: | ||
Generator: [] | ||
StorageUnit: [] | ||
Store: [] | ||
Link: [] | ||
|
||
powerplants_filter: not (DateOut < 2019) | ||
|
||
conventional_carriers: [nuclear, oil, OCGT, CCGT, coal, lignite, geothermal, biomass] | ||
renewable_carriers: [solar, onwind, offwind-ac, offwind-dc, hydro] | ||
|
||
estimate_renewable_capacities: | ||
year: 2019 | ||
|
||
atlite: | ||
default_cutout: europe-2019-era5 | ||
cutouts: | ||
europe-2019-era5: | ||
module: era5 | ||
x: [-12., 35.] | ||
y: [33., 72] | ||
dx: 0.3 | ||
dy: 0.3 | ||
time: ['2019', '2019'] | ||
|
||
renewable: | ||
onwind: | ||
cutout: europe-2019-era5 | ||
offwind-ac: | ||
cutout: europe-2019-era5 | ||
offwind-dc: | ||
cutout: europe-2019-era5 | ||
solar: | ||
cutout: europe-2019-era5 | ||
hydro: | ||
cutout: europe-2019-era5 | ||
flatten_dispatch: 0.01 | ||
|
||
conventional: | ||
unit_commitment: false | ||
dynamic_fuel_price: true | ||
nuclear: | ||
p_max_pu: "data/nuclear_p_max_pu.csv" | ||
biomass: | ||
p_max_pu: 0.65 | ||
|
||
load: | ||
power_statistics: false | ||
|
||
lines: | ||
s_max_pu: 0.23 | ||
under_construction: 'remove' | ||
|
||
links: | ||
include_tyndp: false | ||
|
||
costs: | ||
year: 2020 | ||
emission_prices: | ||
co2: 25 | ||
|
||
clustering: | ||
simplify_network: | ||
exclude_carriers: [oil, coal, lignite, OCGT, CCGT] | ||
cluster_network: | ||
consider_efficiency_classes: true | ||
|
||
solving: | ||
options: | ||
load_shedding: true | ||
rolling_horizon: false | ||
horizon: 1000 | ||
overlap: 48 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,16 @@ | ||
country,factor | ||
BE,0.65 | ||
BG,0.89 | ||
CZ,0.82 | ||
FI,0.92 | ||
FR,0.70 | ||
DE,0.88 | ||
HU,0.90 | ||
NL,0.86 | ||
RO,0.92 | ||
SK,0.89 | ||
SI,0.94 | ||
ES,0.89 | ||
SE,0.82 | ||
CH,0.86 | ||
GB,0.67 | ||
BE,0.796 | ||
BG,0.894 | ||
CZ,0.827 | ||
FI,0.936 | ||
FR,0.71 | ||
DE,0.871 | ||
HU,0.913 | ||
NL,0.868 | ||
RO,0.909 | ||
SK,0.9 | ||
SI,0.913 | ||
ES,0.897 | ||
SE,0.851 | ||
CH,0.87 | ||
GB,0.656 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
attribute,OCGT,CCGT,coal,lignite,nuclear | ||
ramp_limit_up,1,1,1,1,0.3 | ||
ramp_limit_start_up,0.2,0.45,0.38,0.4,0.5 | ||
ramp_limit_shut_down,0.2,0.45,0.38,0.4,0.5 | ||
p_min_pu,0.2,0.45,0.325,0.4,0.5 | ||
min_up_time,,3,5,7,6 | ||
min_down_time,,2,6,6,10 | ||
start_up_cost,9.6,34.2,35.64,19.14,16.5 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,18 @@ | ||
,Unit,Values,Description | ||
simplify_network,,, | ||
-- to_substations,bool,"{'true','false'}","Aggregates all nodes without power injection (positive or negative, i.e. demand or generation) to electrically closest ones" | ||
-- algorithm,str,"One of {‘kmeans’, ‘hac’, ‘modularity‘}", | ||
-- feature,str,"Str in the format ‘carrier1+carrier2+...+carrierN-X’, where CarrierI can be from {‘solar’, ‘onwind’, ‘offwind’, ‘ror’} and X is one of {‘cap’, ‘time’}.", | ||
-- exclude_carriers,list,"List of Str like [ 'solar', 'onwind'] or empy list []","List of carriers which will not be aggregated. If empty, all carriers will be aggregated." | ||
-- remove stubs,bool,"true/false","Controls whether radial parts of the network should be recursively aggregated. Defaults to true." | ||
-- remove_stubs_across_borders,bool,"true/false","Controls whether radial parts of the network should be recursively aggregated across borders. Defaults to true." | ||
cluster_network,,, | ||
-- algorithm,str,"One of {‘kmeans’, ‘hac’}", | ||
-- feature,str,"Str in the format ‘carrier1+carrier2+...+carrierN-X’, where CarrierI can be from {‘solar’, ‘onwind’, ‘offwind’, ‘ror’} and X is one of {‘cap’, ‘time’}.", | ||
-- exclude_carriers,list,"List of Str like [ 'solar', 'onwind'] or empy list []","List of carriers which will not be aggregated. If empty, all carriers will be aggregated." | ||
aggregation_strategies,,, | ||
-- generators,,, | ||
-- -- {key},str,"{key} can be any of the component of the generator (str). It’s value can be any that can be converted to pandas.Series using getattr(). For example one of {min, max, sum}.","Aggregates the component according to the given strategy. For example, if sum, then all values within each cluster are summed to represent the new generator." | ||
-- buses,,, | ||
-- -- {key},str,"{key} can be any of the component of the bus (str). It’s value can be any that can be converted to pandas.Series using getattr(). For example one of {min, max, sum}.","Aggregates the component according to the given strategy. For example, if sum, then all values within each cluster are summed to represent the new bus." | ||
,Unit,Values,Description | ||
simplify_network,,, | ||
-- to_substations,bool,"{'true','false'}","Aggregates all nodes without power injection (positive or negative, i.e. demand or generation) to electrically closest ones" | ||
-- algorithm,str,"One of {‘kmeans’, ‘hac’, ‘modularity‘}", | ||
-- feature,str,"Str in the format ‘carrier1+carrier2+...+carrierN-X’, where CarrierI can be from {‘solar’, ‘onwind’, ‘offwind’, ‘ror’} and X is one of {‘cap’, ‘time’}.", | ||
-- exclude_carriers,list,"List of Str like [ 'solar', 'onwind'] or empy list []","List of carriers which will not be aggregated. If empty, all carriers will be aggregated." | ||
-- remove stubs,bool,"{'true','false'}",Controls whether radial parts of the network should be recursively aggregated. Defaults to true. | ||
-- remove_stubs_across_borders,bool,"{'true','false'}",Controls whether radial parts of the network should be recursively aggregated across borders. Defaults to true. | ||
cluster_network,,, | ||
-- algorithm,str,"One of {‘kmeans’, ‘hac’}", | ||
-- feature,str,"Str in the format ‘carrier1+carrier2+...+carrierN-X’, where CarrierI can be from {‘solar’, ‘onwind’, ‘offwind’, ‘ror’} and X is one of {‘cap’, ‘time’}.", | ||
-- exclude_carriers,list,"List of Str like [ 'solar', 'onwind'] or empy list []","List of carriers which will not be aggregated. If empty, all carriers will be aggregated." | ||
-- consider_efficiency_classes,bool,"{'true','false'}","Aggregated each carriers into the top 10-quantile (high), the bottom 90-quantile (low), and everything in between (medium)." | ||
aggregation_strategies,,, | ||
-- generators,,, | ||
-- -- {key},str,"{key} can be any of the component of the generator (str). It’s value can be any that can be converted to pandas.Series using getattr(). For example one of {min, max, sum}.","Aggregates the component according to the given strategy. For example, if sum, then all values within each cluster are summed to represent the new generator." | ||
-- buses,,, | ||
-- -- {key},str,"{key} can be any of the component of the bus (str). It’s value can be any that can be converted to pandas.Series using getattr(). For example one of {min, max, sum}.","Aggregates the component according to the given strategy. For example, if sum, then all values within each cluster are summed to represent the new bus." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
,Unit,Values,Description | ||
{name},--,"string","For any carrier/technology overwrite attributes as listed below." | ||
-- {attribute},--,"string or float","For any attribute, can specify a float or reference to a file path to a CSV file giving floats for each country (2-letter code)." | ||
,Unit,Values,Description | ||
unit_commitment ,bool,"{true, false}","Allow the overwrite of ramp_limit_up, ramp_limit_start_up, ramp_limit_shut_down, p_min_pu, min_up_time, min_down_time, and start_up_cost of conventional generators. Refer to the CSV file „unit_commitment.csv“." | ||
dynamic_fuel_price ,bool,"{true, false}","Consider the monthly fluctuating fuel prices for each conventional generator. Refer to the CSV file ""data/validation/monthly_fuel_price.csv""." | ||
{name},--,string,For any carrier/technology overwrite attributes as listed below. | ||
-- {attribute},--,string or float,"For any attribute, can specify a float or reference to a file path to a CSV file giving floats for each country (2-letter code)." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,8 @@ | ||
,Unit,Values,Description | ||
cutout,--,"Must be 'europe-2013-era5'","Specifies the directory where the relevant weather data ist stored." | ||
carriers,--,"Any subset of {'ror', 'PHS', 'hydro'}","Specifies the types of hydro power plants to build per-unit availability time series for. 'ror' stands for run-of-river plants, 'PHS' represents pumped-hydro storage, and 'hydro' stands for hydroelectric dams." | ||
PHS_max_hours,h,float,"Maximum state of charge capacity of the pumped-hydro storage (PHS) in terms of hours at full output capacity ``p_nom``. Cf. `PyPSA documentation <https://pypsa.readthedocs.io/en/latest/components.html#storage-unit>`_." | ||
hydro_max_hours,h,"Any of {float, 'energy_capacity_totals_by_country', 'estimate_by_large_installations'}","Maximum state of charge capacity of the pumped-hydro storage (PHS) in terms of hours at full output capacity ``p_nom`` or heuristically determined. Cf. `PyPSA documentation <https://pypsa.readthedocs.io/en/latest/components.html#storage-unit>`_." | ||
clip_min_inflow,MW,float,"To avoid too small values in the inflow time series, values below this threshold are set to zero." | ||
,Unit,Values,Description | ||
cutout,--,Must be 'europe-2013-era5',Specifies the directory where the relevant weather data ist stored. | ||
carriers,--,"Any subset of {'ror', 'PHS', 'hydro'}","Specifies the types of hydro power plants to build per-unit availability time series for. 'ror' stands for run-of-river plants, 'PHS' represents pumped-hydro storage, and 'hydro' stands for hydroelectric dams." | ||
PHS_max_hours,h,float,Maximum state of charge capacity of the pumped-hydro storage (PHS) in terms of hours at full output capacity ``p_nom``. Cf. `PyPSA documentation <https://pypsa.readthedocs.io/en/latest/components.html#storage-unit>`_. | ||
hydro_max_hours,h,"Any of {float, 'energy_capacity_totals_by_country', 'estimate_by_large_installations'}",Maximum state of charge capacity of the pumped-hydro storage (PHS) in terms of hours at full output capacity ``p_nom`` or heuristically determined. Cf. `PyPSA documentation <https://pypsa.readthedocs.io/en/latest/components.html#storage-unit>`_. | ||
flatten_dispatch,bool,"{true, false}",Consider an upper limit for the hydro dispatch. The limit is given by the average capacity factor plus the buffer given in ``flatten_dispatch_buffer`` | ||
flatten_dispatch_buffer,--,float,"If ``flatten_dispatch`` is true, specify the value added above the average capacity factor." | ||
clip_min_inflow,MW,float,"To avoid too small values in the inflow time series, values below this threshold are set to zero." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.