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.