def plotIncident(lats, days, tilts, dirs, attenuate=False): if np.isscalar(lats): lats = [lats] if np.isscalar(days): days = [days] if np.isscalar(tilts): tilts = [tilts] if np.isscalar(dirs): dirs = [dirs] ts = np.arange(0,24,0.25) h = np.radians(solar.hourAngle(ts)) for lat in lats: for day in days: for tilt in tilts: for dir in dirs: (mon,md) = solar.findDay(day) plt.plot(ts,solar.incident(lat,day,ts,tilt,dir,attenuate),label= mon + " " + str(md) + " " + str(lat) + " deg @" +str(tilt)+"["+str(dir)+"]" ) plt.title('Effective Incident Solar') plt.xlabel('Hour') axes = plt.axes() handles, labels = axes.get_legend_handles_labels() axes.legend(handles, labels, loc=2) return axes
def solarHours(lat, day, tilt, dir): ts = np.arange(0,24,0.1) return trapz(solar.incident(lat,day,ts,tilt,dir,False),ts)