Developer API
This is the class and function reference of pvfactors. For clarity and simplicity, all inherited methods and attributes have been removed from the class descriptions as there were often too many irrelevant ones coming from base packages like shapely.
geometry
The geometry sub-package of pvfactors implements multiple classes that make the construction of a 2D geometry for a PV array intuitive and scalable. It is meant to be decoupled from irradiance and view factor calculations so that it can be used independently for other purposes, like visualization for instance. The following schematics summarizes the organization of the classes in this sub-package.
base
Base classes for pvfactors geometry subpackage.
Base surfaces will be extensions of |
|
PV surfaces inherit from |
|
A group of |
|
A PV segment will be a collection of 2 collinear and contiguous shade collections, a shaded one and an illuminated one. |
|
A side represents a fixed collection of PV segments objects that should all be collinear, with the same normal vector |
|
Base class for PV arrays in pvfactors. |
pvrow
Module will classes related to PV row geometries
Timeseries PV row class: this class is a vectorized version of the PV row geometries. |
|
Timeseries side class: this class is a vectorized version of the BaseSide geometries. |
|
A TsSegment is a timeseries segment that has a timeseries shaded collection and a timeseries illuminated collection. |
|
A PV row side represents the whole surface of one side of a PV row. |
|
A PV row is made of two PV row sides, a front and a back one. |
pvground
Classes for implementation of ground geometry
Timeseries ground class: this class is a vectorized version of the PV ground geometry class, and it will store timeseries shaded ground and illuminated ground elements, as well as pv row cut points. |
|
Special class for timeseries ground elements: a ground element has known timeseries coordinate boundaries, but it will also have a break down of its area into n+1 timeseries surfaces located in the n+1 ground zones defined by the n ground cutting points. |
|
Class that defines the ground geometry in PV arrays. |
pvarray
Module containing PV array classes, which will use PV rows and ground geometries.
An ordered PV array has a flat horizontal ground, and pv rows which are all at the same height, with the same surface tilt and azimuth angles, and also all equally spaced. |
timeseries
Timeseries geometry tools. They allow the vectorization of geometry calculations.
Collection of timeseries surfaces that are all either shaded or illuminated. |
|
Timeseries surface class: vectorized representation of PV surface geometries. |
|
Timeseries line coordinates class: will provide a helpful shapely-like API to invoke timeseries coordinates. |
|
Timeseries point coordinates: provides a shapely-like API for timeseries point coordinates. |
viewfactors
The viewfactors sub-package of pvfactors implements the methods used to calculate view factors from pvfactors PV array objects.
calculator
Module with classes and functions to calculate views and view factors
This calculator class will be used for the calculation of view factors for |
timeseries view factor methods
Module with view factor calculation tools
This class contains all the methods used to calculate timeseries view factors for all the surfaces in |
view factor aoi methods
Module containing AOI loss calculation methods
Class containing methods related to calculating AOI losses for |
irradiance
The irradiance sub-package of pvfactors implements all irradiance related models and methods that can be applied to pvfactors PV array objects.
base
Module with Base classes for irradiance models
Base class for irradiance models |
models
Module containing irradiance models used with pv array geometries
Diffuse isotropic sky model for |
|
Model is based off Perez diffuse light model, and applied to pvfactors |
engine
This module contains the engine class that will run the complete timeseries simulations.
Class putting all of the calculations together into simple workflows. |
run
Module containing the functions to run engine calculations in normal or parallel mode.
Run timeseries simulation without multiprocessing. |
|
Run timeseries simulation using multiprocessing. |
report
Module containing examples of report builder functions and classes.
Example function that builds a report when used in the |
|
A class is required to build reports when running calculations with multiprocessing because of python constraints |