sandialabs / pvops Goto Github PK
View Code? Open in Web Editor NEWA set of documented functions for supporting operations research of photovoltaic energy systems.
Home Page: https://pvops.readthedocs.io/en/latest/
License: Other
A set of documented functions for supporting operations research of photovoltaic energy systems.
Home Page: https://pvops.readthedocs.io/en/latest/
License: Other
iec_calc
model is described as being "based on IEC calculations" and using "IEC standards" in https://pvops.readthedocs.io/en/latest/pages/moduleguides/timeseries.html#module-overview and elsewhere. It looks like a simple performance ratio. A few suggestions:
Find flatlining, not-reporting, and outside nominal values, and filter.
Most of it has to do with new naming for some functions
I think the line below can be removed.
Line 4 in fe6e657
In your documentation you write the following:
An example implementation of all capabilities can be found in text_class_example.py for specifics, and tutorial_textmodule.ipynb for basics.
As those two tutorial files take a central role in your documentation: Could you add links to both text_class_example.py and tutorial_textmodule.ipynb? By doing so the reader of your documentation does not need to search through your github repo.
Using embedded documents, conduct outlier detection through a isolated random forest (or other)
I think it's quite unusual to include a folder with the licenses of dependencies.
One of the main reasons I'm against this is that it is a certainty that these licenses will be outdated. For example, the included pvlib license is no longer correct. pvlib does not do this, and given its affiliation with Sandia I do not think this is necessary here.
Perhaps @cwhanse can comment on this from a Sandia point of view?
Use ODE solver like https://github.com/rtqichen/torchdiffeq
Feedback on https://github.com/sandialabs/pvOps/blob/master/examples/tutorial_timeseries.ipynb:
Are you planning on addressing this comment before publishing the JOSS paper?
pvOps/pvops/iv/physics_utils.py
Lines 8 to 15 in fe6e657
It seems most of the terms on the abbreviations page are not defined.
Also, many of the items seem to not be abbreviations but rather symbols. Perhaps the title of this page should be changed to Terminology?
Please extend the caption of figure 1.
This comment is part of a JOSS Review: openjournals/joss-reviews#5755
I'm confused as to why there is a separate requirements.txt file for the documentation.
Is there a reason that these dependencies are not listed here:
Lines 54 to 56 in fe6e657
I see no reason why they should not be included in the DOCS_REQUIRE
, which lets you install documentation dependencies the standard way:
pip install pvops[docs]
Also, it's HIGHLY recommended to pin the versions of the documentation dependencies as this often ends up causing trouble down the road!
This is part of a JOSS review: openjournals/joss-reviews#5755
When running the tests, I get 13 warnings. Some of these are fine (e.g., divide by zero).
However, there are some deprecation warnings that should be fixed to avoid issues down the road.
matplotlib.colormaps[name]
or matplotlib.colormaps.get_cmap(obj)
instead.Feel free to tick off the above boxes as these are fixed.
There's also a conversion warning, but perhaps this is ok?
RuntimeWarning: some failed to converge after 100 iterations warnings.warn(msg, RuntimeWarning)
This issue is part of a JOSS review: openjournals/joss-reviews#5755
Hi All,
Have you considered using a bipartite layout for the attribute connectivity plots produced by this function? The graph that this function creates is bipartite by definition, so it could help make the resulting visual more digestible.
All the best,
Ben
I do not think the "IV package" is actually a package, but rather, I believe it is a subpackage.
pvOps/docs/pages/moduleguides/iv.rst
Line 1 in fe6e657
For the JOSS review, it is stated that the package documentation AND software paper should have a Statement of Need. Currently, I do not see a statement of need in the software documentation (readthedocs); I suggest that this is added, e.g., on the main landing page.
When running the following cell I get an error.
# Setting few cross validation splits because of few example data
results, best_model = e.classify_supervised(n_cv_splits=2, embedding='tfidf')
print('best_model', best_model)
results
UnboundLocalError: local variable 'results_df' referenced before assignment
ValueError: Invalid parameter 'normalize' for estimator RidgeClassifier(alpha=0.0). Valid parameters are: ['alpha', 'class_weight', 'copy_X', 'fit_intercept', 'max_iter', 'positive', 'random_state', 'solver', 'tol'].
Since there is some ML happening in the background it might also be related to my PC? Can you reproduce this error?
The citation file has an incorrect extension (.cif).
The correct extension should be .cff. See this reference for further information.
Also, the package version specified inside the citation file is incorrect.
Currently, if you run a df[ATTRIBUTE] through the remap_attributes function, it will only return the attributes which are being renamed. It should retain the unaltered attributes as well.
It would be great if you give an overview of your package in your documentation page. Especially the content of Figure 1 from the paper could be reused for this purpose. Especially the two columns Type of data
and Highlights of functions
could be very useful on the documentation page.
Here are some of my initial thoughts about the tutorials in general:
examples
directory. E.g., "Refer to the examples
directory, following the guide at https://pvops.readthedocs.io/en/latest/pages/examples.html, for a full run-through of the available functionality."remove duplicate entry (substation--> substation) and 2 incorrect mappings (energy storage/batter --> energy meter and switchgear --> transformer)
I noticed that the copyright/author on the readthedocs website is different from the main author of the JOSS paper. Perhaps it should be considered changing this to something more generic, e.g., "pvOps Developers" or to Sandia who is stated in the copyright file?
Note, I have no preference for what is provided, I merely wanted to bring attention to this to ensure it is still correct.
This is part of a JOSS review: openjournals/joss-reviews#5755
Lines 21 to 22 in fe6e657
To simplify the left panel, it could be considered merging the Documentation and Developing pvOps pages.
This is merely a suggestion, which I do not feel strongly about - but perhaps worth considering.
It's quasi-standard for Python packages to be able to return the package version using .__version__
This doesn't seem possible using the pvops package at the moment:
pvops.__version__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'pvops' has no attribute '__version__'
Having users easily retrieve the package version is important in science, thus I think this is somewhat important to implement.
This issue is part of a JOSS review: openjournals/joss-reviews#5755
The visualization of the examples is currently not very pleasing: https://pvops.readthedocs.io/en/latest/pages/examples.html
Instead, I suggest having a tile layout similar to what is done in pvlib python (see screenshot below).
This may require switching to the pydata sphinx theme (which I think is recommendable nonetheless)
I noticed the docker folder with two files - however I didn't see any mention of what that is being used for?
There's a broken image reference at the bottom of this tutorial: https://pvops.readthedocs.io/en/latest/pages/examples/tutorial_iv_diode_extractor.html
Hi,
when running the example code in tutorial_textmodule.ipynb
I get an error in cell [6]
The creation of the df_remapped_assets runs code in pvops/text/utils.py
where the function DataFrame.append is used. However, this seems to be deprecated: https://pandas.pydata.org/docs/whatsnew/v1.4.0.html?highlight=append
They advise to use pandas.concat instead.
To replicate, use pandas > 2.0
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.