pvlib.snow.coverage_nrel(snowfall, poa_irradiance, temp_air, surface_tilt, initial_coverage=0, threshold_snowfall=1.0, can_slide_coefficient=- 80.0, slide_amount_coefficient=0.197)[source]

Calculates the fraction of the slant height of a row of modules covered by snow at every time step.

Implements the model described in 1 with minor improvements in 2, with the change that the output is in fraction of the row’s slant height rather than in tenths of the row slant height. As described in 1, model validation focused on fixed tilt systems.

  • snowfall (Series) – Accumulated snowfall within each time period. [cm]

  • poa_irradiance (Series) – Total in-plane irradiance [W/m^2]

  • temp_air (Series) – Ambient air temperature [C]

  • surface_tilt (numeric) – Tilt of module’s from horizontal, e.g. surface facing up = 0, surface facing horizon = 90. [degrees]

  • initial_coverage (float, default 0) – Fraction of row’s slant height that is covered with snow at the beginning of the simulation. [unitless]

  • threshold_snowfall (float, default 1.0) – Hourly snowfall above which snow coverage is set to the row’s slant height. [cm/hr]

  • can_slide_coefficient (float, default -80.) – Coefficient to determine if snow can slide given irradiance and air temperature. [W/(m^2 C)]

  • slide_amount_coefficient (float, default 0.197) – Coefficient to determine fraction of snow that slides off in one hour. [unitless]


snow_coverage (Series) – The fraction of the slant height of a row of modules that is covered by snow at each time step.


In 1, can_slide_coefficient is termed m, and the value of slide_amount_coefficient is given in tenths of a module’s slant height.



Marion, B.; Schaefer, R.; Caine, H.; Sanchez, G. (2013). “Measured and modeled photovoltaic system energy losses from snow for Colorado and Wisconsin locations.” Solar Energy 97; pp.112-121.


Ryberg, D; Freeman, J. (2017). “Integration, Validation, and Application of a PV Snow Coverage Model in SAM” NREL Technical Report NREL/TP-6A20-68705