The GCS Solar Calculator is a CGI (Common Gateway Interface) application that generates for a given location and date, either a formatted HTML table of solar coordinates, a formatted Text table of solar coordinates or a GIF image plot of solar altitude vs. azimuth. Different coordinate reference frames can be choosen for both HTML and Text output: horizontal coordinates or both ecliptic and equatorial coordinates. Naturally, only horizontal coordinates are calculated for plot output. Additionally, depending on which output mode is selected, the following values may also be included: sunrise, transit, sunset, solar day length, Julian Day value, civil time (mean solar zone time), apparent solar time, the equation of time, local solar hour angle, solar declination, sidereal time and lastly, civil, nautical and astronomical day times. Although intended as an aid for constructing sundials the Solar Calculator can also be used for surveying purposes, computing solar array effectivness...
The application is written in C and like the GCS Sundial Generator the Solar Calculator uses the Boutell CGI Library for its CGI interface. The application also makes use of Jean Meeus' Astronomical Algorithms for nearly all calculations including date conversion, equation of time, solar coordinates and atmospheric refraction. Solar coordinates are calculated using an abbreviated set of terms from the French planetary theory VSOP87 and are referred to the mean dynamical ecliptic and equinox of the date. The accuracy of the solar coordinates is given as not more than 1 arc-sec between the years -2000 to +6000. No correction to account for daylight savings time or other similarly observed periods is made.
Any output given in horizontal coordinates has applied to the altitude value a correction for atmospheric refraction and is thus the apparent solar altitude. The graph shown below illustrates the magnitude of the correction as a function of the calculated true geometric solar altitude.
Local Latitude and Longitude are entered in degrees, minutes and seconds using only whole numbers i.e., no decimal or negative values. Latitude is the angular distance measured north and south from the equator. Latitudes north of the equator are positive and southern latitudes are negative. Longitude is the angular distance measured east and west from the prime meridian at Greenwich, England. Longitudes east of the prime meridian are positive and western longitudes are negative. To avoid confusion however, radio buttons are used to indicate the sign of the entered latitude N(orth) or S(outh) and longitude E(ast) or W(est). Preceeding a latitude or longitude with a negative sign will produce an error message.
To aid in finding the Latitude and Longitude information for your location, the following Internet resource links are provided.
Time Zone Offset is entered in hours and were applicable also in minutes using integers
i.e., positive or negative whole numbers. The time zone offset is the time difference between
the user's (non-seasonal) local zone time (LT) and
Universal Time (UT) i.e., (LT-UT). Again note that the value for LT should not include
any locally observed seasonal offset e.g., +1 hour during US Daylight Savings Time (DST).
Time zone meridians east of Greenwich have positive offsets and time zone meridians west of Greenwich have negative offsets. The standard time zones are centered on meridians spaced 15 degrees apart, resulting in 24 separate time zones. Standard time zone boundaries, which in theory, are on longitudes 7.5 degrees east and west of a standard time zone meridian, in practice meander to accommodate local centers of population and political borders. The stretching of these boundaries can allow a region to use a zone time far different from the zone time that corresponds to its longitude. Much of Spain, for example, which is west of Greenwich, uses the zone time whose meridian is centered 15 degrees east of Greenwich.
Example: my location in Pacific Grove, California USA makes use of a standard time zone i.e., Pacific Standard Time, whose meridian is 120deg west of Greenwich. By dividing 15deg/hour into 120deg I see that my time zone meridian is by definition 8 hours behind Greenwich. Now, since I am not accounting for any seasonal offset I would always enter -8 (hours) even though civil time will only be 7 hours behind Universal Time during Daylight Savings Time (DST).
Lastly, not all areas make use of the standard time zones, instead their time is usually offset some fractional part of an hour from a standard zone time. Parts of Australia, for example, are offset one half hour from standard zone time. The minutes entry field is used to enter irregular time zone offsets. The hour and minute time zone offset entries must be similar in sign.
The Time Zone Offset is used to calculate the meridian of the users time zone.
To aid in finding the Time Zone information for your location, the following Internet resource links are provided.
The Starting and Ending Dates are entered using selection forms for the month, day of month and the input field for the year. The year is entered using only integers i.e., positive or negative whole numbers and must be within the range of -2000 thru 6000.
The Data Interval is entered, from the left, in units of days, hours and minutes. The final value is the combined values of all three input fields. Values are entered using only whole numbers i.e., no decimal or negative values.
The Altitude Mask is entered in degrees using integers i.e., positive or negative whole numbers. The altitude mask specifies the minimum solar altitude value that will be reported when generating records of horizontal coordinates i.e., altitudes and azimuths. Values below the mask value are "masked" and are not reported. The mask has no effect for reports in Ecliptic/Equatorial coordinates or Alt Azi plots.
|Latitude||Longitude||Time Zone Offset||Eval. Period||Data Interval||Altitude Mask|
|degs = +0-89||degs = +0-179||hours = +/- 0-11||2000 BC||days = +0-365||-18 degs|
|mins = +0-59||mins = +0-59||mins = +/- 0-60||thru||hours = +0-23||to|
|secs = +0-60||secs = +0-60|| ||6000 AD||mins = +0-59||+89 degs|
HTML Output This mode generates an HTML table of records in a format similar to the Record Header, New Day Header and Data Legend(s) shown below. The record header is generated only once, the new day headers are inserted at the beginning of each new day and data legends are inserted after every 20 lines of output. The format of the data is done in a manner most useful for making hard copies to be read by the user. It is not intended as an efficient format for use as data input to user applications.
|Local Latitude +36ø36'54"||Local Longitude -121ø55'18"||Time Zone Offset -8.000||Record Date Wed Aug 19 22:37:02 1998 GMT|
|03/15/1998||074/365||Sunday||Sunrise at 06:18:39||Transit at 12:16:35||Sunset at 18:15:07||Solar Day Length +16.880s|
|Julian Day||Local Civil Time||Local Solar Time||Equation of Time||Local Solar Hour Angle||Solar Declination||Apparent Solar Altitude||Apparent Solar Azimuth|
|Julian Day||Local Civil Time||Local Solar Time||Local Sidereal Time||Local Solar Hour Angle||Ecliptic Longitude||Right Ascension||Declination|
Local Latitude Local Longitude Time Zone Offset Record Date (GMT) +36ø36'54" -121ø55'18" -8.000 Wed Aug 26 22:27:07 1998Description:
Sunrise Transit Sunset Solar Day Length 07/09/1998 190/365 Thursday 04:57:03 12:13:00 19:28:40 -08.836sDescription:
Julian Local Local Equat- Local Solar Apparent Apparent Day Civil Solar ion of Solar Declin- Solar Solar Number Time Time Time Hr Angle ation Altitude AzimuthDescription:
Julian Local Local Local Local Ecliptic Right Solar Day Civil Solar Sidereal Solar Long- Asscen- Declin- Number Time Time Time Hr Angle itude sion ationDescription: