Welcome to solpos documentation!

This is a thin wrapper around NREL’s SOLPOS 2.0, exposing the S_solpos C-function to python as solpos.solpos(). All possible outputs are calculated, and exposed via the solpos.SolposResult() NamedTuple-object, so they can be accessed as an attribute.

NREL’s description:

NREL’s Solar Position and Intensity (SOLPOS 2.0) C function calculates the apparent solar position and intensity (theoretical maximum solar energy) based on date, time, and location on Earth.

Contents

Installation

To install solpos, open an interactive shell and run

pip install solpos

Gettings Started

from solpos import solpos

result = solpos(
    year=2022,
    month=10,
    day=27,
    hour=16,
    minute=26,
    second=0,
    timezone=2,
    latitude=51.44579,
    longitude=7.26274,
)
# solar elevation angle refracted
print(result.elevref)
# solar declination
print(result.declin)
# shadow band correction factor
print(result.sbcf)
13.568160057067871
-12.900684356689453
1.093388319015503

For a detailed description of all (calculated) attributes see: solpos.SolposResult().

Accuracy

The python version wrapping the C-function is tested for accuracy against running the pure C-version and NREL’s SOLPOS online calculator

  • against the online calculator: \(\pm 1 * 10^{-4}\)

  • against the pure C-Version: \(\pm 1 * 10^{-6}\)

License

The project is licesned under the MIT License and vendors SOLPOS 2.0 via SolarPILOT which is licensed under a mixed MIT and GPLv3 license and […] allows for-profit and not-for-profit organizations to develop and redistribute software based on SolarPILOT under terms of an MIT license.

References

SolarPILOT

Wagner, M.J. (2018). “SolarPILOT Open-Source Software Project: https://github.com/NREL/SolarPILOT/tree/21a1466398ec22db24a5a838e5133da58e347b83.” Accessed (27/10/2022). National Renewable Energy Laboratory, Golden, Colorado.

Astronomical Solar Position

Michalsky, J. 1988. The Astronomical Almanac’s algorithm for approximate solar position (1950-2050). Solar Energy 40 (3), 227-235.

Michalsky, J. 1988. ERRATA: The astronomical almanac’s algorithm for approximate solar position (1950-2050). Solar Energy 41 (1), 113.

Distance from Sun to Earth

Spencer, J. W. 1971. Fourier series representation of the position of the sun. Search 2 (5), 172. NOTE: This paper gives solar position algorithms as well, but the Michalsky/Almanac algorithm above is more accurate.

Atmospheric Refraction Correction

Zimmerman, John C. 1981. Sun-pointing programs and their accuracy. SAND81-0761, Experimental Systems Operation Division 4721, Sandia National Laboratories, Albuquerque, NM.

Shadow Band Correction Factor

Drummond, A. J. 1956. A contribution to absolute pyrheliometry. Q. J. R. Meteorol.2 Soc. 82, 481-493.

Relative Optical Air Mass

Kasten, F. and Young, A. 1989. Revised optical air mass tables and approximation formula. Applied Optics 28 (22), 4735-4738.

Renormalization of KT (“PRIME”)

Perez, R., P. Ineichen, Seals, R., & Zelenka, A. 1990. Making full use of the clearness index for parameterizing hourly insolation conditions. Solar Energy 45 (2), 111-114.

Solar Position Relative to Earth

Iqbal, M. 1983. An Introduction to Solar Radiation. Academic Press, NY.

Indices and tables