What’s New

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

v1.5.2 (DATE XX, 2021)

Requirements

  • Add python 3.9 to test configuration (PR #122)

  • Set the upper bound on shapely to version 2.0 (not yet released). The shapely dependency may be dropped altogether in a future pvfactors release. (PR #130)

Fixes

  • A small bug in the pvlib-python implementation of the Perez transposition model was discovered and fixed in pvlib v0.9.0. To ensure the error does not affect pvfactors output moving forward, the pvlib dependency is updated from pvlib>=0.7.0,<0.9.0 to pvlib>=0.9.0,<0.10.0. This will likely change the results of irradiance simulations. According to the pvlib release notes, the differences are “expected to be small and primarily occur at low irradiance conditions”. (PR #121)

  • Fixed a bug that affected some irradiance simulations when surface_tilt is exactly zero. See GH #125 for details. (PR #128)

Maintenance

  • Add documentation for making new releases (PR #133)

Contributors

v1.5.1 (March 27, 2021)

Enhancements

  • Update pvlib dependency from pvlib>=0.6.0,<0.8.0 to pvlib>=0.7.0,<0.9.0 (PR #116)

Contributors

v1.5.0 (February 7, 2021)

Enhancements

  • Add import check for shapely/geos (#110)

  • Drop Python 2.7, 3.5, add Python 3.8 (#112)

Fix

  • TsSegement was missing proper indexing (#102)

  • Fix CI: restrict pvlib to <0.8.0 because of API break, reduce test length because of hanging CI (#112)

Contributors

v1.4.1 (November 29, 2019)

Fix

The vectorization of the calculations (from v1.3.0) in the PVEngine had removed the ability to account for timeseries albedo values (it was only using the first albedo value). This fix repairs that issue by building the full 3D matrices for the reflectivity values (and the inverse reflectivity values as well).

  • PVEngine needs to use timeseries albedo values (#98)

Contributors

v1.4.0 (November 21, 2019)

Enhancements

pvfactors can now account for AOI losses by either using constant diffuse losses, are by using an fAOI function that will provide the corresponding loss for each value of angle of incidence.

  • Test for continuity of results with direct shading (#91)

  • Implement non-diffuse AOI loss methods (#92)

  • Implement fAOI modifiers for irradiance models (#93)

  • Merge new AOI methods into full mode workflow (#94)

  • Include fAOI losses from irradiance models in tests (#95)

  • Update docs for AOI methods (#96)

Contributors

v1.3.0 (November 6, 2019)

Enhancements

pvfactors is now only using timeseries geometries and vectorization for the view factor matrix calculation, even with the full reflection equilibrium mode. This resulted in an incredible speed boost, in which 8760 simulations now run in less than 2 seconds when using the full mode (it previously took a couple minutes). So there’s not much reason anymore to use the “fast” mode, which is less accurate and not that faster anymore. Lots of package clean up and documentation updates in addition to this.

  • Create timeseries ground elements (#80)

  • Index all timeseries surfaces (#82)

  • Vectorize calculation of vf matrix (#83)

  • Implement vectorized full mode (#84)

  • Clean up package now that full mode is vectorized (#86)

  • Reorganize geometry sub-package (#87)

  • Add docs section on main concepts (#88)

  • Update docs tutorials (#89)

Contributors

v1.2.2 (October 8, 2019)

Enhancements

Passing GHI to the irradiance models when using the fast mode should provide more accuracy.

  • Add GHI to run functions inputs (#78)

Fixes

The OrderedPVArray didn’t handle it well when the fit function was called multiple times. A fix was implemented for this.

  • Fix accumulation of pvrows when fitting multiple times (#77)

Contributors

v1.2.1 (September 13, 2019)

Enhancements

Added module spacing and transparency inputs to irradiance models, and updated README file to make it clearer.

  • Add module transparency and spacing to irradiance models (#72)

  • Use reStructuredText for README and add TOC (#74)

Fixes

Fix small issue in irradiance models for fast mode: made sure that shaded surfaces are not getting any Perez circumsolar irradiance, except via module spacing and transparency.

  • Fix irradiance models for fast mode shaded surfaces (#73)

Contributors

v1.2.0 (September 9, 2019)

Huge speed improvements and enhancements: implementation of a fully vectorized fast mode which now runs 8760 simulations in less than 2 seconds (and calculates same or better results than previous version of fast mode). The improvements done for fast mode also benefit the full simulation mode as some speed improvements have been observed as well.

  • Vectorize shading (#64)

  • Create timeseries PV row geometries (#65)

  • Create timeseries ground (#66)

  • Timeseries view factors (#67)

  • Update irradiance models (#68)

  • Update engine and run functions for timeseries fast mode (#69)

  • Update docs for vectorized fast mode (#70)

Contributors

v1.1.0 (August 2, 2019)

Some clean ups and enhancements: the PV Array geometry class OrderedPVArray now uses vectorization to calculate the geometry coordinates, which makes the simulations around 30% faster.

  • Vectorize geometry calculations (#60)

  • Add common project folders to .gitignore (#61)

  • Tutorial for fast mode (#62)

Contributors

v1.0.3 (July 12, 2019)

Enhancement: users can now pass irradiance model arguments to run functions. This was only possible when using the PV engine directly until now.

  • Pass irradiance model params to run functions (#57)

Contributors

v1.0.2 (July 5, 2019)

Some bug fixes and enhancements. Now the PVEngine can run simulations using a “fast-mode” with observed speed gain of around 30% and accuracy drop of around 4% compared to the full mode.

  • Update python dependencies and test requirements (#50)

  • Added a Tolerance for direct shading detection to cast_shadow function (#51)

  • Fix broken tests from #51 & check circleci (#52)

  • Implement a fast simulation mode in PVEngine (#53)

  • Build sphinx docs into CircleCI artifacts (#54)

  • Make engine more robust to bad weather data (#55)

Contributors

v1.0.1 (May 14, 2019)

A number of small fixes. And also newer and correct build for this version.

  • Fix small negative vf between pvrows (#45)

  • Passing calculated view factor matrix to pv array for use in reports (#46)

  • Small fixes (#44)

  • Fix “difference” calculation method for linestrings (#47)

Contributors

v1.0.0 (April 19, 2019)

Major release for pvfactors. The whole code base was revamped, which led to a 5x speed increase in computational speed. The package API has now also been completely upgraded, with a seperation and uncoupling between geometry, irradiance, and view factor modeling. All of these items are now unified into an engine and also some run functions to run full or partial simulations, and inspect the results. The documentation was completely revamped as well, with a new tutorial section containing lots of examples to get familiar with pvfactors, and also a developer API section that documents all of the classes and functions of the package.

  • Fix pvlib version in order to create conda build (#26)

  • Update docs: reorganize, clean up, and add API (#27)

  • Fix img url and update circleci look (#28)

  • New Geometry API (#29)

  • API refactoring for view factor calculation (#30)

  • New irradiance API (#31)

  • Implement perez model with new irradiance API (#33)

  • Implement engine to run simulations using new APIs (#32)

  • Implement functional run and parallel computation (#37)

  • Migrate last elements to new API (#38)

  • Remove old API files (#39)

  • Update docs for new pvfactors API (#40)

  • Update docstrings (#41)

Contributors

v0.1.5 (December 14, 2018)

Updates so that pvfactors is not broken by pvlib-python updates in upcoming version 6.1

  • Updates for upcoming pvlib version 6.1 (#24)

  • Small fixes to display long description on PyPI, and docs

Contributors

  • Marc Anoma

v0.1.4 (November 22, 2018)

Major simplification of simulation input types, and update of docs for PyPI. Now the only PV array angles needed for simulations are ‘surface_tilt’ and ‘surface_azimuth’, and they also follow the pvlib-python convention.

  • Small updates for PyPI upload (#21)

  • Use ‘surface_azimuth’ and ‘surface_tilt’ only, with pvlib convention (#22)

Contributors

  • Marc Anoma

v0.1.3 (September 13, 2018)

Backwards compatibility fix for timeseries simulation.

  • Make sure that all timestamps are returned in outputs (#17)

Contributors

  • Marc Anoma

v0.1.2 (September 12, 2018)

Major updates of simulation API and package organization, as well as documentation.

  • Refactor tools.py: return 1 output df in timeseries Perez (#13)

  • Simplify timeseries calculation API (#14)

  • Update docs because of simulation API changes (#15)

Contributors

  • Marc Anoma

v0.1.1 (September 6, 2018)

Implementation of important package and model improvements.

  • Migration to CircleCI 2.0 (#5)

  • Removed dependency on geopandas (#3)

  • Implementation of back horizon band shading (#7)

  • Clean up and add Github features (#9)

  • Output all the surface registries calculated for each timestamp in a Perez timeseries simulation (#10)

Contributors

  • Marc Anoma

v0.1.0 (May 14, 2018)

This is the first release of pvfactors. We hope this package will help answer some important questions on irradiance calculation for the PV industry.

  • Use shapely and geodataframes to create 2D PV array geometries and record them

  • Add ability to discretize ‘’pvrow’’ surfaces in order to calculate irradiance distributions (eg diffuse shading)

  • Use Perez diffuse light model

  • Add multiprocessing and improve computational speed

  • Create extensive documentation including a Jupyter notebook tutorial

  • Implement circumsolar and horizon band shading to improve diffuse shading calculations

  • Created tools functions for running timeseries simulations

  • Make package compatible with Python3

  • Add continuous integration with CircleCI

  • Add versioneer for “auto-versioning” of package

Contributors

  • Marc Anoma