diff --git a/config.default.yaml b/config.default.yaml index 47053eb25..715a8a4a9 100644 --- a/config.default.yaml +++ b/config.default.yaml @@ -355,6 +355,7 @@ renewable: csp_model: advanced # simple or advanced # TODO: Needs to be adjusted for Africa. +# Costs Configuration costs: year: 2030 version: v0.6.2 diff --git a/doc/configtables/build_shape_options.csv b/doc/configtables/build_shape_options.csv index 16f30ff0c..0008aa78b 100644 --- a/doc/configtables/build_shape_options.csv +++ b/doc/configtables/build_shape_options.csv @@ -1,10 +1,10 @@ -,Unit,Values,Description,,,, -gadm_layer_id,,"""{0",1,"2}""","""GADM level area used for the gadm_shapes. Codes are country-dependent but roughly: 0: country",1: region/county-like,"2: municipality-like.""" -simplify_gadm,bool," ""{True"," False}""",True: shape polygons are simplified else no,,, -update_file, bool," ""{True"," False}"""," ""True: all input files are downloaded again and replace the existing files.""",,, -out_logging, bool," ""{True"," False}"""," ""True: Logging is printed in the console.""",,, -year,," ""past year; e.g. YYYY"""," ""Reference year used to derive shapes"," info on population and info on GDP.""",,, -nprocesses, int,," ""Number of processes to be used in build_shapes.""",,,, -worldpop_method,," ""{""standard"""," ""api"""," false}""","""Specifies how population is added to every shape: ""standard"" pulls from web 1kmx1km raster; ""api"" pulls from API 100mx100m raster; false (not ""false"") no population addition to shape. This is useful when generating only cutout.""",, -gdp_method,," ""{""standard"""," false}""","""Specifies how GDP is added to every shape: ""standard"" pulls from web 1x1km raster; false (not ""false"") no gdp addition to shape. This is useful when generating only cutout.""",,, -contended_flag,," ""{""set_by_country"""," ""drop""}"""," ""Specifies what to do with contended countries: ""set_by_country"" assigns the contended areas to the countries according to the GADM database; ""drop"" drops the contended areas from the model.""",,, +,Unit,Values,Description +gadm_layer_id,,"{0,1,2}","GADM level area used for the gadm_shapes. Codes are country-dependent but roughly: 0: country,1: region/county-like,2: municipality-like." +simplify_gadm,bool,"{True, False}","True: shape polygons are simplified else no" +update_file, bool,"{True, False}","True: all input files are downloaded again and replace the existing files." +out_logging, bool,"{True, False}","True: Logging is printed in the console." +year,,"past year; e.g. YYYY","Reference year used to derive shapes info on population and info on GDP." +nprocesses, int,,"Number of processes to be used in build_shapes." +worldpop_method,,"{standard,api, false}","""Specifies how population is added to every shape: ""standard"" pulls from web 1kmx1km raster; ""api"" pulls from API 100mx100m raster; false (not ""false"") no population addition to shape. This is useful when generating only cutout.""" +gdp_method,,"""{""standard"",""false""}""","""Specifies how GDP is added to every shape: ""standard"" pulls from web 1x1km raster; false (not ""false"") no gdp addition to shape. This is useful when generating only cutout.""" +contended_flag,,"""{""set_by_country"",""drop""}""","""Specifies what to do with contended countries: ""set_by_country"" assigns the contended areas to the countries according to the GADM database; ""drop"" drops the contended areas from the model.""" diff --git a/doc/index.rst b/doc/index.rst index 6e44a4f2e..92e17a55a 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -14,8 +14,8 @@ Welcome to the PyPSA-Earth documentation! .. image:: https://img.shields.io/github/v/release/pypsa-meets-earth/pypsa-earth?include_prereleases :alt: GitHub release (latest by date including pre-releases) -.. image:: https://github.com/pypsa-meets-earth/pypsa-earth/actions/workflows/ci.yml/badge.svg - :target: https://github.com/pypsa-meets-earth/pypsa-earth/actions/workflows/ci.yml +.. image:: https://github.com/pypsa-meets-earth/pypsa-earth/actions/workflows/test.yml/badge.svg + :target: https://github.com/pypsa-meets-earth/pypsa-earth/actions/workflows/test.yml :alt: CI .. image:: https://readthedocs.org/projects/pypsa-earth/badge/?version=latest @@ -180,23 +180,36 @@ Documentation monte_carlo -**Help and References** +**Support and Contributing** * :doc:`release_notes` * :doc:`how_to_contribute` +* :doc:`how_to_docs` * :doc:`software_hints` * :doc:`learning_materials` -* :doc:`project_structure_and_credits` -* :doc:`talks_and_papers` .. toctree:: :hidden: :maxdepth: 2 - :caption: Project Info + :caption: Support release_notes how_to_contribute + how_to_docs software_hints learning_materials + +**References** + +* :doc:`users_list` +* :doc:`project_structure_and_credits` +* :doc:`talks_and_papers` + +.. toctree:: + :hidden: + :maxdepth: 2 + :caption: Project Info + + users_list project_structure_and_credits talks_and_papers diff --git a/doc/project_structure_and_credits.rst b/doc/project_structure_and_credits.rst index 268fcde23..94d6338c5 100644 --- a/doc/project_structure_and_credits.rst +++ b/doc/project_structure_and_credits.rst @@ -10,63 +10,95 @@ Project structure and credits The PyPSA-Earth model is maintained by the members of the PyPSA meets Earth initiative. We implemented in the initiative a project structure to enhance collaboration and give people responsibilities. -Therefore, the structure is not here to dictate, it is rather a structure that let people organise and think from different angles about the project. +Therefore, the structure is not here to dictate, it is rather a structure that let people organize and think from different angles about the project. We all have the same goal. We want to create a long-term maintained, supported and steadily improving energy system model that is useful for industry and research. Every person helping towards achieving this goal is listed in the credits. .. _project_structure: Project structure -==================== +================== -The structure might be adjusted in future: +PyPSA-meets-Earth initiative is build upon the code base which can be accessed from the initiative repository on GitHub. A list below aims to give a quick overview: + +- `PyPSA Earth `__ is a model for power or sector-coupled system modeling for any country of the world +- `PyPSA Distribution `__ is an optimization model for micro-grids and distribution grids with an automated extraction of the inputs needed to build grid topology and electricity load profiles https://github.com/pypsa-meets-earth/pypsa-distribution +- `Earth OSM `__ provides a toolset to download, pre-process and export energy-relevant infrastructure data from OpenStreetMap (OSM) + +The list is by no means exhaustive and is growing continuously. Feel free to explore more looking into the repositories available in `PyPSA meets Earth organization `__ and don't forget to give us a star ;). The contributions are very welcome to enhance the description of the available projects! + + +Track leaders +============== - Director (`Max Parzen `_) - `Co-Director `_ (`Davide Fioriti `_) -- `PyPSA-Earth leader `_ (temporary Davide and Max) -- PyPSA-Earth-Sec leader (`Hazem Abdel-Khalek `_ and `Leon Schumm `_) -- `AI and demand leader `_ (`Lukas Franken `_) +- `PyPSA-Earth leaders `_ (Davide, Katia, Hazem, Max) +- Sector-coupling leaders (`Hazem Abdel-Khalek `_ and `Leon Schumm `_, Eddy Jalbout) +- Climate modeling leader (Katia) +- Coordinators of Regional Studies - `Outreach leader `_ (`Stuart James `_) -- `Finance leader `_ (Currently not assigned) -- Western Asia Coordinator (Emre Yorat and `Kasım Zor `_) -- Central Asia (`Ekatarina Fedotova `_) +- Western Asia Coordinators (Emre Yorat and `Kasım Zor `_) +- Africa Coordinator (Emmanuel Bolarinwa) +- South America Coordinator (Carlos Fernandez) +- `AI and demand leader `_ (`Lukas Franken `_) .. _credits: Credits ============= -The list below is outdated (December 2022). For maintenance reasons, -we refer the reader to the project website and GitHub repositories -listed on the `PyPSA meets Earth team page `_. +PyPSA-meets-Earth is an independent research and software development initiative which is developing thanks to the efforts of code and non-code contributors and users of our models. Every discussion comment, bug report and typo fixed count and are precious contributions into the community knowledge base. + +The lists below is an attempt to give the credits to the contributors, though it's maintained manually, and may be outdated and incomplete. Feel free to reach out if you see the need for changes! A more complete version of the contributors list is available in our code repositories, e.g. `pypsa earth `__, `pypsa kz data `__, `pypsa distribution `__ or `earth osm `__. Points of contacts are listed on the site `PyPSA meets Earth team page `_. -(sorted by continent, country, institution) -Code Team ----------- +Contributors Team +----------------- +- Davide Fioriti (University of Pisa, Italy) +- Yerbol Akhmetov +- Eddy Jalbout +- Hazem Abdel-Khalek (Frauenhofer Institution for Energy IEG, Germany) +- Max Parzen (University of Edinburgh, United Kingdom) +- Emre Yorat +- Matin Mahmood (University of Edinburgh, United Kingdom) +- Daniele Lerede +- Alexander Meisinger (Ostbayerische Technische Hochschule Regensburg, Germany) +- Emmanuel Bolarinwa +- Lukas Trippe (Technical University of Berlin, Germany) +- Leon Schumm (Ostbayerische Technische Hochschule Regensburg, Germany) +- Sermisha Narayana +- Fabian Neumann (Technical University of Berlin, Germany) +- Carlos Fernandez +- Anton Achhammer +- Arizeo Salac +- Johannes Hampp (Justus Liebig University Giessen, Germany) +- Ekaterina Fedotova +- Muhammad Ilyas +- Lukas Franken (University of Edinburgh, United Kingdom) +- Jess Ryan +- Stephen Lee (Massachusetts Institute of Technology, United States) +- Albert Solà Vilalta +- Martha Frysztacki +- Denise Giubilato +- Anas Algarei +- Siddharth Krishna - Dahunsi Okekunle (Energy Market and Regulatory Consultants aka. EMRC, Nigeria) - Nse-Abasi Ayara (University of Abuja, Nigeria) - Jarrad Wright (Council for Scientific Research and Industry CSIR, South Africa) - Ayman Khirbash (École Polytechnique, France) -- Hazem Abdel-Khalek (Frauenhofer Institution for Energy IEG, Germany) -- Johannes Hampp (Justus Liebig University Giessen, Germany) -- Fabian Neumann (TU Berlin, Germany) -- Davide Fioriti (University of Pisa, Italy) - Koen van Greevenbroek (University of Tromso, Norway) - Caputo Cesare (Imperial College London, United Kingdom) - Desen Kirli (University of Edinburgh, United Kingdom) -- Matin Mahmood (University of Edinburgh, United Kingdom) -- Max Parzen (University of Edinburgh, United Kingdom) - Olukunle Owolabi (Tufts University, United States) -- Stephen Lee (Massachusetts Institute of Technology, United States) -- Ekatarina Fedotova (Moscow Power Engineering Institute, Russia) Outreach Team -------------- - Stuart James (VDMA, Germany) - Max Parzen (University of Edinburgh, United Kingdom) +- Tosin George - Mousa Zerai (University of Edinburgh, United Kingdom) - Ilaria Capelli (EY, Italy) - Rebecca Grant (University of Edinburgh, United Kingdom) diff --git a/doc/release_notes.rst b/doc/release_notes.rst index 03b08a61e..65e933960 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -17,6 +17,9 @@ This part of documentation collects descriptive release notes to capture the mai * Added Dev Containers and docker as an option to get started with pypsa-earth `PR #1228 `__ +* Add a list of PyPSA-Earth applications in academic and industrial projects `PR #1255 `__ + + **Minor Changes and bug-fixing** * Added electricity bus to Fischer-Tropsch in prepare_sector_network.py `PR #1226 `__ diff --git a/doc/users_list.rst b/doc/users_list.rst new file mode 100644 index 000000000..118f193f6 --- /dev/null +++ b/doc/users_list.rst @@ -0,0 +1,24 @@ +.. SPDX-FileCopyrightText: PyPSA-Earth and PyPSA-Eur Authors +.. +.. SPDX-License-Identifier: CC-BY-4.0 + +.. _users_list: + +########################################## +Usage of PyPSA-Earth +########################################## +The list below contains some the applications of PyPSA-Earth for educational, research and industrial projects and is likely to be incomplete. If you want to add your contribution into the list, feel free to open a PR to `PyPSA Earth repo `__ or flag your interest via `PyPSA meets Earth Discord server `__. + +* Power system modeling for **Korea** to support development of the national energy strategy, considering ESS Capacity expansion, LMP & Cost analysis according to ESS combination, and coal phase-out scenario (`Energy Innovation Lab `__ at `Korea University `__) + +* Development a model for the **Pakistan** Power System (Soon available on GitHub in PyPSA-Earth's repository) cross-referenced and validated with national reports. The model has been used to develop the Net-Zero scenario by 2050 utilizing Pakistan's eligible Wind and Solar potential. The modeling study has been done as a part of Master Work in Mehran University of Engineering and Technology as presented in the `post `__ + +* Investigation of implications of the national decarbonisaiton goals for power system of **Kazakhstan**. Traditionally, Kazakhstan’s power sector is using a lot of coal, while the national plans introduce a significant increase in solar and wind generation during the next decades. Model Kazakhstan power system has been used to investigate economic feasibility of going even beyond the official mid-term goal of 15% renewable energy share by 2030 in a joint project developed by Open Energy Transition and Agora Energiewende which `report `__ has been published openly. + +* Country-wise validation of PyPSA-Earth methodology to extract modeling-ready data for power system modeling considering **any country on the Earth** published as a `conference paper `__. Results confirm that PyPSA-Earth now covers approximately 99% of the world's population and can generate high-resolution datasets for national energy studies. The supplementary data for fully reproducible 193+ power systems images created with PyPSA-Earth for all United Nations countries are available in `zenodo repozitory `__. + +* **Multi-Country Electricity Transition Potential and Challenges Project** (MCET) of `Environmental Defence Fund `__. The goal was to analyze barriers to decarbonisation in **China**, **India**, **Colombia**, **Chile**, **Kazakhstan**, **Bangladesh**, **Vietnam** and **Thailand** for power system planning in deep decarbonisation scenarios. + +* Investigation of the energy transition pathways for **Nigeria** published in a `research paper `__ by a joint team of PyPSA-Earth developers. Capabilities of PyPSA-Earth model has been showcased by considering two least-cost power system optimizations, one for 2020 to reproduce the historical system behavior and one representing a decarbonised 2060 scenario. + +* Modeling of the power sector in **Saudi Arabia** published as `MSc dissertation `__ in Edinburgh University. This has been a first attempt to predict the energy system for Saudi Arabia in 2060, with net zero emissions. The models in this study include a base model for validation, a model for 2030, to compare to the country’s Vision 2030 and as a transition phase, and two models for 2060 net zero, one is fully renewable and the other utilizing carbon capture and storage technology. The outputs of the work are available in the `repository `__. diff --git a/scripts/_helpers.py b/scripts/_helpers.py index 36cf0d95c..ddb6fda5f 100644 --- a/scripts/_helpers.py +++ b/scripts/_helpers.py @@ -1132,18 +1132,20 @@ def get_country(target, **keys): target: str Desired type of country code. Examples: - - 'alpha_3' for 3-digit - - 'alpha_2' for 2-digit - - 'name' for full country name + - 'alpha_3' for 3-digit + - 'alpha_2' for 2-digit + - 'name' for full country name keys: dict Specification of the country name and reference system. Examples: - - alpha_3="ZAF" for 3-digit - - alpha_2="ZA" for 2-digit - - name="South Africa" for full country name + - alpha_3="ZAF" for 3-digit + - alpha_2="ZA" for 2-digit + - name="South Africa" for full country name + Returns ------- country code as requested in keys or np.nan, when country code is not recognized + Example of usage ------- - Convert 2-digit code to 3-digit codes: get_country('alpha_3', alpha_2="ZA")