-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adjust eDisGo to new Specs #90
Comments
Thx a lot for the detailed issue description. @birgits will take care about as soon as possible. |
See also: openego/eGo#11 |
In openego/eGo#11 (comment) we agreed on not having any check-ups in the eTraGo-eDisGo interface |
Thank you very much @maltesc for your input! I am implementing the needed changes at the moment and have a small question concerning the renewables dataframe - will the weather ID be a string or an integer? |
The weather ID is an integer and comes from the model_draft table 'EgoSupplyPfGeneratorSingle'. The datatype in the specs is the same as in this table. However, this is easy to change and we can easily adjust the datatype in the specs in case you need it differently. |
Thank you @maltesc. The interface is almost done. I have another small question though just to be sure - are the ren_dispatch timeseries the possible feed-in minus the curtailment or do we need to subtract the curtailment? |
@birgits: |
The specs are implemented now. I didn't merge yet and would like to wait for your feedback @wolfbunke @maltesc. You'll find the changes on the branch features/#90-etrago-specs. You can use the provided example in eDisGo/edisgo/examples/ to run edisgo with etrago specs. Make sure to provide the correct scenario name (in line 24) and MV grid IDs (in line 19 in list 'grids', grid IDs must be integer) for the specs you want to run edisgo with. |
@wolfbunke reported that it works for him so I'll close this issue. |
I just finished the new version of the Specs function (see https://github.com/openego/eGo/blob/features/specs/ego/tools/specs.py). I tried to stay as close as possible to the old version. However, since some things have changed, the eDisGo class "ETraGoSpecs" needs to be adjusted. The new class description should look something like this (see explanation below):
Explanation:
We unfortunately had to drop a few attributes. Since generators in eTraGo are aggregated by size, but not by voltage level, it would be necessary to query every single generator from the DP in order to identify those that are connected to the HV side. Since this query is pretty time consuming, it is not recommendable to desaggregate generators. For this reason, no absolute values (but only normalized values) are calculated for the MV side of the TG bus transformer. Therefore, the former attributes "_active_power", "_reactive_power" and "_capacity", have been excluded from the Specs.
Furthermore, since load is aggregated by eTraGo and can alternatively be queried directly from the DP, load and annual load have also been excluded from the Specs.
The attribute _dispatch contains the normalized dispatch of all flexible generators. This behavior is similar to before. However, flexible renewables (solar and wind) have been excluded from this attribute.
Since wind and solar are not only aggregated by size, but also by weather ID (where the weather ID is comparable simple to query), we decided to not waste this information at the interface level. The attribute _renewables now contains all aggregates (unique by name (e.g. 'solar') and w_id) with their corresponding ren_id to allocate them to the dispatch dataframes. _ren_dispatch and _curtailment contain the normalized time series, while the columns represent the ren_id from the _renewables attribute.
In case this new solution is difficult to implement in eDisGo, it would easy to switch back to the old version, where also wind and solar are completely aggregated by type. Furthermore, runtime of the now included weather ID might be an issue. While the old function processed all data in milliseconds, only the query of a few weather ID's takes around 5 seconds. Since this is done for almost every TG bus, this might extend the total runtime considerably.
We had considered to keep all storage types at interface level. However, it can be assumed that no storage facilities but extendable storages are connected to the MV. For this reason (as in the old version) only extendable storages are included. However, the code for including all storage types has been implemented and can easily be recovered.
As an example, use:
The text was updated successfully, but these errors were encountered: