Introduction
Overview¶
Curious about photovoltaic performance ? This is an introduction into the estimation of photovoltaic power over a location and a moment or period in time.
We will explore solar radiation components and photovoltaic power estimates, by stepping through :
- the calculation of the position of the sun in the sky
- the measurement of sun-to-surface angles
- the analysis of solar irradiance components
- and the derivation of the effective amount of global irradiance.
Example¶
Before skimming through the tutorial, (see sections in the left table of content) we'll run a simple example. We want to estimate the photovoltaic power output for a specific location and a short period of time.
The following command will return the requested output for a single day at hourly frequency (which is the default frequency for timestamps)
pvgis-prototype power broadband \
8.628 45.812 214 \
--start-time '2010-01-27' \
--end-time '2010-01-28' \
--global-horizontal-irradiance sarah2_sis_over_esti_jrc.nc \
--direct-horizontal-irradiance sarah2_sid_over_esti_jrc.nc \
--neighbor-lookup nearest
Tip
Just copy-and-paste the commands and follow along. This is one way to practice through this tutorial!
Let us now silence the command output (i.e. hide the photovoltaic power time series output) via the --quiet option though plot the output time series right in the terminal via the --uniplot option.
pvgis-prototype power broadband \
8.628 45.812 214 \
--start-time '2010-01-27' \
--end-time '2010-01-28' \
--global-horizontal-irradiance sarah2_sis_over_esti_jrc.nc \
--direct-horizontal-irradiance sarah2_sid_over_esti_jrc.nc \
--neighbor-lookup nearest \
--uniplot \
--quiet
Uniplot
Power observed from (longitude, latitude) 0.15058700786207074, 0.7995702369236423
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ ▄▄▀▀▄▖ │
│ ▗▄▀▀ ▝▀▄▄▄▄▄▄▀▀▚ │ 600 W
│ ▗▞▘ ▘ ▚ │
│ ▗▞▘ ▚▖ │
│ ▗▞▘ ▝▖ │
│ ▄▘ ▝▖ │
│ ▗▞ ▝▖ │ 400 W
│ ▄▘ ▝▖ │
│ ▞ ▐ │
│ ▞ ▚ │
│ ▗▘ ▌ │
│ ▗▘ ▝▖ │ 200 W
│ ▞ ▝▖ │
│ ▞ ▚ │
│ ▗▘ ▀▚▖ │
│ ▗▘ ▝▚▖ │
│▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▞▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▝▚▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ 0 W
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
2010-01-27 2010-01-27T03:00 2010-01-27T06:00 2010-01-27T09:00 2010-01-27T12:00 2010-01-27T15:00 2010-01-27T18:00 2010-01-27T21:00 2010-01-28
██ ⌁ Photovoltaic Power
By the way, the --neighbor-lookup option set to nearest is important : it will pick these time series from the input data that are nearest to the requested coordinates, in which case longitude and latitude 8.628 45.812. In other words, if a requested pair of coordinates does not exist in the data, PVGIS will not select a location for convenience. Such a selection without the user being informed may lead to unpredictable results.
Analysis¶
We'd want, however, to make sense of the numbers. What are they and what is the context, i.e. what other variables come into play ?
Let's break-down the result via -v flags :
pvgis-prototype power broadband \
8.628 45.812 214 180 0.0001 \
--start-time '2010-01-27' \
--end-time '2010-01-28' \
--global-horizontal-irradiance sarah2_sis_over_esti_jrc.nc \
--direct-horizontal-irradiance sarah2_sid_over_esti_jrc.nc \
--neighbor-lookup nearest \
-vv
Power series [W]
Time Power ⌁ Power ⌁ without Loss Sun-Horizon ⛰ Shading state 🮞 In-shade 🮞 Horizon ⛰ Visible 👁
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2010-01-27 00:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 01:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 02:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 03:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 04:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 05:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 06:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 07:00:00 0.0 0.0 Low angle Unset False 0.0 True
2010-01-27 08:00:00 459.399 534.185 Above Unset False 0.0 True
2010-01-27 09:00:00 536.939 624.348 Above Unset False 0.0 True
2010-01-27 10:00:00 578.435 672.598 Above Unset False 0.0 True
2010-01-27 11:00:00 593.646 690.286 Above Unset False 0.0 True
2010-01-27 12:00:00 520.878 605.672 Above Unset False 0.0 True
2010-01-27 13:00:00 597.361 694.606 Above Unset False 0.0 True
2010-01-27 14:00:00 449.867 523.101 Above Unset False 0.0 True
2010-01-27 15:00:00 148.948 173.196 Above Unset False 0.0 True
2010-01-27 16:00:00 0.0 0.0 Above Unset False 0.0 True
2010-01-27 17:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 18:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 19:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 20:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 21:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 22:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-27 23:00:00 0.0 0.0 Below Unset True 0.0 False
2010-01-28 00:00:00 0.0 0.0 Below Unset True 0.0 False
⅀ / μ 3885.473 4517.992
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Location Longitude ϑ, Latitude ϕ = 0.151, 0.8, Elevation: 214.0 m Angular units radians │
│ Definitions UTC, Incidence angle: Sun-Vector-to-Surface-Normal, Sun-to-Horizon: ['Low angle', 'Below', 'Above'] │
│ Algorithms Shading : PVGIS, Shading states : ['all'] │
╰────────────────────────────────────────────────────────────────────────────────────────────────────── Reference ─╯
╭───────────────────────────────────────────────────────────────╮
│ ⌁ Power ⯐ Positioning ⦥ Tilt 🮞 Shading │
│ - Loss ⛰ Horizon ⭸ Incidence ⅀ N-ary Summation │
│ ⏲ Timing ↻ Orientation 👁 Visible μ Mean │
╰────────────────────────────────────────────────────── Legend ─╯
and break-it-down even more by instructing more -vs
pvgis-prototype power broadband \
8.628 45.812 214 180 0.0001 \
--start-time '2010-01-27' \
--end-time '2010-01-28' \
--global-horizontal-irradiance sarah2_sis_over_esti_jrc.nc \
--direct-horizontal-irradiance sarah2_sid_over_esti_jrc.nc \
--neighbor-lookup nearest \
-vvvv
Power series [W]
Pow…
⌁ Spe… Spe… Lin… Ecc… Sha…
Pow… wit… Eff… Glo… Dir… Sky… Gro… eff… eff… Spe… Tur… Alt… Inc… Pha… Su… sta… In… Hor… Vi…
Time ⌁ Loss ⋅ ⤋ ⭍ ⇣ ⭍ 🗤 ⭍ ⭞ ⭍ ± ± % fac… ⋅ ⦩ ⭸ Off… ⛰ 🮞 🮞 ⛰ 👁
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2010-01-27 00:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -1.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 01:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -1.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 02:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -0.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 03:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -0.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 04:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -0.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 05:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -0.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 06:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -0.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 07:00:00 0.0 0.0 1.0 0.0 0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 0.01 1.5… 0.… Low Un… Fal… 0.0 True
ang…
2010-01-27 08:00:00 459… 534… 0.9… 534… 479… 54.… -0.0 0.0 0.0 1.0 uns… 2.0 0.1… 1.4… 0.… Abo… Un… Fal… 0.0 True
2010-01-27 09:00:00 536… 624… 0.9… 624… 538… 85.… -0.0 0.0 0.0 1.0 uns… 2.0 0.2… 1.2… 0.… Abo… Un… Fal… 0.0 True
2010-01-27 10:00:00 578… 672… 0.9… 672… 572… 99.… -0.0 0.0 0.0 1.0 uns… 2.0 0.3… 1.19 0.… Abo… Un… Fal… 0.0 True
2010-01-27 11:00:00 593… 690… 0.9… 690… 587… 102… -0.0 0.0 0.0 1.0 uns… 2.0 0.4… 1.1… 0.… Abo… Un… Fal… 0.0 True
2010-01-27 12:00:00 520… 605… 0.9… 605… 472… 133… -0.0 0.0 0.0 1.0 uns… 2.0 0.4… 1.1… 0.… Abo… Un… Fal… 0.0 True
2010-01-27 13:00:00 597… 694… 0.9… 694… 618… 75.… -0.0 0.0 0.0 1.0 uns… 2.0 0.4 1.1… 0.… Abo… Un… Fal… 0.0 True
2010-01-27 14:00:00 449… 523… 0.9… 523… 432… 90.… -0.0 0.0 0.0 1.0 uns… 2.0 0.3… 1.2… 0.… Abo… Un… Fal… 0.0 True
2010-01-27 15:00:00 148… 173… 0.95 173… 106… 66.… -0.0 0.0 0.0 1.0 uns… 2.0 0.1… 1.3… 0.… Abo… Un… Fal… 0.0 True
2010-01-27 16:00:00 0.0 0.0 1.0 0.0 0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 0.0… 1.5… 0.… Abo… Un… Fal… 0.0 True
2010-01-27 17:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -0.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 18:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -0.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 19:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -0.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 20:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -0.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 21:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -0.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 22:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -0.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-27 23:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -1.… 0.0 0.… Bel… Un… True 0.0 Fal…
2010-01-28 00:00:00 0.0 0.0 1.0 0.0 -0.0 0.0 -0.0 0.0 0.0 1.0 uns… 2.0 -1.… 0.0 0.… Bel… Un… True 0.0 Fal…
⅀ / μ 388… 451… 0.9… 451… 380… 709… 0.0 0.0 0.0 1.0
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Location Longitude ϑ, Latitude ϕ = 0.151, 0.8, Elevation: 214.0 m Angular units radians │
│ Module Type: Mono-Facial, Technology: cSi, Mount: Free standing, Peak Power: 1.0 kWp │
│ Definitions Azimuth origin : Not Required!, UTC, Incidence angle: Sun-Vector-to-Surface-Normal, Sun-to-Horizon: ['Below', 'Above', 'Low angle'] │
│ Algorithms Power model ⌁: Huld 2011, Shading : PVGIS, Shading states : ['all'] │
│ Radiation model ⸾ : Hofierka 2002, Irradiance units W │
│ Equation : P(G₀, T₀) = G₀(P₀ₛₜ₃, m + k₁G₀) + k₂G₀)² + k₃T₀ + k₄T₀G₀ + k₅T₀G₀² + k₆T₀² │
│ Constants Solar constant : 1367.0, Eccentricity Offset : 0.048869, Eccentricity Amplitude ⋅⬭ : 0.03344 │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── Reference ─╯
╭────────────────────────────────────────────────────────────────────────╮
│ ⌁ Power 🗤 Diffuse ↻ Orientation ⅀ N-ary Summation │
│ ⸾ Irradiance ⭞ Reflected ⦥ Tilt μ Mean │
│ ⭍ Effective ⏲ Timing ⭸ Incidence │
│ - Loss ⦩ Altitude 👁 Visible │
│ ⇣ Direct Azimuth 🮞 Shading │
│ ⍖ Extra Normal ⯐ Positioning ⋅ Factor │
│ ⦜ Normal ⛰ Horizon % Percentage │
╰─────────────────────────────────────────────────────────────── Legend ─╯
For each hour during the period in question, we calculated the photovoltaic power output based on satellite-based observations of the terrestrial radiation and a predefined efficiency and other parameters. The more verbose output reveals many of the input and intermediate factors and variables that come into play.
Symbols
The photovoltaic Power ⌁ (output column) is the result of the effective global irradiance Global ⤋ ⭍ multiplied by the overall Efficiency ⋅. In fact, the effective global irradiance can be broken down in its effective components Direct ⇣ ⭍, Sky-Diffuse 🗤 ⭍ and Ground-Diffuse ⭞ ⭍. Likewise, the global inclined irradiance is broken down in its inclined components. Just add more -vs to the command !
See the complete list of symbols at Symbols