Description | Python Solar Radiation model |
Author | aqreed aqreed@protonmail.com |
Version | 0.1.3 |
Python Version | 3.6 |
Requires | Numpy, Matplotlib |
This packages aims to provide a reliable solar radiation model, mainly based on the work of Duffie, J.A., and Beckman, W. A., 1974, "Solar energy thermal processes".
The main purpose is to generate a solar beam irradiance (W/m2) prediction on:
- any plane, thanks to the calculation of the solar vector in NED (North East Down) coordinates, suitable for its use in flight dynamics simulations...
- any place of the earth, taking into account the solar time wrt the standard time, geometric altitude, the latitude influence on solar azimuth and solar altitude as well as sunset/sunrise time and hour angle, etc.
- any day of the year, taking into account the variations of the extraterrestrial radiation, the equation of time, the declination, etc., throughout the year
Solar irradiance on the southern hemisphere on October 17, at sea-level 13.01UTC (plane pointing upwards)?
import numpy as np
from solarpy import irradiance_on_plane
from datetime import datetime
vnorm = np.array([0, 0, -1]) # plane pointing zenith
h = 0 # sea-level
date = datetime(2019, 10, 17, 13, 1) # year, month, day, hour, minute
lat = -23.5 # southern hemisphere
irradiance_on_plane(vnorm, h, date, lat)
A dedicated Jupyter Notebook on beam irradiance can be found here.
Power output (in W) of a solar panel with the following characteristics:
- surface of 2.1 sqm
- efficiency of 0.2
- pointing upwards
- in NYC
- on December 25, at 16.15
from numpy import array
from solarpy import solar_panel
from datetime import datetime
panel = solar_panel(2.1, 0.2, id_name='NYC_xmas') # surface, efficiency and name
panel.set_orientation(array([0, 0, -1])) # upwards
panel.set_position(40.73, -73.93, 0) # NYC latitude, longitude, altitude
panel.set_datetime(datetime(2019, 12, 25, 16, 15)) # Christmas Day!
panel.power()
Solar declination on August 5?
from solarpy import declination
from datetime import datetime
date = datetime(2019, 8, 5) # August 5
declination(date)
Please find more notebooks on the 'examples' folder that you can open locally, or just try to launch online interactive Jupyter notebooks.
NOTE: solarpy is under development and might change in the near future.
This package depends on Python, NumPy and Matplotlib and is usually tested on Linux with the following versions:
Python 3.6, NumPy 1.16, Matplotlib 3.0
solarpy has been written in Python3, and its version v0.1 is available in PyPi. It can be installed using:
$ pip install solarpy
To install in development mode:
$ git clone https://github.com/aqreed/solarpy.git
$ cd solarpy
$ pip install -e .
solarpy recommends py.test for running the test suite. Running from the top directory:
$ pytest
To test coverage (also from the top directory):
$ pytest --cov
Please feel free to open an issue on GitHub!
MIT (see COPYING
)