Enhance SAM with features tailored to your specific needs! We collaborate with companies, universities, and organizations to privately fund new capabilities or analyses. Your investment drives innovation while benefiting the broader energy community. Email us to learn more.

How to write SamUL script to get spreadsheet of a year of hourly kWh

  • Mary Knipe
  • Topic Author
More
10 Dec 2012 15:10 #1071 by Mary Knipe
Hi,

I have successfully used the script below to obtain the estimated annual kWh for a list of sites in a csv file.
I would like to be able to get spreadsheet of a year of hourly kWh data for each site in the csv file. Is there a simple way to do this with the script so that I don't have to manually enter each site into the PV Watts model to get the data table after running the simulation.

Thank you,
Mary Knipe

My Script for annual kWh:

setactivecase("New PVWatts Case 1")

workdir = samdir() + "/samples"
outln("working folder: " + workdir)

input = open( workdir + "/input8tilt.csv", "r" )
if (not input)
outln("could not open input file")
exit
end

output = open( workdir + "/output8tilt.csv", "w" )
if (not output)
outln("could not open output file")
exit
end

write( output, "ApplicationNumber,lat,lon,enet,kWh, \n" )

declare buffer
readln(input, buffer)
while( readln( input, buffer ) )
cols = split( buffer, "," )
address = cols[0]
size = double(cols[1])


tilt = double(cols[4])
azimuth = double(cols[5])
derate = double(cols[6])
ApplicationNumber= string(cols[7])

declare weatherfile=""


weatherfile = "C:/SAM/2011.12.2/samples/my_tmy3_Whiteplainsfile.csv"



setinput( "climate.location", weatherfile )
setinput( "pvwatts.dcrate", size )


setinput( "pvwatts.tilt", tilt)
setinput( "pvwatts.azimuth", azimuth)
setinput( "pvwatts.derate", derate)


outln("Simulating location: " + address)


simulate()

declare lat=0, lon=0, enet=0,kWh=0
enet = getoutput("system.annual.e_net")
kWh = getoutput ("sv.annual_output")

outln("Nameplate Capacity kW: " + size)
outln("Net annual output: " + kWh + "kWh")
outln("Application Number: " + ApplicationNumber)

write( output, ApplicationNumber + "," + lat + ","+ lon + ","+ enet + "," + kWh + "," + "\n")
end

close(input)
close(output)

' main script ends here



Please Log in or Create an account to join the conversation.

  • Paul Gilman
More
10 Dec 2012 15:55 #1072 by Paul Gilman
Hi Mary,

The output variable system.hourly.e_net should be what you need. It is a 8,760 x 1 array that stores the hourly output values. The sum of the array elements should equal system.annual.e_net.

Best regards,
Paul.

Please Log in or Create an account to join the conversation.

Moderators: Paul Gilman
Powered by Kunena Forum