pypsa-eur/doc/release_notes.rst
Fabian Neumann 6deac6ced3 merge master
2020-10-03 11:15:39 +02:00

11 KiB

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> </head>

Release Notes

Upcoming Release

  • 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, 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 lines: s_nom_max: and links: p_nom_max (#166).

  • Added an option to alter the capital cost of carriers by a factor via carrier+factor in the {opts} wildcard. This can be useful for exploring uncertain cost parameters. Example: solar+0.5 reduces the capital cost of solar to 50% of original values (#167).

  • Add compatibility for pyomo 5.7.0 in :mod:`cluster_network` and :mod:`simplify_network`.

    System Message: ERROR/3 (<stdin>, line 22); backlink

    Unknown interpreted text role "mod".

    System Message: ERROR/3 (<stdin>, line 22); backlink

    Unknown interpreted text role "mod".

  • 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)

  • 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.

  • 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.

  • 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)

  • 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)

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).

    System Message: ERROR/3 (<stdin>, line 46); backlink

    Unknown interpreted text role "func".

    System Message: ERROR/3 (<stdin>, line 46); backlink

    Unknown interpreted text role "func".

    System Message: ERROR/3 (<stdin>, line 46); backlink

    Unknown interpreted text role "mod".

  • An updated extract of the ENTSO-E Transmission System Map (including Malta) was added to the repository using the GridKit tool. This tool has been updated to retrieve up-to-date map extracts using a single script. The update extract features 5322 buses, 6574 lines, 46 links. (#118).

  • Added FSFE REUSE compliant license information. Documentation now licensed under CC-BY-4.0 (#160).

  • Added a 30 minute video introduction and a 20 minute video tutorial

  • Networks now store a color and a nicely formatted name for each carrier, accessible via n.carrier['color'] and n.carrier['nice_name'] ``(networks after ``elec.nc).

  • 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).

  • 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).

  • 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).

  • Added a function _helpers.load_network() which loads a network with overridden components specified in snakemake.config['override_components'] (#128).

  • Bugfix in :mod:`base_network` which now finds all closest links, not only the first entry (#143).

    System Message: ERROR/3 (<stdin>, line 66); backlink

    Unknown interpreted text role "mod".

  • Bugfix in :mod:`cluster_network` which now skips recalculation of link parameters if there are no links (#149).

    System Message: ERROR/3 (<stdin>, line 68); backlink

    Unknown interpreted text role "mod".

  • Added information on pull requests to contribution guidelines (#151).

  • Improved documentation on open-source solver setup and added usage warnings.

  • Updated conda environment regarding pypsa, pyproj, gurobi, lxml. This release requires PyPSA v0.17.0.

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:

  • Documentation on installation, workflows and configuration settings is now available online at pypsa-eur.readthedocs.io (#65).

  • The conda environment files were updated and extended (#81).

  • The power plant database was updated with extensive filtering options via pandas.query functionality (#84 and #94).

  • Continuous integration testing with Travis CI is now included for Linux, Mac and Windows (#82).

  • Data dependencies were moved to zenodo and are now versioned (#60).

  • Data dependencies are now retrieved directly from within the snakemake workflow (#86).

  • Emission prices can be added to marginal costs of generators through the keyworks Ep in the {opts} wildcard (#100).

  • An option is introduced to add extendable nuclear power plants to the network (#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).

  • 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).

    System Message: ERROR/3 (<stdin>, line 99); backlink

    Unknown interpreted text role "mod".

  • 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).

    System Message: ERROR/3 (<stdin>, line 101); backlink

    Unknown interpreted text role "mod".

  • Logfiles for all rules of the snakemake workflow are now written in the folder log/ (#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).

Release Process

  • Checkout a new release branch git checkout -b release-v0.x.x.
  • Finalise release notes at doc/release_notes.rst.
  • Update envs/environment.fixed.yaml via conda env export -n pypsa-eur -f envs/environment.fixed.yaml --no-builds from an up-to-date pypsa-eur environment.
  • Update version number in doc/conf.py and *config.*.yaml.
  • Open, review and merge pull request for branch release-v0.x.x. Make sure to close issues and PRs or the release milestone with it (e.g. closes #X).
  • Tag a release on Github via git tag v0.x.x, git push, git push --tags. Include release notes in the tag message.
  • Upload code to zenodo code repository with GNU GPL 3.0 license.
  • Create pre-built networks for config.default.yaml by running snakemake -j 1 extra_components_all_elec_networks.
  • Upload pre-built networks to zenodo data repository with CC BY 4.0 license.
  • Send announcement on the PyPSA and PyPSA-Eur mailing list.
</html>