Calculating Daylight hours by latitude is essential for properly sizing a battery box and solar panel. There are several other factors that play significant roles in calculating power needed, however, it was difficult to find a simple formula for calculating daylight hours by latitude. The c# code is provided by SCADACore.
Here are several wikipedia pages available (http://en.wikipedia.org/wiki/Day_length), an additional page linked by wikipedia provides in depth calculations (http://herbert.gandraxa.com/length_of_day.xml)
A formula provided by a user of Mathforum.org provides the simplest formula for calculating day length (http://mathforum.org/library/drmath/view/56478.html).
L = latitude
J = day of the year
/ sin(0.8333*pi/180) + sin(L*pi/180)*sin(P) \ D = 24 - (24/pi)*acos{ ----------------------------------------- } \_ cos(L*pi/180)*cos(P) _/
The corresponding C# code is as follows:
public double CalculateHoursOfSunlightInDay(double latitude, int day)
{
double P = Math.Asin(.39795 * Math.Cos(.2163108 + 2 * Math.Atan(.9671396 * (Math.Tan(0.00860 * (day – 186))))));
double numerator = Math.Sin(0.8333 * Math.PI / 180) + Math.Sin(latitude * Math.PI / 180) * Math.Sin(P);
double denominator = Math.Cos(latitude * Math.PI / 180) * Math.Cos(P);
double hoursInDay = 24;
double dayLength = 24 – ((hoursInDay / Math.PI) * Math.Acos(numerator / denominator));
return dayLength;
}
With this calculation users can retrieve the data number of hours for a specific latitude.
SCADACore provides the Solar Panel Sizing field application to help field users properly size their SCADA solar battery boxes for specific climates. The following calculator from http://astro.unl.edu/ is useful in determining the number of daylight hours based on your location.
[swf src=”https://www.scadacore.com/Files/daylighthoursexplorer.swf” width=”930″ height=”420″]Please Install Flash To View This Application.[/swf]