solposx.solarposition.noaa

Contents

solposx.solarposition.noaa#

solposx.solarposition.noaa(times, latitude, longitude, *, delta_t=67.0)#

Calculate solar position using the NOAA algorithm.

NOAA’s algorithm [1] has a stated accuracy of 0.0167 degrees from years -2000 to +3000 for latitudes within +/- 72 degrees. For latitudes outside this the accuracy is 0.167 degrees.

The NOAA algorithm uses the Hughes refraction model, see hughes(). Note, that the implementation deviates slightly from Hughes in that refraction is set to 0 for solar elevation angles above 85 degrees.

Parameters:
  • times (pandas.DatetimeIndex) – Timestamps - must be localized. Prior to 1970 and far in the future UTC and UT1 may deviate significantly. For such use cases, UT1 times should be provided.

  • latitude (float) – Latitude in decimal degrees. Positive north of equator, negative to south. [degrees]

  • longitude (float) – Longitude in decimal degrees. Positive east of prime meridian, negative to west. [degrees]

  • delta_t (numeric, default 67.0) – Difference between terrestrial time and UT1. If delta_t is None, uses pvlib.spa.calculate_deltat() using times.year and times.month from pandas.DatetimeIndex. For most simulations the default delta_t is sufficient. The USNO has historical and forecasted delta_t [3]. [seconds]

Returns:

DataFrame with the following columns (all values in degrees):

  • elevation : actual sun elevation (not accounting for refraction).

  • apparent_elevation : sun elevation, accounting for atmospheric refraction.

  • zenith : actual sun zenith (not accounting for refraction).

  • apparent_zenith : sun zenith, accounting for atmospheric refraction.

  • azimuth : sun azimuth, east of north.

Return type:

pandas.DataFrame

Notes

The algorithm is from Astronomical Algorithms by Jean Meeus [2].

References