..
SPDX-FileCopyrightText: 2021 The PyPSA meets Earth authors
SPDX-License-Identifier: CC-BY-4.0
.. _introduction:
##########################################
Introduction
##########################################
PyPSA-Distribution aims at providing a global, open, free, fully transparent, and reproducible energy system model for distribution applications.
It is based on the `PyPSA `_ framework and uses the `OpenStreetMap `_ data to create a detailed representation of the distribution energy system.
Examples of possible applications of the model are:
- **Microgrids planning**: The model can be used to plan the expansion of a network of microgrids, e.g. to integrate new renewable energy sources or to electrify heating and transport.
- **Distribution system planning**: The model can be used to plan the expansion of the distribution network, e.g. to integrate new renewable energy sources or to electrify heating and transport.
- **Distribution system operation**: The model can be used to operate the distribution network, e.g. to optimize the dispatch of distributed energy resources or to avoid congestions.
- **Distribution network tariff design**: The model can be used to design tariffs for the distribution network, e.g. to incentivize the use of renewable energy sources or to avoid congestions.
- **Are we missing something?**: Please let us know if you have any other ideas for applications of the model!
.. image:: doc/.png
:alt: Exemple of application of the model
:align: center
Workflow
========
As `PyPSA-Earth `_,
the generation of the model is controlled by the workflow management system `Snakemake `_. In a nutshell,
the ``Snakefile`` declares for each python script in the ``scripts`` directory a rule which describes which files the scripts consume and
produce (their corresponding input and output files). The ``snakemake`` tool then runs the scripts in the correct order according to the
rules' input/output dependencies. Moreover, it is able to track, what parts of the workflow have to be regenerated, when a data file or a
script is modified/updated. Please, refer to PyPSA-Earth documentation for more.
The following image represents the workflow performed by snakemake.
.. image:: doc/workflow.png
:alt: Workflow Diagram
:align: center
The blocks represent the individual rules which are required to create the file networks/elec_s_128.nc. Each rule requires scripts (e.g. Python)
to convert inputs to outputs. The arrows indicate the outputs from preceding rules which a particular rule takes as input data.
Folder structure
================
The content in this package is organized in folders as described below; for more details, please see the documentation.
- ``data``: Includes input data that is not produced by any ``snakemake`` rule.
- ``scripts``: Includes all the Python scripts executed by the ``snakemake`` rules.
- ``resources``: Stores intermediate results of the PyPSA-Distribution workflow which can be picked up again by subsequent rules.
- ``networks``: Stores intermediate, unsolved stages of the PyPSA network that describes the energy system model of PyPSA-Distribution.
- ``results``: Stores the solved PyPSA network data, summary files and plots.
- ``benchmarks``: Stores ``snakemake`` benchmarks.
- ``logs``: Stores log files about solving, including the solver output, console output and the output of a memory logger.
- ``envs``: Stores the conda environment files to successfully run the workflow.
License
=======
PyPSA-Distribution work is released under multiple licenses, equivalent to those of PyPSA-Earth.
* All original source code is licensed as free software under `GPL-3.0 License `_.
* The documentation is licensed under `CC-BY-4.0 `_.
* Configuration files are mostly licensed under `CC0-1.0 `_.
* Data files are licensed under different licenses as noted below.
For licenses and urls of the data used in PyPSA-Earth, please, refer to `PyPSA-Earth License section `_.
* *BY: Attribute Source*
* *NC: Non-Commercial Use Only*
* *SA: Share Alike*