General:
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.
Form Input:
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 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 |
Calculator Output:
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.
Record Header
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: