Skip to content
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

Structure of the demandlib #1

Closed
EdithaK opened this issue Apr 28, 2016 · 17 comments
Closed

Structure of the demandlib #1

EdithaK opened this issue Apr 28, 2016 · 17 comments
Assignees
Milestone

Comments

@EdithaK
Copy link

EdithaK commented Apr 28, 2016

You wanted to answer the following questions:

  • Which parts should the damandlib include: profiles; annual demand; GIS-analyses ...(?)
  • Who is the user - oemof or RLI?
  • Is it usefull to determine the application area? (only germany)
  • Are data included? How should they be stored? DB - Files - Links
  • is this a universal application? Are detailed; specified elements allowed?
@c-moeller
Copy link
Member

Today me and @uvchik talked about the contents and aim of the demandlib. Our suggestion to keep it as lean as possible and to have only the profile functionality (bdew, industry) for electricity and heat included. A library like this we would like to keep as a part of oemof

We think the best way achieving this is to write a library from scratch again including all necessary existing contents to get rid of the not at all lean structure of the current demandlib (and maybe rename it to profilelib).

All other development on demand topics should be done in project repositories only. If it then turns out that there are reasons of making some of these a part of the demandlib/profilelib we can discuss this at a given time.

What do you think?

@gplssm
Copy link
Contributor

gplssm commented May 31, 2016

I had similar thoughts about rewriting it from scratch while discussion the industrial load profile integration...
Who is in charge and takes the first step?

@uvchik
Copy link
Member

uvchik commented Jun 15, 2016

Started with the heat profiles. I think the structure of the electrical profiles will be more simple because less parameters are needed. Maybe a dictionary as input and a DataFrame as output:

input = {'h0': 2345234, 'g0: 324532435,....}

Just an idea. Who will transfer the electrical profiles?

@c-moeller
Copy link
Member

As far as I know this is exactly the data structure we have used before, see:
https://github.com/oemof/oemof/blob/dev/examples/demandlib_examples/example_demandlib.py#L24

Do you mean this?

@c-moeller
Copy link
Member

Who will transfer the electrical profiles?

I'm going to do this next week.

@c-moeller
Copy link
Member

I'm going to do this next week.

Done. Could anyone test it and tell me if I missed something?

@uvchik
Copy link
Member

uvchik commented Jul 6, 2016

Here are my ideas:

  1. the industrial profile should not be part of the bdew module
  2. the bdew heat profile and the electrical bdew profile could be part of one module
  3. there should not be a dependency to oemof due to one or two helper functions
  4. the normalisation could be part of the class (even though I do not know if we should use 1000 instead of 1 to avoid rounding errors but I did not test it.)
  5. I would remove the deciders

@caro-rli The latest commits realised all my ideas from above. If you do not like them, revert them (or ask me to revert them because my commits are not as clean as they should be).

Is it possible to get profiles for periods of 2 hours, 30 minutes, 15 minutes? I did not test it but I think this would be a nice feature.

@uvchik uvchik added this to the first release v0.0.1 milestone Jul 7, 2016
@c-moeller
Copy link
Member

With the heat example I get an error

Traceback (most recent call last):                                                                                                     │['hh_11', 'hh_12']
  File "heat_demand_example.py", line 37, in <module>                                                                                  │2016-07-11 16:35:02,100 - INFO - example_households_parchim - Create oemof objects
    name='EFH').get_bdew_profile()                                                                                                     │hh_1
  File "/home/caro/rlihome/Git/demandlib/demandlib/bdew.py", line 325, in get_bdew_profile                                             │hh_2
    how="geometric_series")                                                                                                            │^C  Signal handler called from  /usr/local/lib/python3.4/dist-packages/pandas/tseries/index.py <lambda> 500
  File "/home/caro/rlihome/Git/demandlib/demandlib/bdew.py", line 205, in weighted_temperature                                         │  Waiting...
    temperature = self.df["temperature"].resample('D').mean().reindex(                                                                 │  Signal 2 recieved, but no process queued
AttributeError: 'numpy.float64' object has no attribute 'reindex'           

I've got numpy 1.11.0

@c-moeller
Copy link
Member

If you do not like them, revert them (or ask me to revert them because my commits are not as clean as they should be).

I like them except for number 4 as I don't understand.

I think additionally we should have examples for the various options of the industrial profiles. I have made a suggestion in the power example file.

@c-moeller
Copy link
Member

Is it possible to get profiles for periods of 2 hours, 30 minutes, 15 minutes? I did not test it but I think this would be a nice feature.

I'm still not convinced if this is necessary since we wanted to leave out all own calculations.

@uvchik
Copy link
Member

uvchik commented Jul 12, 2016

I'm still not convinced if this is necessary since we wanted to leave out all own calculations.

Okay, removed this option. Now the only output of the electricity profiles are 15-minute values. The output of the industrial profile depends on the passed datetime index.

  • Please check if everything works.
  • Please check the results.
  • Try if the heatprofiles work with pandas 0.18 and change the setup.py if necessary.

@gplssm
Copy link
Contributor

gplssm commented Jul 12, 2016

Thanks for the implementation work. I had short look on it -- looks good!

Maybe there will be some future feature additions by the open_ego team, but this can't be said for sure right now. We think of

  • Have a short cut to retrieve the peak demand faster
  • Obtain a set of demand profiles with some salt respecting coincidence effects

In addition, whats about the demand profiles of the HTW guys? Would this be interesting for this lib?

@uvchik
Copy link
Member

uvchik commented Jul 12, 2016

In addition, whats about the demand profiles of the HTW guys? Would this be interesting for this lib?

I do not know these profiles but I would appreciate every kind of contribution.

Maybe there will be some future feature additions by the open_ego team, but this can't be said for sure right now.

Feel free 😄

@c-moeller
Copy link
Member

In addition, whats about the demand profiles of the HTW guys? Would this be interesting for this lib?

I do not know these profiles but I would appreciate every kind of contribution.

I know these profiles and I'm currently using them. I could add them, but we should:

  • specify the functionalities we need in context with these profiles
  • ask the HTW guys before (?)

@uvchik
Copy link
Member

uvchik commented Jul 12, 2016

ask the HTW guys before (?)

@caro-rli : Would you ask them? Then you could open an new issue/PR.

@c-moeller
Copy link
Member

@caro-rli : Would you ask them? Then you could open an new issue/PR.

Ok

Try if the heatprofiles work with pandas 0.18 and change the setup.py if necessary.

Is working now with pandas 0.18

@gplssm gplssm modified the milestones: Release v0.2, first release v0.0.1 Oct 4, 2016
@uvchik
Copy link
Member

uvchik commented Oct 21, 2016

If it works we can close this issue.

@caro-rli I moved the idea of the HTW profiles to issue #7 .

@uvchik uvchik closed this as completed Oct 21, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants