-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Run ModelChain from POA irradiance #943
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
Conversation
Does this close #536 ? |
Not for the use case of a broadband instrument in the plane of array (e.g. pyranometer). Yes for the use case of a plane-of-array reference cell (with similar spectrum and surface reflectance). |
For the case of POA measured by pyranometer should we recommend using GTI-DIRINT to back-estimate the DNI & DHI components before using Either way, I believe the documentation for |
Thoughts on 1. the current PR's approach of adding e.g. |
I'm hesitant to build that POA to DNI etc. to POA components translation into the method. We can inform the user that the GTI-DIRINT function is available, but they may have other information (e.g. DHI from a nearby weather station) and can find their own path to POA components.
Absolutely. I think the docstrings for these methods should have an Example section. |
Good points. ModelChain is really a mess. The primary ModelChain entry points ( Keeping that single input DataFrame design pattern while allowing for the input of were previously intermediate modeling results certainly raises issues with how data is grouped into attributes and how those attributes are named. My proposed solution for that is to generalize the DataFrame argument name to something like |
@wholmgren where would we retain the intermediate outputs such as
|
Sorry for being unclear. I am not in favor of modifying the input DataFrame. I'll try to be more concrete:
We could also assign a |
Working on this again. "selects known weather data" implies that we hardcode a list of keys that will comprise the weather dataframe attribute. This strikes me as difficult to maintain; when a new function is added somewhere (e.g. spectral model) which requires a new weather column, we'll have to add a key to this this list. What about To follow the rule "don't modify input dataframes" we shouldn't be filling in |
This is already the case. For example, air pressure in solar position pvlib-python/pvlib/modelchain.py Lines 884 to 888 in 49da031
precipitable water in the first solar correction pvlib-python/pvlib/modelchain.py Lines 646 to 650 in 49da031
I don't see how two DataFrame inputs improves the situation. I think it makes it worse since now I have to worry about if I am putting the data in the right place too.
Correct. I think we can fix this with a |
Test is unrelated. To do, perhaps in follow-on PRs:
|
@cwhanse can you make issues for the follow up work? |
@srlightfoote FYI if you are still watching. |
thanks all! I think this feature will help ease the burden for folks wanting to use pvlib to model expected performance characteristics of operational plants where pyranometer sensors mounted at plane of array are the norm. |
@slightfoote that's the motivating use case. You may be interested in one of our current projects to build a modeling service for O&M use cases. There's some information at solarperformanceinsight.github.io |
Thanks @cwhanse! |
docs/sphinx/source/api.rst
for API changes.docs/sphinx/source/whatsnew
for all changes. Includes link to the GitHub Issue with:issue:`num`
or this Pull Request with:pull:`num`
. Includes contributor name and/or GitHub username (link with:ghuser:`user`
).Provides methods to run a ModelChain starting with broadband plane-of-array irradiance or effective irradiance, and with cell temperature or module temperature. Creates a number of helper functions for these two methods.