00001
00004 #include <math.h>
00005
00006 #define HR_PER_RADIAN (12.0 / PI)
00007 #define PI_OVER_180 (PI / 180)
00008
00009 static short days_thru_month[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
00010
00011 class SolarAngles {
00012 private:
00013
00014
00015
00016
00017
00018 public:
00019
00020
00021
00022
00023
00024 SolarAngles(void);
00025 ~SolarAngles(void);
00026
00027 double eq_time(short day_of_yr);
00028 double solar_time(double std_time, short day_of_yr, double std_meridian, double longitude);
00029 double local_time(double std_time, short day_of_yr, double std_meridian, double longitude);
00030 double declination(short day_of_yr);
00031 double cos_incident(double lititude, double slope, double az, double sol_time, short day_of_yr);
00032 double incident(double lititude, double slope, double az, double sol_time, short day_of_yr);
00033 double zenith(short day_of_yr, double lititude, double sol_time);
00034 double altitude(short day_of_yr, double lititude, double sol_time);
00035 double hr_sunrise(short day_of_yr, double lititude);
00036 double day_len(short day_of_yr, double lititude);
00037 short day_of_yr(short month, short day);
00038 };