Tags: a-buntjer/PyPSA
Tags
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
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
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.
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.
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.
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.
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.
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.
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.
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.
PreviousNext