Solar Energy Modeling Services

SolarAnywhere® energy modeling services offer customers easy, on-demand access to SolarAnywhere’s high- fidelity weather data and site-specific PV energy estimates through a single, integrated API platform.

SolarAnywhere energy modeling services have been designed with a modular architecture to provide flexibility in selecting from available weather data and PV energy simulation models. The API supports the use of SolarAnywhere typical year (TGY) and time-series (Sites) data, as well as NREL TMY3 weather data. Figure 1 below depicts the modular architecture of SolarAnywhere’s energy modeling services.

Figure 1: Modular Software Architecture of the SolarAnywhere Energy Modeling Services

Simulation Tool Modular Architecture

Energy Simulation Steps

With a single call to the SolarAnywhere API, you can simulate the output of a single PV system or group of PV systems under your license. Returning simulated outputs for your system(s) requires three steps:

  1. 1. Create Energy Site(s): Create an energy site or multiple energy sites that are representative of your actual PV system(s). You can simulate PV system output with just a few basic inputs about your PV system or utilize all available inputs for more precise modeling. Retrieve the EnergySiteId(s) from your request(s) for use in step 2.
  2. 2. Create a Simulation Request: Create a simulation request with the EnergySiteId(s) created in the first step. Specify your choice of power model, simulation and weather outputs, weather data source, and models for simulating energy losses. Retrieve the SimulationId returned from your request for use in step 3.
  3. 3. Get Simulation Results: Using the SimulationId generated in step 2, retrieve the requested weather & irradiance data and simulated PV project output.

It should be noted that uncertainty in energy simulations varies from site to site depending on a number of factors, such as the accuracy of the weather data and system specifications, as well as environmental and system loss assumptions. The various sources of uncertainty and their associated ranges are reported in the publication: “On-site performance verification to reduce yield prediction uncertainties. Reich et al, 2015 IEEE 42nd Photo Voltaic Specialist Conference (PVSC).” SolarAnywhere solar irradiance data is widely used for independent and bankable solar resource assessment, operational monitoring and solar forecasting. Visit our validation page for up-to-date information on model accuracy.

Energy Simulation Models

SolarAnywhere customers can choose from two available energy simulation models: pvlib and CprPVForm.


Initially developed at Sandia National Laboratories, pvlib python is a peer-reviewed1, community maintained, open-source library developed on GitHub. Pvlib provides a set of functions and classes for simulating the performance of PV energy systems. The broader solar community develops, validates and frequently updates pvlib models. The pvlib models integrated into SolarAnywhere support NREL PVWatts as the core engine for simulating module and inverter performance. PVWatts makes internal assumptions about module and inverter characteristics, enabling SolarAnywhere users to quickly model any PV system type and configuration with just a few key inputs.

To enable SolarAnywhere customers to take advantage of the latest research in PV modeling, SolarAnywhere offers the most recent and stable version of pvlib through its API services. Table 1 shows the various models included in SolarAnywhere’s implementation of pvlib, and their relevant publications with model description and validation.

Table 1: Models included in SolarAnywhere’s implementation of pvlib
pvlib Solar Simulation Models
Transposition Model Perez
Temperature Model Faiman
DC Model PVWatts DC Power Model
AC Model PVWatts Inverter Model
Reflection Losses Incidence Angle Modifier (IAM) Physical
(with customization to include modeling for diffuse reflectivity losses)
Snow Losses NREL (Marion) Model
Soiling Losses Humboldt State University (HSU) Model
Near-object Shading Losses Monthly Percent Solar Resource

The PVForm model was originally developed by the Sandia National Labs in 1985. In partnership with the SUNY Albany team, Clean Power Research developed an in-house implementation of PVForm called ‘CprPVForm’. The CprPVForm model implements many modeling algorithms found in the PVForm and PVWatts v1 models and has been used in assessing the energy performance of PV fleets.

Table 2 outlines the capabilities and limitations of the two energy models.

Table 2: Comparison of the CprPVForm and pvlib solar simulation models
CprPVForm pvlib
General Derate Percent Default: 0.40%/°C Default: 0.37%/°C
Module Power Temperature Coefficient Default: 85% Default: 86%
Module Rating PTC Rating STC Rating
Tracking types Fixed-Axis,
Single Axis,
Single Axis,
Single Axis with Backtracking
Reflection Losses No Yes
Near-object shading Yes Yes
Row-on-row shading Yes Yes
Snow Losses No Yes
Soiling Losses No Yes
Frequently Asked Questions
Which energy simulation model should I use to simulate my energy site?
Selecting a SolarAnywhere energy simulation model to use is dependent on the modeling needs of a specific project. The pvlib model is ideal for simulating the performance of commercial and utility scale systems due to its ability to model a variety of configurations such as single axis systems with backtracking. When using pvlib with SolarAnywhere’s high-fidelity weather data, SolarAnywhere customers get access to site-specific intelligence such as estimated PV generation and snow loss estimates. This enables solar developers and owners to reduce the financial and operational risks to their solar assets.

The CprPVForm model can simulate near-object shading effects based on a user provided obstruction profile. As such, we recommend using the CprPvForm model if you need to model shading effects in detail. Near-object shading can become especially relevant for residential rooftop PV systems.

SolarAnywhere plans to improve pvlib modeling capabilities for residential systems by developing and contributing our research advancements to the pvlib community in the future.

If you would like to run simulations on a fleet of PV systems, it is currently recommended to use CprPVForm. This model has been used by Clean Power Research in reliably assessing the energy performance of PV fleets and does not limit the number of energy sites you can include in a single simulation request. Pvlib is currently limited to five energy sites per request.
What if I want to use pvlib and also model near-object shading?
You can model the impact of near-object shading by specifying the monthly solar access percentages in the energy site specification and specifying MonthlyPercentSolarResource as the ShadingModel in energy site simulation requests. This model applies monthly solar access percentage derate factors to hourly simulation outputs to account for the effect of shading on PV system production.

You can also model the impact of near-object shading on energy performance by modifying the GeneralDerate_Percent in the energy site specification. This reduces the DC output of the PV system based on shading and other system losses. To learn how the derate is computed from individual loss components in the pvlib model, see the next question.
How can the general derate percent be broken down into individual system losses? Which system loss categories are included in the default derate percent?
The GeneralDerate_Percent parameter is used to specify system losses that affect the energy output of a PV system but are not explicitly accounted for by the energy simulations API. If you know the system losses, GeneralDerate_Percent can be calculated as:

GeneralDerate_Percent = 100 – System Losses (%) Eqn (1)

For example, a system loss of 14% can be converted to a General derate percent of 86% using the above equation.

Table 3: Breakdown of general derate percentage by power model
pvlib (PVWatts) CprPVForm
General Derate Percent (Default) 86% 85%
System loss categories and defaults Soiling = 2%

Shading = 3%

Snow = 0%

Mismatch = 2%

Wiring = 2%

Connections = 0.5%

Light-induced Degradation = 1.5%

Nameplate Rating = 1%

Age = 0%

Availability = 3%
Soiling, Snow, Mismatch, Wiring, Connections, Age, Availability
Losses excluded from GeneralDerate_Percent Inverter Efficiency Inverter Efficiency, Shading, Degradation, Nameplate (STC) rating
If you'd like to learn more about calculating custom system losses, refer to the "System Losses/Derate" definition on the terms & concepts page.
How do I model Enphase microinverters using the SolarAnywhere energy simulation API?
The recommended approach for modeling microinverters is to set 1 inverter per module and adjust the GeneralDerate_Percent consistent with the manufacturer’s recommendations. If you'd like to learn more about how the general derate is calculated, refer to the "System Losses/Derate" definition on the terms & concepts page.
How do I model DC optimizers using the SolarAnywhere energy simulation API?
The electrical behavior of DC optimizers varies by manufacturer and requires detailed modeling for each technology. The recommended approach for modeling DC optimizers in the model is to adjust the GeneralDerate_Percent consistent with the manufacturer’s recommendations. If you'd like to learn more about how the general derate is calculated, refer to the "System Losses/Derate" definition on the terms & concepts page.
Contact us to request a demo of SolarAnywhere’s energy performance simulation capabilities.

1 Holmgren W, Hansen CW, Mikofski MA. 2018. pvlib python: a python package for modeling solar energy systems. Journal of Open Source Software (JOSS). DOI: 10.21105/joss.00884. Link.

What’s Next?