Solar radiation model based on Duffie & Beckman "Solar energy thermal processes" (1974)

## Project description

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

#### Example 1

Solar irradiance on the southern hemisphere on October 17, at sea-level 13.01UTC (plane pointing upwards)?

import numpy as np
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



A dedicated Jupyter Notebook on beam irradiance can be found here.

#### Example 2

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()


#### Example 3

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.

### Dependencies

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

### Installation

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 .


### Testing

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


### Bug reporting

Please feel free to open an issue on GitHub!

MIT (see COPYING)

## Project details

Uploaded source
Uploaded py3