import sys import os sys.path.append(os.path.abspath('../')) #append the parent directory to the system path sys.path.append(os.path.abspath('../pvlib')) #append the parent directory to the system path import pvlib import pandas as pd fname='723650TY.csv' #Use absolute path if the file is not in the local directory TMY, meta=pvlib.tmy.readtmy3(filename=fname) meta['longitude']=-79.2 meta['latitude']=43.42 meta['TZ']=-5 meta['SurfTilt']=30 meta['SurfAz']=0 meta['Albedo']=0.2 print meta['State'] print meta['longitude'] month=3 day=26 hour=0 periods=24 freq='H' rng=pd.date_range(datetime.datetime(year=min(TMY.index.year),month=month,day=day,hour=hour),periods=periods,freq=freq) rng import pvl_ephemeris reload(pvl_ephemeris) #Using Ephemeris Calculations TMY['SunAz'],TMY['SunEl'],TMY['ApparentSunEl'],TMY['SolarTime'], TMY['SunZen']=pvl_ephemeris.pvl_ephemeris(Time=TMY.index,Location=meta) #Using NRELS SPA Calculations import pvl_spa reload (pvl_spa) TMY['SunAz_spa'],TMY['SunEl_spa'],TMY['SunZen_spa']=pvl_spa.pvl_spa(Time=TMY.index,Location=meta) clf() plot(TMY.index,TMY.SunAz) plot(TMY.index,TMY.SunAz_spa) plot(TMY.index,TMY.SunEl,label='eph') plot(TMY.index,TMY.SunEl_spa,label='spa') legend() TMY['HExtra']=pvlib.pvl_extraradiation(doy=TMY.index.dayofyear) TMY['AM']=pvlib.pvl_relativeairmass(z=TMY.SunZen) DFOut=pvlib.pvl_disc(Time=TMY.index,GHI=TMY.GHI, SunZen=TMY.SunZen) TMY['DNI_gen_DISC']=DFOut['DNI_gen_DISC'] TMY['Kt_gen_DISC']=DFOut['Kt_gen_DISC'] TMY['AM']=DFOut['AM'] TMY['Ztemp']=DFOut['Ztemp'] TMY['In_Plane_SkyDiffuse']=pvlib.pvl_perez(SurfTilt=meta['SurfTilt'], SurfAz=meta['SurfAz'], DHI=TMY.DHI, DNI=TMY.DNI, HExtra=TMY.HExtra, SunZen=TMY.SunZen, SunAz=TMY.SunAz, AM=TMY.AM) TMY['GR']=pvlib.pvl_grounddiffuse(GHI=TMY.GHI,Albedo=meta['Albedo'],SurfTilt=meta['SurfTilt']) TMY['AOI']=pvlib.pvl_getaoi(SunAz=TMY.SunAz,SunZen=TMY.SunZen,SurfTilt=meta['SurfTilt'],SurfAz=meta['SurfAz']) TMY['E'],TMY['Eb'],TMY['EDiff']=pvlib.pvl_globalinplane(AOI=TMY.AOI, DNI=TMY.DNI, In_Plane_SkyDiffuse=TMY.In_Plane_SkyDiffuse, GR=TMY.GR, SurfTilt=meta['SurfTilt'], SurfAz=meta['SurfAz']) TMY['Tcell'],TMY['Tmodule']=pvlib.pvl_sapmcelltemp(E=TMY.E, Wspd=TMY.Wspd, Tamb=TMY.DryBulb) moddb=pvlib.pvl_retreiveSAM(name='SandiaMod') module=moddb.Canadian_Solar_CS5P_220M___2009_ module Invdb=pvlib.pvl_retreiveSAM(name='SandiaInverter') inverter=Invdb.Advanced_Energy__Solaron_333_3159000_105_480V__CEC_2008_ inverter DFOut=pvlib.pvl_sapm(Eb=TMY['Eb'], Ediff=TMY['EDiff'], Tcell=TMY['Tcell'], AM=TMY['AM'], AOI=TMY['AOI'], Module=module) TMY['Imp']=DFOut['Imp'] TMY['Voc']=DFOut['Voc'] TMY['Vmp']=DFOut['Vmp'] TMY['Pmp']=DFOut['Pmp'] TMY['Ix']=DFOut['Ix'] TMY['Ixx']=DFOut['Ixx'] moddb=pvlib.pvl_retreiveSAM(name='CECMod') module=moddb.Canadian_Solar_CS5P_220P IL,I0,Rs,Rsh,nNsVth=pvlib.pvl_calcparams_desoto(S=TMY.GHI, Tcell=TMY.DryBulb, alpha_isc=.003, ModuleParameters=module, EgRef=1.121, dEgdT= -0.0002677) DFout= pvlib.pvl_singlediode(Module=module, IL=IL, I0=I0, Rs=Rs, Rsh=Rsh, nNsVth=nNsVth) TMY['sd_Imp']=DFOut['Imp'] TMY['sd_Voc']=DFOut['Voc'] TMY['sd_Vmp']=DFOut['Vmp'] TMY['sd_Pmp']=DFOut['Pmp'] TMY['sd_Ix']=DFOut['Ix'] TMY['sd_Ixx']=DFOut['Ixx'] TMY['ACPower']=pvlib.pvl_snlinverter(Vmp=TMY.Vmp,Pmp=TMY.Pmp,Inverter=inverter)