allow fixed load data year deviating from snapshots

This commit is contained in:
Fabian Neumann 2022-06-15 13:49:37 +02:00
parent a71552eb1b
commit 6d260435a6
3 changed files with 21 additions and 5 deletions

View File

@ -77,8 +77,8 @@ rule retrieve_load_data:
rule build_load_data: rule build_load_data:
input: "data/load_raw.csv" input: "data/load_raw.csv"
output: "resources/load.csv" output: "resources/load{weather_year}.csv"
log: "logs/build_load_data.log" log: "logs/build_load_data{weather_year}.log"
script: 'scripts/build_load_data.py' script: 'scripts/build_load_data.py'

View File

@ -196,7 +196,7 @@ load:
time_shift_for_large_gaps: 1w # data gaps up until this size are copied by copying from time_shift_for_large_gaps: 1w # data gaps up until this size are copied by copying from
manual_adjustments: true # false manual_adjustments: true # false
scaling_factor: 1.0 scaling_factor: 1.0
fallback_year: 2013 fixed_year: false # false or year
costs: costs:
year: 2030 year: 2030

View File

@ -196,11 +196,23 @@ if __name__ == "__main__":
configure_logging(snakemake) configure_logging(snakemake)
weather_year = snakemake.wildcard.weather_year
if weather_year:
snapshots = dict(
start=weather_year,
end=str(int(weather_year)+1),
closed="left"
)
else:
snapshots = snakemake.config['snapshots']
snapshots = pd.date_range(freq='h', **snapshots)
fixed_year = snakemake.config["load"].get("fixed_year", False)
years = slice(fixed_year, fixed_year) if fixed_year else slice(snapshots[0], snapshots[-1])
powerstatistics = snakemake.config['load']['power_statistics'] powerstatistics = snakemake.config['load']['power_statistics']
interpolate_limit = snakemake.config['load']['interpolate_limit'] interpolate_limit = snakemake.config['load']['interpolate_limit']
countries = snakemake.config['countries'] countries = snakemake.config['countries']
snapshots = pd.date_range(freq='h', **snakemake.config['snapshots'])
years = slice(snapshots[0], snapshots[-1])
time_shift = snakemake.config['load']['time_shift_for_large_gaps'] time_shift = snakemake.config['load']['time_shift_for_large_gaps']
load = load_timeseries(snakemake.input[0], years, countries, powerstatistics) load = load_timeseries(snakemake.input[0], years, countries, powerstatistics)
@ -220,5 +232,9 @@ if __name__ == "__main__":
'`time_shift_for_large_gaps` or modify the `manual_adjustment` function ' '`time_shift_for_large_gaps` or modify the `manual_adjustment` function '
'for implementing the needed load data modifications.') 'for implementing the needed load data modifications.')
# need to reindex load time series to target year
if fixed_year:
load.index = load.index.map(lambda t: t.replace(year=snapshots.year[0]))
load.to_csv(snakemake.output[0]) load.to_csv(snakemake.output[0])