pvlib.solarposition.spa_python(time, latitude, longitude, altitude=0, pressure=101325, temperature=12, delta_t=67.0, atmos_refract=None, how='numpy', numthreads=4, **kwargs)[source]

Calculate the solar position using a python implementation of the NREL SPA algorithm described in [1].

If numba is installed, the functions can be compiled to machine code and the function can be multithreaded. Without numba, the function evaluates via numpy with a slight performance hit.

  • time (pandas.DatetimeIndex) – Localized or UTC.

  • latitude (float) –

  • longitude (float) –

  • altitude (float, default 0) –

  • pressure (int or float, optional, default 101325) – avg. yearly air pressure in Pascals.

  • temperature (int or float, optional, default 12) – avg. yearly air temperature in degrees C.

  • delta_t (float, optional, default 67.0) – If delta_t is None, uses spa.calculate_deltat using time.year and time.month from pandas.DatetimeIndex. For most simulations specifing delta_t is sufficient. Difference between terrestrial time and UT1. Note: delta_t = None will break code using nrel_numba, this will be fixed in a future version. The USNO has historical and forecasted delta_t [3].

  • atmos_refrac (None or float, optional, default None) – The approximate atmospheric refraction (in degrees) at sunrise and sunset.

  • how (str, optional, default 'numpy') – Options are ‘numpy’ or ‘numba’. If numba >= 0.17.0 is installed, how=’numba’ will compile the spa functions to machine code and run them multithreaded.

  • numthreads (int, optional, default 4) – Number of threads to use if how == ‘numba’.


DataFrame – The DataFrame will have the following columns: apparent_zenith (degrees), zenith (degrees), apparent_elevation (degrees), elevation (degrees), azimuth (degrees), equation_of_time (minutes).


[1] I. Reda and A. Andreas, Solar position algorithm for solar radiation applications. Solar Energy, vol. 76, no. 5, pp. 577-589, 2004.

[2] I. Reda and A. Andreas, Corrigendum to Solar position algorithm for solar radiation applications. Solar Energy, vol. 81, no. 6, p. 838, 2007.

[3] USNO delta T: http://www.usno.navy.mil/USNO/earth-orientation/eo-products/long-term