These are new features and improvements of note in each release.
eTraGo is now compatible with Python 3.8
eTraGo can now import and optimize networks that include other energy sectors such as gas, heating and mobility
Various flexibility options from different energy sectors can be considered in the optimization:
Weather dependent capacity of transmission lines (Dynamic Line Rating)
Demand Side Management
Flexible charging of electric vehicles
Heat and hydrogen stores
Methanation and Steam Methane Reforming
eTraGo arguments can now be partially provided and updated
eTraGo can now import datamodels from databases without using the ego.io
Existing clustering methods were adapted to be able to reduce the complexity of not electrical sectors
Improvement of the ehv clustering (much faster now)
A new clustering method named “k-medoids Dijkstra Clustering” (can be called by “kmedoids-dijkstra”) was implemented. This method considers the electrical distance between the buses in the network. It is also available for the methane grid.
It is possible to select if foreign buses are considered or not during the clustering process.
The number of CPUs used to perform the clustering can be provided by the user.
Some more options are available to conduct a reduction in temporal dimension:
segmentation: clustering of adjacent hours to segments of variable length
clustering to typical periods extended to cluster on weeks and months
A temporal disaggregation is available through a 2-level-approach including a dispatch optimization on the temporally fullcomplex model. To limit the RAM usage, you can optionally divide the optimisation problem into a chosen number of slices.
New plotting functions to visualize the optimization results from all the included energy sectors were implemented
Functions to analyze results were updated to consider new sectors
eTraGo has now a more object-oriented programming design.
eTraGo uses PyPSA version 0.17.1 directly, the fork is not needed anymore. The updated pypsa version includes various features, e.g. running a lopf without using pyomo which is faster and needs less memory.
(n-1)-security factors are set as line/transformer parameters s_max_pu instead of adding the additional argument s_nom_original
There is now one central plotting function for all grid topology plots which also allows to combine different results (e.g. plot storage expansion and line expansion at once)
eTraGo is now compatible to Python3.7
A bug in setting the line_length_factor in kmeans clustering is fixed.
A minor release adding the following features.
for single use of eTraGo (not as a sub-module of eGo), we recommend to use the newest minor data release ‘gridversion’: ‘v0.4.6’. This data release includes some minor bug fixes but it is not consistent with the data on the MV and LV levels. Hence, the modelling results are only adequate for the HV and EHV level applying solely the tool eTraGo.
snapshot clustering includes now an approach to model seasonal storage as in Kotzur et al, 2018 ( https://www.sciencedirect.com/science/article/pii/S0306261918300242 ). Moreover the method may include extreme periods using an option of the tsam package.
osm maps can now be used for background plotting
the iterate_lopf function enables to adequately model the reactances when expanding the grid
important bug fix for the adjustment of reactances when harmonizing the voltage level when applying the k-means network clustering
multiple extra_functionalities can be called easily called now at once
various minor changes such as specifying installation requires for flawless performance
A minor release adding new options for additional constraints, modelling assumptions and plotting.
Two extra functionalities were introduced in order to apply constraints concerning a minimal share of renewable energy and a global upper bound for grid expansion. You can activate these functions in the ‘args’ of the etrago() function.
The branch_capacity_factor can now be defined separately for the high and extra high voltage level in order to address the (n-1) criteria more accurately.
There are some more plotting functions e.g. plotting the state-of-charge and dispatch of storage units.
Storage capacities in foreign countries can easily be be optimized.
By default the maximum expansion of each line and transformer is set to four times its original capacity. Being an argument of the extendable() function it can be easily adjusted.
k-means clustered results can now also be exported to the oedb.
eTraGo is able to produce feasible non-linear power flows based on optimization results and allows the disaggregation of clustered results to original spatial complexities.
The pf_post_lopf function was improved. Due to changes in the data set now the non-linear power flow (pf) creates feasible solutions. If network optimization is turned on, a second lopf which regards the updated reactances and optimizes only dispatch is performed before the pf is executed.
The disaggregation method was included. When using a network clustering method to reduce the spatial complexity of the given network, a disaggregation method can be used afterwards to distribute the nodal results (generation and storage timeseries) to the original complexity. The method ‘disaggregation’: ‘uniform’ can be used as an interface functionality for distribution grid planning tools like eDisGo.
For the network expansion it is now additionally possible to only optimize the German power lines or only the crossborder lines. Moreover one can choose to optimize only a predefined set of power lines which are identified by a worst-case analysis beforehand.
Intertemporal constraints can be applied to certain power plants. For different technologies certain parameters i.e. ‘start_up_cost’, ‘start_up_fuel’, ‘min_up_time’ and ‘min_down_time’ are defined in the ramp_limits function.
Crossborder lines can now easily be modelled as ‘DC’ links. Moreover the capacities of these lines can be adjusted with respect to a ACER report on thermal as well as net transfer capacities.
Thanks to @jankaeh manually the grid topology within the cities Stuttgart, Munich and Hannover was improved. Perspectively this function should be obsolete when openstreetmap and/or osmTGmod get better data coverage.
As an alternative to the normal editing of the calcualtion settings (args) within the appl.py it is now possible to load an args.json file.
eTraGo works with pypi and is suitable for eGo 0.2.0
An installation issue when installing from pypi was fixed.
The random noise function was improved. Now you set a (reproducible) random seed.
snapshot.weightings are used within the plotting functions
bug fix for k-means clustering with respect to the aggregation of p_max_pu values of variable generators. They are weighted by their p_nom now.
eTraGo now enables combined grid and storage expansion, snapshot clustering and the consideration of exogenous grid expansion.
A part from optimizing the investment of storages it is now also possible to optimize grid expansion investments. In this context we added an argument ‘extendable’ which expects an array of the different component types you want to optimize. This argument corresponds to functions in the new extendable.py file. It is possible to choose from expansion strategies which are defined within that sub-package. Capital costs for new grid components can be defined and are annualized by means of interest rate, component lifetime and operation period.
The k-means network clustering (‘network_clustering_kmeans’) has been refactored. It is now possible to reproduce busmaps by csv-importing already defined busmaps. Consequently it is possible to write busmaps. Here the argument ‘load_cluster’ was introduced. Moreover it is possible read and write bus_weightings. This helps to e.g. run a future scenario but using a bus weighting of the status quo. Moreover, the remove_stubs function from PyPSA is now easily usable in eTraGo.
The snapshot_clustering can now be used in order to reduce the temporal complexity. Typical days are taken in order to represent the entire year. Here the package tsam (developed by Leander Kotzur) is used. Standardly a hierarchical clustering method is used which is e.g. described by Nahmacher et al. ( see: https://www.sciencedirect.com/science/article/pii/S0360544216308556 ).
Scenario variations from the oedb can be introduced. The argument ‘scn_extension’ will activate an extension scenario which adds components such as lines or generator to the base scenario. The ‘scn_decommissioning’ argument states whether you want to remove existing components. Right now, in the oedb two scenarios are accessible which represent the grid expansion (and the corresponding removal of existing equipment) planned by the German network development plan.
Our data model at the oedb represents Germany and the electrical neighbors. If you consider planned grid expansion to Norway and Belgium you would most probably want to include also these countries as electrical neighbors including their aggregated generation and demand characteristics. The argument ‘add_Belgium_Norway’ therefore was introduced. Once activated it will add the countries to the model.
DC links are now also modelled as PyPSA DC links. Consequently Sweden is now connected by a DC link.
The plotting sub-package was amplified and enhanced by new plotting functions and improvements of existing ones (e. g. introduced a legend for the plotting function storage_expansion())
The code complies now mostly with the pep8 standard
Documentation was improved (but ongoing work in progress) considering doc strings for functions and the rtd-documentation web site
The io was slightly reformatted and restructured.
eTraGo works with ego.io 0.3.0
Result export to oedb functionality was improved. Now, a safe tag can be set in order to state that the result set shall be versioned and moved to the schema ‘grid’.
the new database sessionmaker of ego.io 0.3.0 is enabled which gets rid of dependency to oemof.db.
it is possible to skip snapshots in order to ingenuously simplify the problem.
eTraGo will be available on PyPI
eTraGo 0.5.1 will be used for eGo 0.0.1
eTraGo works with PyPSA 0.11.0.
Result export to postgresql database in particular to the open energy data base (oedb)
parallelisation function hands over SOC of storages to following problem.
New plot for displaying voltage deviations at network buses.
Line loading plot displays the direction of power flows.
k-means clustering got a more suitable scaling factor concerning calculations on the 110kV grid.
K-means weighting of the buses is a bit more robust to changes in the data structure.
the list of carriers is imported again to the pypsa network from the oedb data model.
update PyPSA Version from 0.8.0 to PyPSA 0.11.0
eTraGo integrates ego.powerflow functionalities
Release 0.4 is mainly the merging of ego.powerflow into eTraGo. Additionally, some restructuring has been carried out, plotting functions have been updated and the first approach for a documentation was set up.
merging of ego.powerflow into eTraGo
Release introducing k-means clustering and several additional functionalities
This is the version 0.2 of eTraGo.
This new version shall be install via pip and a setup.py. Moreover there has been minor adjustments such as the creation of a callable etrago function.
install via pip and a setup.py
callable etrago function
First release of eTraGo