Skip to content

Commit 7fe065f

Browse files
kandersolarAdamRJensencwhansewholmgrenadriesse
authored
Add manuscript files for 2023 JOSS publication (#1855)
* move 2018 files to subdirectory * initial files for 2023 manuscript * add joss build job * Apply suggestions from code review (@AdamRJensen) Co-authored-by: Adam R. Jensen <[email protected]> * Apply suggestions from code review (@cwhanse) Co-authored-by: Cliff Hansen <[email protected]> * typo and core developers * Apply suggestions from code review (@wholmgren) Co-authored-by: Will Holmgren <[email protected]> * 2015 -> 2013 * remove scripts * Apply suggestions from code review (@adriesse) Co-authored-by: Anton Driesse <[email protected]> * order authors by commit count since last paper https://github.com/pvlib/pvlib-python/graphs/contributors?from=2018-09-07&to=2023-09-18&type=c * s/foundation in/foundation on/ --------- Co-authored-by: Adam R. Jensen <[email protected]> Co-authored-by: Cliff Hansen <[email protected]> Co-authored-by: Will Holmgren <[email protected]> Co-authored-by: Anton Driesse <[email protected]> Co-authored-by: Mark Mikofski <[email protected]>
1 parent cb4c135 commit 7fe065f

File tree

9 files changed

+682
-200
lines changed

9 files changed

+682
-200
lines changed

.github/workflows/joss-pdf.yml

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# temporary job to rebuild the PDF while coauthors review the manuscript.
2+
# TODO: delete before merging this PR
3+
4+
on: [push]
5+
6+
jobs:
7+
paper:
8+
runs-on: ubuntu-latest
9+
name: Paper Draft
10+
steps:
11+
- name: Checkout
12+
uses: actions/checkout@v3
13+
- name: Build draft PDF
14+
uses: openjournals/openjournals-draft-action@master
15+
with:
16+
journal: joss
17+
# This should be the path to the paper within your repo.
18+
paper-path: paper/paper.md
19+
- name: Upload
20+
uses: actions/upload-artifact@v1
21+
with:
22+
name: paper
23+
# This is the output path where Pandoc will write the compiled
24+
# PDF. Note, this should be the same directory as the input
25+
# paper.md
26+
path: paper/paper.pdf
File renamed without changes.

paper/2018/paper.bib

+110
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
@inproceedings{Andrews2014,
2+
Author = {R. W. Andrews and J. S. Stein and C. Hansen and D. Riley},
3+
Booktitle = {2014 IEEE 40th Photovoltaic Specialist Conference (PVSC)},
4+
doi = {10.1109/PVSC.2014.6925501},
5+
Title = {Introduction to the open source PV LIB for python Photovoltaic system modelling package},
6+
Year = {2014}}
7+
8+
@online{DOESF2,
9+
author = {Department of Energy},
10+
title = {Solar Forecasting 2},
11+
year = 2018,
12+
url = {https://www.energy.gov/eere/solar/solar-forecasting-2},
13+
urldate = {2018-08-02}}
14+
15+
@article{Gagne2017,
16+
Author = {Gagne II, David John and McGovern, Amy and Haupt, Sue Ellen and Williams, John K.},
17+
Journal = {Solar Energy},
18+
Pages = {383- 393},
19+
doi = {10.1016/j.solener.2017.04.031},
20+
Title = {Evaluation of statistical learning configurations for gridded solar irradiance forecasting},
21+
Volume = {150},
22+
Year = {2017}}
23+
24+
@inproceedings{Holmgren2015,
25+
Author = {W. F. Holmgren and R. W. Andrews and A. T. Lorenzo and J. S. Stein},
26+
Booktitle = {2015 IEEE 42nd Photovoltaic Specialist Conference (PVSC)},
27+
Month = {June},
28+
Pages = {1-5},
29+
Title = {PVLIB Python 2015},
30+
Year = {2015},
31+
doi = {10.1109/PVSC.2015.7356005}}
32+
33+
@inproceedings{Holmgren2016,
34+
Author = {W. F. Holmgren and D. G. Groenendyk},
35+
Booktitle = {2016 IEEE 43rd Photovoltaic Specialists Conference (PVSC)},
36+
Month = {June},
37+
Pages = {0972-0975},
38+
Title = {An open source solar power forecasting tool using PVLIB-Python},
39+
Year = {2016},
40+
doi = {10.1109/PVSC.2016.7749755}}
41+
42+
@inproceedings{Holmgren2017,
43+
Author = {William F. Holmgren and Antonio T. Lorenzo and Clifford Hansen},
44+
Booktitle = {2017 IEEE 44th Photovoltaic Specialists Conference},
45+
Title = {A Comparison of PV Power Forecasts Using PVLib-Python},
46+
Year = {2017},
47+
doi = {10.5281/zenodo.1400857}}
48+
49+
@inproceedings{Holmgren2018,
50+
Author = {William F. Holmgren and Clifford W. Hansen and Joshua S. Stein and Mark A. Mikofski},
51+
Booktitle = {2018 IEEE 45th Photovoltaic Specialists Conference},
52+
Title = {Review of open source tools for PV modeling},
53+
Year = {2018},
54+
doi = {10.5281/zenodo.1401378}}
55+
56+
@article{Louwen2017,
57+
Author = {Atse Louwen and Ruud E.I. Schropp and Wilfried G.J.H.M. van Sark and Andr{\'e} P.C. Faaij},
58+
Journal = {Solar Energy},
59+
Pages = {1339 - 1353},
60+
Title = {Geospatial analysis of the energy yield and environmental footprint of different photovoltaic module technologies},
61+
Volume = {155},
62+
Year = {2017},
63+
doi = {10.1016/j.solener.2017.07.056}}
64+
65+
@inproceedings{Mikofski2016,
66+
Author = {M. Mikofski and A. Oumbe and C. Li and B. Bourne},
67+
Booktitle = {2016 IEEE 43rd Photovoltaic Specialists Conference (PVSC)},
68+
Month = {June},
69+
Pages = {1357-1362},
70+
Title = {Evaluation and correction of the impact of spectral variation of irradiance on PV performance},
71+
Year = {2016},
72+
doi = {10.1109/PVSC.2016.7749837}}
73+
74+
@inproceedings{Mikofski2017,
75+
Author = {Mark A. Mikofski and Clifford W. Hansen and William F. Holmgren and Gregory M. Kimball},
76+
Booktitle = {2017 IEEE 44th Photovoltaic Specialists Conference},
77+
Title = {Use of Measured Aerosol Optical Depth and Precipitable Water to Model Clear Sky Irradiance},
78+
Year = {2017},
79+
doi = {10.5281/zenodo.1403238}}
80+
81+
@article{Polo2016,
82+
Author = {J. Polo, S. Garcia-Bouhaben, M. C. Alonso-Garcia},
83+
Journal = {Journal of Renewable and Sustainable Energy},
84+
Title = {A comparative study of the impact of horizontal-to-tilted solar irradiance conversion in modelling small PV array performance},
85+
Year = {2016},
86+
doi = {10.1063/1.4964363}}
87+
88+
@misc{pvlibZenodo,
89+
author = {pvlib python Contributors},
90+
title = {pvlib python},
91+
doi = {10.5281/zenodo.1246152},
92+
howpublished = {\url{http://doi.org/10.5281/zenodo.1246152}}}
93+
94+
@inproceedings{Stein2012,
95+
Author = {J. S. Stein},
96+
Booktitle = {2012 38th IEEE Photovoltaic Specialists Conference},
97+
Month = {June},
98+
Pages = {003048-003052},
99+
Title = {The photovoltaic Performance Modeling Collaborative (PVPMC)},
100+
Year = {2012},
101+
doi = {10.1109/PVSC.2012.6318225}}
102+
103+
@inproceedings{Stein2016,
104+
Author = {J. S. Stein and W. F. Holmgren and J. Forbess and C. W. Hansen},
105+
Booktitle = {2016 IEEE 43rd Photovoltaic Specialists Conference (PVSC)},
106+
Month = {June},
107+
Pages = {3425-3430},
108+
Title = {PVLIB: Open source photovoltaic performance modeling functions for Matlab and Python},
109+
Year = {2016},
110+
doi = {10.1109/PVSC.2016.7750303}}

paper/2018/paper.md

+124
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
---
2+
title: 'pvlib python: a python package for modeling solar energy systems'
3+
tags:
4+
- Python
5+
- solar energy
6+
- photovoltaics
7+
- renewable energy
8+
authors:
9+
- name: William F. Holmgren
10+
orcid: 0000-0001-6218-9767
11+
affiliation: 1
12+
- name: Clifford W. Hansen
13+
orcid: 0000-0002-8620-5378
14+
affiliation: 2
15+
- name: Mark A. Mikofski
16+
orcid: 0000-0001-8001-8582
17+
affiliation: 3
18+
affiliations:
19+
- name: Department of Hydrology and Atmospheric Sciences, University of Arizona
20+
index: 1
21+
- name: Sandia National Laboratories
22+
index: 2
23+
- name: DNV-GL
24+
index: 3
25+
date: 2 August 2018
26+
bibliography: paper.bib
27+
---
28+
29+
# Summary
30+
31+
pvlib python is a community-supported open source tool that provides a
32+
set of functions and classes for simulating the performance of
33+
photovoltaic energy systems. pvlib python aims to provide reference
34+
implementations of models relevant to solar energy, including for
35+
example algorithms for solar position, clear sky irradiance, irradiance
36+
transposition, DC power, and DC-to-AC power conversion. pvlib python is
37+
an important component of a growing ecosystem of open source tools for
38+
solar energy [@Holmgren2018].
39+
40+
pvlib python is developed on GitHub by contributors from academia,
41+
national laboratories, and private industry. pvlib python is released
42+
with a BSD 3-clause license allowing permissive use with attribution.
43+
pvlib python is extensively tested for functional and algorithm
44+
consistency. Continuous integration services check each pull request on
45+
multiple platforms and Python versions. The pvlib python API is
46+
thoroughly documented and detailed tutorials are provided for many
47+
features. The documentation includes help for installation and
48+
guidelines for contributions. The documentation is hosted at
49+
readthedocs.org as of this writing. A Google group and StackOverflow tag
50+
provide venues for user discussion and help.
51+
52+
The pvlib python API was designed to serve the various needs of the many
53+
subfields of solar power research and engineering. It is implemented in
54+
three layers: core functions, the ``Location`` and ``PVSystem`` classes,
55+
and the ``ModelChain`` class. The core API consists of a collection of
56+
functions that implement algorithms. These algorithms are typically
57+
implementations of models described in peer-reviewed publications. The
58+
functions provide maximum user flexibility, however many of the function
59+
arguments require an unwieldy number of parameters. The next API level
60+
contains the ``Location`` and ``PVSystem`` classes. These abstractions
61+
provide simple methods that wrap the core function API layer. The method
62+
API simplification is achieved by separating the data that represents
63+
the object (object attributes) from the data that the object methods
64+
operate on (method arguments). For example, a ``Location`` is
65+
represented by a latitude, longitude, elevation, timezone, and name,
66+
which are ``Location`` object attributes. Then a ``Location`` object
67+
method operates on a ``datetime`` to get the corresponding solar
68+
position. The methods combine these data sources when calling the
69+
function layer, then return the results to the user. The final level of
70+
API is the ``ModelChain`` class, designed to simplify and standardize
71+
the process of stitching together the many modeling steps necessary to
72+
convert a time series of weather data to AC solar power generation,
73+
given a PV system and a location.
74+
75+
pvlib python was ported from the PVLib MATLAB toolbox in 2014
76+
[@Stein2012, @Andrews2014]. Efforts to make the project more pythonic
77+
were undertaken in 2015 [@Holmgren2015]. Additional features continue to
78+
be added, see, for example [@Stein2016, @Holmgren2016] and the
79+
documentation's "What's New" section.
80+
81+
pvlib python has been used in numerous studies, for example, of solar
82+
power forecasting [@Gagne2017, @Holmgren2017], development of solar
83+
irradiance models [@Polo2016], and estimation of photovoltaic energy
84+
potential [@Louwen2017]. Mikofski et. al. used pvlib python to study
85+
the accuracy of clear sky models with different aerosol optical depth
86+
and precipitable water data sources [@Mikofski2017] and to determine the
87+
effects of spectral mismatch on different PV devices [@Mikofski2016].
88+
pvlib python is a foundational piece of an award, "An Open Source
89+
Evaluation Framework for Solar Forecasting," made under the Department
90+
of Energy Solar Forecasting 2 program [@DOESF2].
91+
92+
Plans for pvlib python development includes the implementation of new
93+
and existing models, addition of functionality to assist with
94+
input/output, and improvements to API consistency.
95+
96+
The source code for each pvlib python version is archived with Zenodo
97+
[@pvlibZenodo].
98+
99+
# Acknowledgements
100+
101+
The authors acknowledge and thank the code, documentation, and
102+
discussion contributors to the project.
103+
104+
WH acknowledges support from the Department of Energy's Energy
105+
Efficiency and Renewable Energy Postdoctoral Fellowship Program
106+
(2014-2016), Tucson Electric Power, Arizona Public Service, and Public
107+
Service Company of New Mexico (2016-2018), and University of Arizona
108+
Institute for Energy Solutions (2017-2018).
109+
110+
CH acknowledges support from the U.S. Department of Energy's Solar
111+
Energy Technology Office.
112+
113+
WH and CH acknowledge support from the Department of Energy Solar
114+
Forecasting 2 program.
115+
116+
MM acknowledges support from SunPower Corporation (2016-2017).
117+
118+
Sandia National Laboratories is a multi-mission laboratory managed and
119+
operated by National Technology and Engineering Solutions of Sandia,
120+
LLC., a wholly owned subsidiary of Honeywell International, Inc., for
121+
the U.S. Department of Energy's National Nuclear Security Administration
122+
under contract DE-NA-0003525.
123+
124+
# References

paper/community.pdf

26.4 KB
Binary file not shown.

paper/functions_06_010.pdf

15.6 KB
Binary file not shown.

0 commit comments

Comments
 (0)