10000 Tags · a-buntjer/PyPSA · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Tags: a-buntjer/PyPSA

Tags

v0.17.1

Toggle v0.17.1's commit message
PyPSA Version 0.17.1

Hyperlinked release notes can be found here:

https://pypsa.readthedocs.io/en/latest/release_notes.html#pypsa-0-17-1-15th-july-2020

v0.17.0

Toggle v0.17.0's commit message
PyPSA Version 0.17.0

Hyperlinked release notes can be found here:

https://pypsa.readthedocs.io/en/latest/release_notes.html#pypsa-0-17-0-23rd-march-2020

v0.16.1

Toggle v0.16.1's commit message
PyPSA Version 0.16.1

Hyperlinked release notes can be found here:

https://pypsa.readthedocs.io/en/latest/release_notes.html#pypsa-0-16-1-10th-january-2020

This release contains a few minor bux fixes from the introduction of
nomopyomo in the previous release, as well as a few minor features.

* When using the nomopyomo formulation of the LOPF with
  network.lopf(pyomo=False), PyPSA was not correcting the bus marginal
  prices by dividing by the network.snapshot_weightings, as is done in
  the pyomo formulation. This correction is now applied in the
  nomopyomo formulation to be consistent with the pyomo
  formulation. (The reason this correction is applied is so that the
  prices have a clear currency/MWh definition regardless of the
  snapshot weighting. It also makes them stay roughly the same when
  snapshots are aggregated: e.g. if hourly simulations are sampled
  every n-hours, and the snapshot weighting is n.)

* The status, termination_condition that the network.lopf returns is
  now consistent between the nomopyomo and pyomo formulations. The
  possible return values are documented in the LOPF docstring, see
  also the documentation. Furthermore in the nomopyomo formulation,
  the solution is still returned when gurobi finds a suboptimal
  solution, since this solution is usually close to optimal. In this
  case the LOPF returns a status of warning and a
  termination_condition of suboptimal.

* For plotting with network.plot() you can override the bus
  coordinates by passing it a layouter function from networkx. See the
  docstring for more information. This is particularly useful for
  networks with no defined coordinates.

* For plotting with network.iplot() a background from mapbox can now
  be integrated.

Please note that we are still aware of one implementation difference
between nomopyomo and pyomo, namely that nomopyomo doesn’t read out
shadow prices for non-extendable branches, see the github issue.

v0.16.0

Toggle v0.16.0's commit message
PyPSA Version 0.16.0

Hyperlinked release notes can be found here:

https://pypsa.readthedocs.io/en/latest/release_notes.html#pypsa-0-16-0-20th-december-2019

This release contains major new features. It is also the first release
to drop support for Python 2.7. Only Python 3.6 and 3.7 are supported
going forward. Python 3.8 will be supported as soon as the gurobipy
package in conda is updated.

* A new version of the linear optimal power flow (LOPF) has been
  introduced that uses a custom optimization framework rather than
  Pyomo. The new framework, based on nomoypomo, uses barely any memory
  and is much faster than Pyomo. As a result the total memory usage of
  PyPSA processing and gurobi is less than a third what it is with
  Pyomo for large problems with millions of variables that take
  several gigabytes of memory (see this graphical comparison for a
  large network optimization). The new framework is not enabled by
  default. To enable it, use network.lopf(pyomo=False). Almost all
  features of the regular network.lopf are implemented with the
  exception of minimum down/up time and start up/shut down costs for
  unit commitment. If you use the extra_functionality argument for
  network.lopf you will need to update your code for the new
  syntax. There is documentation for the new syntax as well as a
  Jupyter notebook of examples.

* Distributed active power slack is now implemented for the full
  non-linear power flow. If you pass network.pf() the argument
  distribute_slack=True, it will distribute the slack power across
  generators proportional to generator dispatch by default, or
  according to the distribution scheme provided in the argument
  slack_weights. If distribute_slack=False only the slack generator
  takes up the slack. There is further documentation.

* Unit testing is now performed on all of GNU/Linux, Windows and MacOS.

* NB: You may need to update your version of the package six.

Special thanks for this release to Fabian Hofmann for implementing the
nomopyomo framework in PyPSA and Fabian Neumann for providing the
customizable distributed slack.

v0.15.0

Toggle v0.15.0's commit message
PyPSA Version 0.15.0

Hyperlinked release notes can be found here:

file:///home/tom/fias/lib/pypsa/doc/_build/html/release_notes.html#pypsa-0-15-0-8th-november-2019

This release contains new improvements and bug fixes.

* The unit commitment (UC) has been revamped to take account of
  constraints at the beginning and end of the simulated snapshots
  better. This is particularly u seful for rolling horizon UC. UC now
  accounts for up-time and down-time in the periods before the
  snapshots. The generator attribute initial_status has been replaced
  with two attributes up_time_before and down_time_before to give
  information about the status before network.snapshots. At the end of
  the simulated snapshots, minimum up-times and down-times are also
  enforced. Ramping constraints also look before the simulation at
  previous results, if there are any. See the unit commitment
  documentation for full details. The UC example has been updated with
  a rolling horizon example at the end.
* Documentation is now available on readthedocs, with information
  about functions pulled from the docstrings.
* The dependency on cartopy is now an optional extra.
* PyPSA now works with pandas 0.25 and above, and networkx above 2.3.
* A bug was fixed that broke the Security-Constrained Linear Optimal
  Power Flow (SCLOPF) constraints with extendable lines.
* Network plotting can now plot arrows to indicate the direction of
  flow.
* The objective sense (minimize or maximize) can now be set (default
  remains minimize).
* The network.snapshot_weightings is now carried over when the network
  is clustered.
* Various other minor fixes.

We thank colleagues at TERI for assisting with testing the new unit
commitment code, Clara Büttner for finding the SCLOPF bug, and all
others who contributed issues and pull requests.

v0.14.1

Toggle v0.14.1's commit message
PyPSA Version 0.14.1

Hyperlinked release notes can be found here:

https://pypsa.org/doc/release_notes.html#pypsa-0-14-1-27th-may-2019

This minor release contains three small bug fixes:

* Documentation parses now correctly on PyPI

* Python 2.7 and 3.6 are automatically tested using Travis

* PyPSA on Python 2.7 was fixed

This will also be the first release to be available directly from conda-forge.

v0.14.0

Toggle v0.14.0's commit message
PyPSA Version 0.14.0

Hyperlinked release notes can be found here:

https://pypsa.org/doc/release_notes.html#pypsa-0-14-0-15th-may-2019

This release contains a new feature and bug fixes.

* Network plotting can now use the mapping library cartopy as well as
  basemap, which was used in previous versions of PyPSA. The basemap
  developers will be phasing out basemap over the next few years in
  favour of cartopy (see their end-of-life announcement). PyPSA now
  defaults to cartopy unless you tell it explicitly to use
  basemap. Otherwise the plotting interface is the same as in previous
  versions.
* Optimisation now works with the newest version of Pyomo 5.6.2 (there
  was a Pyomo update that affected the opt.py expression for building
  linear sums).
* A critical bug in the networkclustering sub-library has been fixed
  which was preventing the capital_cost parameter of conventional
  generators being handled correctly when networks are aggregated.
* Network.consistency_check() now only prints necessary columns when
  reporting NaN values.
* Import from pandapower networks has been updated to pandapower 2.0
  and to include non-standard lines and transformers.

We thank Fons van der Plas and Fabian Hofmann for helping with the
cartopy interface, Chloe Syranidis for pointing out the problem with
the Pyomo 5.6.2 update, Hailiang Liu for the consistency check update
and Christian Brosig for the pandapower updates.

v0.13.2

Toggle v0.13.2's commit message
PyPSA Version 0.13.2

Hyperlinked release notes can be found here:

https://pypsa.org/doc/release_notes.html#pypsa-0-13-2-10th-january-2019

This minor release contains small new features and fixes.

* Optimisation now works with Pyomo >= 5.6 (there was a Pyomo update
  that affected the opt.py LConstraint object).
* New functional argument can be passed to Network.lopf:
  extra_postprocessing(network,snapshots,duals), which is called after
  solving and results are extracted. It can be used to get the values
  of shadow prices for constraints that are not normally extracted by
  PyPSA.
* In the lopf kirchhoff formulation, the cycle constraint is rescaled
  by a factor 1e5, which improves the numerical stability of the
  interior point algorithm (since the coefficients in the constraint
  matrix were very small).
* Updates and fixes to networkclustering, io, plot.

We thank Soner Candas of TUM for reporting the problem with the most
recent version of Pyomo and providing the fix.

v0.13.1

Toggle v0.13.1's commit message

Unverified

The committer email address is not verified.
PyPSA Version 0.13.1

Hyperlinked release notes can be found here:

https://www.pypsa.org/doc/release_notes.html#pypsa-0-13-1-27th-march-2018

This release contains bug fixes for the new features introduced in
0.13.0.

* Export network to netCDF file bug fixed (components that were all
  standard except their name were ignored).

* Import/export network to HDF5 file bug fixed and now works with more
  than 1000 columns; HDF5 format is no longer deprecated.

* When networks are copied or sliced, overridden components
  (introduced in 0.13.0) are also copied.

* Sundry other small fixes.

We thank Tim Kittel for pointing out the first and second bugs. We
thank Kostas Syranidis for not only pointing out the third issue with
copying overridden components, but also submitting a fix as a pull
request.

For this release we acknowledge funding to Tom Brown from the
RE-INVEST project.

v0.13.0

Toggle v0.13.0's commit message

Unverified

The committer email address is not verified.
PyPSA Version 0.13.0

Hyperlinked release notes can be found here:

https://www.pypsa.org/doc/release_notes.html#pypsa-0-13-0-25th-january-2018

This release contains new features aimed at coupling power networks to
other energy sectors, fixes for library dependencies and some minor
internal API changes.

* If you want to define your own components and override the standard
  functionality of PyPSA, you can now override the standard components
  by passing pypsa.Network() the arguments override_components and
  override_component_attrs, see the section on Custom
  Components. There are examples for defining new components in the
  git repository in examples/new_components/, including an example of
  overriding network.lopf() for functionality for
  combined-heat-and-power (CHP) plants.

* The Link component can now be defined with multiple outputs in fixed
  ratio to the power in the single input by defining new columns bus2,
  bus3, etc. (bus followed by an integer) in network.links along with
  associated columns for the efficiencies efficiency2, efficiency3,
  etc. The different outputs are then proportional to the input
  according to the efficiency; see sections Link with multiple outputs
  or inputs and Controllable branch flows: links and the example of a
  CHP with a fixed power-heat ratio.

* Networks can now be exported to and imported from netCDF files with
  network.export_to_netcdf() and network.import_from_netcdf(). This is
  faster than using CSV files and the files take up less space. Import
  and export with HDF5 files, introduced in PyPSA 0.12.0, is now
  deprecated.

* The export and import code has been refactored to be more general
  and abstract. This does not affect the API.

* The internally-used sets such as pypsa.components.all_components and
  pypsa.one_port_components have been moved from pypsa.components to
  network, i.e. network.all_components and
  network.one_port_components, since these sets may change from
  network to network.

* For linear power flow, PyPSA now pre-calculates the effective per
  unit reactance x_pu_eff for AC lines to take account of the
  transformer tap ratio, rather than doing it on the fly; this makes
  some code faster, particularly the kirchhoff formulation of the
  LOPF.

* PyPSA is now compatible with networkx 2.0 and 2.1.

* PyPSA now requires Pyomo version greater than 5.3.

* PyPSA now uses the Travis CI continuous integration service to test
  every commit in the PyPSA GitHub repository. This will allow us to
  catch library dependency issues faster.

We thank Russell Smith of Edison Energy for the pull request for the
effective reactance that sped up the LOPF code and Tom Edwards for
pointing out the Pyomo version dependency issue.

For this release we also acknowledge funding to Tom Brown from the
RE-InVEST project.
0