Skip to content

Commit

Permalink
Merge pull request #5 from wholmgren/master
Browse files Browse the repository at this point in the history
minor edits
  • Loading branch information
wholmgren committed Jan 23, 2015
2 parents 3d92fe3 + f72cd26 commit 9fce447
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 28 deletions.
41 changes: 21 additions & 20 deletions pvlib_pvsc_42.bib
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
%% http://bibdesk.sourceforge.net/
%% Created for William Holmgren at 2015-01-23 11:32:44 -0700
%% Created for William Holmgren at 2015-01-23 14:10:02 -0700
%% Saved with string encoding Unicode (UTF-8)
Expand All @@ -20,26 +20,26 @@ @article{Per11
Volume = {13},
Year = {2011}}

@webpage{ipython-wiki,
@electronic{ipython-wiki,
Author = {IPython},
Date-Added = {2015-01-23 18:23:42 +0000},
Date-Modified = {2015-01-23 18:28:32 +0000},
Date-Modified = {2015-01-23 21:09:33 +0000},
Lastchecked = {January 22, 2015},
Title = {A gallery of interesting IPython Notebooks and Projects using IPython},
Url = {https://github.com/ipython/ipython/wiki/}}

@url{ipython-gov,
@electronic{ipython-gov,
Author = {IPython},
Date-Added = {2015-01-23 18:22:54 +0000},
Date-Modified = {2015-01-23 18:28:19 +0000},
Date-Modified = {2015-01-23 21:10:02 +0000},
Lastchecked = {January 22, 2015},
Title = {IPEP 29: Project Governance},
Url = {https://github.com/ipython/ipython/wiki/IPEP-29\%3A-Project-Governance}}

@webpage{pep8,
@electronic{pep8,
Author = {G. van Rossum and N. Coghlan},
Date-Added = {2015-01-23 18:22:04 +0000},
Date-Modified = {2015-01-23 18:22:48 +0000},
Date-Modified = {2015-01-23 21:09:58 +0000},
Lastchecked = {January 22, 2015},
Title = {PEP 8 -- Style Guide for Python Code},
Url = {https://www.python.org/dev/peps/pep-0008/}}
Expand All @@ -60,48 +60,49 @@ @inproceedings{andrews
Title = {Introduction to the Open Source PV LIB for Python Photovoltaic System Modelling Package},
Year = {2014}}

@url{uaren-pvlib,
Author = {W. F. Holmgren and A. T. Lorenzo, and GitHub},
@electronic{uaren-pvlib,
Author = {W. F. Holmgren and A. T. Lorenzo and GitHub},
Date-Added = {2015-01-23 18:19:26 +0000},
Date-Modified = {2015-01-23 18:27:10 +0000},
Date-Modified = {2015-01-23 21:08:36 +0000},
Lastchecked = {January 22, 2015},
Title = {UARENForecasting/PVLIB{\_}Python},
Url = {https://github.com/UARENForecasting/PVLIB_Python}}

@webpage{zenofpython,
@electronic{zenofpython,
Author = {T. Peters},
Date-Added = {2015-01-23 18:18:44 +0000},
Date-Modified = {2015-01-23 18:19:20 +0000},
Date-Modified = {2015-01-23 21:09:56 +0000},
Lastchecked = {January 22, 2015},
Title = {PEP 20 -- The Zen of Python},
Url = {https://www.python.org/dev/peps/pep-0020/}}

@webpage{nosetests,
@electronic{nosetests,
Date-Added = {2015-01-23 18:18:03 +0000},
Date-Modified = {2015-01-23 18:18:33 +0000},
Date-Modified = {2015-01-23 21:10:00 +0000},
Lastchecked = {January 22, 2015},
Title = {nose},
Url = {https://nose.readthedocs.org/en/latest/}}

@url{pythonic,
@electronic{pythonic,
Author = {M. Faassen},
Date-Added = {2015-01-23 18:16:32 +0000},
Date-Modified = {2015-01-23 18:17:55 +0000},
Date-Modified = {2015-01-23 21:08:43 +0000},
Lastchecked = {January 22, 2015},
Title = {What is Pythonic?},
Url = {http://blog.startifact.com/posts/older/what-is-pythonic.html}}

@webpage{pvlib-github,
@electronic{pvlib-github,
Author = {Robert W. Andrews and GitHub},
Date-Added = {2015-01-23 18:09:52 +0000},
Date-Modified = {2015-01-23 18:27:17 +0000},
Date-Modified = {2015-01-23 21:09:22 +0000},
Lastchecked = {January 22, 2015},
Title = {Sandia-Labs/PVLIB{\_}Python},
Url = {https://github.com/Sandia-Labs/PVLIB_Python}}

@url{acmpython,
@electronic{acmpython,
Author = {P. Guo},
Date-Added = {2015-01-23 18:07:53 +0000},
Date-Modified = {2015-01-23 18:09:11 +0000},
Date-Modified = {2015-01-23 21:09:24 +0000},
Lastchecked = {January 22, 2015},
Title = {Python is Now the Most Popular Introductory Teaching Language at Top U.S. Universities},
Url = {http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-us-universities/fulltext}}
Binary file modified pvlib_pvsc_42.pdf
Binary file not shown.
14 changes: 6 additions & 8 deletions pvlib_pvsc_42.tex
Original file line number Diff line number Diff line change
Expand Up @@ -477,7 +477,7 @@ \section{Introduction}
Python is now the language used in introductory programming courses at a number of top universities \cite{Per11, acmpython}.
It is elegant, easy to read and write, portable across platforms, powerful, free and open source, and it has a large scientific computing community.
With the appropriate scientific packages installed (NumPy, SciPy, Matplotlib, statsmodels, pandas), Python can easily replicate most MATLAB and R functionality.
This means a single language can be used for the entire data collection, processing, and analysis workflow reducing the mental overhead of programming in multiple languages.
This means a single language can be used for the entire data collection, processing, and analysis workflow, thus reducing the mental overhead of programming in multiple languages.

Andrews et. al. \cite{andrews} introduced the PVLIB-Python toolbox in 2014 and outlined its three main principles:

Expand All @@ -496,9 +496,6 @@ \section{Introduction}
Over a dozen forks (independent copies) of the project now exist on GitHub.
Many of these users have contributed substantial changes to the source code, cataloged issues, or discussed ways of improving the code through GitHub.

However, the original implementation suffered from several deficiencies that we addressed, or are actively working to address, and describe below.



\section{Growth of the PVLIB-Python package}

Expand Down Expand Up @@ -543,7 +540,8 @@ \subsubsection{Pythonic modification of design patterns}
By replacing the awkward Python version of a struct with a simple \texttt{pvlib.location.Location} class we obtained more readable and more functional code.
Objects of this \texttt{Location} class have added functionality such as more flexible constructors, better timezone handling, and nicer string representations.
Most importantly, the \texttt{Location} class can be extended by users for their own purposes.
For example, a user may define her own \texttt{SolarPlant} class that inherits from the \texttt{Location} class, so it can interact with the rest of PVLIB in expected ways, but also has additional user-defined attributes and functionality.
For example, a user may define her own \texttt{SolarPlant} class that inherits from the \texttt{Location} class.
\texttt{SolarPlant} objects could then interact with the rest of PVLIB in the same ways as \texttt{Location} objects, but also have additional user-defined attributes and functionality.


\subsubsection{Logging and debugging}
Expand All @@ -562,7 +560,7 @@ \subsection{Accessibility for MATLAB users}
\subsection{Testing and continuous integration}

Andrews et. al. described the need for both functional (does the code return a value or crash) and physical (does the code return the correct value) tests of the PVLIB code \cite{andrews}.
These tests are often called unittests, in reference to the fact that there is ideally one test for each unit of code.
These tests are often called unit tests, in reference to the fact that there is ideally one test for each unit of code.
Here, a unit of code is typically a function, or a function called with a specific set of parameters.
PVLIB-Python now uses the \texttt{nose} package \cite{nosetests} to make writing tests faster and easier.
This package has been used to increase the testing coverage of the code to 75\%.
Expand Down Expand Up @@ -610,7 +608,7 @@ \section{Roadmap}
\item Release new version.
\end{enumerate}

Due to the major changes in governance proposed above, any further discussion would be pure speculation.
We defer further discussion of a roadmap until the PVLIB-Python governance is better established.



Expand All @@ -621,7 +619,7 @@ \section{Use cases}

\section{Conclusion}
We described significant improvements to the PVLIB-Python package between the period June 2014 and January 2015 that make the code easier to use, easier to maintain, better tested, and better documented.
Much more work remains, and we encourage readers to visit the project development website hosted by GitHub \cite{pvlib-github}.
Much more work remains, and we encourage readers to visit the GitHub project development website \cite{pvlib-github}.

% conference papers do not normally have an appendix

Expand Down

0 comments on commit 9fce447

Please sign in to comment.