%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
times = pd.date_range('2014-01-01', '2015-01-01', freq='1D')
pvlib.irradiance.extraradiation(300, method='asce')
DEBUG:pvlib:irradiance.extraradiation() DEBUG:pvlib:Calculating ET rad using ASCE method
1385.7848051831807
pvlib.irradiance.extraradiation(300, method='spencer')
DEBUG:pvlib:irradiance.extraradiation() DEBUG:pvlib:Calculating ET rad using Spencer method
1384.3999948908033
pvlib.irradiance.extraradiation(300, method='pyephem')
DEBUG:pvlib:irradiance.extraradiation() DEBUG:pvlib:Calculating ET rad using pyephem method DEBUG:pvlib:solarposition.pyephem_earthsun_distance()
2014-10-27 1382.618665 dtype: float64
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()
plt.figure(figsize=(12,6))
spencer.plot(label='spencer')
asce.plot(label='asce')
ephem.plot(label='pyephem')
plt.legend()
<matplotlib.legend.Legend at 0x5bfd1d0>
logging.getLogger('pvlib').setLevel(logging.WARNING)
%%timeit
spencer = pd.Series(pvlib.irradiance.extraradiation(times.dayofyear, method='spencer'), times)
1000 loops, best of 3: 174 µs per loop
%%timeit
asce = pd.Series(pvlib.irradiance.extraradiation(times.dayofyear, method='asce'), times)
10000 loops, best of 3: 114 µs per loop
%%timeit
ephem = pvlib.irradiance.extraradiation(times, method='pyephem')
100 loops, best of 3: 19.4 ms per loop