%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
# built in python modules
import datetime
import logging
import os
import inspect
# python add-ons
import numpy as np
import pandas as pd
import pvlib
from pvlib.location import Location
tus = Location(32.2, -111, 'US/Arizona', 700, 'Tucson')
print(tus)
golden = Location(39.742476, -105.1786, 'America/Denver', 1830, 'Golden')
print(golden)
golden_mst = Location(39.742476, -105.1786, 'MST', 1830, 'Golden MST')
print(golden_mst)
Tucson: latitude=32.2, longitude=-111, tz=US/Arizona, altitude=700 Golden: latitude=39.742476, longitude=-105.1786, tz=America/Denver, altitude=1830 Golden MST: latitude=39.742476, longitude=-105.1786, tz=MST, altitude=1830
times = pd.date_range(start=datetime.datetime(2014,6,23), end=datetime.datetime(2014,6,24), freq='1Min')
times_loc = times.tz_localize(tus.pytz)
times
<class 'pandas.tseries.index.DatetimeIndex'> [2014-06-23 00:00:00, ..., 2014-06-24 00:00:00] Length: 1441, Freq: T, Timezone: None
pyephemout = pvlib.solarposition.pyephem(times, tus)
spaout = pvlib.solarposition.spa(times, tus)
reload(pvlib.solarposition)
pyephemout = pvlib.solarposition.pyephem(times_loc, tus)
spaout = pvlib.solarposition.spa(times_loc, tus)
pyephemout['elevation'].plot(label='pyephem')
pyephemout['apparent_elevation'].plot(label='pyephem apparent')
spaout['elevation'].plot(label='spa')
plt.legend(ncol=2)
plt.title('elevation')
print('pyephem')
print(pyephemout.head())
print('spa')
print(spaout.head())
pyephem apparent_elevation apparent_azimuth elevation \ 2014-06-23 00:00:00-07:00 -34.028890 352.757414 -34.028890 2014-06-23 00:01:00-07:00 -34.055060 353.032425 -34.055060 2014-06-23 00:02:00-07:00 -34.080223 353.307627 -34.080223 2014-06-23 00:03:00-07:00 -34.104374 353.583047 -34.104374 2014-06-23 00:04:00-07:00 -34.127518 353.858659 -34.127518 azimuth apparent_zenith zenith 2014-06-23 00:00:00-07:00 352.757414 124.028890 124.028890 2014-06-23 00:01:00-07:00 353.032425 124.055060 124.055060 2014-06-23 00:02:00-07:00 353.307627 124.080223 124.080223 2014-06-23 00:03:00-07:00 353.583047 124.104374 124.104374 2014-06-23 00:04:00-07:00 353.858659 124.127518 124.127518 spa zenith azimuth elevation 2014-06-23 00:00:00-07:00 124.028842 352.757345 -34.028842 2014-06-23 00:01:00-07:00 124.055013 353.032330 -34.055013 2014-06-23 00:02:00-07:00 124.080176 353.307536 -34.080176 2014-06-23 00:03:00-07:00 124.104329 353.582953 -34.104329 2014-06-23 00:04:00-07:00 124.127472 353.858574 -34.127472
plt.figure()
pyephemout['elevation'].plot(label='pyephem')
spaout['elevation'].plot(label='spa')
(pyephemout['elevation'] - spaout['elevation']).plot(label='diff')
plt.legend(ncol=3)
plt.title('elevation')
plt.figure()
pyephemout['apparent_elevation'].plot(label='pyephem apparent')
spaout['elevation'].plot(label='spa')
(pyephemout['apparent_elevation'] - spaout['elevation']).plot(label='diff')
plt.legend(ncol=3)
plt.title('elevation')
plt.figure()
pyephemout['apparent_zenith'].plot(label='pyephem apparent')
spaout['zenith'].plot(label='spa')
(pyephemout['apparent_zenith'] - spaout['zenith']).plot(label='diff')
plt.legend(ncol=3)
plt.title('zenith')
plt.figure()
pyephemout['apparent_azimuth'].plot(label='pyephem apparent')
spaout['azimuth'].plot(label='spa')
(pyephemout['apparent_azimuth'] - spaout['azimuth']).plot(label='diff')
plt.legend(ncol=3)
plt.title('azimuth')
<matplotlib.text.Text at 0x47c1850>
reload(pvlib.solarposition)
pyephemout = pvlib.solarposition.pyephem(times, tus)
spaout = pvlib.solarposition.spa(times, tus)
pyephemout['elevation'].plot(label='pyephem')
pyephemout['apparent_elevation'].plot(label='pyephem apparent')
spaout['elevation'].plot(label='spa')
plt.legend(ncol=3)
plt.title('elevation')
print('pyephem')
print(pyephemout.head())
print('spa')
print(spaout.head())
pyephem apparent_elevation apparent_azimuth elevation \ 2014-06-23 00:00:00-07:00 -34.028890 352.757414 -34.028890 2014-06-23 00:01:00-07:00 -34.055060 353.032425 -34.055060 2014-06-23 00:02:00-07:00 -34.080223 353.307627 -34.080223 2014-06-23 00:03:00-07:00 -34.104374 353.583047 -34.104374 2014-06-23 00:04:00-07:00 -34.127518 353.858659 -34.127518 azimuth apparent_zenith zenith 2014-06-23 00:00:00-07:00 352.757414 124.028890 124.028890 2014-06-23 00:01:00-07:00 353.032425 124.055060 124.055060 2014-06-23 00:02:00-07:00 353.307627 124.080223 124.080223 2014-06-23 00:03:00-07:00 353.583047 124.104374 124.104374 2014-06-23 00:04:00-07:00 353.858659 124.127518 124.127518 spa zenith azimuth elevation 2014-06-23 00:00:00-07:00 124.028842 352.757345 -34.028842 2014-06-23 00:01:00-07:00 124.055013 353.032330 -34.055013 2014-06-23 00:02:00-07:00 124.080176 353.307536 -34.080176 2014-06-23 00:03:00-07:00 124.104329 353.582953 -34.104329 2014-06-23 00:04:00-07:00 124.127472 353.858574 -34.127472
reload(pvlib.solarposition)
pyephemout = pvlib.solarposition.pyephem(times, golden)
spaout = pvlib.solarposition.spa(times, golden)
pyephemout['elevation'].plot(label='pyephem')
pyephemout['apparent_elevation'].plot(label='pyephem apparent')
spaout['elevation'].plot(label='spa')
plt.legend(ncol=2)
plt.title('elevation')
print('pyephem')
print(pyephemout.head())
print('spa')
print(spaout.head())
pyephem apparent_elevation apparent_azimuth elevation \ 2014-06-23 00:00:00-06:00 -25.154820 344.064195 -25.154820 2014-06-23 00:01:00-06:00 -25.207201 344.310956 -25.207201 2014-06-23 00:02:00-06:00 -25.258784 344.558018 -25.258784 2014-06-23 00:03:00-06:00 -25.309568 344.805380 -25.309568 2014-06-23 00:04:00-06:00 -25.359552 345.053043 -25.359552 azimuth apparent_zenith zenith 2014-06-23 00:00:00-06:00 344.064195 115.154820 115.154820 2014-06-23 00:01:00-06:00 344.310956 115.207201 115.207201 2014-06-23 00:02:00-06:00 344.558018 115.258784 115.258784 2014-06-23 00:03:00-06:00 344.805380 115.309568 115.309568 2014-06-23 00:04:00-06:00 345.053043 115.359552 115.359552 spa zenith azimuth elevation 2014-06-23 00:00:00-06:00 115.154766 344.064134 -25.154766 2014-06-23 00:01:00-06:00 115.207147 344.310880 -25.207147 2014-06-23 00:02:00-06:00 115.258730 344.557936 -25.258730 2014-06-23 00:03:00-06:00 115.309515 344.805299 -25.309515 2014-06-23 00:04:00-06:00 115.359497 345.052965 -25.359497