GET_GROUND_DIFFUSE
This function computes diffuse irradiance caused by ground reflection.
It estimates ground reflection irradiance using the panel’s surface tilt, Global Horizontal Irradiance (GHI), and surface albedo.
Excel Usage
=GET_GROUND_DIFFUSE(surface_tilt, ghi, albedo, surface_type)
surface_tilt(float, required): Panel tilt from horizontal (degrees).ghi(float, required): Global horizontal irradiance (W/m^2).albedo(float, optional, default: 0.25): Ground surface reflection coefficient (0 to 1). Overridden by surface_type if provided.surface_type(str, optional, default: null): Overrides albedo with specific constants (e.g. ‘snow’, ‘concrete’). Leave blank to use custom albedo.
Returns (float): Ground reflected irradiance (W/m^2), or an error string.
Example 1: Reflected irradiance on summer afternoon
Inputs:
| surface_tilt | ghi | albedo | surface_type |
|---|---|---|---|
| 30 | 800 | 0.2 |
Excel formula:
=GET_GROUND_DIFFUSE(30, 800, 0.2, "")
Expected output:
10.718
Example 2: Reflected irradiance overriding albedo with snow
Inputs:
| surface_tilt | ghi | albedo | surface_type |
|---|---|---|---|
| 45 | 600 | 0.25 | snow |
Excel formula:
=GET_GROUND_DIFFUSE(45, 600, 0.25, "snow")
Expected output:
57.1142
Example 3: Ground diffuse on a horizontal surface
Inputs:
| surface_tilt | ghi | albedo | surface_type |
|---|---|---|---|
| 0 | 900 | 0.3 |
Excel formula:
=GET_GROUND_DIFFUSE(0, 900, 0.3, "")
Expected output:
0
Example 4: Ground diffuse using concrete surface type
Inputs:
| surface_tilt | ghi | albedo | surface_type |
|---|---|---|---|
| 60 | 500 | 0.1 | concrete |
Excel formula:
=GET_GROUND_DIFFUSE(60, 500, 0.1, "concrete")
Expected output:
37.5
Python Code
Show Code
from pvlib.irradiance import get_ground_diffuse as result_func
def get_ground_diffuse(surface_tilt, ghi, albedo=0.25, surface_type=None):
"""
Estimate diffuse irradiance on a tilted surface from ground reflections.
See: https://pvlib-python.readthedocs.io/en/stable/reference/generated/pvlib.irradiance.get_ground_diffuse.html
This example function is provided as-is without any representation of accuracy.
Args:
surface_tilt (float): Panel tilt from horizontal (degrees).
ghi (float): Global horizontal irradiance (W/m^2).
albedo (float, optional): Ground surface reflection coefficient (0 to 1). Overridden by surface_type if provided. Default is 0.25.
surface_type (str, optional): Overrides albedo with specific constants (e.g. 'snow', 'concrete'). Leave blank to use custom albedo. Default is None.
Returns:
float: Ground reflected irradiance (W/m^2), or an error string.
"""
try:
tilt = float(surface_tilt)
gl = float(ghi)
a = float(albedo) if albedo is not None else 0.25
st = str(surface_type).strip() if surface_type is not None else ""
if not st:
st = None
if not (0 <= a <= 1):
return "Error: Albedo must be between 0 and 1"
res = result_func(
surface_tilt=tilt,
ghi=gl,
albedo=a,
surface_type=st
)
return float(res)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
Panel tilt from horizontal (degrees).
Global horizontal irradiance (W/m^2).
Ground surface reflection coefficient (0 to 1). Overridden by surface_type if provided.
Overrides albedo with specific constants (e.g. 'snow', 'concrete'). Leave blank to use custom albedo.