In [1]:
%matplotlib inline

import pandas as pd

import matplotlib.pyplot as plt
import seaborn as sns

import logging
logging.getLogger('pvlib').setLevel(logging.DEBUG)

import pvlib

In [2]:
times = pd.date_range('2014-01-01', '2015-01-01', freq='1D')

In [3]:
pvlib.irradiance.extraradiation(300, method='asce')


DEBUG:pvlib:irradiance.extraradiation()
DEBUG:pvlib:Calculating ET rad using ASCE method
Out[3]:
1385.7848051831807

In [4]:
pvlib.irradiance.extraradiation(300, method='spencer')


DEBUG:pvlib:irradiance.extraradiation()
DEBUG:pvlib:Calculating ET rad using Spencer method
Out[4]:
1384.3999948908033

In [5]:
pvlib.irradiance.extraradiation(300, method='pyephem')


DEBUG:pvlib:irradiance.extraradiation()
DEBUG:pvlib:Calculating ET rad using pyephem method
DEBUG:pvlib:solarposition.pyephem_earthsun_distance()
Out[5]:
2014-10-27    1382.618665
dtype: float64

In [6]:
spencer = pd.Series(pvlib.irradiance.extraradiation(times.dayofyear, method='spencer'), times)
asce = pd.Series(pvlib.irradiance.extraradiation(times.dayofyear, method='asce'), times)
ephem = pvlib.irradiance.extraradiation(times, method='pyephem')


DEBUG:pvlib:irradiance.extraradiation()
DEBUG:pvlib:Calculating ET rad using Spencer method
DEBUG:pvlib:irradiance.extraradiation()
DEBUG:pvlib:Calculating ET rad using ASCE method
DEBUG:pvlib:irradiance.extraradiation()
DEBUG:pvlib:Calculating ET rad using pyephem method
DEBUG:pvlib:solarposition.pyephem_earthsun_distance()

In [7]:
plt.figure(figsize=(12,6))
spencer.plot(label='spencer')
asce.plot(label='asce')
ephem.plot(label='pyephem')
plt.legend()


Out[7]:
<matplotlib.legend.Legend at 0x5bfd1d0>

In [8]:
logging.getLogger('pvlib').setLevel(logging.WARNING)

In [9]:
%%timeit

spencer = pd.Series(pvlib.irradiance.extraradiation(times.dayofyear, method='spencer'), times)


1000 loops, best of 3: 174 µs per loop

In [10]:
%%timeit

asce = pd.Series(pvlib.irradiance.extraradiation(times.dayofyear, method='asce'), times)


10000 loops, best of 3: 114 µs per loop

In [11]:
%%timeit

ephem = pvlib.irradiance.extraradiation(times, method='pyephem')


100 loops, best of 3: 19.4 ms per loop

In [11]: