import solar
import datetime
from dateutil import rrule
import math
 
eta=0.15
area=10

#Zuerich
latitude=47.38
longitude=8.54

roofangle=47

energy=0.
count=0
count2=0
azimreduction=1
altreduction=1
aprilday = datetime.datetime(2011,4,20, 0,0,0)
later = aprilday+datetime.timedelta(days=1)
for dt in rrule.rrule(rrule.MINUTELY, dtstart=aprilday, until=later):
    alt=solar.GetAltitude(latitude, longitude, dt)
    azim=solar.GetAzimuth(latitude, longitude, dt)
    radiation=solar.radiation.GetRadiationDirect(dt, alt)
    azimreduction= math.cos(2*math.pi*azim/360.) if math.cos(2*math.pi*azim/360.) > 0 else 0.0
    altreduction=math.sin(2*math.pi*(alt+roofangle)/360.)
    power=radiation*eta*area*azimreduction*altreduction
    energy+=power
    count+=1
    if radiation != 0:
        count2+=1
print "Energie in kWh ", energy/1000./60., "durchschnittliche Leistung in kW ", energy/1000./count2, "Tageslaenge in h ", count2/60.
