# sun_position.m 1.0

OS : Windows / Linux / Mac OS / BSD / Solaris

Script Licensing : Freeware

Created : Aug 13, 2007

Downloads : 5

Thank you for voting...

## sun = sun_position(time, location)<br />This function ...

sun = sun_position(time, location)

This function compute the sun_position (zenith and azimuth angle at the observer location) as a function of the observer local time and position.

This document is avalaible at www. osti. gov/bridge and is included in the . zip file

This algorithm is based on numerical approximation of the exact equations. The authors of the original paper state that this algorithm should be precise at /- 0. 0003 degrees. I have compared it to NOAA solar table and to USNO solar table and found very good correspondance (up to the precision of those tables), except for large zenith angle, where the refraction by the atmosphere is significant (difference of about 1 degree). Note that in this code the correction for refraction in the atmosphere as been implemented for a temperature of 10C (283 kelvins) and a pressure of 1010 mbar. See the subfunction « angle» for a possible modification to explicitely model the effect of temperature and pressure as describe in Reda & Andreas (2003).

time. year: year. Valid for [-2000, 6000]

time. month: month [1-12]

time. day: calendar day [1-31]

time. hour: local hour [0-23]

time. min: minute [0-59]

time. sec: second [0-59]

time. UTC: offset hour from UTC. Local time = Greenwich time time. UTC

This input can also be passed using the Matlab time format ('dd-mmm-yyyy HH:MM:SS'). In that case, the time has to be specified as UTC time (time. UTC = 0)

location: a structure that specify the location of the observer

location. latitude: latitude (in degrees, north of equator is positive)

location. longitude: longitude (in degrees, positive for east of Greenwich)

location. altitude: altitude above mean sea level (in meters)

Output parameters

sun: a structure with the calculated sun position

sun. zenith = zenith angle in degrees (angle from the vertical)

sun. azimuth = azimuth angle in degrees, eastward from the north.

Only the sun zenith and azimuth angles are returned as output, but a lot

of other parameters are calculated that could also extracted as output of

this function. See the documentation in the code.

Exemple of use

location. longitude = -105. 1786;

location. latitude = 39. 742476;

location. altitude = 1830. 14;

time. year = 2003;

time. month = 10;

time. day = 17;

time. hour = 12;

time. min = 30;

time. sec = 30;

time. UTC = -7;

sun = sun_position(time, location);

sun =

zenith: 50. 1080438859849

azimuth: 194. 341174010338

This function compute the sun_position (zenith and azimuth angle at the observer location) as a function of the observer local time and position.

**It is an implementation of the algorithm presented by Reda et Andreas in:**

Reda, I. , Andreas, A. (2003) Solar position algorithm for solar radiation application. National Renewable Energy Laboratory (NREL) Technical report NREL/TP-560-34302.This document is avalaible at www. osti. gov/bridge and is included in the . zip file

This algorithm is based on numerical approximation of the exact equations. The authors of the original paper state that this algorithm should be precise at /- 0. 0003 degrees. I have compared it to NOAA solar table and to USNO solar table and found very good correspondance (up to the precision of those tables), except for large zenith angle, where the refraction by the atmosphere is significant (difference of about 1 degree). Note that in this code the correction for refraction in the atmosphere as been implemented for a temperature of 10C (283 kelvins) and a pressure of 1010 mbar. See the subfunction « angle» for a possible modification to explicitely model the effect of temperature and pressure as describe in Reda & Andreas (2003).

**Input parameters:**

time: a structure that specify the time when the sun position is calculated.time. year: year. Valid for [-2000, 6000]

time. month: month [1-12]

time. day: calendar day [1-31]

time. hour: local hour [0-23]

time. min: minute [0-59]

time. sec: second [0-59]

time. UTC: offset hour from UTC. Local time = Greenwich time time. UTC

This input can also be passed using the Matlab time format ('dd-mmm-yyyy HH:MM:SS'). In that case, the time has to be specified as UTC time (time. UTC = 0)

location: a structure that specify the location of the observer

location. latitude: latitude (in degrees, north of equator is positive)

location. longitude: longitude (in degrees, positive for east of Greenwich)

location. altitude: altitude above mean sea level (in meters)

Output parameters

sun: a structure with the calculated sun position

sun. zenith = zenith angle in degrees (angle from the vertical)

sun. azimuth = azimuth angle in degrees, eastward from the north.

Only the sun zenith and azimuth angles are returned as output, but a lot

of other parameters are calculated that could also extracted as output of

this function. See the documentation in the code.

Exemple of use

location. longitude = -105. 1786;

location. latitude = 39. 742476;

location. altitude = 1830. 14;

time. year = 2003;

time. month = 10;

time. day = 17;

time. hour = 12;

time. min = 30;

time. sec = 30;

time. UTC = -7;

sun = sun_position(time, location);

sun =

zenith: 50. 1080438859849

azimuth: 194. 341174010338

**• MATLAB Release: R13**

**Demands:****sun_position.m 1.0 scripting tags:**zenith, azimuth, degrees, sun position, earth, earth science, sun science, sunpositionm, angle.

**What is new in sun_position.m 1.0 software script?**- Unable to find sun_position.m 1.0 news.

**What is improvements are expecting?**Newly-made sun_position.m 1.1 will be downloaded from here. You may download directly. Please write the reviews of the sun_position.m. License limitations are unspecified.