pvlib.irradiance.dirindex(ghi, ghi_clearsky, dni_clearsky, zenith, times, pressure=101325.0, use_delta_kt_prime=True, temp_dew=None, min_cos_zenith=0.065, max_zenith=87)[source]#

Determine DNI from GHI using the DIRINDEX model.

The DIRINDEX model 1 modifies the DIRINT model implemented in pvlib.irradiance.dirint() by taking into account information from a clear sky model. It is recommended that ghi_clearsky be calculated using the Ineichen clear sky model pvlib.clearsky.ineichen() with perez_enhancement=True.

The pvlib implementation limits the clearness index to 1.

  • ghi (array-like) – Global horizontal irradiance in W/m^2.

  • ghi_clearsky (array-like) – Global horizontal irradiance from clear sky model, in W/m^2.

  • dni_clearsky (array-like) – Direct normal irradiance from clear sky model, in W/m^2.

  • zenith (array-like) – True (not refraction-corrected) zenith angles in decimal degrees. If Z is a vector it must be of the same size as all other vector inputs. Z must be >=0 and <=180.

  • times (DatetimeIndex) –

  • pressure (float or array-like, default 101325.0) – The site pressure in Pascal. Pressure may be measured or an average pressure may be calculated from site altitude.

  • use_delta_kt_prime (bool, default True) – If True, indicates that the stability index delta_kt_prime is included in the model. The stability index adjusts the estimated DNI in response to dynamics in the time series of GHI. It is recommended that delta_kt_prime is not used if the time between GHI points is 1.5 hours or greater. If use_delta_kt_prime=True, input data must be Series.

  • temp_dew (float, or array-like, optional) – Surface dew point temperatures, in degrees C. Values of temp_dew may be numeric or NaN. Any single time period point with a temp_dew=NaN does not have dew point improvements applied. If temp_dew is not provided, then dew point improvements are not applied.

  • min_cos_zenith (numeric, default 0.065) – Minimum value of cos(zenith) to allow when calculating global clearness index kt. Equivalent to zenith = 86.273 degrees.

  • max_zenith (numeric, default 87) – Maximum value of zenith to allow in DNI calculation. DNI will be set to 0 for times with zenith values greater than max_zenith.


dni (array-like) – The modeled direct normal irradiance in W/m^2.


DIRINDEX model requires time series data (ie. one of the inputs must be a vector of length > 2).



Perez, R., Ineichen, P., Moore, K., Kmiecik, M., Chain, C., George, R., & Vignola, F. (2002). A new operational model for satellite-derived irradiances: description and validation. Solar Energy, 73(5), 307-317.