Release v0.3 (#213)
* release_notes: order for release * doc: fix smaller typos and tidy up * config: bump version * doc: fix line references * doc: bump confpy version * envs: update fixed versions yaml * Snakefile: simplify all_elec to all
This commit is contained in:
parent
3ad6340c13
commit
08674a6cda
@ -31,6 +31,6 @@ before_install:
|
|||||||
|
|
||||||
script:
|
script:
|
||||||
- cp ./test/config.test1.yaml ./config.yaml
|
- cp ./test/config.test1.yaml ./config.yaml
|
||||||
- snakemake -j all solve_all_elec_networks
|
- snakemake -j all solve_all_networks
|
||||||
- rm -rf resources/*.nc resources/*.geojson resources/*.h5 networks results
|
- rm -rf resources/*.nc resources/*.geojson resources/*.h5 networks results
|
||||||
# could repeat for more configurations in future
|
# could repeat for more configurations in future
|
||||||
|
@ -21,19 +21,19 @@ wildcard_constraints:
|
|||||||
opts="[-+a-zA-Z0-9\.]*"
|
opts="[-+a-zA-Z0-9\.]*"
|
||||||
|
|
||||||
|
|
||||||
rule cluster_all_elec_networks:
|
rule cluster_all_networks:
|
||||||
input: expand("networks/elec_s{simpl}_{clusters}.nc", **config['scenario'])
|
input: expand("networks/elec_s{simpl}_{clusters}.nc", **config['scenario'])
|
||||||
|
|
||||||
|
|
||||||
rule extra_components_all_elec_networks:
|
rule extra_components_all_networks:
|
||||||
input: expand("networks/elec_s{simpl}_{clusters}_ec.nc", **config['scenario'])
|
input: expand("networks/elec_s{simpl}_{clusters}_ec.nc", **config['scenario'])
|
||||||
|
|
||||||
|
|
||||||
rule prepare_all_elec_networks:
|
rule prepare_all_networks:
|
||||||
input: expand("networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}.nc", **config['scenario'])
|
input: expand("networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}.nc", **config['scenario'])
|
||||||
|
|
||||||
|
|
||||||
rule solve_all_elec_networks:
|
rule solve_all_networks:
|
||||||
input: expand("results/networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}.nc", **config['scenario'])
|
input: expand("results/networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}.nc", **config['scenario'])
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: CC0-1.0
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
version: 0.2.0
|
version: 0.3.0
|
||||||
tutorial: false
|
tutorial: false
|
||||||
|
|
||||||
logging:
|
logging:
|
||||||
|
@ -2,8 +2,9 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: CC0-1.0
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
version: 0.2.0
|
version: 0.3.0
|
||||||
tutorial: true
|
tutorial: true
|
||||||
|
|
||||||
logging:
|
logging:
|
||||||
level: INFO
|
level: INFO
|
||||||
format: '%(levelname)s:%(name)s:%(message)s'
|
format: '%(levelname)s:%(name)s:%(message)s'
|
||||||
|
5
doc/_static/theme_overrides.css
vendored
5
doc/_static/theme_overrides.css
vendored
@ -45,11 +45,6 @@
|
|||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wy-nav-content .highlight .nn,
|
|
||||||
.wy-nav-content .admonition.warning a {
|
|
||||||
color: #dddddd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rst-content code.literal,
|
.rst-content code.literal,
|
||||||
.rst-content tt.literal {
|
.rst-content tt.literal {
|
||||||
color: rgb(34, 97, 156)
|
color: rgb(34, 97, 156)
|
||||||
|
@ -60,7 +60,7 @@ Now a window with the machine details will open. You have to configure the follo
|
|||||||
You can edit your machine configuration later. So use a cheap machine type configuration to transfer data and
|
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.
|
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.
|
Solvers do not parallelise well, so we recommend not to choose more than 8 vCPU.
|
||||||
Check ``snakemake -j -n 1 solve_all_elec_networks`` as a dry run to see how much memory is required.
|
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.
|
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.)
|
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.
|
- 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.
|
||||||
@ -85,7 +85,7 @@ Step 3 - Installation of Cloud SDK
|
|||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install bzip2 libxml2-dev
|
sudo apt-get install bzip2 libxml2-dev
|
||||||
sudo apt-get install wget
|
sudo apt-get install wget
|
||||||
wget https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh (Check the link. To be up to date with anaconda, check the Anaconda website https://www.anaconda.com/products/individual )
|
wget https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh
|
||||||
ls (to see what anaconda file to bash)
|
ls (to see what anaconda file to bash)
|
||||||
bash Anaconda3-2020.07-Linux-x86_64.sh
|
bash Anaconda3-2020.07-Linux-x86_64.sh
|
||||||
source ~/.bashrc
|
source ~/.bashrc
|
||||||
|
@ -74,9 +74,9 @@ author = u'Jonas Hoersch (KIT, FIAS), Fabian Hofmann (FIAS), David Schlachtberge
|
|||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = u'0.2'
|
version = u'0.3'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = u'0.2.0'
|
release = u'0.3.0'
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Trigger, Description, Definition, Status
|
Trigger, Description, Definition, Status
|
||||||
``nH``; i.e. ``2H``-``6H``, Resample the time-resolution by averaging over every ``n`` snapshots, ``prepare_network``: `average_every_nhours() <https://github.com/PyPSA/pypsa-eur/blob/6b964540ed39d44079cdabddee8333f486d0cd63/scripts/prepare_network.py#L110>`_ and its `caller <https://github.com/PyPSA/pypsa-eur/blob/6b964540ed39d44079cdabddee8333f486d0cd63/scripts/prepare_network.py#L146>`_), In active use
|
``nH``; i.e. ``2H``-``6H``, Resample the time-resolution by averaging over every ``n`` snapshots, ``prepare_network``: `average_every_nhours() <https://github.com/PyPSA/pypsa-eur/blob/6b964540ed39d44079cdabddee8333f486d0cd63/scripts/prepare_network.py#L110>`_ and its `caller <https://github.com/PyPSA/pypsa-eur/blob/6b964540ed39d44079cdabddee8333f486d0cd63/scripts/prepare_network.py#L146>`_), In active use
|
||||||
``nSEG``; e.g. ``4380SEG``, "Apply time series segmentation with `tsam <https://tsam.readthedocs.io/en/latest/index.html>`_ package to ``n`` adjacent snapshots of varying lengths based on capacity factors of varying renewables, hydro inflow and load.", ``prepare_network``: ``apply_time_segmentation(), In active use
|
``nSEG``; e.g. ``4380SEG``, "Apply time series segmentation with `tsam <https://tsam.readthedocs.io/en/latest/index.html>`_ package to ``n`` adjacent snapshots of varying lengths based on capacity factors of varying renewables, hydro inflow and load.", ``prepare_network``: apply_time_segmentation(), In active use
|
||||||
``Co2L``, Add an overall absolute carbon-dioxide emissions limit configured in ``electricity: co2limit``. If a float is appended an overall emission limit relative to the emission level given in ``electricity: co2base`` is added (e.g. ``Co2L0.05`` limits emissisions to 5% of what is given in ``electricity: co2base``), ``prepare_network``: `add_co2limit() <https://github.com/PyPSA/pypsa-eur/blob/6b964540ed39d44079cdabddee8333f486d0cd63/scripts/prepare_network.py#L19>`_ and its `caller <https://github.com/PyPSA/pypsa-eur/blob/6b964540ed39d44079cdabddee8333f486d0cd63/scripts/prepare_network.py#L154>`_, In active use
|
``Co2L``, Add an overall absolute carbon-dioxide emissions limit configured in ``electricity: co2limit``. If a float is appended an overall emission limit relative to the emission level given in ``electricity: co2base`` is added (e.g. ``Co2L0.05`` limits emissisions to 5% of what is given in ``electricity: co2base``), ``prepare_network``: `add_co2limit() <https://github.com/PyPSA/pypsa-eur/blob/6b964540ed39d44079cdabddee8333f486d0cd63/scripts/prepare_network.py#L19>`_ and its `caller <https://github.com/PyPSA/pypsa-eur/blob/6b964540ed39d44079cdabddee8333f486d0cd63/scripts/prepare_network.py#L154>`_, In active use
|
||||||
``Ep``, Add cost for a carbon-dioxide price configured in ``costs: emission_prices: co2`` to ``marginal_cost`` of generators (other emission types listed in ``network.carriers`` possible as well), ``prepare_network``: `add_emission_prices() <https://github.com/PyPSA/pypsa-eur/blob/6b964540ed39d44079cdabddee8333f486d0cd63/scripts/prepare_network.py#L24>`_ and its `caller <https://github.com/PyPSA/pypsa-eur/blob/6b964540ed39d44079cdabddee8333f486d0cd63/scripts/prepare_network.py#L158>`_, In active use
|
``Ep``, Add cost for a carbon-dioxide price configured in ``costs: emission_prices: co2`` to ``marginal_cost`` of generators (other emission types listed in ``network.carriers`` possible as well), ``prepare_network``: `add_emission_prices() <https://github.com/PyPSA/pypsa-eur/blob/6b964540ed39d44079cdabddee8333f486d0cd63/scripts/prepare_network.py#L24>`_ and its `caller <https://github.com/PyPSA/pypsa-eur/blob/6b964540ed39d44079cdabddee8333f486d0cd63/scripts/prepare_network.py#L158>`_, In active use
|
||||||
``CCL``, Add minimum and maximum levels of generator nominal capacity per carrier for individual countries. These can be specified in the file linked at ``electricity: agg_p_nom_limits`` in the configuration. File defaults to ``data/agg_p_nom_minmax.csv``., ``solve_network``, In active use
|
``CCL``, Add minimum and maximum levels of generator nominal capacity per carrier for individual countries. These can be specified in the file linked at ``electricity: agg_p_nom_limits`` in the configuration. File defaults to ``data/agg_p_nom_minmax.csv``., ``solve_network``, In active use
|
||||||
|
|
@ -18,7 +18,7 @@ Top-level configuration
|
|||||||
|
|
||||||
.. literalinclude:: ../config.default.yaml
|
.. literalinclude:: ../config.default.yaml
|
||||||
:language: yaml
|
:language: yaml
|
||||||
:lines: 5-12,21,28-34
|
:lines: 5-12,20,27-34
|
||||||
|
|
||||||
.. csv-table::
|
.. csv-table::
|
||||||
:header-rows: 1
|
:header-rows: 1
|
||||||
@ -40,9 +40,9 @@ facilitate running multiple scenarios through a single command
|
|||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
snakemake -j 1 solve_all_elec_networks
|
snakemake -j 1 solve_all_networks
|
||||||
|
|
||||||
For each wildcard, a **list of values** is provided. The rule ``solve_all_elec_networks`` will trigger the rules for creating ``results/networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}.nc`` for **all combinations** of the provided wildcard values as defined by Python's `itertools.product(...) <https://docs.python.org/2/library/itertools.html#itertools.product>`_ function that snakemake's `expand(...) function <https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#targets>`_ uses.
|
For each wildcard, a **list of values** is provided. The rule ``solve_all_networks`` will trigger the rules for creating ``results/networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}.nc`` for **all combinations** of the provided wildcard values as defined by Python's `itertools.product(...) <https://docs.python.org/2/library/itertools.html#itertools.product>`_ function that snakemake's `expand(...) function <https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#targets>`_ uses.
|
||||||
|
|
||||||
An exemplary dependency graph (starting from the simplification rules) then looks like this:
|
An exemplary dependency graph (starting from the simplification rules) then looks like this:
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ Specifies the temporal range to build an energy system model for as arguments to
|
|||||||
|
|
||||||
.. literalinclude:: ../config.default.yaml
|
.. literalinclude:: ../config.default.yaml
|
||||||
:language: yaml
|
:language: yaml
|
||||||
:lines: 36-55
|
:lines: 36-60
|
||||||
|
|
||||||
.. csv-table::
|
.. csv-table::
|
||||||
:header-rows: 1
|
:header-rows: 1
|
||||||
@ -241,7 +241,6 @@ Specifies the temporal range to build an energy system model for as arguments to
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
To change cost assumptions in more detail (i.e. other than ``marginal_cost`` and ``capital_cost``), consider modifying cost assumptions directly in ``data/costs.csv`` as this is not yet supported through the config file.
|
To change cost assumptions in more detail (i.e. other than ``marginal_cost`` and ``capital_cost``), consider modifying cost assumptions directly in ``data/costs.csv`` as this is not yet supported through the config file.
|
||||||
|
|
||||||
You can also build multiple different cost databases. Make a renamed copy of ``data/costs.csv`` (e.g. ``data/costs-optimistic.csv``) and set the variable ``COSTS=data/costs-optimistic.csv`` in the ``Snakefile``.
|
You can also build multiple different cost databases. Make a renamed copy of ``data/costs.csv`` (e.g. ``data/costs-optimistic.csv``) and set the variable ``COSTS=data/costs-optimistic.csv`` in the ``Snakefile``.
|
||||||
|
|
||||||
.. _solving_cf:
|
.. _solving_cf:
|
||||||
|
@ -12,7 +12,7 @@ be it with new ideas, suggestions, by filing bug reports or contributing code
|
|||||||
to our `GitHub repository <https://github.com/PyPSA/PyPSA-Eur>`_.
|
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 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..
|
* 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.
|
||||||
* If you start working on a feature in the code, let us know by opening an issue or a draft pull request.
|
* If you start working on a feature in the code, let us know by opening an issue or a draft pull request.
|
||||||
This helps all of us to keep an overview on what is being done and helps to avoid a situation where we
|
This helps all of us to keep an overview on what is being done and helps to avoid a situation where we
|
||||||
are doing the same work twice in parallel.
|
are doing the same work twice in parallel.
|
||||||
|
@ -32,7 +32,7 @@ Based on the parameters above the ``marginal_cost`` and ``capital_cost`` of the
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Another great resource for `cost assumptions <https://ens.dk/en/our-services/projections-and-models/technology-data`_ is the cost database from the Danish Energy Agency.
|
Another great resource for cost assumptions is the `cost database from the Danish Energy Agency <https://ens.dk/en/our-services/projections-and-models/technology-data>`_.
|
||||||
|
|
||||||
Modifying Cost Assumptions
|
Modifying Cost Assumptions
|
||||||
==========================
|
==========================
|
||||||
|
@ -42,6 +42,8 @@ It contains alternating current lines at and above 220 kV voltage level and all
|
|||||||
The model is suitable both for operational studies and generation and transmission expansion planning studies. The continental scope and highly resolved spatial scale enables a proper description of the long-range smoothing effects for renewable power generation and their varying resource availability.
|
The model is suitable both for operational studies and generation and transmission expansion planning studies. The continental scope and highly resolved spatial scale enables a proper description of the long-range smoothing effects for renewable power generation and their varying resource availability.
|
||||||
|
|
||||||
.. image:: img/base.png
|
.. image:: img/base.png
|
||||||
|
:width: 50%
|
||||||
|
:align: center
|
||||||
|
|
||||||
The restriction to freely available and open data encourages the open exchange of model data developments and eases the comparison of model results. It provides a full, automated software pipeline to assemble the load-flow-ready model from the original datasets, which enables easy replacement and improvement of the individual parts.
|
The restriction to freely available and open data encourages the open exchange of model data developments and eases the comparison of model results. It provides a full, automated software pipeline to assemble the load-flow-ready model from the original datasets, which enables easy replacement and improvement of the individual parts.
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ Clone the Repository
|
|||||||
|
|
||||||
First of all, clone the `PyPSA-Eur repository <https://github.com/PyPSA/pypsa-eur>`_ using the version control system ``git``.
|
First of all, clone the `PyPSA-Eur repository <https://github.com/PyPSA/pypsa-eur>`_ using the version control system ``git``.
|
||||||
The path to the directory into which the ``git repository`` is cloned, must **not** have any spaces!
|
The path to the directory into which the ``git repository`` is cloned, must **not** have any spaces!
|
||||||
|
If you do not have ``git`` installed, follow installation instructions `here <https://git-scm.com/book/en/v2/Getting-Started-Installing-Git>`_.
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
@ -24,8 +25,6 @@ The path to the directory into which the ``git repository`` is cloned, must **no
|
|||||||
|
|
||||||
/some/path/without/spaces % git clone https://github.com/PyPSA/pypsa-eur.git
|
/some/path/without/spaces % git clone https://github.com/PyPSA/pypsa-eur.git
|
||||||
|
|
||||||
.. note::
|
|
||||||
If you do not have ``git`` installed, follow installation instructions `here <https://git-scm.com/book/en/v2/Getting-Started-Installing-Git>`_.
|
|
||||||
|
|
||||||
.. _deps:
|
.. _deps:
|
||||||
|
|
||||||
@ -46,7 +45,6 @@ The environment can be installed and activated using
|
|||||||
|
|
||||||
.../pypsa-eur % conda activate pypsa-eur
|
.../pypsa-eur % conda activate pypsa-eur
|
||||||
|
|
||||||
.. note::
|
|
||||||
Note that activation is local to the currently open shell!
|
Note that activation is local to the currently open shell!
|
||||||
After opening a new terminal window, one needs to reissue the second command!
|
After opening a new terminal window, one needs to reissue the second command!
|
||||||
|
|
||||||
@ -74,25 +72,23 @@ PyPSA is known to work with the free software
|
|||||||
- `Cbc <https://projects.coin-or.org/Cbc#DownloadandInstall>`_
|
- `Cbc <https://projects.coin-or.org/Cbc#DownloadandInstall>`_
|
||||||
- `GLPK <https://www.gnu.org/software/glpk/>`_ (`WinGLKP <http://winglpk.sourceforge.net/>`_)
|
- `GLPK <https://www.gnu.org/software/glpk/>`_ (`WinGLKP <http://winglpk.sourceforge.net/>`_)
|
||||||
|
|
||||||
and the non-free, commercial software (for which free academic licenses are available)
|
and the non-free, commercial software (for some of which free academic licenses are available)
|
||||||
|
|
||||||
- `Gurobi <https://www.gurobi.com/documentation/quickstart.html>`_
|
- `Gurobi <https://www.gurobi.com/documentation/quickstart.html>`_
|
||||||
- `CPLEX <https://www.ibm.com/products/ilog-cplex-optimization-studio>`_
|
- `CPLEX <https://www.ibm.com/products/ilog-cplex-optimization-studio>`_
|
||||||
|
- `FICO® Xpress Solver <https://www.fico.com/de/products/fico-xpress-solver>`_
|
||||||
|
|
||||||
and any other solver that works with the underlying modelling framework `Pyomo <http://www.pyomo.org/>`_.
|
|
||||||
For installation instructions of these solvers for your operating system, follow the links above.
|
For installation instructions of these solvers for your operating system, follow the links above.
|
||||||
|
Commercial solvers such as Gurobi and CPLEX currently significantly outperform open-source solvers for large-scale problems.
|
||||||
|
It might be the case that you can only retrieve solutions by using a commercial solver.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
`Getting a solver in the PyPSA documentation <https://pypsa.readthedocs.io/en/latest/installation.html#getting-a-solver-for-linear-optimisation>`_
|
`Getting a solver in the PyPSA documentation <https://pypsa.readthedocs.io/en/latest/installation.html#getting-a-solver-for-linear-optimisation>`_
|
||||||
|
|
||||||
.. note::
|
|
||||||
Commercial solvers such as Gurobi and CPLEX currently significantly outperform open-source solvers for large-scale problems.
|
|
||||||
It might be the case that you can only retrieve solutions by using a commercial solver.
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
The rules :mod:`cluster_network` and :mod:`simplify_network` solve a quadratic optimisation problem for clustering.
|
The rules :mod:`cluster_network` and :mod:`simplify_network` solve a quadratic optimisation problem for clustering.
|
||||||
The open-source solvers Cbc and GlPK cannot handle this. A fallback to Ipopt is implemented in this case, but requires
|
The open-source solvers Cbc and GlPK cannot handle this. A fallback to Ipopt is implemented in this case, but requires
|
||||||
also Ipopt to be installed. For an open-source solver setup install in your `conda` environment on OSX/Linux
|
also Ipopt to be installed. For an open-source solver setup install in your ``conda`` environment on OSX/Linux
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
|
@ -64,4 +64,6 @@ Folder Structure
|
|||||||
System Requirements
|
System Requirements
|
||||||
===================
|
===================
|
||||||
|
|
||||||
Building the model with the scripts in this repository uses up to 20 GB of memory. Computing optimal investment and operation scenarios requires a strong interior-point solver compatible with the modelling library `Pyomo <https://www.pyomo.org>`_ like `Gurobi <http://www.gurobi.com/>`_ or `CPLEX <https://www.ibm.com/analytics/cplex-optimizer>`_ with up to 100 GB of memory.
|
Building the model with the scripts in this repository runs on a normal computer.
|
||||||
|
But computing optimal investment and operation scenarios requires a strong interior-point solver
|
||||||
|
like `Gurobi <http://www.gurobi.com/>`_ or `CPLEX <https://www.ibm.com/analytics/cplex-optimizer>`_ with more memory.
|
||||||
|
@ -11,70 +11,114 @@ Release Notes
|
|||||||
Upcoming Release
|
Upcoming Release
|
||||||
================
|
================
|
||||||
|
|
||||||
|
|
||||||
|
PyPSA-Eur 0.3.0 (7th December 2020)
|
||||||
|
==================================
|
||||||
|
|
||||||
|
**New Features**
|
||||||
|
|
||||||
|
Using the ``{opts}`` wildcard for scenarios:
|
||||||
|
|
||||||
* An option is introduced which adds constraints such that each country or node produces on average a minimal share of its total consumption itself.
|
* An option is introduced which adds constraints such that each country or node produces on average a minimal share of its total consumption itself.
|
||||||
For example ``EQ0.5c`` set in the ``{opts}`` wildcard requires each country to produce on average at least 50% of its consumption. Additionally,
|
For example ``EQ0.5c`` set in the ``{opts}`` wildcard requires each country to produce on average at least 50% of its consumption. Additionally,
|
||||||
the option ``ATK`` requires autarky at each node and removes all means of power transmission through lines and links. ``ATKc`` only removes
|
the option ``ATK`` requires autarky at each node and removes all means of power transmission through lines and links. ``ATKc`` only removes
|
||||||
cross-border transfer capacities. Moreover, line and link capacities can be capped in the ``config.yaml`` at
|
cross-border transfer capacities.
|
||||||
``lines: s_nom_max:`` and ``links: p_nom_max`` (`#166 <https://github.com/PyPSA/pypsa-eur/pull/166>`_).
|
[`#166 <https://github.com/PyPSA/pypsa-eur/pull/166>`_].
|
||||||
|
|
||||||
* Added an option to alter the capital cost (``c``) or installable potentials (``p``) of carriers by a factor via ``carrier+{c,p}factor`` in the ``{opts}`` wildcard.
|
* Added an option to alter the capital cost (``c``) or installable potentials (``p``) of carriers by a factor via ``carrier+{c,p}factor`` in the ``{opts}`` wildcard.
|
||||||
This can be useful for exploring uncertain cost parameters.
|
This can be useful for exploring uncertain cost parameters.
|
||||||
Example: ``solar+c0.5`` reduces the capital cost of solar to 50% of original values
|
Example: ``solar+c0.5`` reduces the capital cost of solar to 50% of original values
|
||||||
(`#167 <https://github.com/PyPSA/pypsa-eur/pull/167>`_ and `#207 <https://github.com/PyPSA/pypsa-eur/pull/207>`_).
|
[`#167 <https://github.com/PyPSA/pypsa-eur/pull/167>`_, `#207 <https://github.com/PyPSA/pypsa-eur/pull/207>`_].
|
||||||
|
|
||||||
* Add compatibility for pyomo 5.7.0 in :mod:`cluster_network` and :mod:`simplify_network`.
|
|
||||||
|
|
||||||
* Raise a warning if `tech_colors` in the config are not defined for all carriers.
|
|
||||||
|
|
||||||
* Corrected HVDC link connections (a) between Norway and Denmark and (b) mainland Italy, Corsica (FR) and Sardinia (IT) (`#181 <https://github.com/PyPSA/pypsa-eur/pull/181>`_)
|
|
||||||
|
|
||||||
* Added Google Cloud Platform tutorial (for Windows users).
|
|
||||||
|
|
||||||
* Corrected setting of exogenous emission price (in config -> cost -> emission price). This was not weighted by the efficiency and effective emission of the generators. Fixed in `#171 <https://github.com/PyPSA/pypsa-eur/pull/171>`_.
|
|
||||||
|
|
||||||
* Don't remove capital costs from lines and links, when imposing a line volume limit (wildcard ``lv``) or a line cost limit (``lc``). Previously, these were removed to move the expansion in direction of the limit.
|
|
||||||
|
|
||||||
* Add renewable power plants from `OPSD <https://data.open-power-system-data.org/renewable_power_plants/2020-08-25>`_ to the network for specified technologies. This will overwrite the capacities calculated from the heuristic approach in :func:`estimate_renewable_capacities()`.
|
|
||||||
|
|
||||||
* Fix bug of clustering offwind-{ac,dc} sites in the option of high-resolution sites for renewables. Now, there are more sites for offwind-{ac,dc} available than network nodes. Before, they were clustered to the resolution of the network. (e.g. elec_s1024_37m.nc: 37 network nodes, 1024 sites)
|
|
||||||
|
|
||||||
* Use `mamba` (https://github.com/mamba-org/mamba) for faster Travis CI builds (`#196 <https://github.com/PyPSA/pypsa-eur/pull/196>`_)
|
|
||||||
|
|
||||||
* The N-1 security margin for transmission lines is now fixed to a provided value in ``config.yaml``, removing an undocumented linear interpolation between 0.5 and 0.7 in the range between 37 and 200 nodes.
|
|
||||||
|
|
||||||
* The mappings for clustered lines and buses produced by the ``simplify_network`` and ``cluster_network`` rules changed from Hierarchical Data Format (.h5) to Comma-Separated Values format (.csv) (`#198 <https://github.com/PyPSA/pypsa-eur/pull/198>`_)
|
|
||||||
|
|
||||||
* Multiple smaller changes: Removed unused ``{network}`` wildcard, moved environment files to dedicated ``envs`` folder,
|
|
||||||
removed sector-coupling components from configuration files, minor refactoring and code cleaning (`#190 <https://github.com/PyPSA/pypsa-eur/pull 190>`_).
|
|
||||||
|
|
||||||
* Added an option to use custom busmaps in rule :mod:`cluster_network`. To use this feature set ``enable: custom_busmap: true``.
|
|
||||||
Then, the rule looks for custom busmaps at ``data/custom_busmap_elec_s{simpl}_{clusters}.csv``,
|
|
||||||
which should have the same format as ``resources/busmap_elec_s{simpl}_{clusters}.csv``.
|
|
||||||
i.e. the index should contain the buses of ``networks/elec_s{simpl}.nc`` (`#193 <https://github.com/PyPSA/pypsa-eur/pull/193>`_).
|
|
||||||
|
|
||||||
* Fixed a bug for storage units such that individual store and dispatch efficiencies are correctly taken account of rather than only their round-trip efficiencies.
|
|
||||||
In the cost database (``data/costs.csv``) the efficiency of battery inverters should be stated as per discharge/charge rather than per roundtrip (`#202 <https://github.com/PyPSA/pypsa-eur/pull/202>_).
|
|
||||||
|
|
||||||
* Parameter corrections for East-Western and Anglo-Scottish interconnectors (`#206 <https://github.com/PyPSA/pypsa-eur/pull/206>`_)
|
|
||||||
|
|
||||||
* Modelling hydrogen and battery storage with Store and Link components is now the default, rather than using StorageUnit components with fixed power-to-energy ratio (`#205 <https://github.com/PyPSA/pypsa-eur/pull/205>`_).
|
|
||||||
|
|
||||||
* Electricity consumption data is now directly retrieved from the `OPSD website <https://data.open-power-system-data.org/time_series/2019-06-05>`_ using the rule ``build_load_data``. The user can decide whether to take the ENTSOE power statistics data (defaul) or the ENTSOE transparency data.
|
|
||||||
|
|
||||||
* Added an option to the ``{opts}`` wildcard that applies a time series segmentation algorithm based on renewables, hydro inflow and load time series
|
* Added an option to the ``{opts}`` wildcard that applies a time series segmentation algorithm based on renewables, hydro inflow and load time series
|
||||||
to produce a given total number of adjacent snapshots of varying lengths.
|
to produce a given total number of adjacent snapshots of varying lengths.
|
||||||
This feature is an alternative to downsampling the temporal resolution by simply averaging and
|
This feature is an alternative to downsampling the temporal resolution by simply averaging and
|
||||||
uses the `tsam <https://tsam.readthedocs.io/en/latest/index.html>`_ package
|
uses the `tsam <https://tsam.readthedocs.io/en/latest/index.html>`_ package
|
||||||
(#186 <https://github.com/PyPSA/pypsa-eur/pull/186>`_).
|
[`#186 <https://github.com/PyPSA/pypsa-eur/pull/186>`_].
|
||||||
|
|
||||||
|
More OPSD integration:
|
||||||
|
|
||||||
|
* Add renewable power plants from `OPSD <https://data.open-power-system-data.org/renewable_power_plants/2020-08-25>`_ to the network for specified technologies.
|
||||||
|
This will overwrite the capacities calculated from the heuristic approach in :func:`estimate_renewable_capacities()`
|
||||||
|
[`#212 <https://github.com/PyPSA/pypsa-eur/pull/212>`_].
|
||||||
|
|
||||||
|
* Electricity consumption data is now retrieved directly from the `OPSD website <https://data.open-power-system-data.org/time_series/2019-06-05>`_ using the rule :mod:`build_load_data`.
|
||||||
|
The user can decide whether to take the ENTSO-E power statistics data (default) or the ENTSO-E transparency data
|
||||||
|
[`#211 <https://github.com/PyPSA/pypsa-eur/pull/211>`_].
|
||||||
|
|
||||||
|
Other:
|
||||||
|
|
||||||
|
* Added an option to use custom busmaps in rule :mod:`cluster_network`. To use this feature set ``enable: custom_busmap: true``.
|
||||||
|
Then, the rule looks for custom busmaps at ``data/custom_busmap_elec_s{simpl}_{clusters}.csv``,
|
||||||
|
which should have the same format as ``resources/busmap_elec_s{simpl}_{clusters}.csv``.
|
||||||
|
i.e. the index should contain the buses of ``networks/elec_s{simpl}.nc``
|
||||||
|
[`#193 <https://github.com/PyPSA/pypsa-eur/pull/193>`_].
|
||||||
|
|
||||||
|
* Line and link capacities can be capped in the ``config.yaml`` at ``lines: s_nom_max:`` and ``links: p_nom_max``:
|
||||||
|
[`#166 <https://github.com/PyPSA/pypsa-eur/pull/166>`_].
|
||||||
|
|
||||||
|
* Added Google Cloud Platform tutorial (for Windows users)
|
||||||
|
[`#177 <https://github.com/PyPSA/pypsa-eur/pull/177>`_].
|
||||||
|
|
||||||
|
**Changes**
|
||||||
|
|
||||||
|
* Don't remove capital costs from lines and links, when imposing a line volume limit (``lv``) or a line cost limit (``lc``).
|
||||||
|
Previously, these were removed to move the expansion in direction of the limit
|
||||||
|
[`#183 <https://github.com/PyPSA/pypsa-eur/pull/183>`_].
|
||||||
|
|
||||||
|
* The mappings for clustered lines and buses produced by the :mod:`simplify_network` and :mod:`cluster_network` rules
|
||||||
|
changed from Hierarchical Data Format (``.h5``) to Comma-Separated Values format (``.csv``) for ease of use.
|
||||||
|
[`#198 <https://github.com/PyPSA/pypsa-eur/pull/198>`_]
|
||||||
|
|
||||||
|
* The N-1 security margin for transmission lines is now fixed to a provided value in ``config.yaml``,
|
||||||
|
removing an undocumented linear interpolation between 0.5 and 0.7 in the range between 37 and 200 nodes.
|
||||||
|
[`#199 <https://github.com/PyPSA/pypsa-eur/pull/199>`_].
|
||||||
|
|
||||||
|
* Modelling hydrogen and battery storage with Store and Link components is now the default,
|
||||||
|
rather than using StorageUnit components with fixed power-to-energy ratio
|
||||||
|
[`#205 <https://github.com/PyPSA/pypsa-eur/pull/205>`_].
|
||||||
|
|
||||||
|
* Use ``mamba`` (https://github.com/mamba-org/mamba) for faster Travis CI builds
|
||||||
|
[`#196 <https://github.com/PyPSA/pypsa-eur/pull/196>`_].
|
||||||
|
|
||||||
|
* Multiple smaller changes: Removed unused ``{network}`` wildcard, moved environment files to dedicated ``envs`` folder,
|
||||||
|
removed sector-coupling components from configuration files, updated documentation colors, minor refactoring and code cleaning
|
||||||
|
[`#190 <https://github.com/PyPSA/pypsa-eur/pull 190>`_].
|
||||||
|
|
||||||
|
**Bugs and Compatibility**
|
||||||
|
|
||||||
|
* Add compatibility for pyomo 5.7.0 in :mod:`cluster_network` and :mod:`simplify_network`
|
||||||
|
[`#172 <https://github.com/PyPSA/pypsa-eur/pull/172>`_].
|
||||||
|
|
||||||
|
* Fixed a bug for storage units such that individual store and dispatch efficiencies are correctly taken account of rather than only their round-trip efficiencies.
|
||||||
|
In the cost database (``data/costs.csv``) the efficiency of battery inverters should be stated as per discharge/charge rather than per roundtrip
|
||||||
|
[`#202 <https://github.com/PyPSA/pypsa-eur/pull/202>`_].
|
||||||
|
|
||||||
|
* Corrected exogenous emission price setting (in ``config: cost: emission price:``),
|
||||||
|
which now correctly accounts for the efficiency and effective emission of the generators
|
||||||
|
[`#171 <https://github.com/PyPSA/pypsa-eur/pull/171>`_].
|
||||||
|
|
||||||
|
* Corrected HVDC link connections (a) between Norway and Denmark and (b) mainland Italy, Corsica (FR) and Sardinia (IT)
|
||||||
|
as well as for East-Western and Anglo-Scottish interconnectors
|
||||||
|
[`#181 <https://github.com/PyPSA/pypsa-eur/pull/181>`_, `#206 <https://github.com/PyPSA/pypsa-eur/pull/206>`_].
|
||||||
|
|
||||||
|
* Fix bug of clustering ``offwind-{ac,dc}`` generators in the option of high-resolution generators for renewables.
|
||||||
|
Now, there are more sites for ``offwind-{ac,dc}`` available than network nodes.
|
||||||
|
Before, they were clustered to the resolution of the network (``elec_s1024_37m.nc``: 37 network nodes, 1024 generators)
|
||||||
|
[`#191 <https://github.com/PyPSA/pypsa-eur/pull/191>`_].
|
||||||
|
|
||||||
|
* Raise a warning if ``tech_colors`` in the config are not defined for all carriers
|
||||||
|
[`#178 <https://github.com/PyPSA/pypsa-eur/pull/178>`_].
|
||||||
|
|
||||||
|
|
||||||
PyPSA-Eur 0.2.0 (8th June 2020)
|
PyPSA-Eur 0.2.0 (8th June 2020)
|
||||||
==================================
|
==================================
|
||||||
|
|
||||||
* The optimization is now performed using the ``pyomo=False`` setting in the :func:`pypsa.lopf.network_lopf`. This speeds up the solving process significantly and consumes much less memory. The inclusion of additional constraints were adjusted to the new implementation. They are all passed to the :func:`network_lopf` function via the ``extra_functionality`` argument. The rule ``trace_solve_network`` was integrated into the rule :mod:`solve_network` and can be activated via configuration with ``solving: options: track_iterations: true``. The charging and discharging capacities of batteries modelled as store-link combination are now coupled (`#116 <https://github.com/PyPSA/pypsa-eur/pull/116>`_).
|
* The optimization is now performed using the ``pyomo=False`` setting in the :func:`pypsa.lopf.network_lopf`. This speeds up the solving process significantly and consumes much less memory. The inclusion of additional constraints were adjusted to the new implementation. They are all passed to the :func:`network_lopf` function via the ``extra_functionality`` argument. The rule ``trace_solve_network`` was integrated into the rule :mod:`solve_network` and can be activated via configuration with ``solving: options: track_iterations: true``. The charging and discharging capacities of batteries modelled as store-link combination are now coupled [`#116 <https://github.com/PyPSA/pypsa-eur/pull/116>`_].
|
||||||
|
|
||||||
* An updated extract of the `ENTSO-E Transmission System Map <https://www.entsoe.eu/data/map/>`_ (including Malta) was added to the repository using the `GridKit <https://github.com/PyPSA/GridKit>`_ tool. This tool has been updated to retrieve up-to-date map extracts using a single `script <https://github.com/PyPSA/GridKit/blob/master/entsoe/runall_in_docker.sh>`_. The update extract features 5322 buses, 6574 lines, 46 links. (`#118 <https://github.com/PyPSA/pypsa-eur/pull/118>`_).
|
* An updated extract of the `ENTSO-E Transmission System Map <https://www.entsoe.eu/data/map/>`_ (including Malta) was added to the repository using the `GridKit <https://github.com/PyPSA/GridKit>`_ tool. This tool has been updated to retrieve up-to-date map extracts using a single `script <https://github.com/PyPSA/GridKit/blob/master/entsoe/runall_in_docker.sh>`_. The update extract features 5322 buses, 6574 lines, 46 links. [`#118 <https://github.com/PyPSA/pypsa-eur/pull/118>`_].
|
||||||
|
|
||||||
* Added `FSFE REUSE <https://reuse.software>`_ compliant license information. Documentation now licensed under CC-BY-4.0 (`#160 <https://github.com/PyPSA/pypsa-eur/pull/160>`_).
|
* Added `FSFE REUSE <https://reuse.software>`_ compliant license information. Documentation now licensed under CC-BY-4.0 [`#160 <https://github.com/PyPSA/pypsa-eur/pull/160>`_].
|
||||||
|
|
||||||
* Added a 30 minute `video introduction <https://pypsa-eur.readthedocs.io/en/latest/introduction.html>`_ and a 20 minute `video tutorial <https://pypsa-eur.readthedocs.io/en/latest/tutorial.html>`_
|
* Added a 30 minute `video introduction <https://pypsa-eur.readthedocs.io/en/latest/introduction.html>`_ and a 20 minute `video tutorial <https://pypsa-eur.readthedocs.io/en/latest/tutorial.html>`_
|
||||||
|
|
||||||
@ -82,19 +126,19 @@ PyPSA-Eur 0.2.0 (8th June 2020)
|
|||||||
|
|
||||||
* Added an option to skip iterative solving usually performed to update the line impedances of expanded lines at ``solving: options: skip_iterations:``.
|
* Added an option to skip iterative solving usually performed to update the line impedances of expanded lines at ``solving: options: skip_iterations:``.
|
||||||
|
|
||||||
* ``snakemake`` rules for retrieving cutouts and the natura raster can now be disabled independently from their respective rules to build them; via ``config.*yaml`` (`#136 <https://github.com/PyPSA/pypsa-eur/pull/136>`_).
|
* ``snakemake`` rules for retrieving cutouts and the natura raster can now be disabled independently from their respective rules to build them; via ``config.*yaml`` [`#136 <https://github.com/PyPSA/pypsa-eur/pull/136>`_].
|
||||||
|
|
||||||
* Removed the ``id`` column for custom power plants in ``data/custom_powerplants.csv`` to avoid custom power plants with conflicting ids getting attached to the wrong bus (`#131 <https://github.com/PyPSA/pypsa-eur/pull/131>`_).
|
* Removed the ``id`` column for custom power plants in ``data/custom_powerplants.csv`` to avoid custom power plants with conflicting ids getting attached to the wrong bus [`#131 <https://github.com/PyPSA/pypsa-eur/pull/131>`_].
|
||||||
|
|
||||||
* Add option ``renewables: {carrier}: keep_all_available_areas:`` to use all availabe weather cells for renewable profile and potential generation. The default ignores weather cells where only less than 1 MW can be installed (`#150 <https://github.com/PyPSA/pypsa-eur/pull/150>`_).
|
* Add option ``renewables: {carrier}: keep_all_available_areas:`` to use all availabe weather cells for renewable profile and potential generation. The default ignores weather cells where only less than 1 MW can be installed [`#150 <https://github.com/PyPSA/pypsa-eur/pull/150>`_].
|
||||||
|
|
||||||
* Added a function ``_helpers.load_network()`` which loads a network with overridden components specified in ``snakemake.config['override_components']`` (`#128 <https://github.com/PyPSA/pypsa-eur/pull/128>`_).
|
* Added a function ``_helpers.load_network()`` which loads a network with overridden components specified in ``snakemake.config['override_components']`` [`#128 <https://github.com/PyPSA/pypsa-eur/pull/128>`_].
|
||||||
|
|
||||||
* Bugfix in :mod:`base_network` which now finds all closest links, not only the first entry (`#143 <https://github.com/PyPSA/pypsa-eur/pull/143>`_).
|
* Bugfix in :mod:`base_network` which now finds all closest links, not only the first entry [`#143 <https://github.com/PyPSA/pypsa-eur/pull/143>`_].
|
||||||
|
|
||||||
* Bugfix in :mod:`cluster_network` which now skips recalculation of link parameters if there are no links (`#149 <https://github.com/PyPSA/pypsa-eur/pull/149>`_).
|
* Bugfix in :mod:`cluster_network` which now skips recalculation of link parameters if there are no links [`#149 <https://github.com/PyPSA/pypsa-eur/pull/149>`_].
|
||||||
|
|
||||||
* Added information on pull requests to contribution guidelines (`#151 <https://github.com/PyPSA/pypsa-eur/pull/151>`_).
|
* Added information on pull requests to contribution guidelines [`#151 <https://github.com/PyPSA/pypsa-eur/pull/151>`_].
|
||||||
|
|
||||||
* Improved documentation on open-source solver setup and added usage warnings.
|
* Improved documentation on open-source solver setup and added usage warnings.
|
||||||
|
|
||||||
@ -105,31 +149,31 @@ PyPSA-Eur 0.1.0 (9th January 2020)
|
|||||||
|
|
||||||
This is the first release of PyPSA-Eur, a model of the European power system at the transmission network level. Recent changes include:
|
This is the first release of PyPSA-Eur, a model of the European power system at the transmission network level. Recent changes include:
|
||||||
|
|
||||||
* Documentation on installation, workflows and configuration settings is now available online at `pypsa-eur.readthedocs.io <pypsa-eur.readthedocs.io>`_ (`#65 <https://github.com/PyPSA/pypsa-eur/pull/65>`_).
|
* Documentation on installation, workflows and configuration settings is now available online at `pypsa-eur.readthedocs.io <pypsa-eur.readthedocs.io>`_ [`#65 <https://github.com/PyPSA/pypsa-eur/pull/65>`_].
|
||||||
|
|
||||||
* The ``conda`` environment files were updated and extended (`#81 <https://github.com/PyPSA/pypsa-eur/pull/81>`_).
|
* The ``conda`` environment files were updated and extended [`#81 <https://github.com/PyPSA/pypsa-eur/pull/81>`_].
|
||||||
|
|
||||||
* The power plant database was updated with extensive filtering options via ``pandas.query`` functionality (`#84 <https://github.com/PyPSA/pypsa-eur/pull/84>`_ and `#94 <https://github.com/PyPSA/pypsa-eur/pull/94>`_).
|
* The power plant database was updated with extensive filtering options via ``pandas.query`` functionality [`#84 <https://github.com/PyPSA/pypsa-eur/pull/84>`_ and `#94 <https://github.com/PyPSA/pypsa-eur/pull/94>`_].
|
||||||
|
|
||||||
* Continuous integration testing with `Travis CI <https://travis-ci.org>`_ is now included for Linux, Mac and Windows (`#82 <https://github.com/PyPSA/pypsa-eur/pull/82>`_).
|
* Continuous integration testing with `Travis CI <https://travis-ci.org>`_ is now included for Linux, Mac and Windows [`#82 <https://github.com/PyPSA/pypsa-eur/pull/82>`_].
|
||||||
|
|
||||||
* Data dependencies were moved to `zenodo <https://zenodo.org/>`_ and are now versioned (`#60 <https://github.com/PyPSA/pypsa-eur/issues/60>`_).
|
* Data dependencies were moved to `zenodo <https://zenodo.org/>`_ and are now versioned [`#60 <https://github.com/PyPSA/pypsa-eur/issues/60>`_].
|
||||||
|
|
||||||
* Data dependencies are now retrieved directly from within the snakemake workflow (`#86 <https://github.com/PyPSA/pypsa-eur/pull/86>`_).
|
* Data dependencies are now retrieved directly from within the snakemake workflow [`#86 <https://github.com/PyPSA/pypsa-eur/pull/86>`_].
|
||||||
|
|
||||||
* Emission prices can be added to marginal costs of generators through the keyworks ``Ep`` in the ``{opts}`` wildcard (`#100 <https://github.com/PyPSA/pypsa-eur/pull/100>`_).
|
* Emission prices can be added to marginal costs of generators through the keyworks ``Ep`` in the ``{opts}`` wildcard [`#100 <https://github.com/PyPSA/pypsa-eur/pull/100>`_].
|
||||||
|
|
||||||
* An option is introduced to add extendable nuclear power plants to the network (`#98 <https://github.com/PyPSA/pypsa-eur/pull/98>`_).
|
* An option is introduced to add extendable nuclear power plants to the network [`#98 <https://github.com/PyPSA/pypsa-eur/pull/98>`_].
|
||||||
|
|
||||||
* Focus weights can now be specified for particular countries for the network clustering, which allows to set a proportion of the total number of clusters for particular countries (`#87 <https://github.com/PyPSA/pypsa-eur/pull/87>`_).
|
* Focus weights can now be specified for particular countries for the network clustering, which allows to set a proportion of the total number of clusters for particular countries [`#87 <https://github.com/PyPSA/pypsa-eur/pull/87>`_].
|
||||||
|
|
||||||
* A new rule :mod:`add_extra_components` allows to add additional components to the network only after clustering. It is thereby possible to model storage units (e.g. battery and hydrogen) in more detail via a combination of ``Store``, ``Link`` and ``Bus`` elements (`#97 <https://github.com/PyPSA/pypsa-eur/pull/97>`_).
|
* A new rule :mod:`add_extra_components` allows to add additional components to the network only after clustering. It is thereby possible to model storage units (e.g. battery and hydrogen) in more detail via a combination of ``Store``, ``Link`` and ``Bus`` elements [`#97 <https://github.com/PyPSA/pypsa-eur/pull/97>`_].
|
||||||
|
|
||||||
* Hydrogen pipelines (including cost assumptions) can now be added alongside clustered network connections in the rule :mod:`add_extra_components` . Set ``electricity: extendable_carriers: Link: [H2 pipeline]`` and ensure hydrogen storage is modelled as a ``Store``. This is a first simplified stage (`#108 <https://github.com/PyPSA/pypsa-eur/pull/108>`_).
|
* Hydrogen pipelines (including cost assumptions) can now be added alongside clustered network connections in the rule :mod:`add_extra_components` . Set ``electricity: extendable_carriers: Link: [H2 pipeline]`` and ensure hydrogen storage is modelled as a ``Store``. This is a first simplified stage [`#108 <https://github.com/PyPSA/pypsa-eur/pull/108>`_].
|
||||||
|
|
||||||
* Logfiles for all rules of the ``snakemake`` workflow are now written in the folder ``log/`` (`#102 <https://github.com/PyPSA/pypsa-eur/pull/102>`_).
|
* Logfiles for all rules of the ``snakemake`` workflow are now written in the folder ``log/`` [`#102 <https://github.com/PyPSA/pypsa-eur/pull/102>`_].
|
||||||
|
|
||||||
* The new function ``_helpers.mock_snakemake`` creates a ``snakemake`` object which mimics the actual ``snakemake`` object produced by workflow by parsing the ``Snakefile`` and setting all paths for inputs, outputs, and logs. This allows running all scripts within a (I)python terminal (or just by calling ``python <script-name>``) and thereby facilitates developing and debugging scripts significantly (`#107 <https://github.com/PyPSA/pypsa-eur/pull/107>`_).
|
* The new function ``_helpers.mock_snakemake`` creates a ``snakemake`` object which mimics the actual ``snakemake`` object produced by workflow by parsing the ``Snakefile`` and setting all paths for inputs, outputs, and logs. This allows running all scripts within a (I)python terminal (or just by calling ``python <script-name>``) and thereby facilitates developing and debugging scripts significantly [`#107 <https://github.com/PyPSA/pypsa-eur/pull/107>`_].
|
||||||
|
|
||||||
Release Process
|
Release Process
|
||||||
===============
|
===============
|
||||||
@ -151,7 +195,7 @@ Release Process
|
|||||||
|
|
||||||
* Upload code to `zenodo code repository <https://doi.org/10.5281/zenodo.3520875>`_ with `GNU GPL 3.0 <https://www.gnu.org/licenses/gpl-3.0.en.html>`_ license.
|
* Upload code to `zenodo code repository <https://doi.org/10.5281/zenodo.3520875>`_ with `GNU GPL 3.0 <https://www.gnu.org/licenses/gpl-3.0.en.html>`_ license.
|
||||||
|
|
||||||
* Create pre-built networks for ``config.default.yaml`` by running ``snakemake -j 1 extra_components_all_elec_networks``.
|
* Create pre-built networks for ``config.default.yaml`` by running ``snakemake -j 1 extra_components_all_networks``.
|
||||||
|
|
||||||
* Upload pre-built networks to `zenodo data repository <https://doi.org/10.5281/zenodo.3601882>`_ with `CC BY 4.0 <https://creativecommons.org/licenses/by/4.0/>`_ license.
|
* Upload pre-built networks to `zenodo data repository <https://doi.org/10.5281/zenodo.3601882>`_ with `CC BY 4.0 <https://creativecommons.org/licenses/by/4.0/>`_ license.
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Solving Networks
|
Solving Networks
|
||||||
##########################################
|
##########################################
|
||||||
|
|
||||||
After generating and simplifying the networks they can be solved through the rule :mod:`solve_network` by using the collection rule :mod:`solve_all_elec_networks`. Moreover, networks can be solved for another focus with the derivative rules :mod:`solve_network` by using the collection rule :mod:`solve_operations_network` for dispatch-only analyses on an already solved network.
|
After generating and simplifying the networks they can be solved through the rule :mod:`solve_network` by using the collection rule :mod:`solve_all_networks`. Moreover, networks can be solved for another focus with the derivative rules :mod:`solve_network` by using the collection rule :mod:`solve_operations_network` for dispatch-only analyses on an already solved network.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:caption: Overview
|
:caption: Overview
|
||||||
|
@ -59,35 +59,35 @@ It is also possible to allow less or more carbon-dioxide emissions. Here, we lim
|
|||||||
|
|
||||||
.. literalinclude:: ../config.tutorial.yaml
|
.. literalinclude:: ../config.tutorial.yaml
|
||||||
:language: yaml
|
:language: yaml
|
||||||
:lines: 35,37
|
:lines: 36,38
|
||||||
|
|
||||||
PyPSA-Eur also includes a database of existing conventional powerplants.
|
PyPSA-Eur also includes a database of existing conventional powerplants.
|
||||||
We can select which types of powerplants we like to be included with fixed capacities:
|
We can select which types of powerplants we like to be included with fixed capacities:
|
||||||
|
|
||||||
.. literalinclude:: ../config.tutorial.yaml
|
.. literalinclude:: ../config.tutorial.yaml
|
||||||
:language: yaml
|
:language: yaml
|
||||||
:lines: 35,51
|
:lines: 36,52
|
||||||
|
|
||||||
To accurately model the temporal and spatial availability of renewables such as wind and solar energy, we rely on historical weather data.
|
To accurately model the temporal and spatial availability of renewables such as wind and solar energy, we rely on historical weather data.
|
||||||
It is advisable to adapt the required range of coordinates to the selection of countries.
|
It is advisable to adapt the required range of coordinates to the selection of countries.
|
||||||
|
|
||||||
.. literalinclude:: ../config.tutorial.yaml
|
.. literalinclude:: ../config.tutorial.yaml
|
||||||
:language: yaml
|
:language: yaml
|
||||||
:lines: 53-61
|
:lines: 54-62
|
||||||
|
|
||||||
We can also decide which weather data source should be used to calculate potentials and capacity factor time-series for each carrier.
|
We can also decide which weather data source should be used to calculate potentials and capacity factor time-series for each carrier.
|
||||||
For example, we may want to use the ERA-5 dataset for solar and not the default SARAH-2 dataset.
|
For example, we may want to use the ERA-5 dataset for solar and not the default SARAH-2 dataset.
|
||||||
|
|
||||||
.. literalinclude:: ../config.tutorial.yaml
|
.. literalinclude:: ../config.tutorial.yaml
|
||||||
:language: yaml
|
:language: yaml
|
||||||
:lines: 63,106-107
|
:lines: 64,107-108
|
||||||
|
|
||||||
Finally, it is possible to pick a solver. For instance, this tutorial uses the open-source solvers CBC and Ipopt and does not rely
|
Finally, it is possible to pick a solver. For instance, this tutorial uses the open-source solvers CBC and Ipopt and does not rely
|
||||||
on the commercial solvers Gurobi or CPLEX (for which free academic licenses are available).
|
on the commercial solvers Gurobi or CPLEX (for which free academic licenses are available).
|
||||||
|
|
||||||
.. literalinclude:: ../config.tutorial.yaml
|
.. literalinclude:: ../config.tutorial.yaml
|
||||||
:language: yaml
|
:language: yaml
|
||||||
:lines: 164,175-176
|
:lines: 170,180-181
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ orders ``snakemake`` to run the script ``solve_network`` that produces the solve
|
|||||||
.. warning::
|
.. warning::
|
||||||
On Windows the previous command may currently cause a ``MissingRuleException`` due to problems with output files in subfolders.
|
On Windows the previous command may currently cause a ``MissingRuleException`` due to problems with output files in subfolders.
|
||||||
This is an `open issue <https://github.com/snakemake/snakemake/issues/46>`_ at `snakemake <https://snakemake.readthedocs.io/>`_.
|
This is an `open issue <https://github.com/snakemake/snakemake/issues/46>`_ at `snakemake <https://snakemake.readthedocs.io/>`_.
|
||||||
Windows users should add the option ``--keep-target-files`` to the command or instead run ``snakemake -j 1 solve_all_elec_networks``.
|
Windows users should add the option ``--keep-target-files`` to the command or instead run ``snakemake -j 1 solve_all_networks``.
|
||||||
|
|
||||||
This triggers a workflow of multiple preceding jobs that depend on each rule's inputs and outputs:
|
This triggers a workflow of multiple preceding jobs that depend on each rule's inputs and outputs:
|
||||||
|
|
||||||
@ -271,7 +271,7 @@ the wildcards given in ``scenario`` in the configuration file ``config.yaml`` ar
|
|||||||
|
|
||||||
.. literalinclude:: ../config.tutorial.yaml
|
.. literalinclude:: ../config.tutorial.yaml
|
||||||
:language: yaml
|
:language: yaml
|
||||||
:lines: 13-18
|
:lines: 14-18
|
||||||
|
|
||||||
In this example we would not only solve a 6-node model of Germany but also a 2-node model.
|
In this example we would not only solve a 6-node model of Germany but also a 2-node model.
|
||||||
|
|
||||||
@ -286,12 +286,4 @@ The solved networks can be analysed just like any other PyPSA network (e.g. in J
|
|||||||
|
|
||||||
network = pypsa.Network("results/networks/elec_s_6_ec_lcopt_Co2L-24H.nc")
|
network = pypsa.Network("results/networks/elec_s_6_ec_lcopt_Co2L-24H.nc")
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
For inspiration, read the `examples section in the PyPSA documentation <https://pypsa.readthedocs.io/en/latest/examples.html>`_.
|
For inspiration, read the `examples section in the PyPSA documentation <https://pypsa.readthedocs.io/en/latest/examples.html>`_.
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
There are rules for summaries and plotting available in the repository of PyPSA-Eur.
|
|
||||||
|
|
||||||
They are currently under revision and therefore not yet documented.
|
|
||||||
|
@ -27,9 +27,6 @@ The ``{simpl}`` wildcard specifies number of buses a detailed
|
|||||||
network model should be pre-clustered to in the rule
|
network model should be pre-clustered to in the rule
|
||||||
:mod:`simplify_network` (before :mod:`cluster_network`).
|
:mod:`simplify_network` (before :mod:`cluster_network`).
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:mod:`simplify_network`
|
|
||||||
|
|
||||||
.. _clusters:
|
.. _clusters:
|
||||||
|
|
||||||
The ``{clusters}`` wildcard
|
The ``{clusters}`` wildcard
|
||||||
@ -45,9 +42,6 @@ If an `m` is placed behind the number of clusters (e.g. ``100m``),
|
|||||||
generators are only moved to the clustered buses but not aggregated
|
generators are only moved to the clustered buses but not aggregated
|
||||||
by carrier; i.e. the clustered bus may have more than one e.g. wind generator.
|
by carrier; i.e. the clustered bus may have more than one e.g. wind generator.
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:mod:`cluster_network`
|
|
||||||
|
|
||||||
.. _ll:
|
.. _ll:
|
||||||
|
|
||||||
The ``{ll}`` wildcard
|
The ``{ll}`` wildcard
|
||||||
@ -79,9 +73,6 @@ The wildcard, in general, consists of two parts:
|
|||||||
(c) ``c1.25`` will allow to build a transmission network that
|
(c) ``c1.25`` will allow to build a transmission network that
|
||||||
costs no more than 25 % more than the current system.
|
costs no more than 25 % more than the current system.
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:mod:`prepare_network`
|
|
||||||
|
|
||||||
.. _opts:
|
.. _opts:
|
||||||
|
|
||||||
The ``{opts}`` wildcard
|
The ``{opts}`` wildcard
|
||||||
@ -98,16 +89,13 @@ It may hold multiple triggers separated by ``-``, i.e. ``Co2L-3H`` contains the
|
|||||||
:widths: 10,20,10,10
|
:widths: 10,20,10,10
|
||||||
:file: configtables/opts.csv
|
:file: configtables/opts.csv
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:mod:`prepare_network`, :mod:`solve_network`
|
|
||||||
|
|
||||||
.. _country:
|
.. _country:
|
||||||
|
|
||||||
The ``{country}`` wildcard
|
The ``{country}`` wildcard
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
The rules ``make_summary`` and ``plot_summary`` (generating summaries of all or a subselection
|
The rules :mod:`make_summary` and :mod:`plot_summary` (generating summaries of all or a subselection
|
||||||
of the solved networks) as well as ``plot_p_nom_max`` (for plotting the cumulative
|
of the solved networks) as well as :mod:`plot_p_nom_map` (for plotting the cumulative
|
||||||
generation potentials for renewable technologies) can be narrowed to
|
generation potentials for renewable technologies) can be narrowed to
|
||||||
individual countries using the ``{country}`` wildcard.
|
individual countries using the ``{country}`` wildcard.
|
||||||
|
|
||||||
@ -121,9 +109,6 @@ in Germany (in the solution for Europe) use:
|
|||||||
|
|
||||||
snakemake -j 1 results/summaries/elec_s_all_lall_Co2L-3H_DE
|
snakemake -j 1 results/summaries/elec_s_all_lall_Co2L-3H_DE
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:mod:`make_summary`, :mod:`plot_summary`, :mod:`plot_p_nom_max`
|
|
||||||
|
|
||||||
.. _cutout_wc:
|
.. _cutout_wc:
|
||||||
|
|
||||||
The ``{cutout}`` wildcard
|
The ``{cutout}`` wildcard
|
||||||
@ -133,9 +118,6 @@ The ``{cutout}`` wildcard facilitates running the rule :mod:`build_cutout`
|
|||||||
for all cutout configurations specified under ``atlite: cutouts:``.
|
for all cutout configurations specified under ``atlite: cutouts:``.
|
||||||
These cutouts will be stored in a folder specified by ``{cutout}``.
|
These cutouts will be stored in a folder specified by ``{cutout}``.
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:mod:`build_cutout`, :ref:`atlite_cf`
|
|
||||||
|
|
||||||
.. _technology:
|
.. _technology:
|
||||||
|
|
||||||
The ``{technology}`` wildcard
|
The ``{technology}`` wildcard
|
||||||
@ -151,22 +133,16 @@ For instance ``{technology}`` can be used to plot regionally disaggregated poten
|
|||||||
with the rule :mod:`plot_p_nom_max` or to summarize a particular technology's
|
with the rule :mod:`plot_p_nom_max` or to summarize a particular technology's
|
||||||
full load hours in various countries with the rule :mod:`build_country_flh`.
|
full load hours in various countries with the rule :mod:`build_country_flh`.
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:mod:`build_renewable_profiles`, :mod:`plot_p_nom_max`, :mod:`build_country_flh`
|
|
||||||
|
|
||||||
.. _attr:
|
.. _attr:
|
||||||
|
|
||||||
The ``{attr}`` wildcard
|
The ``{attr}`` wildcard
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
The ``{attr}`` wildcard specifies which attribute are used for size
|
The ``{attr}`` wildcard specifies which attribute is used for size
|
||||||
representations of network components on a map plot produced by the rule
|
representations of network components on a map plot produced by the rule
|
||||||
``plot_network``. While it might be extended in the future, ``{attr}``
|
:mod:`plot_network`. While it might be extended in the future, ``{attr}``
|
||||||
currently only supports plotting of ``p_nom``.
|
currently only supports plotting of ``p_nom``.
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:mod:`plot_network`
|
|
||||||
|
|
||||||
.. _ext:
|
.. _ext:
|
||||||
|
|
||||||
The ``{ext}`` wildcard
|
The ``{ext}`` wildcard
|
||||||
@ -181,6 +157,3 @@ formats depends on the used backend. To query the supported file types on your s
|
|||||||
|
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
plt.gcf().canvas.get_supported_filetypes()
|
plt.gcf().canvas.get_supported_filetypes()
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:mod:`plot_network`, :mod:`plot_summary`, :mod:`plot_p_nom_max`
|
|
||||||
|
@ -1,241 +1,261 @@
|
|||||||
# SPDX-FileCopyrightText: : 2017-2020 The PyPSA-Eur Authors
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
name: pypsa-eur
|
name: pypsa-eur
|
||||||
channels:
|
channels:
|
||||||
- bioconda
|
- bioconda
|
||||||
- gurobi
|
|
||||||
- conda-forge
|
- conda-forge
|
||||||
- defaults
|
- defaults
|
||||||
dependencies:
|
dependencies:
|
||||||
- _libgcc_mutex=0.1
|
- _libgcc_mutex=0.1
|
||||||
|
- _openmp_mutex=4.5
|
||||||
- affine=2.3.0
|
- affine=2.3.0
|
||||||
- appdirs=1.4.3
|
- amply=0.1.4
|
||||||
|
- appdirs=1.4.4
|
||||||
- atlite=0.0.3
|
- atlite=0.0.3
|
||||||
- attrs=19.3.0
|
- attrs=20.3.0
|
||||||
- backcall=0.1.0
|
- backcall=0.2.0
|
||||||
- beautifulsoup4=4.9.1
|
- backports=1.0
|
||||||
- blas=1.0
|
- backports.functools_lru_cache=1.6.1
|
||||||
- blosc=1.16.3
|
- beautifulsoup4=4.9.3
|
||||||
- bokeh=2.0.2
|
- blosc=1.20.1
|
||||||
|
- bokeh=2.2.3
|
||||||
|
- boost-cpp=1.72.0
|
||||||
- bottleneck=1.3.2
|
- bottleneck=1.3.2
|
||||||
|
- brotlipy=0.7.0
|
||||||
- bzip2=1.0.8
|
- bzip2=1.0.8
|
||||||
- ca-certificates=2020.1.1
|
- c-ares=1.17.1
|
||||||
- cairo=1.14.12
|
- ca-certificates=2020.11.8
|
||||||
|
- cairo=1.16.0
|
||||||
- cartopy=0.17.0
|
- cartopy=0.17.0
|
||||||
- certifi=2020.4.5.1
|
- certifi=2020.11.8
|
||||||
- cffi=1.14.0
|
- cffi=1.14.4
|
||||||
- cfitsio=3.470
|
- cfitsio=3.470
|
||||||
- cftime=1.1.2
|
- cftime=1.3.0
|
||||||
- chardet=3.0.4
|
- chardet=3.0.4
|
||||||
- click=7.1.2
|
- click=7.1.2
|
||||||
- click-plugins=1.1.1
|
- click-plugins=1.1.1
|
||||||
- cligj=0.5.0
|
- cligj=0.7.1
|
||||||
- cloudpickle=1.4.1
|
- cloudpickle=1.6.0
|
||||||
- coincbc=2.10.5
|
- coincbc=2.10.5
|
||||||
- configargparse=1.1
|
- conda=4.9.2
|
||||||
- cryptography=2.9.2
|
- conda-package-handling=1.7.2
|
||||||
- curl=7.67.0
|
- configargparse=1.2.3
|
||||||
|
- cryptography=3.2.1
|
||||||
|
- curl=7.71.1
|
||||||
- cycler=0.10.0
|
- cycler=0.10.0
|
||||||
- cytoolz=0.10.1
|
- cytoolz=0.11.0
|
||||||
- dask=2.17.2
|
- dask=2.30.0
|
||||||
- dask-core=2.17.2
|
- dask-core=2.30.0
|
||||||
- datrie=0.8.2
|
- datrie=0.8.2
|
||||||
- dbus=1.13.14
|
|
||||||
- decorator=4.4.2
|
- decorator=4.4.2
|
||||||
- distributed=2.17.0
|
- descartes=1.1.0
|
||||||
|
- distributed=2.30.1
|
||||||
- docutils=0.16
|
- docutils=0.16
|
||||||
- entsoe-py=0.2.10
|
- entsoe-py=0.2.10
|
||||||
- expat=2.2.6
|
- expat=2.2.9
|
||||||
- fiona=1.8.11
|
- fiona=1.8.13
|
||||||
- fontconfig=2.13.0
|
- fontconfig=2.13.1
|
||||||
- freetype=2.9.1
|
- freetype=2.10.4
|
||||||
- freexl=1.0.5
|
- freexl=1.0.5
|
||||||
- fsspec=0.7.4
|
- fsspec=0.8.4
|
||||||
- gdal=3.0.2
|
- gdal=3.0.4
|
||||||
- geographiclib=1.50
|
- geographiclib=1.50
|
||||||
- geopandas=0.6.1
|
- geopandas=0.8.1
|
||||||
- geopy=1.22.0
|
- geopy=2.0.0
|
||||||
- geos=3.8.0
|
- geos=3.8.1
|
||||||
- geotiff=1.5.1
|
- geotiff=1.6.0
|
||||||
- giflib=5.1.4
|
- gettext=0.19.8.1
|
||||||
- gitdb=4.0.2
|
- giflib=5.2.1
|
||||||
- gitpython=3.1.1
|
- gitdb=4.0.5
|
||||||
- glib=2.63.1
|
- gitpython=3.1.11
|
||||||
- gst-plugins-base=1.14.0
|
- glib=2.66.3
|
||||||
- gstreamer=1.14.0
|
- glpk=4.65
|
||||||
- gurobi=9.0.2
|
- gmp=6.2.1
|
||||||
- hdf4=4.2.13
|
- hdf4=4.2.13
|
||||||
- hdf5=1.10.4
|
- hdf5=1.10.6
|
||||||
- heapdict=1.0.1
|
- heapdict=1.0.1
|
||||||
- icu=58.2
|
- icu=64.2
|
||||||
- idna=2.9
|
- idna=2.10
|
||||||
- importlib-metadata=1.6.0
|
- importlib-metadata=3.1.1
|
||||||
- importlib_metadata=1.6.0
|
- importlib_metadata=3.1.1
|
||||||
- intel-openmp=2020.1
|
|
||||||
- ipopt=3.13.2
|
- ipopt=3.13.2
|
||||||
- ipython=7.13.0
|
- ipython=7.19.0
|
||||||
- ipython_genutils=0.2.0
|
- ipython_genutils=0.2.0
|
||||||
- jedi=0.17.0
|
- jedi=0.17.2
|
||||||
- jinja2=2.11.2
|
- jinja2=2.11.2
|
||||||
- joblib=0.15.1
|
- joblib=0.17.0
|
||||||
- jpeg=9b
|
- jpeg=9d
|
||||||
- json-c=0.13.1
|
- json-c=0.13.1
|
||||||
- jsonschema=3.2.0
|
- jsonschema=3.2.0
|
||||||
- jupyter_core=4.6.3
|
- jupyter_core=4.7.0
|
||||||
- kealib=1.4.7
|
- kealib=1.4.14
|
||||||
- kiwisolver=1.2.0
|
- kiwisolver=1.3.1
|
||||||
- krb5=1.16.4
|
- krb5=1.17.2
|
||||||
- ld_impl_linux-64=2.33.1
|
- lcms2=2.11
|
||||||
- libblas=3.8.0
|
- ld_impl_linux-64=2.35.1
|
||||||
- libboost=1.67.0
|
- libarchive=3.3.3
|
||||||
- libcblas=3.8.0
|
- libblas=3.9.0
|
||||||
- libcurl=7.67.0
|
- libcblas=3.9.0
|
||||||
- libdap4=3.19.1
|
- libcurl=7.71.1
|
||||||
- libedit=3.1.20181209
|
- libdap4=3.20.6
|
||||||
|
- libedit=3.1.20191231
|
||||||
|
- libev=4.33
|
||||||
- libffi=3.3
|
- libffi=3.3
|
||||||
- libgcc-ng=9.1.0
|
- libgcc-ng=9.3.0
|
||||||
- libgdal=3.0.2
|
- libgdal=3.0.4
|
||||||
- libgfortran-ng=7.3.0
|
- libgfortran-ng=7.5.0
|
||||||
|
- libgfortran4=7.5.0
|
||||||
|
- libgfortran5=9.3.0
|
||||||
|
- libglib=2.66.3
|
||||||
|
- libgomp=9.3.0
|
||||||
|
- libiconv=1.16
|
||||||
- libkml=1.3.0
|
- libkml=1.3.0
|
||||||
- liblapack=3.8.0
|
- liblapack=3.9.0
|
||||||
- libnetcdf=4.6.1
|
- libnetcdf=4.7.4
|
||||||
|
- libnghttp2=1.41.0
|
||||||
|
- libopenblas=0.3.12
|
||||||
- libpng=1.6.37
|
- libpng=1.6.37
|
||||||
- libpq=11.5
|
- libpq=12.3
|
||||||
|
- libsolv=0.7.16
|
||||||
- libspatialindex=1.9.3
|
- libspatialindex=1.9.3
|
||||||
- libspatialite=4.3.0a
|
- libspatialite=4.3.0a
|
||||||
- libssh2=1.9.0
|
- libssh2=1.9.0
|
||||||
- libstdcxx-ng=9.1.0
|
- libstdcxx-ng=9.3.0
|
||||||
- libtiff=4.1.0
|
- libtiff=4.1.0
|
||||||
- libuuid=1.0.3
|
- libuuid=2.32.1
|
||||||
|
- libwebp-base=1.1.0
|
||||||
- libxcb=1.13
|
- libxcb=1.13
|
||||||
- libxml2=2.9.9
|
- libxml2=2.9.10
|
||||||
- libxslt=1.1.33
|
- libxslt=1.1.33
|
||||||
- locket=0.2.0
|
- locket=0.2.0
|
||||||
- lxml=4.5.0
|
- lxml=4.6.2
|
||||||
- lz4-c=1.8.1.2
|
- lz4-c=1.9.2
|
||||||
- lzo=2.10
|
- lzo=2.10
|
||||||
|
- mamba=0.7.3
|
||||||
- markupsafe=1.1.1
|
- markupsafe=1.1.1
|
||||||
- matplotlib=3.1.3
|
- matplotlib-base=3.3.3
|
||||||
- matplotlib-base=3.1.3
|
- memory_profiler=0.58.0
|
||||||
- memory_profiler=0.55.0
|
|
||||||
- metis=5.1.0
|
- metis=5.1.0
|
||||||
- mkl=2020.1
|
|
||||||
- mkl-service=2.3.0
|
|
||||||
- mkl_fft=1.0.15
|
|
||||||
- mkl_random=1.1.1
|
|
||||||
- mock=4.0.2
|
- mock=4.0.2
|
||||||
- more-itertools=8.3.0
|
|
||||||
- msgpack-python=1.0.0
|
- msgpack-python=1.0.0
|
||||||
- munch=2.5.0
|
- munch=2.5.0
|
||||||
- nbformat=5.0.6
|
- nbformat=5.0.8
|
||||||
- ncurses=6.2
|
- ncurses=6.2
|
||||||
- netcdf4=1.4.2
|
- netcdf4=1.5.4
|
||||||
- networkx=2.4
|
- networkx=2.5
|
||||||
- nose=1.3.7
|
- nose=1.3.7
|
||||||
- numexpr=2.7.1
|
- numexpr=2.7.1
|
||||||
- numpy=1.18.1
|
- numpy=1.19.0
|
||||||
- numpy-base=1.18.1
|
|
||||||
- olefile=0.46
|
- olefile=0.46
|
||||||
- openjpeg=2.3.0
|
- openjpeg=2.3.1
|
||||||
- openssl=1.1.1g
|
- openssl=1.1.1h
|
||||||
- owslib=0.19.2
|
- owslib=0.20.0
|
||||||
- packaging=20.3
|
- packaging=20.7
|
||||||
- pandas=1.0.3
|
- pandas=1.1.4
|
||||||
- parso=0.7.0
|
- parso=0.7.1
|
||||||
- partd=1.1.0
|
- partd=1.1.0
|
||||||
- pcre=8.43
|
- patsy=0.5.1
|
||||||
|
- pcre=8.44
|
||||||
- pexpect=4.8.0
|
- pexpect=4.8.0
|
||||||
- pickleshare=0.7.5
|
- pickleshare=0.7.5
|
||||||
- pillow=7.1.2
|
- pillow=8.0.1
|
||||||
- pip=20.0.2
|
- pip=20.3.1
|
||||||
- pixman=0.38.0
|
- pixman=0.38.0
|
||||||
- pluggy=0.13.1
|
|
||||||
- ply=3.11
|
- ply=3.11
|
||||||
- poppler=0.65.0
|
- poppler=0.87.0
|
||||||
- poppler-data=0.4.9
|
- poppler-data=0.4.10
|
||||||
- postgresql=11.5
|
- postgresql=12.3
|
||||||
- powerplantmatching=0.4.5
|
- powerplantmatching=0.4.8
|
||||||
- progressbar2=3.37.1
|
- progressbar2=3.53.1
|
||||||
- proj=6.2.1
|
- proj=7.0.0
|
||||||
- prompt-toolkit=3.0.5
|
- prompt-toolkit=3.0.8
|
||||||
- prompt_toolkit=3.0.5
|
- psutil=5.7.3
|
||||||
- psutil=5.7.0
|
- pthread-stubs=0.4
|
||||||
- ptyprocess=0.6.0
|
- ptyprocess=0.6.0
|
||||||
- py=1.8.1
|
- pulp=2.3.1
|
||||||
- pycountry=19.8.18
|
- pycosat=0.6.3
|
||||||
|
- pycountry=20.7.3
|
||||||
- pycparser=2.20
|
- pycparser=2.20
|
||||||
- pyepsg=0.4.0
|
- pyepsg=0.4.0
|
||||||
- pygments=2.6.1
|
- pygments=2.7.2
|
||||||
- pykdtree=1.3.1
|
- pykdtree=1.3.4
|
||||||
- pyomo=5.6.9
|
- pyomo=5.7.1
|
||||||
- pyopenssl=19.1.0
|
- pyopenssl=20.0.0
|
||||||
- pyparsing=2.4.7
|
- pyparsing=2.4.7
|
||||||
- pyproj=2.6.1.post1
|
- pyproj=2.6.1.post1
|
||||||
- pypsa=0.17.0
|
- pypsa=0.17.1
|
||||||
- pyqt=5.9.2
|
- pyrsistent=0.17.3
|
||||||
- pyrsistent=0.16.0
|
- pyshp=2.1.2
|
||||||
- pyshp=2.1.0
|
|
||||||
- pysocks=1.7.1
|
- pysocks=1.7.1
|
||||||
- pytables=3.6.1
|
- pytables=3.6.1
|
||||||
- pytest=5.4.2
|
- python=3.8.6
|
||||||
- pytest-runner=5.2
|
|
||||||
- python=3.7.7
|
|
||||||
- python-dateutil=2.8.1
|
- python-dateutil=2.8.1
|
||||||
- python-utils=2.3.0
|
- python-utils=2.4.0
|
||||||
- python_abi=3.7
|
- python_abi=3.8
|
||||||
- pytz=2020.1
|
- pytz=2020.4
|
||||||
- pyutilib=5.8.0
|
- pyutilib=6.0.0
|
||||||
- pyyaml=5.3.1
|
- pyyaml=5.3.1
|
||||||
- qt=5.9.7
|
- rasterio=1.1.5
|
||||||
- rasterio=1.1.0
|
|
||||||
- ratelimiter=1.2.0
|
- ratelimiter=1.2.0
|
||||||
- readline=8.0
|
- readline=8.0
|
||||||
- requests=2.23.0
|
- reproc=14.2.1
|
||||||
|
- reproc-cpp=14.2.1
|
||||||
|
- requests=2.25.0
|
||||||
- rtree=0.9.4
|
- rtree=0.9.4
|
||||||
- scikit-learn=0.22.1
|
- ruamel_yaml=0.15.80
|
||||||
- scipy=1.4.1
|
- scikit-learn=0.23.2
|
||||||
- seaborn=0.10.1
|
- scipy=1.5.3
|
||||||
- setuptools=47.1.1
|
- seaborn=0.11.0
|
||||||
- shapely=1.7.0
|
- seaborn-base=0.11.0
|
||||||
- sip=4.19.8
|
- setuptools=49.6.0
|
||||||
|
- shapely=1.7.1
|
||||||
- six=1.15.0
|
- six=1.15.0
|
||||||
- smmap=3.0.2
|
- smmap=3.0.4
|
||||||
- snakemake-minimal=5.19.2
|
- snakemake-minimal=5.30.1
|
||||||
- snappy=1.1.7
|
|
||||||
- snuggs=1.4.7
|
- snuggs=1.4.7
|
||||||
- sortedcontainers=2.1.0
|
- sortedcontainers=2.3.0
|
||||||
- soupsieve=2.0.1
|
- soupsieve=2.0.1
|
||||||
- sqlite=3.31.1
|
- sqlite=3.34.0
|
||||||
- tbb=2018.0.5
|
- statsmodels=0.12.1
|
||||||
|
- tbb=2020.2
|
||||||
- tblib=1.6.0
|
- tblib=1.6.0
|
||||||
- tiledb=1.6.3
|
- threadpoolctl=2.1.0
|
||||||
- tk=8.6.8
|
- tiledb=1.7.7
|
||||||
- toolz=0.10.0
|
- tk=8.6.10
|
||||||
|
- toolz=0.11.1
|
||||||
- toposort=1.5
|
- toposort=1.5
|
||||||
- tornado=6.0.4
|
- tornado=6.1
|
||||||
- traitlets=4.3.3
|
- tqdm=4.54.1
|
||||||
- typing_extensions=3.7.4.1
|
- traitlets=5.0.5
|
||||||
|
- typing_extensions=3.7.4.3
|
||||||
- tzcode=2020a
|
- tzcode=2020a
|
||||||
- urllib3=1.25.8
|
- urllib3=1.25.11
|
||||||
- wcwidth=0.1.9
|
- wcwidth=0.2.5
|
||||||
- wheel=0.34.2
|
- wheel=0.36.1
|
||||||
- wrapt=1.12.1
|
- wrapt=1.12.1
|
||||||
- xarray=0.15.1
|
- xarray=0.16.2
|
||||||
- xerces-c=3.2.2
|
- xerces-c=3.2.2
|
||||||
- xlrd=1.2.0
|
- xlrd=1.2.0
|
||||||
|
- xorg-kbproto=1.0.7
|
||||||
|
- xorg-libice=1.0.10
|
||||||
|
- xorg-libsm=1.2.3
|
||||||
|
- xorg-libx11=1.6.12
|
||||||
|
- xorg-libxau=1.0.9
|
||||||
|
- xorg-libxdmcp=1.1.3
|
||||||
|
- xorg-libxext=1.3.4
|
||||||
|
- xorg-libxrender=0.9.10
|
||||||
|
- xorg-renderproto=0.11.1
|
||||||
|
- xorg-xextproto=7.3.0
|
||||||
|
- xorg-xproto=7.0.31
|
||||||
- xz=5.2.5
|
- xz=5.2.5
|
||||||
- yaml=0.1.7
|
- yaml=0.2.5
|
||||||
- zict=2.0.0
|
- zict=2.0.0
|
||||||
- zipp=3.1.0
|
- zipp=3.4.0
|
||||||
- zlib=1.2.11
|
- zlib=1.2.11
|
||||||
- zstd=1.3.7
|
- zstd=1.4.5
|
||||||
- pip:
|
- pip:
|
||||||
- cdsapi==0.2.7
|
- cdsapi==0.4.0
|
||||||
- countrycode==0.2
|
- countrycode==0.2
|
||||||
- descartes==1.1.0
|
|
||||||
- geokit==1.1.2
|
- geokit==1.1.2
|
||||||
- glaes==1.1.2
|
- glaes==1.1.2
|
||||||
- tqdm==4.46.1
|
- sklearn==0.0
|
||||||
|
- tsam==1.1.0
|
||||||
- vresutils==0.3.1
|
- vresutils==0.3.1
|
||||||
|
@ -24,15 +24,13 @@ Relevant Settings
|
|||||||
conventional_carriers:
|
conventional_carriers:
|
||||||
co2limit:
|
co2limit:
|
||||||
extendable_carriers:
|
extendable_carriers:
|
||||||
Generator:
|
|
||||||
OPSD_VRES_countries:
|
|
||||||
include_renewable_capacities_from_OPSD:
|
include_renewable_capacities_from_OPSD:
|
||||||
estimate_renewable_capacities_from_capacity_stats:
|
estimate_renewable_capacities_from_capacity_stats:
|
||||||
|
|
||||||
load:
|
load:
|
||||||
scaling_factor:
|
scaling_factor:
|
||||||
|
|
||||||
renewable: (keys)
|
renewable:
|
||||||
hydro:
|
hydro:
|
||||||
carriers:
|
carriers:
|
||||||
hydro_max_hours:
|
hydro_max_hours:
|
||||||
@ -54,9 +52,7 @@ Inputs
|
|||||||
.. image:: ../img/hydrocapacities.png
|
.. image:: ../img/hydrocapacities.png
|
||||||
:scale: 34 %
|
:scale: 34 %
|
||||||
|
|
||||||
- ``data/geth2015_hydro_capacities.csv``: alternative to capacities above; NOT CURRENTLY USED!
|
- ``data/geth2015_hydro_capacities.csv``: alternative to capacities above; not currently used!
|
||||||
|
|
||||||
|
|
||||||
- ``resources/opsd_load.csv`` Hourly per-country load profiles.
|
- ``resources/opsd_load.csv`` Hourly per-country load profiles.
|
||||||
- ``resources/regions_onshore.geojson``: confer :ref:`busregions`
|
- ``resources/regions_onshore.geojson``: confer :ref:`busregions`
|
||||||
- ``resources/nuts3_shapes.geojson``: confer :ref:`shapes`
|
- ``resources/nuts3_shapes.geojson``: confer :ref:`shapes`
|
||||||
|
@ -17,7 +17,7 @@ Relevant Settings
|
|||||||
url:
|
url:
|
||||||
interpolate_limit:
|
interpolate_limit:
|
||||||
time_shift_for_large_gaps:
|
time_shift_for_large_gaps:
|
||||||
manual_adjustments: true
|
manual_adjustments:
|
||||||
|
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
@ -10,10 +10,6 @@ Relevant Settings
|
|||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
|
||||||
(electricity:)
|
|
||||||
(BAU_mincapacities:)
|
|
||||||
(SAFE_reservemargin:)
|
|
||||||
|
|
||||||
solving:
|
solving:
|
||||||
tmpdir:
|
tmpdir:
|
||||||
options:
|
options:
|
||||||
@ -28,10 +24,6 @@ Relevant Settings
|
|||||||
track_iterations:
|
track_iterations:
|
||||||
solver:
|
solver:
|
||||||
name:
|
name:
|
||||||
(solveroptions):
|
|
||||||
|
|
||||||
(plotting:)
|
|
||||||
(conv_techs:)
|
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
Documentation of the configuration file ``config.yaml`` at
|
Documentation of the configuration file ``config.yaml`` at
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: CC0-1.0
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
version: 0.2.0
|
version: 0.3.0
|
||||||
tutorial: true
|
tutorial: true
|
||||||
logging:
|
logging:
|
||||||
level: INFO
|
level: INFO
|
||||||
|
Loading…
Reference in New Issue
Block a user