Using this script, you can generate a set of data regarding Sun Azimuth Positions at various instants of time for any location on Earth. This data can be used in many applications, like, in determination of orientation of any plane's azimuth from True North.
The syntax is 'sun_azimuth_data' (no arguments). It prompts for Observer's geodetic coordinates, observer's time zone and starting time [according to local standard time]. Then, it asks the Time Period and intervals for which Sun Azimuth data has to be generated. It creates a MS Word file containing Sun Azimuth data.
Author offers his acknowledgements for the script 'sun_position.m' by Vincent Roy, which returns the Sun Position data for a given observer location and time.
25/05/2004 - Original Creation by Khalil Sultan (email@example.com)
15/06/2004 - Code Modified.
08/07/2004 - Code Re-modified and Uploaded on MATLAB Central - File Exchange.
Sample Interaction with the Script :
Skipping any field, with a hyphen before it, will result in termination of execution of this script. Fields with some value, in square brackets after them, represent their default values.
- Enter the Location of the Observer: Karachi
Enter the Country of the Observer: Pakistan
Enter the GPS Receiver Set Title:
- Enter the Longitude (in dd.dddddd° Format) : E 68.35
- Enter the Latitude (in dd.dddddd° Format) : N 19.15
Enter the Altitude (in meters)  :
- Enter the Time Zone (+GMT Zone) : +5
- Should the data be generated for today [y/n] : y
- Enter the Starting Time (in HH:MM:SS [24 Hours] format) : 16:00:00
Enter the Duration of Interval (in minutes)  :
Enter the Total Time Span (in hours) [2 Hours] :
Khalil Sultan (2020). Sun Azimuth Data (https://www.mathworks.com/matlabcentral/fileexchange/5430-sun-azimuth-data), MATLAB Central File Exchange. Retrieved .
Need an update, using the most accurate method, but the code it outdated and won't work if NaNs are present
Using the data suggested in the initial comment of this m-file I received results different from the suggested results:
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
RESULTS SEEN HERE:
I am using MATLAB vs. 220.127.116.114 (R2008a). I wonder if there is anyone who has seen a comparable discrepancy and if/how this was resolved.
Very Nice.... Khalil Sultan..........
it is really accurate to an extent....
nice use matlab by Khalil Sultan.