def get_ground_diffuse(surface_tilt, ghi, albedo=<NUM_LIT>, surface_type=None):
if surface_type is not None:<EOL><INDENT>albedo = SURFACE_ALBEDOS[surface_type]<EOL><DEDENT>diffuse_irrad = ghi * albedo * (<NUM_LIT:1> - np.cos(np.radians(surface_tilt))) * <NUM_LIT:0.5><EOL>try:<EOL><INDENT>diffuse_irrad.name = '<STR_LIT>'<EOL><DEDENT>except AttributeError:<EOL><INDENT>pass<EOL><DEDENT>return diffuse_irrad<EOL>
Estimate diffuse irradiance from ground reflections given
irradiance, albedo, and surface tilt

Function to determine the portion of irradiance on a tilted surface
due to ground reflections. Any of the inputs may be DataFrames or
scalars.

Parameters
----------
surface_tilt : numeric
    Surface tilt angles in decimal degrees. Tilt must be >=0 and
    <=180. The tilt angle is defined as degrees from horizontal
    (e.g. surface facing up = 0, surface facing horizon = 90).

ghi : numeric
    Global horizontal irradiance in W/m^2.

albedo : numeric, default 0.25
    Ground reflectance, typically 0.1-0.4 for surfaces on Earth
    (land), may increase over snow, ice, etc. May also be known as
    the reflection coefficient. Must be >=0 and <=1. Will be
    overridden if surface_type is supplied.

surface_type: None or string, default None
    If not None, overrides albedo. String can be one of 'urban',
    'grass', 'fresh grass', 'snow', 'fresh snow', 'asphalt', 'concrete',
    'aluminum', 'copper', 'fresh steel', 'dirty steel', 'sea'.

Returns
-------
grounddiffuse : numeric
    Ground reflected irradiances in W/m^2.


References
----------
[1] Loutzenhiser P.G. et. al. "Empirical validation of models to compute
solar irradiance on inclined surfaces for building energy simulation"
2007, Solar Energy vol. 81. pp. 254-267.

The calculation is the last term of equations 3, 4, 7, 8, 10, 11, and 12.

[2] albedos from:
http://files.pvsyst.com/help/albedo.htm
and
http://en.wikipedia.org/wiki/Albedo
and
https://doi.org/10.1175/1520-0469(1972)029<0959:AOTSS>2.0.CO;2