<=Return to Planetos Home
Astrology software is everywhere, and a recent look at some of the more popular Windows software available suggests that much of it includes the ability to calculate and display Gaqueulin sectors in some form. Access to sectors, however, doesn't necessarily guarantee usefulness, and usefulness itself depends on your understanding that Gauquelin sectors As I do not have either the means nor the time to review the way in which available software handles sectors, I will mostly make some general recommendations about the way any program should handle sectors, and show the results of a Google search for software that says it offers sectors. As I am in the process of doing that search, for the present I will simply make some brief remarks about two programs of interest in the following paragraph.
Gauquelin Sectors for ProgrammersNote of 12/11/2022: The following section is generally outdated, but as it contains some useful information it will be edited at the next update.In response to requests from software authors, publishers, and others, I have put together the following information to explain what the Gauquelin "sectors" are and how they are calculated. Recently I have begun a campaign to get software authors and publishers to include information on these sectors in their standard programs - and in a way that makes them immediately useful to the user. For example:
In screen displays: Position in or out of Gauquelin "plus zones" can be indicated by placing either a + or - beside the planet in the wheel. Actual sector position (36 sectors are the standard) can be indicated in accompanying listings, such as those for declinations, house cusps, element counts, etc. On chart printouts: Sector information can be added to charts in the same way as with screen displays, and in my opinion ought to at least be an option on standard listing along with longitude, house cusps, etc. Though more and more commercial programs now make sector information available, most I'm aware of offer it only in secondary charts or printouts (e.g. Astrolabe's old DOS program Nova, with its Placidus Mundoscope option, or Solar Fire, which requires the user to know how to add it to a user-designed wheel) or only in batches of charts processed for so-called "research" programs. Progress continues, but as I have tried to help people understand in several years of writing my "New Astrology" column, and as Michel and Françoise Gauquelin both tried to emphasize in various books and articles, placement of certain planets within Gauquelin sectors can be immediately useful in interpreting charts. Things are getting better where software is concerned, but most software stills has a few more steps to go in order to give astrologers the opportunity to view directly (and easily) for themselves the very basic - and scientifically credible - placement of planets within the Gauquelin sectors. Preliminary information on the Gauquelin sectors: The astronomical definition is given in the articles and program listings that follow, but one should know that the sectors themselves are numbered clockwise, with sector 1 being the area just after the planet rises. 36 is the standard number. No accuracy is gained by using more, and besides all current research (and there is quite a bit of this going on) is done in the 36-sector framework. Thus, using that will allow people to compare charts directly with reported research findings. The designation of each sector +/- follows. This is based on generally accepted usage, though the definition involving the zones around setting and lower culmination will vary slightly in some sources. An ideal program would not only Note that there are several levels of accuracy possible, so sectors can easily be patched into an existing program simply by using the lowest level, which does not take daily motion or exact rising and setting times into account. There are roughly three levels at which sectors can be calculated, depending on which data is used as a base: - Use the longitudes of each planet, applying to these the same iterative calculations used for Placidus cusps.
- Use the nocturnal and diurnal semi-arcs of each planet for the time and place of birth.
- Calculate the exact time of rise and set for each planet for the day in question.
Sectors above the horizon rise > > > > > > > to set | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 + + + - - - - - + + + + - - - - - + Sectors below the horizon set > > > > > > > > > to rise | | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 + + - - - - - - + + + - - - - - - + _____________________________________________________________From Astro-Psychological Problems, September 1992, page 32:
The 36 G.sectors, program prepared for Aureas Informatique First some definitions: A domitude is the exact position of an astronomical point on the local sphere on which twelve houses are defined. The program calculating this domitude uses a classical formula corresponding to the chosen house system (Placidus, Regiomontanus, Campanus, etc....). For the G.sectors, the house system chosen is Placidean. It can be converted to 36 G.sectors by: 360°-Placidean domitude ----------------------- 10to the results of which the program adds 1 for a correct display of the result (sector 0 of the computer being called "sector 1" by the user of the program). abs h = abscissa of h ar = right ascension of the point to define de = declination of the point to define dom = domitude, in degrees dsa = diurnal semi-arc lat = latitude of the birth place ts = sidereal time at the birth time h = ar - tsWith these abbreviations, the following calculations can be programmed: If sin h<0, then h = h - 360º From
The rise/set sectors are obtained by looking up in almanacs the exact times of the rise and set bracketing the moment of birth to be studied, then getting a proportion: Points above horizon: time of birth-time of rise of the planet _________________________________________ time of set - time of rise of the planet Points below the horizon: time of birth-time of set of the planet _________________________________________ time of rise - time of set of the planetThis proportion being a decimal fraction, it is multiplied by 180º to get a system measurable in degrees. And 180º is added to the answer for points below the horizon. This use of a proportion provides a continuous 360º measure, clockwise from the Ascendant, out of the unequal diurnal and nocturnal intervals. The 360º measure of the rise/set sectors can then be divided by 10, 20 or 30 for obtaining the the 36, 18 or 12 sectors used in statistical tests, tables and graphs. Unfortunately, calculating an exact rise or set time on a computer is an iterative process requiring several calculations of a planet's position for successively refined times. Since this must be done for each planet, this kind of sector calculation can be time-consuming. The formula used in the CCRS program since the late 1970s calculates diurnal placements using a proportion based on meridian distance divided by semi-arc [1]. This formula produces almost, but not quite, the same answer as calculating the exact rise and set times. The difference is due to the fact that the calculations are based on celestial latitude and longitude at the moment of birth. But the body being studied will move slightly between the birth time and the rise or set time. For all practical purposes, the only body significantly affected is the Moon. For the Moon, a rise or set time calculated from the birth positions will be slightly off. To see this, look at a paran printout for a chart, calculate a new chart for a Moon rise or set time given, then look at a paran printout for the new chart. The Moon rise or set time shown will now be slightly different. Repeating this procedure of calculating a new chart for the time obtained in the previous try, until the time stops to change, is the kind of iterative solution used to get exact rise and set times with a computer. Thomas Shanks' program, on Astro Computing Services' potent computer, does a full iterative calculation of the exact rise and set times. This ACS formula is now as close a match as a computer can give to the definition of the G.rise.set sectors. A test of the accuracy of planetary placements in rise/set sectors with the CCRS program was done by comparing the results obtained with the 1794 births of alcoholics collected by Michel Gauquelin 1) with Thomas Shank's program used on ACS's computer, and 2) with the CCRS program used on a smaller desk computer. The results with the CCRS program, compared to those of ACS's computer, were well under a degree of sector position for all the planets except the Moon which had an average discrepancy of 0.757 degrees. This was not too bad, but I have managed to improve even the Moon result with the CCRS program. Now it calculates the Moon rise and set times based on the longitudes and latitudes of the birth positions, where the estimated longitudes are the birth positions +/- the velocity x time difference. The latitudes are trickier to correct. They involve now a sine function and the inclination. I was surprised by how important the latitude estimate was in the final result. Table I, below, given in 360º sector measure, shows the improvement of the CCRS results. They can be now considered good enough for most work. TABLE I Differences between the rise/set formula used in the ACS program and the meridian distance formula used in the CCRS program: tested planet difference observed Sun 0.002 Moon 0.050 Mercury 0.002 Venus 0.003 Mars 0.013 Jupiter 0.006 Saturn 0.005 Uranus 0.004 Neptune 0.004 Pluto 0.004These differences are small enough to satisfy me. ACS's program goes through iterative calculations of the exact rise and set times of each planet that only a large computer can handle. My formula works from previously calculated longitudes, latitudes and velocities for the moment of birth, and is not too time-consuming for the average desk-computer. The Gauquelins themselves used Placidus tables that don't take account of the planets' latitude above or below the ecliptic, during the years they calculated charts by hand. Planetary placements based on rise and set times published in almanacs were suggested by Françoise as a theoretical improvement, since they took the planets' latitudes into account. But this method was not used on a large scale, only for short trials, because it was longer to apply than chart calculations with Placidus tables. Thus rise and set based sectors really started to be used only in 1980s, when the Gauquelins had their computations done at ACS. This is what convinced me that it is all right to use Placidus houses as an approximation of G.rise/set sectors on average-sized computers. [1] Meridian distance: distance of a point from the Midheaven or I.C., measured along the celestial equator in Right Ascension. A planet's semi-arc is one half the distance it will travel in moving across the sky from horizon to horizon. The diurnal semi-arcs are above the horizon; the nocturnal semi-arcs are below the horizon. [ Routines in Microsoft Basic for the CCRS Horoscope Program Throughout the code, variables starting with U (U, U0, U1, etc.) are reusable unknowns. REM THESE ARE FUNCTIONS USED LATER: DEF FNS (U) = SIN(U * 3.141592653589796 / 180) : REM SINE(DEG) DEF FNC (U) = COS(U * 3.141592653589796 / 180) : REM COSINE(DEG) DEF FNT (U) = SIN(U * 3.141592653589796 / 180) / COS((U + (U = 90) * .0000001 + (U = 270) * .0000001) * 3.141592653589796 / 180 : REM TANGENT (DEGREES) DEF FNA1 (U) = ATN(U / (SQR(1 - U * U) - .0000001 * (ABS(U) = 1))) * 180 / 3.141592653589796 : REM ARCSINE IN DEGREES DEF FNA4 (U,U0) = ATN(U / (U0 - (U0 = 0) * .0000001)) * 180 / 3.141592653589796 - ((U * U0 < 0) OR (U=0 AND U0 < 0)) * 180 - (U < 0) * 180: REM QUADRANT-CORRECT ARCTANGENT IN DEGREES (LIKE FORTRAN ATAN2) DEF FNMO (U) = (U / 360 - INT(U / 360)) * 360: REM MODULO 360 PRINT "GAUQUELIN SECTORS" PRINT " 12 18A 18M 36 360" FOR I = 0 TO HPI%: REM LOOP THROUGH PLANETS U = GLON!(I): REM GEOCENTRIC LONGITUDE U0 = GLAT!(I): REM GEOCENTRIC LATITUDE GOSUB RADEC: REM CALCULATE SPECULUM AND 360-SECTOR VALUE IF I = 2 THEN GOSUB FIXMOON: REM THE MOON U1 = INT(G / 10) + 1: REM 36-SECTOR VALUE (SHIFTED TO BASE 1) U2 = U1 / 2 IF U2 = 18 THEN U2 = .5 PRINT P$(1); " ";: REM PLANET NAME IF ABS(ADA) > 1 THEN PRINT: REM CIRCUMPOLAR OR CIRCUMSUBPOLAR--DON'T USE ELSE PRINT USING " ### ";INT(G / 30) + 1;: REM 12-SECTOR VALUE PRINT USING " ### ";INT(G / 20) + 1;: REM 18A VALUE PRINT USING " ### ";INT(U2 + 1.1);: REM 18M VALUE PRINT USING " ### ";U1;: REM 36-SECTOR VALUE PRINT USING " ### ";INT(G) + 1;: REM 360-SECTOR VALUE IF U1 <= 3 OR (U1 >= 9 AND U1 <= 12) OR U1 = 36 THEN PRINT " PLUS ZONE"; END IF PRINT END IF NEXT I PRINT "18A STARTS AT ASC, 18M STARTS 1/36 DOWN" PRINT "PLUS ZONES ARE 1/36 BEFORE & 3/36 AFTER ASC & MC" END REM GET RA, DEC, SPECULUM & SEMI-ARC FROM LONGITUDE & LATITUDE REM O1 IS THE SINE OF THE OBLIQUITY OF THE ECLIPTIC REM O0 IS THE COSINE OF THE OBLIQUITY RADEC: U1 = FNS(U) : REM SINE(LONGITUDE) U2 = FNC(U) : REM COSINE(LONGITUDE) U3 = FNS(U0) : REM SINE(LATITUDE) U4 = FNC(U0) : REM COSINE(LATITUDE) R = FNA4(U1 * U4 * O0 - U3 * O1, U4 * U2) : RIGHT ASCENSION DEC = FNA1(U3 * O0 + U4 * U1 * O1) : REM DECLINATION REM GET SPECULUM (AD, OA, OD, DSA, NSA, MD, RATIONALIZED MD) ADA = FNT(DEC) * TL: REM TL IS THE TANGENT OF THE BIRTH LATITUDE REM AD IS THE ASCENSIONAL DIFFERENCE IF ABS(ADA) <= 1 THEN AD = FNA1(ADA) ELSE AD = 0 REM OA IS OBLIQUE ASCENSION OA = FNMO(R - AD) REM OD IS OBLIQUE DESCENSION OD = FNMO(R + AD) REM DS IS DIURNAL SEMI-ARC DS = 90 + AD REM NS IS NOCTURNAL SEMI-ARC NS = 180 - DS REM MD IS MERIDIAN DISTANCE (RM IS R.A. OF MIDHEAVEN) MD = FNMO(R - RM) REM U1 IS USED HERE AS A HEMISPHERE FLAG: 1 = ABOVE HORIZON U1 = 1 IF MD > 180 THEN MD = MD - 360 IF MD > DS OR MD <= -DS THEM MD = FNMO(R - RM + 180) U1 = 0: REM BELOW HORIZON IF MD > 180 THEN MD = MD - 360 ENDIF REM G IS THE RATIONALIZED SEMI-ARC (0-360 GAUQUELIN SECTOR) REM FROM A BASE OF 0. FOR PRINTING BASE 1 SECTORS, ADD 1. IF U1 THEN G = 90 - (MD / DS * 90) ELSE G = 270 - (MD / NS * 90) RETURN REM CORRECTION USING VELOCITY TO ESTIMATE POSITIONS FIXMOON: REM RST IS RISE SIDEREAL TIME RST = FNMO(OA - 90) REM SST IS SET SIDEREAL TIME SST = FNMO(OD + 90) REM ABOVE OR BELOW HORIZON: IF U1 THEN F0 = -FNMO(RM - RST): REM SIDEREAL TIME TO GET BACK TO RISE F1 = FNMO(SST - RM): REM SIDEREAL TIME TO GET FORWARD TO SET ELSE F0 = FNMO(RST - RM): REM SIDEREAL TIME FORWARD TO RISE F1 = -FNMO(RM - SST): REM SIDEREAL TIME BACK TO SET ENDIF REM 1.0027379 IS THE DIFFERENCE BETWEEN SIDEREAL & SOLAR TIME REM GV!(I) IS GEOCENTRIC VELOCITY IN DEGREES PER SOLAR DAY REM THIS LINE ESTIMATES THE LONGITUDE OF THE MOON AT THE TIME REM OF RISING DETERMINED BY THE FIRST CALL TO RADEC U = GLON!(I) + F0 / 360 * GV!(I) * 1.0027379 REM 5.1454 IS THE INCLINATION OF THE MOON REM GLON!(16) IS THE LONGITUDE OF THE MOON'S NORTH NODE REM THIS LINE ESTIMATES THE LATITUDE OF THE MOON AT THE TIME REM OF RISING DETERMINED BY THE FIRST CALL TO RADEC U0 = GLAT!(I) + FNS(U - GLON!(16) * 5.1454 - FNS(GLON!(I) - GLON!(16)) * 5.1454) GOSUB RADEC: REM GET FULL SPECULUM FROM ESTIMATED LONG & LAT RST = FNMO(OA - 90): REM REFINED RISING TIME REM THIS LINE ESTIMATES THE LONGITUDE OF THE MOON AT THE TIME REM OF SETTING DETERMINED BY THE FIRST CALL TO RADEC U0 = GLON!(I) + F1 / 360 * GV!(I) * 1.0027379 REM THIS LINE ESTIMATES THE LATITUDE OF THE MOON AT THE TIME REM OF SETTING DETERMINED BY THE FIRST CALL TO RADEC U0 = GLAT!(I) + FNS(U - GLON!(16)) * 5.1454 - FNS(GLON!(I) - GLON!*16)) * 5.1454) GOSUB RADEC: REM GET FULL SPECULUM FROM ESTIMATED LONG & LAT SST = FNMO(OD + 90): REM REFINED SETTING TIME REM DETERMINE HEMISPHERE BY COMPARING RAMC - RISE TO SET - RISE: U1 = FNMO(RM - RST) - FNMO(SST - RST) REM NEW RATIONALIZED SEMI-ARC BASED ON REFINED RISE & SET TIMES: IF U1 < 0 THEN G = 180 * FNMO(RM - RST) / FNMO(SST - RST) ELSE G = 180 * FNMO(RM - SST) / FNMO(RST - SST) + 180 ENDIF RETURN Fall 2001 updateFollowing is some additional code in Visual Basic kindly supplied by Mark Pottenger for this page. This should be considered "alpha" code, still under development, so use it mainly as a guide. First, some definitions: Global Const C = 360 Global Const H1 = 180 Global Const P1 = 3.14159265358979 Global Const P2 = 1.74532925199433E-02 Global Const P3 = 57.2957795130823 Global Const P5 = 206264.806247096 Global Const P6 = 4.84813681109536E-06 Global Const A = 86400 Global Const DEGTORAD = 0.017453292Then: Type Speculum LON As Double: Rem Celestial Longitude LAT As Double: Rem Celestial Latitude RAMC As Double: Rem Right Ascension of Midheaven TerranLat As Double: Rem Earth Latitude RA As Double: Rem Right Ascension DEC As Double: Rem Declination HourAngle As Double: Rem Hour Angle Alt As Double: Rem Altitude Azi As Double: Rem Azimuth ADA As Double: Rem Ascensional Difference Argument AscDiff As Double: Rem Ascensional Difference OblAsc As Double: Rem Oblique Ascension OblDesc As Double: Rem Oblique Descension DSA As Double: Rem Diurnal Semi-arc NSA As Double: Rem Nocturnal Semi-arc MerDist As Double: Rem Meridian Distance DayNightFlag As Integer: Rem 1=Above horizon, 0=Below horizon GAUQSECT As Double: Rem Rationalized Meridian Distance/Gauquelin Sectors End Type Sub CalcSpec(SP As Speculum, ByVal CosObl As Double, ByVal SinObl As Double, ByVal SpecFlag As Integer) Rem LONG & LAT TO RA & DEC; must set Lon, Lat, RAMC, TerranLat before call 1 or 2 Rem SpecFlag = 0 means RA & Dec only, 1 means RA, Dec & AltAz, 2 = full speculum U1 = SINDEG(SP.LON) U2 = COSDEG(SP.LON) U3 = SINDEG(SP.LAT) U4 = COSDEG(SP.LAT) SP.RA = ATAN2(U1 * U4 * CosObl - U3 * SinObl, U4 * U2) SP.DEC = ARCSIN(U3 * CosObl + U4 * U1 * SinObl) If SpecFlag = 0 Then Exit Sub SP.HourAngle = MOD360(SP.RAMC - SP.RA): Rem HOUR ANGLE U2 = C - SP.HourAngle U3 = COSDEG(SP.DEC) U4 = SINDEG(SP.DEC) SP.Azi = MOD360(450 - ATAN2(-U3 * SINDEG(SP.HourAngle), U4 * COSDEG(SP.TerranLat) - U3 * COSDEG(SP.HourAngle) * SINDEG(SP.TerranLat))) SP.Alt = ARCSIN(U4 * SINDEG(SP.TerranLat) + U3 * COSDEG(SP.HourAngle) * COSDEG(SP.TerranLat)) If SpecFlag = 1 Then Exit Sub Rem GET SPECULUM SP.ADA = TANDEG(SP.DEC) * TANDEG(SP.TerranLat) If Abs(SP.ADA) <= 1 Then SP.AscDiff = ARCSIN(SP.ADA) Else SP.AscDiff = 0 SP.OblAsc = MOD360(SP.RA - SP.AscDiff) SP.OblDesc = MOD360(SP.RA + SP.AscDiff) SP.DSA = 90 + SP.AscDiff SP.NSA = H1 - SP.DSA SP.MerDist = MOD360(SP.RA - SP.RAMC) SP.DayNightFlag = 1 If SP.MerDist > H1 Then SP.MerDist = SP.MerDist - C If SP.MerDist > SP.DSA Or SP.MerDist <= -SP.DSA Then SP.MerDist = MOD360(SP.RA - SP.RAMC + 180) SP.DayNightFlag = 0 If SP.MerDist > H1 Then SP.MerDist = SP.MerDist - C End If If SP.DayNightFlag Then SP.GAUQSECT = 90 - (SP.MerDist / SP.DSA * 90) Else SP.GAUQSECT = 270 - (SP.MerDist / SP.NSA * 90) End Sub |