What’s New

These are new features and improvements of note in each release.

v0.1.0 (March 17, 2015)

This is the first official release of the pvlib-python project. As such, a “What’s new” document is a little hard to write. There will be significant overlap with the to-be-written document that describes the differences between pvlib-python and PVLIB_Matlab.

API changes

  • Remove pvl_ from module names.
  • Consolidation of similar modules. For example, functions from pvl_clearsky_ineichen.py and pvl_clearsky_haurwitz.py have been consolidated into clearsky.py.
  • Return one DataFrame instead of a tuple of DataFrames.
  • Change function and module names so that they do not conflict.

New features

  • Library is Python 3.3 and 3.4 compatible
  • Add What’s New section to docs (GH10)
  • Add PyEphem option to solar position calculations.
  • Add a Python translation of NREL’s SPA algorithm.
  • irradiance.py has more AOI, projection, and irradiance sum and calculation functions
  • TMY data import has a coerce_year option
  • TMY data can be loaded from a url (GH5)
  • Locations are now pvlib.location.Location objects, not “structs”.
  • Specify time zones using a string from the standard IANA Time Zone Database naming conventions or using a pytz.timezone instead of an integer GMT offset. We may add dateutils support in the future.
  • clearsky.ineichen supports interpolating monthly Linke Turbidities to daily resolution.

Other changes

  • Removed Vars=Locals(); Expect...; var=pvl\_tools.Parse(Vars,Expect); pattern. Very few tests of input validitity remain. Garbage in, garbage or nan out.
  • Removing unnecssary and sometimes undesired behavior such as setting maximum zenith=90 or airmass=0. Instead, we make extensive use of nan values.
  • Adding logging calls, removing print calls.
  • Improved PEP8 compliance.
  • Added /pvlib/data for lookup tables, test, and tutorial data.
  • Limited the scope of clearsky.py‘s scipy dependency. clearsky.ineichen will work without scipy so long as the Linke Turbidity is supplied as a keyword argument. (GH13)
  • Removed NREL’s SPA code to comply with their license (GH9).
  • Revised the globalinplane function and added a test_globalinplane (GH21, GH33).

Documentation

  • Using readthedocs for documentation hosting.
  • Many typos and formatting errors corrected (GH16)
  • Documentation source code and tutorials live in / rather than /pvlib/docs.
  • Additional tutorials in /docs/tutorials.
  • Clarify pvsystem.systemdef input (GH17)

Testing

  • Tests are cleaner and more thorough. They are still nowhere near complete.
  • Using Coveralls to measure test coverage.
  • Using TravisCI for automated testing.
  • Using nosetests for more concise test code.

Bug fixes

  • Fixed DISC algorithm bugs concerning modifying input zenith Series (GH24), the Kt conditional evaluation (GH6), and ignoring the input pressure (GH25).
  • Many more bug fixes were made, but you’ll have to look at the detailed commit history.
  • Fixed inconsistent azimuth angle in the ephemeris function (GH40)

Contributors

This list includes all (I hope) contributors to pvlib/pvlib-python, Sandia-Labs/PVLIB_Python, and UARENForecasting/PVLIB_Python.

  • Rob Andrews
  • Will Holmgren
  • bmu
  • Tony Lorenzo
  • jforbess
  • Jorissup
  • dacoex
  • alexisph
  • Uwe Krien