File Exchange

image thumbnail

Day Length

version 1.03 (3 KB) by

Calculates the length of daylight for any day and latitude

3 Downloads

Updated

View License

Calculates the length of daylight for any day of the year and latitude.
This uses Herbert Glarner's formulae which do not take into account refraction, twilight, size of the sun, etc http://herbert.gandraxa.com/herbert/lod.asp.

An example is included

See blog.nutaksas.com for more details/

Comments and Ratings (2)

Chad Greene

Chad Greene (view profile)

This is a helpful function; thanks for sharing.

The input day format is somewhat non-user-friendly. The function header describes the input date as the "day of the year, counted starting with the day of the December solstice in the first year of a Great Year." To maintain Travis' functionality and get this function to work with Matlab's datenum format, add this to the beginning of the function:

if nargin>0 && any(Day>366)
    [y,~,~] = datevec(Day);
    Day = 11+datenum(Day)-datenum(y,1,1);
end

The above assumes that if any input date exceeds 366, it must be in datenum format. Then the function *approximates* day length assuming a static December solstice. Results will not be exact on the daily timescale, but should be sufficient to put multi-year data in datenum format in context with solar cycles.

good

Updates

1.03

Fixes bug for latitudes above the arctic circle.

1.1

Removed GPL per Mathworks' requirements.

MATLAB Release
MATLAB 8.5 (R2015a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

day_length_1_03/day_length_1_03/