-
Notifications
You must be signed in to change notification settings - Fork 133
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
Dev-Meeting working on results #1138
Comments
for some reason i could not add you @Bachibouzouk |
@AntonellaConsolinno - I believe this is because I am not part of the repo or the orga (I would be happy to if it is ok :)) |
Sent you an invite! |
I think it is probably the easiest to plan for all those involved if we simply meet for a few days before the next user meeting. This way we already have a location and a time and can avoid to extra trips (to and from another location). We could even ask the organizers of the next user meeting if they have rooms available, come up with own ideas for meeting spaces or simply meet at an AirBnB/Hotel. I would like to keep the organizational overhead as small as possible and, if possible and acceptable by everyone, try to work in a small-ish, flexible and (where possible) fast moving team. |
As a side-note: I already have an idea for how the results could look like after we work on it (though there is still a lot of room for alternatives, I think). If you want, I could aready share it here, so we could discuss it before we meet and focus on the implementation and compatibility during our development meeting? |
I'd agreed to extend the next dev/user meeting if possible. Still, we might have an earlier date if we meet on-line. (Alternatively: I'll also be at RET.Con, which is in February.) Sunke from DLR already implemented something some time ago. Unluckily, he did not manage to share it at the meeting. You can have a look at his fork: https://github.com/scus1/oemof-solph/tree/feature/result_processing |
The meeting's summary notes : https://cloud.oemof.org/s/pT47XJdAe7peY2R?dir=undefined&openfile=10425 My take on the result handling: rl-institut/oemof-tabular-plugins#10 and https://github.com/rl-institut/oemof-tabular-plugins/blob/e00531ea920339d305f35c3508c3aaba616359eb/src/oemof_tabular_plugins/datapackage/post_processing.py#L647 (this is not generalised to all possible oemof uses, and would need to be, adapted, thus at this point I would say the discussion is more interesting) |
This is @henhuy 's take on postprocessing calculations: https://github.com/oemof/oemof-tabular/blob/09346649f75389d9fdafa62c24ae5e95cc0cf291/src/oemof/tabular/postprocessing/core.py#L59 |
Proposal and benefitsI would propose to use 'pure' dictionaries for the results. With 'pure' I mean that they shouldn't contain more complex datatypes, like the currently used B1) Easy access and handling in Python Exemplary resultsThe results could look, for example, like this:
The structure here (if not obvious) would be
Converting the timestamp to a string allows to store the dictionary as a json-file (see benefits above). Experimental codeThe example below depicts the results handling for a single node (the Also, this is based on the current results structure. We could access the results coming from
Shortcomings and open questionsIn this example, the scalar values and meta-results are not stored in the new dictionary structure, but I believe that to be easily implementable (I was just lazy). This opens up the question, if the proposed structure is well-chosen. I could also imagine that I haven't checked backwards compatibility, but it might be possible to offer this type of result dict as an alternative next to the old results and mark the old results as deprecated or something like this. Because the old results dict was somewhat complicated and I know at least 3 different methods to access the old results, I'm not sure that we can offer a way that is backwards compatible for every access method. However, the (to my knowledge) most-widely used Open questions from my side are: Q1) Do you have questions concerning this approach? |
Thanks for the clean suggestion. For the transition, I'd just add a new result function and keep the old one side by side for a while. The structure might also solve the problem that storage requires a My suggestion, however, would be to use DataFrames in a flat structure. We'd need one DataFrame per Index (Timesteps, Timepoints, Periods) and hierarchical indexes for the columns in the Flow DataFrame. |
The summary of the meeting was that many (the majority) of the people transform the output into a single/double DataFrame. To me it would make sense to deliver in DataFrame format, and to discuss and describe the format as clearly as possible (this can then directly be used in the RTD to let the users know what to expect out of the output) |
Imo, it wouldn't be difficult to add a function that returns a DataFrame with preselected values. Using |
Hey everybody, |
Hey everyone,
as discussed in the dev meeting, we want to meet as a group of developers, which are interested in extend the options of results.
One idea is, to meet a view days before the next user-meeting (in spring 2025)? Maybe arriving on monday evening and coding on tuesday and wednesday morging.
Onother option is to meet before for a view days.
By liking this issue you give a non-binding commitment to participate at the small results-dev-meeting.
Feel free to share your opinion on the meeting ideas or suggest your own ideas. Or send this link to people, who might be also interested.
Best regards,
Antonella
The text was updated successfully, but these errors were encountered: