PyPSA-DE
High resolution, sector-coupled model of the German Energy System.
https://github.com/pypsa/pypsa-ariadne
Category: Energy Systems
Sub Category: Global and Regional Energy System Models
Keywords from Contributors
energy-system energy-system-model power-systems energy-model pypsa costs renewable-energy linopy renewables pyomo
Last synced: about 3 hours ago
JSON representation
Repository metadata
🛑 THIS REPOSITORY IS DEPRECATED 🟢 The story continues at PyPSA-DE High resolution, sector-coupled model of the German Energy System
- Host: GitHub
- URL: https://github.com/pypsa/pypsa-ariadne
- Owner: PyPSA
- License: mit
- Archived: true
- Created: 2023-09-22T11:31:51.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-24T18:12:15.000Z (about 1 month ago)
- Last Synced: 2025-04-10T07:03:51.586Z (21 days ago)
- Language: Python
- Homepage: https://github.com/PyPSA/pypsa-de
- Size: 1.78 MB
- Stars: 17
- Watchers: 4
- Forks: 6
- Open Issues: 10
- Releases: 13
-
Metadata Files:
- Readme: README.md
- Changelog: Changelog.md
- License: LICENSE.md
- Citation: CITATION.cff
README.md
PyPSA-DE
🟢 Development continues at🛑 This repostiory is deprecated
Kopernikus-Projekt Ariadne - Gesamtsystemmodell PyPSA-DE
Dieses Repository enthält das Gesamtsystemmodell PyPSA-DE für das Kopernikus-Projekt Ariadne, basierend auf der Toolbox PyPSA und dem Datensatz PyPSA-Eur. Das Modell bildet Deutschland mit hoher geographischer Auflösung, mit voller Sektorenkopplung und mit Integration in das europäische Energiesystem ab.
This repository contains the entire scientific project, including data sources and code. The philosophy behind this repository is that no intermediary results are included, but all results are computed from raw data and code.
Clone the repository - including necessary submodules!
To start you need to clone the PyPSA-Ariadne repository. Since the repository relies on Git Submodules to integrate the PyPSA-Eur dataset as a basis on which to expand, you need to include the --recurse-submodules
flag in your git clone
command:
git clone --recurse-submodules git@github.com:PyPSA/pypsa-ariadne.git
Alternatively, after having cloned the repository without activating submodules, you can run the two following commands:
git submodule update --init --recursive
This command first initializes your local configuration file, second fetches all the data from the project(s) declared as submodule(s) (in this case, PyPSA-Eur) as well as all potential nested submodules, and third checks out the appropriate PyPSA-Eur commit which is defined in the PyPSA-Ariadne repository.
You can fetch and merge any new commits from the remote of the submodules with the following command:
git submodule update --remote
More information on Git Submodules can be found here.
Getting ready
You need conda or mamba to run the analysis. Using mamba, you can create an environment from within you can run it:
mamba env create -f environment.yaml
For external users: Use config.public.yaml
The default workflow configured for this repository assumes access to the internal Ariadne2 database. Users that do not have the required login details can run the analysis based on the data published during the first phase of the Ariadne project.
This is possible by providing an additional config to the snakemake workflow. For every snakemake COMMAND
specified in the instructions below, public users should use:
snakemake --configfile=config/config.public.yaml COMMAND
The additional config file specifies the required database, model, and scenario names for Ariadne1. If public users wish to edit the default scenario specifications, they should change scenarios.public.yaml
instead of scenarios.manual.yaml
. More details on using scenarios are given below.
For internal users: Provide login details
The snakemake rule retrieve_ariadne_database
logs into the interal Ariadne IIASA Database via the pyam
package. The credentials for logging into this database have to be stored locally on your machine with ixmp4
. To do this activate the project environment and run
ixmp4 login <username>
You will be prompted to enter your <password>
.
Caveat: These credentials are stored on your machine in plain text.
To switch between internal and public use, the command ixmp4 logout
may be necessary.
Run the analysis
Before running any analysis with scenarios, the rule build_scenarios
must be executed. This will create the file config/scenarios.automated.yaml
which includes input data and CO2 targets from the IIASA Ariadne database as well as the specifications from the manual scenario file. [This file is specified in the default config.yaml via they key run:scenarios:manual_file
(by default located at config/scenarios.manual.yaml
)].
snakemake -call build_scenarios -f
Note that the hierarchy of scenario files is the following: scenarios.automated.yaml
> (any explicitly specified --configfiles
) > config.yaml
> config.default.yaml
Changes in the file scenarios.manual.yaml
are only taken into account if the rule build_scenarios
is executed.
For the first run, open config.yaml and set
enable:
retrieve: true # set to false once initial data is retrieved
retrieve_cutout: true # set to false once initial data is retrieved
and then run from main repository
snakemake -call
This will run all analysis steps to reproduce results.
To generate a PDF of the dependency graph of all steps build/dag.pdf
run:
snakemake -c1 --use-conda -f dag
Repo structure
config
: configuration filesariadne-data
: Germany specific data from the Ariadne projectworkflow
: contains the Snakemake workflow, including the submodule PyPSA-Eur and specific scripts for Germanycutouts
: very large weather data cutouts supplied by atlite library (does not exist initially)data
: place for raw data (does not exist initially)resources
: place for intermediate/processing data for the workflow (does not exist initially)results
: will contain all results (does not exist initially)
Differences to PyPSA-EUR
- Specific cost assumption for Germany:
- Gas, Oil, Coal prices
- electrolysis and heat-pump costs
- Infrastructure costs according to the Netzentwicklungsplan 23 (NEP23)
- option for pessimstic, mean and optimistic cost development
- Transport and Industry demands as well as heating stock imported from the sectoral models in the Ariadne consortium
- More detailed data on CHPs in Germany
- Option for building the German Wasserstoffkernnetz
- The model has been validated against 2020 electricity data for Germany
- National CO2-Targets according to the Klimaschutzgesetz
- Additional constraints that limit maximum capacity of specific technologies
- Import constraints
- Renewable build out according to the Wind-an-Land, Wind-auf-See and Solarstrategie laws
- A comprehensive reporting module that exports Capacity Expansion, Primary/Secondary/Final Energy, CO2 Emissions per Sector, Trade, Investments, ...
- Plotting functionality to compare different scenarios
License
The code in this repo is MIT licensed, see ./LICENSE.md
.
Citation (CITATION.cff)
cff-version: 1.2.0 message: "pypsa-ariadne" title: "Kopernikus-Projekt Ariadne - Gesamtsystemmodell PyPSA-Eur" repository: https://github.com/account/pypsa-ariadne version: 0.0.0 doi: "N/A" date-released: "N/A" license: MIT authors: - family-names: Your surname given-names: Christoph Tries orcid: https://orcid.org/0009-0000-2425-0993
Owner metadata
- Name: PyPSA
- Login: PyPSA
- Email:
- Kind: organization
- Description: Python for Power System Analysis
- Website: www.pypsa.org
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/32890768?v=4
- Repositories: 29
- Last ynced at: 2024-03-26T13:25:46.062Z
- Profile URL: https://github.com/PyPSA
GitHub Events
Total
- Create event: 65
- Release event: 6
- Issues event: 32
- Watch event: 7
- Delete event: 32
- Issue comment event: 94
- Push event: 343
- Pull request review comment event: 32
- Pull request review event: 39
- Pull request event: 117
- Fork event: 2
Last Year
- Create event: 65
- Release event: 6
- Issues event: 32
- Watch event: 7
- Delete event: 32
- Issue comment event: 94
- Push event: 343
- Pull request review comment event: 32
- Pull request review event: 39
- Pull request event: 117
- Fork event: 2
Committers metadata
Last synced: 1 day ago
Total Commits: 727
Total Committers: 14
Avg Commits per committer: 51.929
Development Distribution Score (DDS): 0.462
Commits in past year: 431
Committers in past year: 8
Avg Commits per committer in past year: 53.875
Development Distribution Score (DDS) in past year: 0.357
Name | Commits | |
---|---|---|
Michael Lindner | m****r@p****e | 391 |
toniseibold | t****b@g****m | 130 |
JulianGeis | J****s@g****t | 95 |
Tom Brown | t****m@n****g | 53 |
Fabian Neumann | f****n@o****e | 22 |
Lukas Trippe | l****p@p****e | 12 |
dependabot[bot] | 4****] | 6 |
pre-commit-ci[bot] | 6****] | 6 |
chrstphtrs | c****s@t****e | 5 |
cpschau | c****s@i****e | 2 |
Michael Lindner | m****r@t****e | 2 |
Fabian | f****f@g****e | 1 |
Philipp Glaum | p****m@t****e | 1 |
cpschau | 1****u | 1 |
Committer domains:
- tu-berlin.de: 3
- gmx.de: 1
- ieg.fraunhofer.de: 1
- pm.me: 1
- outlook.de: 1
- nworbmot.org: 1
- gmx.net: 1
- posteo.de: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 124
Total pull requests: 297
Average time to close issues: about 1 month
Average time to close pull requests: 9 days
Total issue authors: 7
Total pull request authors: 11
Average comments per issue: 0.95
Average comments per pull request: 1.52
Merged pull request: 243
Bot issues: 0
Bot pull requests: 11
Past year issues: 78
Past year pull requests: 217
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 6 days
Past year issue authors: 6
Past year pull request authors: 8
Past year average comments per issue: 1.15
Past year average comments per pull request: 1.59
Past year merged pull request: 175
Past year bot issues: 0
Past year bot pull requests: 11
Top Issue Authors
- lindnemi (67)
- toniseibold (35)
- JulianGeis (13)
- nworbmot (3)
- fneum (3)
- cpschau (2)
- seaasun (1)
Top Pull Request Authors
- lindnemi (96)
- toniseibold (88)
- JulianGeis (61)
- nworbmot (12)
- lkstrp (10)
- fneum (9)
- dependabot[bot] (7)
- cpschau (6)
- pre-commit-ci[bot] (4)
- p-glaum (2)
- FabianHofmann (2)
Top Issue Labels
- high priority (6)
- good first issue (6)
- duplicate (6)
- enhancement (4)
- bug (2)
- question (2)
- potentially very hard to do (1)
Top Pull Request Labels
- dependencies (7)
- do not merge (5)
- bug (1)
Dependencies
- atlite >=0.2.9
- black
- cartopy
- country_converter
- dask
- descartes
- fiona
- geopandas >=0.11.0
- geopy
- graphviz
- gurobi
- highs
- ipopt
- ipython
- jupyter
- jupyterlab
- lxml
- matplotlib <3.6
- memory_profiler
- netcdf4
- networkx
- numpy
- openpyxl !=3.1.1
- pandas >=1.4
- pip
- powerplantmatching >=0.5.5
- pre-commit
- proj
- pyam
- pycountry
- pyomo
- pypsa >=0.25.1
- pytables
- python >=3.8
- pytz
- pyxlsb
- rasterio !=1.2.10
- rioxarray
- scipy
- seaborn
- shapely >=2.0
- snakemake-minimal >=7.7.0
- tabula-py
- tqdm
- tsam >=1.1.0
- xarray
- xlrd
- yaml
Score: 5.934894195619588