Skip to content

Commit

Permalink
JOSS-review: comparison to other tools (#1912)
Browse files Browse the repository at this point in the history
* Remove various repeated words in documentation (#1872)

* Remove repeated words

* Update pvlib/ivtools/sdm.py

Co-authored-by: Kevin Anderson <kevin.anderso@gmail.com>

---------

Co-authored-by: Kevin Anderson <kevin.anderso@gmail.com>

* fix invalid escape sequence '\c' (#1879)

* fix invalid escape sequence '\c'

pvlib/iam.py:843: DeprecationWarning: invalid escape sequence '\c'

Occurence is actually in line 854: `IAM = 1 - (1 - \cos(aoi))^5`

* Add to list of contributors

* Replace use of deprecated `pkg_resources` (#1881) (#1882)

* Update infinite_sheds.py to add shaded fraction to returned variables in infinite_sheds.get_irradiance and infinite_sheds.get_irradiance_poa (#1871)

* Update infinite_sheds.py

Added shaded fraction to returned variables.

* Update v0.10.3.rst

* Update test_infinite_sheds.py

added tests for shaded fraction

* Update test_infinite_sheds.py

Corrected the shaded fraction tests in the haydavies portion.

* Update pvlib/bifacial/infinite_sheds.py

Co-authored-by: Kevin Anderson <kevin.anderso@gmail.com>

* Update infinite_sheds.py

* Update infinite_sheds.py

* Update infinite_sheds.py

fixed indentation issues

---------

Co-authored-by: Kevin Anderson <kevin.anderso@gmail.com>

* Continuous version of the Perez transposition model implementation (#1876)

* Definitely not ready for review!

* Big step forward.

* Add entry in docs.

* A working model but just one test sofar.

* Add new model as option in get_sky_diffuse.  Docstring edits pending.

* Completed doc strings.  Also a bit of fine-tuning code.

* Updated whatsnew.

* Bugfix, formatting fix, and add all tests.

* Test warning plus some other small changes.

* Make flake happy.

* Update pvlib/irradiance.py

Co-authored-by: Cliff Hansen <cwhanse@sandia.gov>

* Address comments.

* Add contributor code comments.

* Update pvlib/irradiance.py

Co-authored-by: Adam R. Jensen <39184289+AdamRJensen@users.noreply.github.com>

* Adapt to reviewer preferences.

* Adapt to flake preferences.

* Remove model pseudo-option.

* Flake

---------

Co-authored-by: Cliff Hansen <cwhanse@sandia.gov>
Co-authored-by: Adam R. Jensen <39184289+AdamRJensen@users.noreply.github.com>

* Fix spurious test error with pandas 2.1 (#1891)

pandas-dev/pandas#55014

* Fix plotting in plot_singlediode.py gallery page (#1895)

* Update plot_singlediode.py

fixed plot annotations by moving plt.show() further down

* Update whatsnew.rst

* Update v0.10.3.rst

* Update docs/sphinx/source/whatsnew.rst

Undoing changes to whatsnew.rst

* Address pandas FutureWarnings in test suite (#1900)

* Cahnged expected reference in test_detect_clearskY_window to 1 from True to avoid Futurewarning

* Change reference to etr in ibird function to avoid FutureWarning

* In test_modelchain, update all instances when referring to series by position to using iloc to get rid of FutureWarning

* Update to iloc method for referencing by position in test_irradiance to get rid of FutureWarning

* In test_singlediode change applymap to map to get rid of FutureWarning

* Test_srml update to select using iloc to get rid of FutureWarning

* Substitute changing to float64 dtype using map with base functionality that's accessible across Pandas versions

* Added username to Contributors

* Update line break in test_clearsky to adhere to line length limit

* add comparisons to other tools

* Apply suggestions from code review

Co-authored-by: Cliff Hansen <cwhanse@sandia.gov>

* revision re: other open-source projects

* bibtex tweaks

* clarify pvlib matlab comparison

---------

Co-authored-by: Miroslav Šedivý <6774676+eumiro@users.noreply.github.com>
Co-authored-by: Arjan Keeman <akeeman@users.noreply.github.com>
Co-authored-by: Miguel Sánchez de León Peque <peque@neosit.es>
Co-authored-by: Will Hobbs <45701090+williamhobbs@users.noreply.github.com>
Co-authored-by: Anton Driesse <anton.driesse@pvperformancelabs.com>
Co-authored-by: Cliff Hansen <cwhanse@sandia.gov>
Co-authored-by: Adam R. Jensen <39184289+AdamRJensen@users.noreply.github.com>
Co-authored-by: matsuobasho <rkoulikov@pm.me>
  • Loading branch information
9 people committed Nov 29, 2023
1 parent eba406d commit f691864
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 7 deletions.
73 changes: 72 additions & 1 deletion paper/paper.bib
Expand Up @@ -66,12 +66,83 @@ @article{pvlibjoss2018
@inproceedings{Holmgren2018,
Author = {William F. Holmgren and Clifford W. Hansen and Joshua S. Stein and Mark A. Mikofski},
Booktitle = {IEEE 45th Photovoltaic Specialists Conference},
Booktitle = {45th IEEE Photovoltaic Specialists Conference},
Title = {Review of open source tools for PV modeling},
Year = {2018},
doi = {10.5281/zenodo.1401378}
}

@inproceedings{Andrews2014,
doi = {10.1109/pvsc.2014.6925501},
url = {https://doi.org/10.1109/pvsc.2014.6925501},
year = {2014},
month = jun,
publisher = {{IEEE}},
author = {Robert W. Andrews and Joshua S. Stein and Clifford Hansen and Daniel Riley},
title = {Introduction to the open source {PV} {LIB} for python Photovoltaic system modelling package},
booktitle = {40th IEEE Photovoltaic Specialists Conference}
}

@inproceedings{Mermoud1994,
title = {{PVSYST}: a user-friendly software for {PV}-systems simulation},
booktitle = {Twelfth European Photovoltaic Solar Energy Conference},
year = {1994},
author = {André Mermoud}
}

@inproceedings{Mikofski2018,
title = {Accurate Performance Predictions of Large PV Systems with Shading using Submodule Mismatch Calculation},
url = {http://dx.doi.org/10.1109/PVSC.2018.8547323},
DOI = {10.1109/pvsc.2018.8547323},
booktitle = {7th World Conference on Photovoltaic Energy Conversion (WCPEC)},
publisher = {IEEE},
author = {Mikofski, Mark A. and Lynn, Matthew and Byrne, James and Hamer, Mike and Neubert, Anja and Newmiller, Jeff},
year = {2018},
month = jun
}

@inproceedings{Passow2017,
title = {PlantPredict: Solar Performance Modeling Made Simple},
url = {http://dx.doi.org/10.1109/PVSC.2017.8366450},
DOI = {10.1109/pvsc.2017.8366450},
booktitle = {44th IEEE Photovoltaic Specialists Conference (PVSC)},
publisher = {IEEE},
author = {Passow, Kendra and Ngan, Lauren and Rich, Geoffrey and Lee, Mitch and Kaplan, Stephen},
year = {2017},
month = jun
}

@techreport{Gilman2018,
title = {SAM Photovoltaic Model Technical Reference 2016 Update},
url = {http://dx.doi.org/10.2172/1429291},
DOI = {10.2172/1429291},
institution = {Office of Scientific and Technical Information (OSTI)},
author = {Gilman, Paul and DiOrio, Nicholas A. and Freeman, Janine M. and Janzou, Steven and Dobos, Aron and Ryberg, David},
year = {2018},
month = mar
}

@misc{pysam,
doi = {10.11578/DC.20190903.1},
url = {https://www.osti.gov/doecode/biblio/29023},
author = {Gilman, Paul and Janzou, Steven and Guittet, Darice and Freeman, Janine and DiOrio, Nicholas and Blair, Nathan and Boyd, Matthew and Neises, Ty and Wagner, Michael},
language = {en},
title = {PySAM (Python Wrapper for System Advisor Model "SAM") [SWR-19-57]},
publisher = {National Renewable Energy Laboratory (NREL), Golden, CO (United States)},
year = {2019}
}

@inproceedings{Pai2016,
title = {Introducing CASSYS: An open-source software for simulation of grid-connected photovoltaic systems},
url = {http://dx.doi.org/10.1109/PVSC.2016.7749839},
DOI = {10.1109/pvsc.2016.7749839},
booktitle = {43rd IEEE Photovoltaic Specialists Conference},
publisher = {IEEE},
author = {Pai, Abhijeet and Thevenard, Didier},
year = {2016},
month = jun
}

@techreport{Augspurger2023,
author = {Tobias Augspurger and Eirini Malliaraki and Josh Hopkins and Dan Brown},
title = {The Open Source Sustainability Ecosystem},
Expand Down
27 changes: 21 additions & 6 deletions paper/paper.md
Expand Up @@ -73,26 +73,41 @@ of the global solar energy industry demands correspondingly more
capable models. Per the United States Department of Energy,
"the importance of accurate modeling is hard to overstate" [@seto2022].

Compared with other PV modeling tools, pvlib python stands out in several
Compared with other modern PV system modeling tools, pvlib python stands out in several
key aspects. One is its toolbox design, providing the user a
level of flexibility and customization beyond that of other tools. Rather than organizing
the user interface around pre-built modeling workflows, pvlib python
makes the individual "building blocks" of PV performance models accessible to
the user interface around pre-built modeling workflows as in other PV system
modeling tools (e.g. SAM [@Gilman2018], PVsyst [@Mermoud1994], SolarFarmer [@Mikofski2018],
PlantPredict [@Passow2017], and CASSYS [@Pai2016], to name a few software tools with
comparable breadth of PV system modeling capability), pvlib python
makes the individual "building blocks" of PV system performance models accessible to
the user. This allows the user to assemble their own model workflows, including
the ability of incorporating custom modeling steps. This flexibility
is essential for applications in both academia and industry.
is essential for applications in both academia and industry. To our knowledge,
the only other PV system modeling software with such a toolbox design is the
original MATLAB version of pvlib [@Andrews2014]. pvlib python began as
a translation of that code base and has since surpassed it in terms of
capability, community uptake, and development attention.

Another key aspect of pvlib python is that it is used via
a general-purpose programming language (Python), which
allows pvlib python functions to be combined with capabilities in other Python packages,
such as database query, data manipulation, numerical optimization,
plotting, and reporting packages.
plotting, and reporting packages. In contrast, most other PV system modeling
tools are used via some form of GUI. Some of these other tools are also accessible
from Python via web APIs or wrapper libraries (e.g. [@pysam]), but these
"black box" interfaces offer only limited ability to combine the PV models
with functionality from other Python packages.

A final key aspect of pvlib python is its open peer review approach and
foundation on published scientific research, allowing it to be developed by
a decentralized and diverse community of PV researchers and practitioners
without compromising its focus on transparent and reliable model
implementations.
implementations. This is in contrast to the inherent opaqueness of closed-source
commercial software, which prevents users from inspecting the source code
to ensure a model implementation's validity or traceability to a reference.
It is also in contrast to other open-source PV projects, where code review
and contributions typically come from a single institution.

These key aspects, along with sustained contributions from a passionate and
committed community, have led to pvlib python's widespread adoption across the PV
Expand Down

0 comments on commit f691864

Please sign in to comment.