prepare release 0.7

This commit is contained in:
Fabian Neumann 2023-02-16 11:50:55 +01:00
parent 6d467b7133
commit 9c1182fe96
85 changed files with 254 additions and 381 deletions

2
.gitattributes vendored
View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

2
.gitignore vendored
View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

View File

@ -1,11 +1,11 @@
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0
version: 2
python:
version: 3.8
version: "3.10"
install:
- requirements: doc/requirements.txt
system_packages: true

View File

@ -12,7 +12,7 @@ Copyright: 2019 Fabian Neumann (TUB, KIT)
License: CC-BY-4.0
Files: data/*
Copyright: 2017-2022 The PyPSA-Eur Authors
Copyright: 2017-2023 The PyPSA-Eur Authors
License: CC-BY-4.0
Files: .github/*
@ -20,9 +20,9 @@ Copyright: 2019 The PyPSA-Eur Authors
License: CC0-1.0
Files: matplotlibrc
Copyright: : 2017-2022 The PyPSA-Eur Authors
Copyright: : 2017-2023 The PyPSA-Eur Authors
License: CC0-1.0
Files: borg-it
Copyright: : 2017-2022 The PyPSA-Eur Authors
Copyright: : 2017-2023 The PyPSA-Eur Authors
License: CC0-1.0

View File

@ -1,6 +1,6 @@
MIT License
Copyright 2017-2022 The PyPSA-Eur Authors
Copyright 2017-2023 The PyPSA-Eur Authors
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

View File

@ -1,5 +1,5 @@
<!--
SPDX-FileCopyrightText: 2017-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2017-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
-->

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
@ -9,8 +9,8 @@ from snakemake.remote.HTTP import RemoteProvider as HTTPRemoteProvider
HTTP = HTTPRemoteProvider()
if not exists("config.yaml"):
copyfile("config.default.yaml", "config.yaml")
# if not exists("config.yaml"):
# copyfile("config.default.yaml", "config.yaml")
configfile: "config.yaml"

View File

@ -1,8 +1,8 @@
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0
version: 0.6.1
version: 0.7.0
tutorial: false
logging:
@ -233,7 +233,7 @@ load:
costs:
year: 2030
version: v0.4.0
version: v0.5.0
rooftop_share: 0.14 # based on the potentials, assuming (0.1 kW/m2 and 10 m2/person)
fill_values:
FOM: 0
@ -288,7 +288,7 @@ solving:
min_iterations: 4
max_iterations: 6
clip_p_max_pu: 0.01
skip_iterations: false
skip_iterations: true
track_iterations: false
#nhours: 10
solver:

View File

@ -1,8 +1,8 @@
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0
version: 0.6.1
version: 0.7.0
tutorial: true
logging:
@ -163,7 +163,7 @@ load:
costs:
year: 2030
version: v0.4.0
version: v0.5.0
rooftop_share: 0.14
fill_values:
FOM: 0

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,74 +0,0 @@
/* SPDX-FileCopyrightText: 2017-2022 The PyPSA-Eur Authors
SPDX-License-Identifier: MIT
*/
.wy-side-nav-search {
background-color: #eeeeee;
}
.wy-side-nav-search .wy-dropdown>a,
.wy-side-nav-search>a {
color: rgb(34, 97, 156)
}
.wy-side-nav-search>div.version {
color: rgb(34, 97, 156)
}
.wy-menu-vertical header,
.wy-menu-vertical p.caption,
.rst-versions a {
color: #999999;
}
.wy-menu-vertical a.reference:hover,
.wy-menu-vertical a.reference.internal:hover {
background: #dddddd;
color: #fff;
}
.wy-nav-side {
background: #efefef;
}
.wy-menu-vertical a.reference {
color: #000;
}
.rst-versions .rst-current-version,
.wy-nav-top,
.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a:hover {
background: #002221;
}
.wy-nav-content .highlight {
background: #ffffff;
}
.rst-content code.literal,
.rst-content tt.literal {
color: rgb(34, 97, 156)
}
.wy-nav-content a.reference {
color: rgb(34, 97, 156);
}
/* override table width restrictions */
@media screen and (min-width: 767px) {
.wy-table-responsive table td {
/* !important prevents the common CSS stylesheets from overriding
this as on RTD they are loaded after this stylesheet */
white-space: normal !important;
background: rgb(250, 250, 250) !important;
}
.wy-table-responsive {
max-width: 100%;
overflow: visible !important;
}
.wy-nav-content {
max-width: 910px !important;
}
}

View File

@ -1,130 +0,0 @@
..
SPDX-FileCopyrightText: 2020 Maximilian Parzen and Emmanuel Paez
SPDX-License-Identifier: CC-BY-4.0
.. _cloudcomputing:
###########################
Cloud Computing
###########################
Google Cloud Platform (GCP)
===========================
.. note::
This set of instructions is partially Windows specific.
We are happy to take pull requests explaining where the procedures deviate from the descriptions below for other operating systems.
Likewise, tutorials for other cloud computing solutions are also highly welcome.
The Google Cloud Platform (GCP) is a cloud computing service you can use to run PyPSA-Eur calculations, especially if
- you do not have immediate access to high-performance computating facilities,
- you have problems with the Windows operating system and want a quick run on a linux-based system,
- you want to model whole of Europe in sufficient spatial and temporal resolution,
- you need quick results (trial version includes 32 vCPU cores and up to 800 GB of memory).
With the Google Cloud Platform you set up a virtual machine in the cloud which can store and operate data.
Like on your local computer, you have to install all software and solvers, and create paths on the virtual machine to set up the required environment.
The 300$ free trial budget is offered which equals roughly 10-20 simulations with 180 nodes at hourly basis.
The following steps are required:
- `Google Cloud Platform registration <https://console.cloud.google.com>`_, to receive 300$ free budget.
- `Creating an Virtual Machine (VM) instance <https://www.ibm.com/products/ilog-cplex-optimization-studio>`_, which is practically a virtual computer with Linux as OS.
- `Installation of Cloud SDK <https://cloud.google.com/sdk/>`_, to create a communication channel between your computer and the cloud virtual machine (VM).
- `Installation of WinSCP (Windows) <https://winscp.net/eng/download.php>`_ (or alternative), to handle or transfer files between the VM and you local computer.
Step 1 - Google Cloud Platform registration
-------------------------------------------
First, register at the `Google Cloud Platform <https://console.cloud.google.com>`_ (GCP).
Ann active bank account is required, which will not be charged unless you exceed the trial budget.
Step 2 - Create your Virtual Machine instance
---------------------------------------------
With the following steps we create a Virtual Machine (VM) on Google Cloud.
- Click on the `GCP Dashboard <https://console.cloud.google.com/home/dashboard>`_.
- Click on the "COMPUTE" header, on the "Compute Engine" and then on the "VM instance".
- Click on create.
- Click on new VM instance.
Now a window with the machine details will open. You have to configure the following things:
- Name: Set a name for your VM. Cannot be changed after creation.
- Region: You can keep the default us-central1 (Iowa), since it is a cheap computational region. Sometimes your machine is limited in a specific region. Just pick another region in that case.
- Machine configuration: The machine configuration sets how powerful your VM is.
You can start with a 1 vCPU and 3.75 GB memory, N1 series machine as every operating second cost money.
You can edit your machine configuration later. So use a cheap machine type configuration to transfer data and
only when everything is ready and tested, your expensive machine type, for instance a custom 8 vCPU with 160 GB memory.
Solvers do not parallelise well, so we recommend not to choose more than 8 vCPU.
Check ``snakemake -n -j 1 solve_all_networks`` as a dry run to see how much memory is required.
The memory requirements will vary depending on the spatial and temporal resoulution of your optimisation.
Example: for an hourly, 181 node full European network, set 8 vCPU and 150 GB memory since the dry-run calculated a 135 GB memory requirement.)
- Boot disk: As default, your VM is created with 10 GB. Depending on how much you want to handle on one VM you should increase the disk size.
We recommend a disk size of 100 GB for a safe start (cost roughly 8$ per month), the disk can be resized at any later stage with an additional disk.
- Click on create and celebrate your first VM on GCP.
Step 3 - Installation of Cloud SDK
----------------------------------
- Download Google Cloud SDK `SDK <https://cloud.google.com/sdk>`_. Check that you are logged in in your Google account. The link should lead you to the Windows installation of Google Cloud SDK.
- Follow the "Quickstart for Windows - Before you begin" steps.
- After the successful installation and initialization, close the Google Cloud SDK reopen it again. Type the following command into the "Google Cloud SDK Shell":
.. code:: bash
gcloud compute ssh <your VM instance name> -- -L 8888:localhost:8888
- This command above will open a PuTTy command window that is connected to your Virtual Machine. Time to celebrate if it works!
- Now install all necessary tools. As little help, the first steps:
.. code:: bash
sudo apt-get update
sudo apt-get install bzip2 libxml2-dev
sudo apt-get install wget
wget https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh
ls (to see what anaconda file to bash)
bash Anaconda3-2020.07-Linux-x86_64.sh
source ~/.bashrc
- Close and reopen the PuTTy file (-> open Google Cloud SDK -> initialize again with the command above to open the PuTTY command window). Now ``conda`` can be listed with ``conda list``.
Noq you can follow the standard installation instructions to finalize your machine (don't forget the solvers - for bigger simulations use commercial solvers such as Gurobi).
Step 4 - Installation of WinSCP
-------------------------------
For smooth data exchange between the VM and your local computer you may use WinSCP on Windows.
Make sure that your instance is operating for the next steps.
- Download `WinSCP <https://winscp.net/eng/download.php>`_ and follow the default installation steps.
- Open WinSCP after the installation. A login window will open.
- Keep SFTP as file protocol.
- As host name insert the External IP of your VM (click in your internet browser on your GCP VM instance to see the external IP)
- Set the User name in WinSCP to the name you see in your PuTTy window (check step 3 - for instance [username]@[VM-name]:~$)
- Click on the advanced setting. SSH -> Authentication.
- Option 1. Click on the Tools button and "Install Public Key into Server..". Somewhere in your folder structure must be a public key. I found it with the following folder syntax on my local windows computer -> :\Users\...\.ssh (there should be a PKK file).
- Option 2. Click on the Tools button and "Generate new key pair...". Save the private key at a folder you remember and add it to the "private key file" field in WinSCP. Upload the public key to the metadeta of your instance.
- Click ok and save. Then click Login. If successful WinSCP will open on the left side your local computer folder structure and on the right side the folder structure of your VM. (If you followed Option 2 and its not initially working. Stop your instance, refresh the website, reopen the WinSCP field. Afterwards your your Login should be successful)
If you had struggle with the above steps, you could also try `this video <https://www.youtube.com/watch?v=lYx1oQkEF0E>`_.
.. note::
Double check the External IP of your VM before you try to login with WinSCP. It's often a cause for an error.
Step 5 - Extra. Copying your instance with all its data and paths included
--------------------------------------------------------------------------
Especially if you think about operating several instance for quicker simulations, you can create a so called `"image" <https://console.cloud.google.com/compute/images?authuser=1&project=exalted-country-284917>`_ of the virtual machine.
The "image" includes all the data and software set-ups from your VM. Afterwards you can create a VM from an image and avoid all the installation steps above.
Important points when to solve networks in PyPSA
------------------------------------------------
If you use the GCP with the default PyPSA-Eur settings, your budget will be used up very quickly. The following tips should help you to make the most of your budget:
- Always test using low resolution networks; i.e. a single country at 5 nodes and 24h resolution for 2 month of weather data.
- Adjust your solver in the ``config.yaml`` file. Set ``solving: skip_iterations: true``.
This will lead to a single solver iteration which is often precise enough.

View File

@ -67,7 +67,7 @@ master_doc = "index"
# General information about the project.
project = "PyPSA-Eur"
copyright = "2017-2022 Jonas Hoersch (KIT, FIAS), Fabian Hofmann (TUB, FIAS), David Schlachtberger (FIAS), Tom Brown (TUB, KIT, FIAS); 2019-2022 Fabian Neumann (TUB, KIT)"
copyright = "2017-2023 Jonas Hoersch (KIT, FIAS), Fabian Hofmann (TUB, FIAS), David Schlachtberger (FIAS), Tom Brown (TUB, KIT, FIAS); 2019-2023 Fabian Neumann (TUB, KIT)"
author = "Jonas Hoersch (KIT, FIAS), Fabian Hofmann (TUB, FIAS), David Schlachtberger (FIAS), Tom Brown (TUB, KIT, FIAS), Fabian Neumann (TUB, KIT)"
# The version info for the project you're documenting, acts as replacement for
@ -84,7 +84,7 @@ release = "0.6.1"
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
language = "en"
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
@ -128,14 +128,14 @@ todo_include_todos = True
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = "sphinx_rtd_theme"
html_theme = "sphinx_book_theme"
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
html_theme_options = {
"display_version": True,
"sticky_navigation": True,
"repository_url": "https://github.com/pypsa/pypsa-eur",
"use_repository_button": True,
}
@ -144,14 +144,14 @@ html_theme_options = {
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
# html_title = None
html_title = "PyPSA-Eur: An Open Optimisation Model of the European Transmission System"
# A shorter title for the navigation bar. Default is the same as html_title.
# html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
# html_logo = None
html_logo = "img/pypsa-logo.png"
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
@ -163,7 +163,7 @@ html_static_path = ["_static"]
# These paths are either relative to html_static_path
# or fully qualified paths (eg. https://...)
html_css_files = ["theme_overrides.css"]
# html_css_files = ["theme_overrides.css"]
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied

View File

@ -1,9 +1,12 @@
,Unit,Values,Description
nprocesses,--,int,"Number of parallel processes in cutout preparation"
show_progress,bool,true/false,"Whether progressbar for atlite conversion processes should be shown. False saves time."
cutouts,,,
-- {name},--,"Convention is to name cutouts like ``<region>-<year>-<source>`` (e.g. ``europe-2013-era5``).","Name of the cutout netcdf file. The user may specify multiple cutouts under configuration ``atlite: cutouts:``. Reference is used in configuration ``renewable: {technology}: cutout:``. The cutout ``base`` may be used to automatically calculate temporal and spatial bounds of the network."
-- -- module,--,"Subset of {'era5','sarah'}","Source of the reanalysis weather dataset (e.g. `ERA5 <https://www.ecmwf.int/en/forecasts/datasets/reanalysis-datasets/era5>`_ or `SARAH-2 <https://wui.cmsaf.eu/safira/action/viewDoiDetails?acronym=SARAH_V002>`_)"
-- -- x,°,"Float interval within [-180, 180]","Range of longitudes to download weather data for. If not defined, it defaults to the spatial bounds of all bus shapes."
-- -- y,°,"Float interval within [-90, 90]","Range of latitudes to download weather data for. If not defined, it defaults to the spatial bounds of all bus shapes."
-- -- dx,°,"Larger than 0.25","Grid resolution for longitude"
-- -- dy,°,"Larger than 0.25","Grid resolution for latitude"
-- -- time,,"Time interval within ['1979', '2018'] (with valid pandas date time strings)","Time span to download weather data for. If not defined, it defaults to the time interval spanned by the snapshots."
-- -- features,,"String or list of strings with valid cutout features ('inlfux', 'wind').","When freshly building a cutout, retrieve data only for those features. If not defined, it defaults to all available features."

1 Unit Values Description
2 nprocesses -- int Number of parallel processes in cutout preparation
3 show_progress bool true/false Whether progressbar for atlite conversion processes should be shown. False saves time.
4 cutouts
5 -- {name} -- Convention is to name cutouts like ``<region>-<year>-<source>`` (e.g. ``europe-2013-era5``). Name of the cutout netcdf file. The user may specify multiple cutouts under configuration ``atlite: cutouts:``. Reference is used in configuration ``renewable: {technology}: cutout:``. The cutout ``base`` may be used to automatically calculate temporal and spatial bounds of the network.
6 -- -- module -- Subset of {'era5','sarah'} Source of the reanalysis weather dataset (e.g. `ERA5 <https://www.ecmwf.int/en/forecasts/datasets/reanalysis-datasets/era5>`_ or `SARAH-2 <https://wui.cmsaf.eu/safira/action/viewDoiDetails?acronym=SARAH_V002>`_)
7 -- -- x ° Float interval within [-180, 180] Range of longitudes to download weather data for. If not defined, it defaults to the spatial bounds of all bus shapes.
8 -- -- y ° Float interval within [-90, 90] Range of latitudes to download weather data for. If not defined, it defaults to the spatial bounds of all bus shapes.
9 -- -- dx ° Larger than 0.25 Grid resolution for longitude
10 -- -- dy ° Larger than 0.25 Grid resolution for latitude
11 -- -- time Time interval within ['1979', '2018'] (with valid pandas date time strings) Time span to download weather data for. If not defined, it defaults to the time interval spanned by the snapshots.
12 -- -- features String or list of strings with valid cutout features ('inlfux', 'wind'). When freshly building a cutout, retrieve data only for those features. If not defined, it defaults to all available features.

View File

@ -4,6 +4,8 @@ simplify_network,,,
-- 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}.",

1 Unit Values Description
4 -- algorithm str One of {‘kmeans’, ‘hac’, ‘modularity‘}
5 -- 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’}.
6 -- 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.
7 -- remove stubs bool true/false Controls whether radial parts of the network should be recursively aggregated. Defaults to true.
8 -- remove_stubs_across_borders bool true/false Controls whether radial parts of the network should be recursively aggregated across borders. Defaults to true.
9 cluster_network
10 -- algorithm str One of {‘kmeans’, ‘hac’}
11 -- 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’}.

View File

@ -1,6 +1,6 @@
,Unit,Values,Description
year,--,"YYYY; e.g. '2030'","Year for which to retrieve cost assumptions of ``resources/costs.csv``."
version,--,"vX.X.X; e.g. 'v0.1.0'","Version of ``technology-data`` repository to use."
version,--,"vX.X.X; e.g. 'v0.5.0'","Version of ``technology-data`` repository to use."
rooftop_share,--,float,"Share of rooftop PV when calculating capital cost of solar (joint rooftop and utility-scale PV)."
fill_values,--,float,"Default values if not specified for a technology in ``resources/costs.csv``."
capital_cost,EUR/MW,"Keys should be in the 'technology' column of ``resources/costs.csv``. Values can be any float.","For the given technologies, assumptions about their capital investment costs are set to the corresponding value. Optional; overwrites cost assumptions from ``resources/costs.csv``."

1 Unit Values Description
2 year -- YYYY; e.g. '2030' Year for which to retrieve cost assumptions of ``resources/costs.csv``.
3 version -- vX.X.X; e.g. 'v0.1.0' vX.X.X; e.g. 'v0.5.0' Version of ``technology-data`` repository to use.
4 rooftop_share -- float Share of rooftop PV when calculating capital cost of solar (joint rooftop and utility-scale PV).
5 fill_values -- float Default values if not specified for a technology in ``resources/costs.csv``.
6 capital_cost EUR/MW Keys should be in the 'technology' column of ``resources/costs.csv``. Values can be any float. For the given technologies, assumptions about their capital investment costs are set to the corresponding value. Optional; overwrites cost assumptions from ``resources/costs.csv``.

View File

@ -1,5 +1,4 @@
,Unit,Values,Description
url,--,string,"Link to open power system data time series data."
power_statistics,bool,"{true, false}",Whether to load the electricity consumption data of the ENTSOE power statistics (only for files from 2019 and before) or from the ENTSOE transparency data (only has load data from 2015 onwards).
interpolate_limit,hours,integer,"Maximum gap size (consecutive nans) which interpolated linearly."
time_shift_for_large_gaps,string,string,"Periods which are used for copying time-slices in order to fill large gaps of nans. Have to be valid ``pandas`` period strings."

1 Unit Values Description
url -- string Link to open power system data time series data.
2 power_statistics bool {true, false} Whether to load the electricity consumption data of the ENTSOE power statistics (only for files from 2019 and before) or from the ENTSOE transparency data (only has load data from 2015 onwards).
3 interpolate_limit hours integer Maximum gap size (consecutive nans) which interpolated linearly.
4 time_shift_for_large_gaps string string Periods which are used for copying time-slices in order to fill large gaps of nans. Have to be valid ``pandas`` period strings.

View File

@ -4,10 +4,13 @@ resource,,,
-- method,--,"Must be 'wind'","A superordinate technology type."
-- turbine,--,"One of turbine types included in `atlite <https://github.com/PyPSA/atlite/tree/master/atlite/resources/windturbine>`_","Specifies the turbine type and its characteristic power curve."
capacity_per_sqkm,:math:`MW/km^2`,float,"Allowable density of wind turbine placement."
correction_factor,--,float,"Correction factor for capacity factor time series."
excluder_resolution,m,float,"Resolution on which to perform geographical elibility analysis."
corine,--,"Any *realistic* subset of the `CORINE Land Cover code list <http://www.eea.europa.eu/data-and-maps/data/corine-land-cover-2006-raster-1/corine-land-cover-classes-and/clc_legend.csv/at_download/file>`_","Specifies areas according to CORINE Land Cover codes which are generally eligible for AC-connected offshore wind turbine placement."
natura,bool,"{true, false}","Switch to exclude `Natura 2000 <https://en.wikipedia.org/wiki/Natura_2000>`_ natural protection areas. Area is excluded if ``true``."
ship_threshold,--,float,"Ship density threshold from which areas are excluded."
max_depth,m,float,"Maximum sea water depth at which wind turbines can be build. Maritime areas with deeper waters are excluded in the process of calculating the AC-connected offshore wind potential."
min_shore_distance,m,float,"Minimum distance to the shore below which wind turbines cannot be build. Such areas close to the shore are excluded in the process of calculating the AC-connected offshore wind potential."
max_shore_distance,m,float,"Maximum distance to the shore above which wind turbines cannot be build. Such areas close to the shore are excluded in the process of calculating the AC-connected offshore wind potential."
potential,--,"One of {'simple', 'conservative'}","Method to compute the maximal installable potential for a node; confer :ref:`renewableprofiles`"
clip_p_max_pu,p.u.,float,"To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero."

1 Unit Values Description
4 -- method -- Must be 'wind' A superordinate technology type.
5 -- turbine -- One of turbine types included in `atlite <https://github.com/PyPSA/atlite/tree/master/atlite/resources/windturbine>`_ Specifies the turbine type and its characteristic power curve.
6 capacity_per_sqkm :math:`MW/km^2` float Allowable density of wind turbine placement.
7 correction_factor -- float Correction factor for capacity factor time series.
8 excluder_resolution m float Resolution on which to perform geographical elibility analysis.
9 corine -- Any *realistic* subset of the `CORINE Land Cover code list <http://www.eea.europa.eu/data-and-maps/data/corine-land-cover-2006-raster-1/corine-land-cover-classes-and/clc_legend.csv/at_download/file>`_ Specifies areas according to CORINE Land Cover codes which are generally eligible for AC-connected offshore wind turbine placement.
10 natura bool {true, false} Switch to exclude `Natura 2000 <https://en.wikipedia.org/wiki/Natura_2000>`_ natural protection areas. Area is excluded if ``true``.
11 ship_threshold -- float Ship density threshold from which areas are excluded.
12 max_depth m float Maximum sea water depth at which wind turbines can be build. Maritime areas with deeper waters are excluded in the process of calculating the AC-connected offshore wind potential.
13 min_shore_distance m float Minimum distance to the shore below which wind turbines cannot be build. Such areas close to the shore are excluded in the process of calculating the AC-connected offshore wind potential.
14 max_shore_distance m float Maximum distance to the shore above which wind turbines cannot be build. Such areas close to the shore are excluded in the process of calculating the AC-connected offshore wind potential.
15 potential -- One of {'simple', 'conservative'} Method to compute the maximal installable potential for a node; confer :ref:`renewableprofiles`
16 clip_p_max_pu p.u. float To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero.

View File

@ -4,10 +4,13 @@ resource,,,
-- method,--,"Must be 'wind'","A superordinate technology type."
-- turbine,--,"One of turbine types included in `atlite <https://github.com/PyPSA/atlite/tree/master/atlite/resources/windturbine>`__","Specifies the turbine type and its characteristic power curve."
capacity_per_sqkm,:math:`MW/km^2`,float,"Allowable density of wind turbine placement."
correction_factor,--,float,"Correction factor for capacity factor time series."
excluder_resolution,m,float,"Resolution on which to perform geographical elibility analysis."
corine,--,"Any *realistic* subset of the `CORINE Land Cover code list <http://www.eea.europa.eu/data-and-maps/data/corine-land-cover-2006-raster-1/corine-land-cover-classes-and/clc_legend.csv/at_download/file>`_","Specifies areas according to CORINE Land Cover codes which are generally eligible for AC-connected offshore wind turbine placement."
natura,bool,"{true, false}","Switch to exclude `Natura 2000 <https://en.wikipedia.org/wiki/Natura_2000>`_ natural protection areas. Area is excluded if ``true``."
ship_threshold,--,float,"Ship density threshold from which areas are excluded."
max_depth,m,float,"Maximum sea water depth at which wind turbines can be build. Maritime areas with deeper waters are excluded in the process of calculating the AC-connected offshore wind potential."
min_shore_distance,m,float,"Minimum distance to the shore below which wind turbines cannot be build. Such areas close to the shore are excluded in the process of calculating the AC-connected offshore wind potential."
min_shore_distance,m,float,"Minimum distance to the shore below which wind turbines cannot be build."
max_shore_distance,m,float,"Maximum distance to the shore above which wind turbines cannot be build."
potential,--,"One of {'simple', 'conservative'}","Method to compute the maximal installable potential for a node; confer :ref:`renewableprofiles`"
clip_p_max_pu,p.u.,float,"To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero."

1 Unit Values Description
4 -- method -- Must be 'wind' A superordinate technology type.
5 -- turbine -- One of turbine types included in `atlite <https://github.com/PyPSA/atlite/tree/master/atlite/resources/windturbine>`__ Specifies the turbine type and its characteristic power curve.
6 capacity_per_sqkm :math:`MW/km^2` float Allowable density of wind turbine placement.
7 correction_factor -- float Correction factor for capacity factor time series.
8 excluder_resolution m float Resolution on which to perform geographical elibility analysis.
9 corine -- Any *realistic* subset of the `CORINE Land Cover code list <http://www.eea.europa.eu/data-and-maps/data/corine-land-cover-2006-raster-1/corine-land-cover-classes-and/clc_legend.csv/at_download/file>`_ Specifies areas according to CORINE Land Cover codes which are generally eligible for AC-connected offshore wind turbine placement.
10 natura bool {true, false} Switch to exclude `Natura 2000 <https://en.wikipedia.org/wiki/Natura_2000>`_ natural protection areas. Area is excluded if ``true``.
11 ship_threshold -- float Ship density threshold from which areas are excluded.
12 max_depth m float Maximum sea water depth at which wind turbines can be build. Maritime areas with deeper waters are excluded in the process of calculating the AC-connected offshore wind potential.
13 min_shore_distance m float Minimum distance to the shore below which wind turbines cannot be build. Such areas close to the shore are excluded in the process of calculating the AC-connected offshore wind potential. Minimum distance to the shore below which wind turbines cannot be build.
14 max_shore_distance m float Maximum distance to the shore above which wind turbines cannot be build.
15 potential -- One of {'simple', 'conservative'} Method to compute the maximal installable potential for a node; confer :ref:`renewableprofiles`
16 clip_p_max_pu p.u. float To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero.

View File

@ -11,3 +11,5 @@ corine,,,
natura,bool,"{true, false}","Switch to exclude `Natura 2000 <https://en.wikipedia.org/wiki/Natura_2000>`_ natural protection areas. Area is excluded if ``true``."
potential,--,"One of {'simple', 'conservative'}","Method to compute the maximal installable potential for a node; confer :ref:`renewableprofiles`"
clip_p_max_pu,p.u.,float,"To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero."
correction_factor,--,float,"Correction factor for capacity factor time series."
excluder_resolution,m,float,"Resolution on which to perform geographical elibility analysis."

1 Unit Values Description
11 natura bool {true, false} Switch to exclude `Natura 2000 <https://en.wikipedia.org/wiki/Natura_2000>`_ natural protection areas. Area is excluded if ``true``.
12 potential -- One of {'simple', 'conservative'} Method to compute the maximal installable potential for a node; confer :ref:`renewableprofiles`
13 clip_p_max_pu p.u. float To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero.
14 correction_factor -- float Correction factor for capacity factor time series.
15 excluder_resolution m float Resolution on which to perform geographical elibility analysis.

View File

@ -12,3 +12,4 @@ corine,--,"Any subset of the `CORINE Land Cover code list <http://www.eea.europa
natura,bool,"{true, false}","Switch to exclude `Natura 2000 <https://en.wikipedia.org/wiki/Natura_2000>`_ natural protection areas. Area is excluded if ``true``."
potential,--,"One of {'simple', 'conservative'}","Method to compute the maximal installable potential for a node; confer :ref:`renewableprofiles`"
clip_p_max_pu,p.u.,float,"To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero."
excluder_resolution,m,float,"Resolution on which to perform geographical elibility analysis."

1 Unit Values Description
12 natura bool {true, false} Switch to exclude `Natura 2000 <https://en.wikipedia.org/wiki/Natura_2000>`_ natural protection areas. Area is excluded if ``true``.
13 potential -- One of {'simple', 'conservative'} Method to compute the maximal installable potential for a node; confer :ref:`renewableprofiles`
14 clip_p_max_pu p.u. float To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero.
15 excluder_resolution m float Resolution on which to perform geographical elibility analysis.

View File

@ -6,5 +6,5 @@ min_iterations,--,int,"Minimum number of solving iterations in between which res
max_iterations,--,int,"Maximum number of solving iterations in between which resistance and reactence (``x/r``) are updated for branches according to ``s_nom_opt`` of the previous run."
nhours,--,int,"Specifies the :math:`n` first snapshots to take into account. Must be less than the total number of snapshots. Rather recommended only for debugging."
clip_p_max_pu,p.u.,float,"To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero."
skip_iterations,bool,"{'true','false'}","Skip iterating, do not update impedances of branches."
skip_iterations,bool,"{'true','false'}","Skip iterating, do not update impedances of branches. Defaults to true."
track_iterations,bool,"{'true','false'}","Flag whether to store the intermediate branch capacities and objective function values are recorded for each iteration in ``network.lines['s_nom_opt_X']`` (where ``X`` labels the iteration)"

1 Unit Values Description
6 max_iterations -- int Maximum number of solving iterations in between which resistance and reactence (``x/r``) are updated for branches according to ``s_nom_opt`` of the previous run.
7 nhours -- int Specifies the :math:`n` first snapshots to take into account. Must be less than the total number of snapshots. Rather recommended only for debugging.
8 clip_p_max_pu p.u. float To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero.
9 skip_iterations bool {'true','false'} Skip iterating, do not update impedances of branches. Skip iterating, do not update impedances of branches. Defaults to true.
10 track_iterations bool {'true','false'} Flag whether to store the intermediate branch capacities and objective function values are recorded for each iteration in ``network.lines['s_nom_opt_X']`` (where ``X`` labels the iteration)

View File

@ -1,15 +1,18 @@
,Unit,Values,Description
version,--,0.x.x,"Version of PyPSA-Eur"
version,--,0.x.x,"Version of PyPSA-Eur. Descriptive only."
tutorial,bool,"{true, false}","Switch to retrieve the tutorial data set instead of the full data set."
logging,,,
-- level,--,"Any of {'INFO', 'WARNING', 'ERROR'}","Restrict console outputs to all infos, warning or errors only"
-- format,--,"","Custom format for log messages. See `LogRecord <https://docs.python.org/3/library/logging.html#logging.LogRecord>`_ attributes."
summary_dir,--,"e.g. 'results'","Directory into which results are written."
run,,,
-- name,--,"any string","Specify a name for your run. Results will be stored under this name."
-- shared_cutouts,bool,"{true, false}","Switch to select whether cutouts should be shared across runs."
countries,--,"Subset of {'AL', 'AT', 'BA', 'BE', 'BG', 'CH', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'ME', 'MK', 'NL', 'NO', 'PL', 'PT', 'RO', 'RS', 'SE', 'SI', 'SK'}","European countries defined by their `Two-letter country codes (ISO 3166-1) <https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2>`_ which should be included in the energy system model."
focus_weights,--,"Keys should be two-digit country codes (e.g. DE) and values should range between 0 and 1","Ratio of total clusters for particular countries. the remaining weight is distributed according to mean load. An example: ``focus_weights: 'DE': 0.6 'FR': 0.2``."
enable,,,
-- prepare_links_p_nom,bool,"{true, false}","Switch to retrieve current HVDC projects from `Wikipedia <https://en.wikipedia.org/wiki/List_of_HVDC_projects>`_"
-- retrieve_databundle,bool,"{true, false}","Switch to retrieve databundle from zenodo via the rule :mod:`retrieve_databundle` or whether to keep a custom databundle located in the corresponding folder."
-- retrieve_cost_data,bool,"{true, false}","Switch to retrieve technology cost data from `technology-data repository <https://github.com/PyPSA/technology-data>`_."
-- build_cutout,bool,"{true, false}","Switch to enable the building of cutouts via the rule :mod:`build_cutout`."
-- retrieve_cutout,bool,"{true, false}","Switch to enable the retrieval of cutouts from zenodo with :mod:`retrieve_cutout`."
-- build_natura_raster,bool,"{true, false}","Switch to enable the creation of the raster ``natura.tiff`` via the rule :mod:`build_natura_raster`."

1 Unit Values Description
2 version -- 0.x.x Version of PyPSA-Eur Version of PyPSA-Eur. Descriptive only.
3 tutorial bool {true, false} Switch to retrieve the tutorial data set instead of the full data set.
4 logging
5 -- level -- Any of {'INFO', 'WARNING', 'ERROR'} Restrict console outputs to all infos, warning or errors only
6 -- format -- Custom format for log messages. See `LogRecord <https://docs.python.org/3/library/logging.html#logging.LogRecord>`_ attributes.
7 summary_dir run -- e.g. 'results' Directory into which results are written.
8 -- name -- any string Specify a name for your run. Results will be stored under this name.
9 -- shared_cutouts bool {true, false} Switch to select whether cutouts should be shared across runs.
10 countries -- Subset of {'AL', 'AT', 'BA', 'BE', 'BG', 'CH', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'ME', 'MK', 'NL', 'NO', 'PL', 'PT', 'RO', 'RS', 'SE', 'SI', 'SK'} European countries defined by their `Two-letter country codes (ISO 3166-1) <https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2>`_ which should be included in the energy system model.
11 focus_weights -- Keys should be two-digit country codes (e.g. DE) and values should range between 0 and 1 Ratio of total clusters for particular countries. the remaining weight is distributed according to mean load. An example: ``focus_weights: 'DE': 0.6 'FR': 0.2``.
12 enable
13 -- prepare_links_p_nom bool {true, false} Switch to retrieve current HVDC projects from `Wikipedia <https://en.wikipedia.org/wiki/List_of_HVDC_projects>`_
14 -- retrieve_databundle bool {true, false} Switch to retrieve databundle from zenodo via the rule :mod:`retrieve_databundle` or whether to keep a custom databundle located in the corresponding folder.
15 -- retrieve_cost_data bool {true, false} Switch to retrieve technology cost data from `technology-data repository <https://github.com/PyPSA/technology-data>`_.
16 -- build_cutout bool {true, false} Switch to enable the building of cutouts via the rule :mod:`build_cutout`.
17 -- retrieve_cutout bool {true, false} Switch to enable the retrieval of cutouts from zenodo with :mod:`retrieve_cutout`.
18 -- build_natura_raster bool {true, false} Switch to enable the creation of the raster ``natura.tiff`` via the rule :mod:`build_natura_raster`.

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
@ -18,7 +18,7 @@ Top-level configuration
.. literalinclude:: ../config.default.yaml
:language: yaml
:lines: 5-12,20,31-38
:lines: 5-11,23,30-38
.. csv-table::
@ -252,7 +252,8 @@ Define additional generator attribute for conventional carrier types. If a scala
.. literalinclude:: ../config.default.yaml
:language: yaml
:lines: 212-217
:start-at: load:
:end-before: costs:
.. csv-table::
:header-rows: 1

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
@ -7,9 +7,9 @@
Contributing
#######################
We happily welcome anyone interested in contributing to this project,
be it with new ideas, suggestions, by filing bug reports or contributing code
to our `GitHub repository <https://github.com/PyPSA/PyPSA-Eur>`_.
We welcome anyone interested in contributing to this project, be it with new
ideas, suggestions, by filing bug reports or contributing code to our `GitHub
repository <https://github.com/PyPSA/PyPSA-Eur>`_.
* If you already have some code changes, you can submit them directly as a `pull request <https://github.com/PyPSA/pypsa-eur/pulls>`_.
* If you are wondering where we would greatly appreciate your efforts, check out the ``help wanted`` tag in the `issues list <https://github.com/PyPSA/pypsa-eur/issues>`_ and initiate a discussion there.

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
@ -9,9 +9,7 @@ Cost Assumptions
The database of cost assumptions is retrieved from the repository
`PyPSA/technology-data <https://github.com/pypsa/technology-data>`_ and then
saved to ``resources/costs.csv``. Cost assumptions of previous PyPSA-Eur
versions can be restored by setting in the ``Snakefile``:
``COSTS="data/costs.csv"``.
saved to ``resources/costs.csv``.
The ``config.yaml`` provides options to choose a reference year (``costs: year:``) and use a specific version of the repository ``costs: version:``.

BIN
doc/img/pypsa-logo.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
@ -116,7 +116,6 @@ Documentation
* :doc:`release_notes`
* :doc:`limitations`
* :doc:`contributing`
* :doc:`cloudcomputing`
.. toctree::
:hidden:
@ -126,7 +125,6 @@ Documentation
release_notes
limitations
contributing
cloudcomputing
Warnings
========
@ -150,8 +148,10 @@ in addition to reading this documentation.
- Documentation of `PyPSA <https://pypsa.readthedocs.io>`__, the package for
simulating and optimising modern power systems which PyPSA-Eur uses under the hood.
- Course on `Energy System Modelling <https://nworbmot.org/courses/esm-2019/>`_,
Karlsruhe Institute of Technology (KIT), `Dr. Tom Brown <https://nworbmot.org>`_
- Course on `Energy Systems <https://nworbmot.org/courses/es-22/>`_,
Technical University of Berlin (TUB), `Prof. Dr. Tom Brown <https://nworbmot.org>`_
- Course on `Data Science for Energy System Modelling <https://fneum.github.io/data-science-for-esm/intro.html>`_,
Technical University of Berlin (TUB), `Dr. Fabian Neumann <https://neumann.fyi>`_
Citing PyPSA-Eur
================

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
@ -103,8 +103,12 @@ It might be the case that you can only retrieve solutions by using a commercial
conda activate pypsa-eur
conda install -c conda-forge ipopt glpk
.. warning::
On Windows, new versions of ``ipopt`` have caused problems. Consider downgrading to version 3.11.1.
or
.. code:: bash
conda activate pypsa-eur
pip install highspy
.. _defaultconfig:
@ -123,11 +127,3 @@ Before first use, create a ``config.yaml`` by copying the example.
Users are advised to regularly check their own ``config.yaml`` against changes in the ``config.default.yaml``
when pulling a new version from the remote repository.
.. Using PyPSA-Eur with Docker Images
.. ==================================
.. If docker. Optional.
.. To run on cloud computing.
.. Gurobi license - floating token server - license must not be tied to a particular machine
.. Provide ``Dockerfile``.

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,4 +1,4 @@
REM SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
REM SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
REM SPDX-License-Identifier: MIT
@ECHO OFF

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
@ -28,6 +28,7 @@ Then the process continues by calculating conventional power plant capacities, p
- :mod:`build_powerplants` for today's thermal power plant capacities using `powerplantmatching <https://github.com/FRESNA/powerplantmatching>`_ allocating these to the closest substation for each powerplant,
- :mod:`build_natura_raster` for rasterising NATURA2000 natural protection areas,
- :mod:`build_ship_raster` for building shipping traffic density,
- :mod:`build_renewable_profiles` for the hourly capacity factors and installation potentials constrained by land-use in each substation's Voronoi cell for PV, onshore and offshore wind, and
- :mod:`build_hydro_profile` for the hourly per-unit hydro power availability time series.
@ -42,6 +43,7 @@ together into a detailed PyPSA network stored in ``networks/elec.nc``.
preparation/build_load_data
preparation/build_cutout
preparation/build_natura_raster
preparation/build_ship_raster
preparation/prepare_links_p_nom
preparation/base_network
preparation/build_bus_regions

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2020-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2020-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -0,0 +1,12 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
.. _ship:
Rule ``build_ship_raster``
===============================
.. automodule:: build_ship_raster

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
@ -77,3 +77,55 @@ This rule, as a substitute for :mod:`build_natura_raster`, downloads an already
.. seealso::
For details see :mod:`build_natura_raster`.
Rule ``retrieve_load_data``
---------------------------
This rule downloads hourly electric load data for each country from the `OPSD platform <data.open-power-system-data.org/time_series/2019-06-05/time_series_60min_singleindex.csv>`_.
**Relevant Settings**
None.
**Outputs**
- ``data/load_raw.csv``
Rule ``retrieve_cost_data``
---------------------------
This rule downloads techno-economic assumptions from the `technology-data repository <https://github.com/pypsa/technology-data>`_.
**Relevant Settings**
.. code:: yaml
enable:
retrieve_cost_data:
costs:
year:
version:
.. seealso::
Documentation of the configuration file ``config.yaml`` at
:ref:`_costs_cf`
**Outputs**
- ``resources/costs.csv``
Rule ``retrieve_ship_raster``
-----------------------------
This rule downloads data on global shipping traffic density from the `World Bank Data Catalogue <https://datacatalog.worldbank.org/search/dataset/0037580/Global-Shipping-Traffic-Density>`_.
**Relevant Settings**
None.
**Outputs**
- ``data/shipdensity_global.zip``

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
@ -10,9 +10,16 @@ Release Notes
Upcoming Release
================
* Fix EQ constraint for the case no hydro inflow is available
* Fix EQ constraint for the case no hydro inflow is available.
* Bugfix in the reserve constraint will increase demand related reserve requirements.
* Configuration defaults to new ``technology-data`` version 0.5.0.
* Updated documentation.
* Added control for resolution of land eligibility analysis.
* Bugfix in the reserve constraint will increase demand related reserve requirements
**New Features**
@ -24,6 +31,8 @@ Upcoming Release
The previous setting ``None`` is no longer supported and replaced by ``both``, see the `pandas documentation <https://pandas.pydata.org/docs/reference/api/pandas.date_range.html>`_.
Minimum ``pandas`` version now required is `>= 1.4`.
* The configuration setting ``summary_dir`` was removed.
PyPSA-Eur 0.6.1 (20th September 2022)
=====================================

View File

@ -1,15 +1,15 @@
# SPDX-FileCopyrightText: : 2019-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2019-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0
sphinx
sphinx_rtd_theme
sphinx_book_theme
pypsa
vresutils>=0.3.1
powerplantmatching>=0.4.8
atlite>=0.2.2
dask<=2021.3.1
powerplantmatching>=0.5.5
atlite>=0.2.9
dask
# cartopy
scikit-learn

View File

@ -1,7 +1,7 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
@ -37,7 +37,7 @@ To run the tutorial, use this as your configuration file ``config.yaml``.
This configuration is set to download a reduced data set via the rules :mod:`retrieve_databundle`,
:mod:`retrieve_natura_raster`, :mod:`retrieve_cutout` totalling at less than 250 MB.
The full set of data dependencies would consume 5.3 GB.
The full set of data dependencies would take 5.3 GB.
For more information on the data dependencies of PyPSA-Eur, continue reading :ref:`data`.
How to customise PyPSA-Eur?
@ -107,8 +107,8 @@ on the commercial solvers Gurobi or CPLEX (for which free academic licenses are
Alternatively, choose another installed solver in the ``config.yaml`` at ``solving: solver:``.
Note, that we only note major changes to the provided default configuration that is comprehensibly documented in :ref:`config`.
There are many more configuration options beyond what is adapted for the tutorial!
Note, that we only focus on changes relative to the default configuration.
There are many more configuration options, which are documented at :ref:`config`.
How to use the ``snakemake`` rules?
===================================
@ -132,8 +132,6 @@ orders ``snakemake`` to run the script ``solve_network`` that produces the solve
:start-at: rule solve_network:
:end-before: rule solve_operations_network:
.. until https://github.com/snakemake/snakemake/issues/46 closed
This triggers a workflow of multiple preceding jobs that depend on each rule's inputs and outputs:
.. graphviz::
@ -196,57 +194,47 @@ In the terminal, this will show up as a list of jobs to be run:
.. code:: bash
Building DAG of jobs...
Using shell: /bin/bash
Provided cores: 1
Rules claiming more threads will be scaled down.
Unlimited resources: mem
Job counts:
count jobs
1 add_electricity
1 base_network
1 build_bus_regions
4 build_renewable_profiles
1 build_shapes
1 cluster_network
1 prepare_network
1 simplify_network
1 solve_network
12
Job stats:
job count min threads max threads
------------------------ ------- ------------- -------------
add_electricity 1 1 1
add_extra_components 1 1 1
base_network 1 1 1
build_bus_regions 1 1 1
build_hydro_profile 1 1 1
build_load_data 1 1 1
build_powerplants 1 1 1
build_renewable_profiles 4 1 1
build_shapes 1 1 1
build_ship_raster 1 1 1
cluster_network 1 1 1
prepare_network 1 1 1
retrieve_cost_data 1 1 1
retrieve_databundle 1 1 1
retrieve_natura_raster 1 1 1
simplify_network 1 1 1
solve_network 1 1 1
total 20 1 1
``snakemake`` then runs these jobs in the correct order.
A job (here ``simplify_network``) will display its attributes and normally some logs in the terminal:
A job (here ``simplify_network``) will display its attributes and normally some logs below this block:
.. code:: bash
[<DATETIME>]
[Mon Jan 1 00:00:00 2023]
rule simplify_network:
input: networks/elec.nc, resources/costs.csv, resources/regions_onshore.geojson, resources/regions_offshore.geojson
output: networks/elec_s.nc, resources/regions_onshore_elec_s.geojson, resources/regions_offshore_elec_s.geojson, resources/clustermaps_elec_s.h5
jobid: 3
output: networks/elec_s.nc, resources/regions_onshore_elec_s.geojson, resources/regions_offshore_elec_s.geojson, resources/busmap_elec_s.csv, resources/connection_costs_s.csv
log: logs/simplify_network/elec_s.log
jobid: 4
benchmark: benchmarks/simplify_network/elec_s
wildcards: network=elec, simpl=
resources: mem=4000
reason: Missing output files: resources/busmap_elec_s.csv, resources/regions_onshore_elec_s.geojson, networks/elec_s.nc, resources/regions_offshore_elec_s.geojson; Input files updated by another job: resources/regions_offshore.geojson, resources/regions_onshore.geojson, resources/costs.csv, networks/elec.nc
wildcards: simpl=
resources: tmpdir=/tmp, mem_mb=4000, mem_mib=3815
INFO:pypsa.io:Imported network elec.nc has buses, carriers, generators, lines, links, loads, storage_units, transformers
INFO:__main__:Mapping all network lines onto a single 380kV layer
INFO:__main__:Simplifying connected link components
INFO:__main__:Removing stubs
INFO:__main__:Displacing offwind-ac generator(s) and adding connection costs to capital_costs: 20128 Eur/MW/a for `5718 offwind-ac`
INFO:__main__:Displacing offwind-dc generator(s) and adding connection costs to capital_costs: 14994 Eur/MW/a for `5718 offwind-dc`, 26939 Eur/MW/a for `5724 offwind-dc`, 29621 Eur/MW/a for `5725 offwind-dc`
INFO:pypsa.io:Exported network elec_s.nc has lines, carriers, links, storage_units, loads, buses, generators
[<DATETIME>]
Finished job 3.
9 of 12 steps (75%) done
Once the whole worktree is finished, it should show state so in the terminal:
.. code:: bash
Finished job 0.
12 of 12 steps (100%) done
Complete log: /home/XXXX/pypsa-eur/.snakemake/log/20XX-XX-XXTXX.snakemake.log
snakemake results/networks/elec_s_6_ec_lcopt_Co2L-24H.nc 519,84s user 34,26s system 242% cpu 3:48,83 total
Once the whole worktree is finished, it should state so in the terminal.
You will notice that many intermediate stages are saved, namely the outputs of each individual ``snakemake`` rule.

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2022 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
@ -24,7 +24,7 @@ dependencies:
- yaml
- pytables
- lxml
- powerplantmatching>=0.5.4
- powerplantmatching>=0.5.5
- numpy<1.24
- pandas>=1.4
- geopandas>=0.11.0

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -4,11 +4,11 @@
# SPDX-License-Identifier: MIT
"""
Transforms the global ship density data from
https://datacatalog.worldbank.org/search/dataset/0037580/Global-Shipping-
Traffic-Density to the size of the considered cutout. The global ship density
raster is later used for the exclusion when calculating the offshore
potentials.
Transforms the global ship density data from the `World Bank Data Catalogue.
<https://datacatalog.worldbank.org/search/dataset/0037580/Global-Shipping-Traffic-Density>`_
to the size of the considered cutout. The global ship density raster is later
used for the exclusion when calculating the offshore potentials.
Relevant Settings
-----------------
@ -26,12 +26,15 @@ Relevant Settings
Inputs
------
- ``data/bundle/shipdensity/shipdensity_global.zip``: `Global ship density from <https://datacatalog.worldbank.org/search/dataset/0037580/Global-Shipping-Traffic-Density>`.
- ``data/bundle/shipdensity/shipdensity_global.zip``: `Global ship density from
<https://datacatalog.worldbank.org/search/dataset/0037580/Global-Shipping-Traffic-Density>`_.
Outputs
-------
- ``resources/europe_shipdensity_raster.nc``: Reduced version of `Global ship density from <https://datacatalog.worldbank.org/search/dataset/0037580/` to reduce computation time.
- ``resources/europe_shipdensity_raster.nc``: Reduced version of `Global ship
density from <https://datacatalog.worldbank.org/search/dataset/0037580/`_ to
reduce computation time.
Description
-----------

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright 2019-2022 Fabian Hofmann (TUB, FIAS)
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,8 +1,8 @@
# SPDX-FileCopyrightText: : 2017-2022 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0
version: 0.6.1
version: 0.7.0
tutorial: true
logging:
level: INFO
@ -160,7 +160,7 @@ load:
costs:
year: 2030
version: v0.4.0
version: v0.5.0
rooftop_share: 0.14
fill_values:
FOM: 0