Skip to content

Commit f691864

Browse files
kandersolareumiroakeemanPequewilliamhobbs
authored
JOSS-review: comparison to other tools (#1912)
* Remove various repeated words in documentation (#1872) * Remove repeated words * Update pvlib/ivtools/sdm.py Co-authored-by: Kevin Anderson <[email protected]> --------- Co-authored-by: Kevin Anderson <[email protected]> * 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 <[email protected]> * Update infinite_sheds.py * Update infinite_sheds.py * Update infinite_sheds.py fixed indentation issues --------- Co-authored-by: Kevin Anderson <[email protected]> * 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 <[email protected]> * Address comments. * Add contributor code comments. * Update pvlib/irradiance.py Co-authored-by: Adam R. Jensen <[email protected]> * Adapt to reviewer preferences. * Adapt to flake preferences. * Remove model pseudo-option. * Flake --------- Co-authored-by: Cliff Hansen <[email protected]> Co-authored-by: Adam R. Jensen <[email protected]> * 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 <[email protected]> * revision re: other open-source projects * bibtex tweaks * clarify pvlib matlab comparison --------- Co-authored-by: Miroslav Šedivý <[email protected]> Co-authored-by: Arjan Keeman <[email protected]> Co-authored-by: Miguel Sánchez de León Peque <[email protected]> Co-authored-by: Will Hobbs <[email protected]> Co-authored-by: Anton Driesse <[email protected]> Co-authored-by: Cliff Hansen <[email protected]> Co-authored-by: Adam R. Jensen <[email protected]> Co-authored-by: matsuobasho <[email protected]>
1 parent eba406d commit f691864

File tree

2 files changed

+93
-7
lines changed

2 files changed

+93
-7
lines changed

paper/paper.bib

+72-1
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,83 @@ @article{pvlibjoss2018
6666
6767
@inproceedings{Holmgren2018,
6868
Author = {William F. Holmgren and Clifford W. Hansen and Joshua S. Stein and Mark A. Mikofski},
69-
Booktitle = {IEEE 45th Photovoltaic Specialists Conference},
69+
Booktitle = {45th IEEE Photovoltaic Specialists Conference},
7070
Title = {Review of open source tools for PV modeling},
7171
Year = {2018},
7272
doi = {10.5281/zenodo.1401378}
7373
}
7474

75+
@inproceedings{Andrews2014,
76+
doi = {10.1109/pvsc.2014.6925501},
77+
url = {https://doi.org/10.1109/pvsc.2014.6925501},
78+
year = {2014},
79+
month = jun,
80+
publisher = {{IEEE}},
81+
author = {Robert W. Andrews and Joshua S. Stein and Clifford Hansen and Daniel Riley},
82+
title = {Introduction to the open source {PV} {LIB} for python Photovoltaic system modelling package},
83+
booktitle = {40th IEEE Photovoltaic Specialists Conference}
84+
}
85+
86+
@inproceedings{Mermoud1994,
87+
title = {{PVSYST}: a user-friendly software for {PV}-systems simulation},
88+
booktitle = {Twelfth European Photovoltaic Solar Energy Conference},
89+
year = {1994},
90+
author = {André Mermoud}
91+
}
92+
93+
@inproceedings{Mikofski2018,
94+
title = {Accurate Performance Predictions of Large PV Systems with Shading using Submodule Mismatch Calculation},
95+
url = {http://dx.doi.org/10.1109/PVSC.2018.8547323},
96+
DOI = {10.1109/pvsc.2018.8547323},
97+
booktitle = {7th World Conference on Photovoltaic Energy Conversion (WCPEC)},
98+
publisher = {IEEE},
99+
author = {Mikofski, Mark A. and Lynn, Matthew and Byrne, James and Hamer, Mike and Neubert, Anja and Newmiller, Jeff},
100+
year = {2018},
101+
month = jun
102+
}
103+
104+
@inproceedings{Passow2017,
105+
title = {PlantPredict: Solar Performance Modeling Made Simple},
106+
url = {http://dx.doi.org/10.1109/PVSC.2017.8366450},
107+
DOI = {10.1109/pvsc.2017.8366450},
108+
booktitle = {44th IEEE Photovoltaic Specialists Conference (PVSC)},
109+
publisher = {IEEE},
110+
author = {Passow, Kendra and Ngan, Lauren and Rich, Geoffrey and Lee, Mitch and Kaplan, Stephen},
111+
year = {2017},
112+
month = jun
113+
}
114+
115+
@techreport{Gilman2018,
116+
title = {SAM Photovoltaic Model Technical Reference 2016 Update},
117+
url = {http://dx.doi.org/10.2172/1429291},
118+
DOI = {10.2172/1429291},
119+
institution = {Office of Scientific and Technical Information (OSTI)},
120+
author = {Gilman, Paul and DiOrio, Nicholas A. and Freeman, Janine M. and Janzou, Steven and Dobos, Aron and Ryberg, David},
121+
year = {2018},
122+
month = mar
123+
}
124+
125+
@misc{pysam,
126+
doi = {10.11578/DC.20190903.1},
127+
url = {https://www.osti.gov/doecode/biblio/29023},
128+
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},
129+
language = {en},
130+
title = {PySAM (Python Wrapper for System Advisor Model "SAM") [SWR-19-57]},
131+
publisher = {National Renewable Energy Laboratory (NREL), Golden, CO (United States)},
132+
year = {2019}
133+
}
134+
135+
@inproceedings{Pai2016,
136+
title = {Introducing CASSYS: An open-source software for simulation of grid-connected photovoltaic systems},
137+
url = {http://dx.doi.org/10.1109/PVSC.2016.7749839},
138+
DOI = {10.1109/pvsc.2016.7749839},
139+
booktitle = {43rd IEEE Photovoltaic Specialists Conference},
140+
publisher = {IEEE},
141+
author = {Pai, Abhijeet and Thevenard, Didier},
142+
year = {2016},
143+
month = jun
144+
}
145+
75146
@techreport{Augspurger2023,
76147
author = {Tobias Augspurger and Eirini Malliaraki and Josh Hopkins and Dan Brown},
77148
title = {The Open Source Sustainability Ecosystem},

paper/paper.md

+21-6
Original file line numberDiff line numberDiff line change
@@ -73,26 +73,41 @@ of the global solar energy industry demands correspondingly more
7373
capable models. Per the United States Department of Energy,
7474
"the importance of accurate modeling is hard to overstate" [@seto2022].
7575

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

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

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

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

0 commit comments

Comments
 (0)