@typescriptify/sweph 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +422 -0
- package/ephe/semo_18.se1 +0 -0
- package/ephe/sepl_18.se1 +0 -0
- package/originalCode/.eslintrc.json +124 -0
- package/originalCode/.gitattributes +2 -0
- package/originalCode/.github/FUNDING.yml +5 -0
- package/originalCode/.github/workflows/test.yml +35 -0
- package/originalCode/LICENSE +840 -0
- package/originalCode/README.md +91 -0
- package/originalCode/binding.gyp +41 -0
- package/originalCode/constants.js +366 -0
- package/originalCode/docs.gif +0 -0
- package/originalCode/index.d.ts +5115 -0
- package/originalCode/index.js +7 -0
- package/originalCode/index.mjs +109 -0
- package/originalCode/package.json +55 -0
- package/originalCode/src/functions/azalt.cpp +39 -0
- package/originalCode/src/functions/azalt_rev.cpp +35 -0
- package/originalCode/src/functions/calc.cpp +29 -0
- package/originalCode/src/functions/calc_pctr.cpp +31 -0
- package/originalCode/src/functions/calc_ut.cpp +29 -0
- package/originalCode/src/functions/close.cpp +6 -0
- package/originalCode/src/functions/cotrans.cpp +26 -0
- package/originalCode/src/functions/cotrans_sp.cpp +26 -0
- package/originalCode/src/functions/cs2degstr.cpp +19 -0
- package/originalCode/src/functions/cs2lonlatstr.cpp +23 -0
- package/originalCode/src/functions/cs2timestr.cpp +23 -0
- package/originalCode/src/functions/csnorm.cpp +15 -0
- package/originalCode/src/functions/csroundsec.cpp +15 -0
- package/originalCode/src/functions/d2l.cpp +15 -0
- package/originalCode/src/functions/date_conversion.cpp +30 -0
- package/originalCode/src/functions/day_of_week.cpp +15 -0
- package/originalCode/src/functions/degnorm.cpp +15 -0
- package/originalCode/src/functions/deltat.cpp +15 -0
- package/originalCode/src/functions/deltat_ex.cpp +24 -0
- package/originalCode/src/functions/difcs2n.cpp +19 -0
- package/originalCode/src/functions/difcsn.cpp +19 -0
- package/originalCode/src/functions/difdeg2n.cpp +19 -0
- package/originalCode/src/functions/difdegn.cpp +19 -0
- package/originalCode/src/functions/fixstar.cpp +32 -0
- package/originalCode/src/functions/fixstar2.cpp +32 -0
- package/originalCode/src/functions/fixstar2_mag.cpp +28 -0
- package/originalCode/src/functions/fixstar2_ut.cpp +32 -0
- package/originalCode/src/functions/fixstar_mag.cpp +28 -0
- package/originalCode/src/functions/fixstar_ut.cpp +32 -0
- package/originalCode/src/functions/gauquelin_sector.cpp +44 -0
- package/originalCode/src/functions/get_ayanamsa.cpp +15 -0
- package/originalCode/src/functions/get_ayanamsa_ex.cpp +27 -0
- package/originalCode/src/functions/get_ayanamsa_ex_ut.cpp +27 -0
- package/originalCode/src/functions/get_ayanamsa_name.cpp +19 -0
- package/originalCode/src/functions/get_ayanamsa_ut.cpp +15 -0
- package/originalCode/src/functions/get_current_file_data.cpp +28 -0
- package/originalCode/src/functions/get_library_path.cpp +8 -0
- package/originalCode/src/functions/get_orbital_elements.cpp +29 -0
- package/originalCode/src/functions/get_planet_name.cpp +19 -0
- package/originalCode/src/functions/get_tid_acc.cpp +7 -0
- package/originalCode/src/functions/heliacal_pheno_ut.cpp +52 -0
- package/originalCode/src/functions/heliacal_ut.cpp +52 -0
- package/originalCode/src/functions/helio_cross.cpp +33 -0
- package/originalCode/src/functions/helio_cross_ut.cpp +33 -0
- package/originalCode/src/functions/house_name.cpp +20 -0
- package/originalCode/src/functions/house_pos.cpp +36 -0
- package/originalCode/src/functions/houses.cpp +35 -0
- package/originalCode/src/functions/houses_armc.cpp +38 -0
- package/originalCode/src/functions/houses_armc_ex2.cpp +47 -0
- package/originalCode/src/functions/houses_ex.cpp +37 -0
- package/originalCode/src/functions/houses_ex2.cpp +46 -0
- package/originalCode/src/functions/jdet_to_utc.cpp +38 -0
- package/originalCode/src/functions/jdut1_to_utc.cpp +38 -0
- package/originalCode/src/functions/julday.cpp +25 -0
- package/originalCode/src/functions/lat_to_lmt.cpp +27 -0
- package/originalCode/src/functions/lmt_to_lat.cpp +27 -0
- package/originalCode/src/functions/lun_eclipse_how.cpp +34 -0
- package/originalCode/src/functions/lun_eclipse_when.cpp +31 -0
- package/originalCode/src/functions/lun_eclipse_when_loc.cpp +39 -0
- package/originalCode/src/functions/lun_occult_when_glob.cpp +35 -0
- package/originalCode/src/functions/lun_occult_when_loc.cpp +43 -0
- package/originalCode/src/functions/lun_occult_where.cpp +34 -0
- package/originalCode/src/functions/mooncross.cpp +26 -0
- package/originalCode/src/functions/mooncross_node.cpp +30 -0
- package/originalCode/src/functions/mooncross_node_ut.cpp +30 -0
- package/originalCode/src/functions/mooncross_ut.cpp +26 -0
- package/originalCode/src/functions/nod_aps.cpp +42 -0
- package/originalCode/src/functions/nod_aps_ut.cpp +42 -0
- package/originalCode/src/functions/orbit_max_min_true_distance.cpp +37 -0
- package/originalCode/src/functions/pheno.cpp +29 -0
- package/originalCode/src/functions/pheno_ut.cpp +29 -0
- package/originalCode/src/functions/radnorm.cpp +15 -0
- package/originalCode/src/functions/refrac.cpp +23 -0
- package/originalCode/src/functions/refrac_extended.cpp +32 -0
- package/originalCode/src/functions/revjul.cpp +33 -0
- package/originalCode/src/functions/rise_trans.cpp +44 -0
- package/originalCode/src/functions/rise_trans_true_hor.cpp +46 -0
- package/originalCode/src/functions/set_delta_t_userdef.cpp +14 -0
- package/originalCode/src/functions/set_ephe_path.cpp +14 -0
- package/originalCode/src/functions/set_jpl_file.cpp +14 -0
- package/originalCode/src/functions/set_sid_mode.cpp +20 -0
- package/originalCode/src/functions/set_tid_acc.cpp +14 -0
- package/originalCode/src/functions/set_topo.cpp +20 -0
- package/originalCode/src/functions/sidtime.cpp +15 -0
- package/originalCode/src/functions/sidtime0.cpp +21 -0
- package/originalCode/src/functions/sol_eclipse_how.cpp +34 -0
- package/originalCode/src/functions/sol_eclipse_when_glob.cpp +31 -0
- package/originalCode/src/functions/sol_eclipse_when_loc.cpp +39 -0
- package/originalCode/src/functions/sol_eclipse_where.cpp +30 -0
- package/originalCode/src/functions/solcross.cpp +26 -0
- package/originalCode/src/functions/solcross_ut.cpp +26 -0
- package/originalCode/src/functions/split_deg.cpp +35 -0
- package/originalCode/src/functions/time_equ.cpp +25 -0
- package/originalCode/src/functions/utc_time_zone.cpp +48 -0
- package/originalCode/src/functions/utc_to_jd.cpp +37 -0
- package/originalCode/src/functions/version.cpp +8 -0
- package/originalCode/src/functions/vis_limit_mag.cpp +50 -0
- package/originalCode/src/sweph.cpp +150 -0
- package/originalCode/src/sweph.h +119 -0
- package/originalCode/swisseph/swecl.c +6428 -0
- package/originalCode/swisseph/swedate.c +588 -0
- package/originalCode/swisseph/swedate.h +81 -0
- package/originalCode/swisseph/swehel.c +3511 -0
- package/originalCode/swisseph/swehouse.c +3143 -0
- package/originalCode/swisseph/swehouse.h +98 -0
- package/originalCode/swisseph/swejpl.c +958 -0
- package/originalCode/swisseph/swejpl.h +103 -0
- package/originalCode/swisseph/swemmoon.c +1930 -0
- package/originalCode/swisseph/swemplan.c +967 -0
- package/originalCode/swisseph/swemptab.h +10640 -0
- package/originalCode/swisseph/swenut2000a.h +2819 -0
- package/originalCode/swisseph/sweodef.h +326 -0
- package/originalCode/swisseph/sweph.c +8614 -0
- package/originalCode/swisseph/sweph.h +849 -0
- package/originalCode/swisseph/swephexp.h +1020 -0
- package/originalCode/swisseph/swephlib.c +4634 -0
- package/originalCode/swisseph/swephlib.h +189 -0
- package/package.json +28 -0
- package/scripts/gen-swemptab.js +177 -0
- package/scripts/gen-swenut2000a.js +106 -0
- package/src/SwissEph/README.md +268 -0
- package/src/SwissEph/UseCases/Ayanamsa.md +363 -0
- package/src/SwissEph/UseCases/AzimuthAltitude.md +408 -0
- package/src/SwissEph/UseCases/CoordinateSystems.md +337 -0
- package/src/SwissEph/UseCases/DateAndTime.md +368 -0
- package/src/SwissEph/UseCases/DeltaT.md +258 -0
- package/src/SwissEph/UseCases/EphemerisFiles.md +338 -0
- package/src/SwissEph/UseCases/FixedStars.md +300 -0
- package/src/SwissEph/UseCases/GauquelinSectors.md +304 -0
- package/src/SwissEph/UseCases/HeliacalEvents.md +396 -0
- package/src/SwissEph/UseCases/HelioCrossings.md +325 -0
- package/src/SwissEph/UseCases/HousePosition.md +254 -0
- package/src/SwissEph/UseCases/HouseSystems.md +279 -0
- package/src/SwissEph/UseCases/LunarEclipse.md +326 -0
- package/src/SwissEph/UseCases/MeridianTransit.md +279 -0
- package/src/SwissEph/UseCases/MoonCrossings.md +373 -0
- package/src/SwissEph/UseCases/NodesAndApsides.md +307 -0
- package/src/SwissEph/UseCases/Occultation.md +352 -0
- package/src/SwissEph/UseCases/OrbitalElements.md +469 -0
- package/src/SwissEph/UseCases/Phenomena.md +328 -0
- package/src/SwissEph/UseCases/PlanetPositions.md +366 -0
- package/src/SwissEph/UseCases/Planetocentric.md +278 -0
- package/src/SwissEph/UseCases/Refraction.md +314 -0
- package/src/SwissEph/UseCases/RiseAndSet.md +433 -0
- package/src/SwissEph/UseCases/SiderealTime.md +302 -0
- package/src/SwissEph/UseCases/SolarEclipse.md +379 -0
- package/src/SwissEph/UseCases/SunCrossings.md +275 -0
- package/src/SwissEph/UseCases/TopocentricCorrection.md +335 -0
- package/src/SwissEph/errors.ts +10 -0
- package/src/SwissEph/index.ts +823 -0
- package/src/SwissEph/types.ts +291 -0
- package/src/constants.ts +762 -0
- package/src/file-reader.ts +147 -0
- package/src/index.ts +10 -0
- package/src/swecl.ts +4526 -0
- package/src/swedate.ts +376 -0
- package/src/swehel.ts +1939 -0
- package/src/swehouse.ts +2167 -0
- package/src/swejpl.ts +470 -0
- package/src/swemmoon.ts +1318 -0
- package/src/swemplan.ts +585 -0
- package/src/swemptab.ts +4448 -0
- package/src/swenut2000a.ts +2763 -0
- package/src/sweph.ts +3993 -0
- package/src/swephlib.ts +2720 -0
- package/src/types.ts +490 -0
- package/tests/c-style/ayanamsa.test.ts +63 -0
- package/tests/c-style/config.test.ts +96 -0
- package/tests/c-style/crossings.test.ts +81 -0
- package/tests/c-style/date-time.test.ts +114 -0
- package/tests/c-style/eclipses.test.ts +84 -0
- package/tests/c-style/fixed-stars.test.ts +66 -0
- package/tests/c-style/heliacal.test.ts +34 -0
- package/tests/c-style/houses.test.ts +135 -0
- package/tests/c-style/math-utils.test.ts +160 -0
- package/tests/c-style/orbital.test.ts +78 -0
- package/tests/c-style/phenomena.test.ts +42 -0
- package/tests/c-style/planetocentric.test.ts +26 -0
- package/tests/c-style/planets.test.ts +117 -0
- package/tests/c-style/rise-set.test.ts +71 -0
- package/tests/helpers.ts +21 -0
- package/tests/modern/ayanamsa.test.ts +47 -0
- package/tests/modern/calc.test.ts +113 -0
- package/tests/modern/config.test.ts +46 -0
- package/tests/modern/crossings.test.ts +45 -0
- package/tests/modern/eclipses.test.ts +81 -0
- package/tests/modern/errors.test.ts +71 -0
- package/tests/modern/heliacal.test.ts +30 -0
- package/tests/modern/houses.test.ts +87 -0
- package/tests/modern/orbital.test.ts +79 -0
- package/tests/modern/phenomena.test.ts +41 -0
- package/tests/modern/rise-set.test.ts +60 -0
- package/tests/modern/statics.test.ts +99 -0
- package/tests/modern/utilities.test.ts +70 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
# Gauquelin Sectors
|
|
2
|
+
|
|
3
|
+
**Michel Gauquelin** (1928-1991) was a French psychologist and statistician who conducted one of the most controversial and widely-discussed statistical studies in the history of astrology. He collected birth data for tens of thousands of professionals and found that the positions of certain planets at the moment of birth correlated with professional eminence in specific fields. To analyze these correlations, he divided the sky into **36 sectors** (a finer division than the 12 astrological houses) based on the planet's diurnal arc -- the path it traces across the sky from rising to setting.
|
|
4
|
+
|
|
5
|
+
His most famous finding, the **"Mars effect,"** showed that an unusually high proportion of eminent athletes were born when Mars had just risen above the horizon or had just passed the meridian (culminated). Similar effects were found for Jupiter and actors, Saturn and scientists, and the Moon and writers.
|
|
6
|
+
|
|
7
|
+
The `gauquelinSector()` method calculates which of the 36 sectors a planet occupies at a given moment, for a specific geographic location.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Quick Example
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { SwissEph } from '../index';
|
|
15
|
+
import { SE_MARS } from '../../constants';
|
|
16
|
+
|
|
17
|
+
const swe = new SwissEph();
|
|
18
|
+
const jd = SwissEph.julianDay(1960, 10, 30, 2.5); // Oct 30, 1960, 02:30 UT
|
|
19
|
+
|
|
20
|
+
// Diego Maradona's approximate birth location (Lanús, Argentina)
|
|
21
|
+
const geo = { longitude: -58.39, latitude: -34.70 };
|
|
22
|
+
|
|
23
|
+
const result = swe.gauquelinSector(jd, SE_MARS, geo);
|
|
24
|
+
console.log(`Mars Gauquelin sector: ${result.sector.toFixed(2)}`);
|
|
25
|
+
// A sector near 1 (just risen) or 10 (just culminated) would be in a "plus zone"
|
|
26
|
+
|
|
27
|
+
swe.close();
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Detailed Examples
|
|
33
|
+
|
|
34
|
+
### Checking all classical planets for Gauquelin sectors
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
import { SwissEph } from '../index';
|
|
38
|
+
import {
|
|
39
|
+
SE_MOON, SE_VENUS, SE_MARS,
|
|
40
|
+
SE_JUPITER, SE_SATURN,
|
|
41
|
+
} from '../../constants';
|
|
42
|
+
|
|
43
|
+
const swe = new SwissEph();
|
|
44
|
+
|
|
45
|
+
// Example birth data
|
|
46
|
+
const jd = SwissEph.julianDay(1985, 7, 15, 14.5); // Jul 15, 1985, 14:30 UT
|
|
47
|
+
const geo = { longitude: 2.3522, latitude: 48.8566 }; // Paris
|
|
48
|
+
|
|
49
|
+
const planets = [
|
|
50
|
+
{ id: SE_MOON, name: 'Moon' },
|
|
51
|
+
{ id: SE_VENUS, name: 'Venus' },
|
|
52
|
+
{ id: SE_MARS, name: 'Mars' },
|
|
53
|
+
{ id: SE_JUPITER, name: 'Jupiter' },
|
|
54
|
+
{ id: SE_SATURN, name: 'Saturn' },
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
for (const pl of planets) {
|
|
58
|
+
const r = swe.gauquelinSector(jd, pl.id, geo);
|
|
59
|
+
const sector = Math.floor(r.sector);
|
|
60
|
+
|
|
61
|
+
// Check if in a "plus zone"
|
|
62
|
+
const risePlus = [36, 1, 2, 3];
|
|
63
|
+
const culminPlus = [9, 10, 11, 12];
|
|
64
|
+
const isRisePlus = risePlus.includes(sector);
|
|
65
|
+
const isCulminPlus = culminPlus.includes(sector);
|
|
66
|
+
|
|
67
|
+
let zone = '';
|
|
68
|
+
if (isRisePlus) zone = ' ← PLUS ZONE (rise)';
|
|
69
|
+
if (isCulminPlus) zone = ' ← PLUS ZONE (culmination)';
|
|
70
|
+
|
|
71
|
+
console.log(`${pl.name.padEnd(9)} sector ${sector.toString().padStart(2)}${zone}`);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
swe.close();
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Using different calculation methods
|
|
78
|
+
|
|
79
|
+
The `method` parameter controls how the sectors are calculated:
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
import { SwissEph } from '../index';
|
|
83
|
+
import { SE_MARS } from '../../constants';
|
|
84
|
+
|
|
85
|
+
const swe = new SwissEph();
|
|
86
|
+
const jd = SwissEph.julianDay(1990, 5, 20, 8.0);
|
|
87
|
+
const geo = { longitude: -0.1276, latitude: 51.5074 }; // London
|
|
88
|
+
|
|
89
|
+
// Method 0: sector from ecliptic longitude and house position (Placidus)
|
|
90
|
+
// Method 1: sector from ecliptic longitude and house position (Placidus),
|
|
91
|
+
// planet/house computed from rising and setting of the planet
|
|
92
|
+
// Method 2: sector from right ascension of MC and house position (Placidus)
|
|
93
|
+
// Method 3: sector from right ascension of MC and house position (Placidus),
|
|
94
|
+
// planet/house computed from rising and setting of the planet
|
|
95
|
+
|
|
96
|
+
for (let method = 0; method <= 3; method++) {
|
|
97
|
+
const r = swe.gauquelinSector(jd, SE_MARS, geo, method);
|
|
98
|
+
console.log(`Method ${method}: Mars sector = ${r.sector.toFixed(4)}`);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
swe.close();
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Full "Mars effect" analysis for a group of athletes
|
|
105
|
+
|
|
106
|
+
This example demonstrates how you might analyze a collection of birth data to look for the Mars effect pattern:
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
import { SwissEph } from '../index';
|
|
110
|
+
import { SE_MARS } from '../../constants';
|
|
111
|
+
|
|
112
|
+
const swe = new SwissEph();
|
|
113
|
+
|
|
114
|
+
// Hypothetical athlete birth data (JD, longitude, latitude)
|
|
115
|
+
const athletes = [
|
|
116
|
+
{ jd: SwissEph.julianDay(1960, 10, 30, 2.5), geo: { longitude: -58.39, latitude: -34.70 } },
|
|
117
|
+
{ jd: SwissEph.julianDay(1940, 10, 23, 19.0), geo: { longitude: -43.17, latitude: -22.91 } },
|
|
118
|
+
{ jd: SwissEph.julianDay(1981, 8, 29, 18.0), geo: { longitude: 2.35, latitude: 48.86 } },
|
|
119
|
+
{ jd: SwissEph.julianDay(1942, 1, 17, 8.0), geo: { longitude: 13.40, latitude: 52.52 } },
|
|
120
|
+
];
|
|
121
|
+
|
|
122
|
+
// Count how many have Mars in the plus zones
|
|
123
|
+
const risePlusZones = [36, 1, 2, 3];
|
|
124
|
+
const culminPlusZones = [9, 10, 11, 12];
|
|
125
|
+
const allPlusZones = [...risePlusZones, ...culminPlusZones];
|
|
126
|
+
|
|
127
|
+
let plusCount = 0;
|
|
128
|
+
|
|
129
|
+
for (const a of athletes) {
|
|
130
|
+
const r = swe.gauquelinSector(jd, SE_MARS, a.geo);
|
|
131
|
+
const sector = Math.floor(r.sector);
|
|
132
|
+
if (allPlusZones.includes(sector)) plusCount++;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const expectedPct = (8 / 36) * 100; // 22.2% expected by chance
|
|
136
|
+
const actualPct = (plusCount / athletes.length) * 100;
|
|
137
|
+
|
|
138
|
+
console.log(`Athletes with Mars in plus zones: ${plusCount}/${athletes.length}`);
|
|
139
|
+
console.log(`Expected by chance: ${expectedPct.toFixed(1)}%`);
|
|
140
|
+
console.log(`Actual: ${actualPct.toFixed(1)}%`);
|
|
141
|
+
// Gauquelin found ~22% for ordinary people vs ~30%+ for eminent athletes
|
|
142
|
+
|
|
143
|
+
swe.close();
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Accounting for atmospheric refraction
|
|
147
|
+
|
|
148
|
+
The `pressure` and `temperature` parameters allow you to control atmospheric refraction, which affects the precise moment a planet appears to rise or set:
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
import { SwissEph } from '../index';
|
|
152
|
+
import { SE_MARS } from '../../constants';
|
|
153
|
+
|
|
154
|
+
const swe = new SwissEph();
|
|
155
|
+
const jd = SwissEph.julianDay(1990, 5, 20, 8.0);
|
|
156
|
+
const geo = { longitude: 2.35, latitude: 48.86, altitude: 35 }; // Paris, 35m elevation
|
|
157
|
+
|
|
158
|
+
// Default atmospheric conditions
|
|
159
|
+
const r1 = swe.gauquelinSector(jd, SE_MARS, geo, 0, 1013.25, 15);
|
|
160
|
+
console.log(`Standard atmosphere: sector ${r1.sector.toFixed(4)}`);
|
|
161
|
+
|
|
162
|
+
// Custom conditions (high altitude, low pressure, cold)
|
|
163
|
+
const r2 = swe.gauquelinSector(jd, SE_MARS, geo, 0, 900, 5);
|
|
164
|
+
console.log(`Mountain conditions: sector ${r2.sector.toFixed(4)}`);
|
|
165
|
+
|
|
166
|
+
// No refraction (pressure = 0)
|
|
167
|
+
const r3 = swe.gauquelinSector(jd, SE_MARS, geo, 0, 0, 0);
|
|
168
|
+
console.log(`No refraction: sector ${r3.sector.toFixed(4)}`);
|
|
169
|
+
|
|
170
|
+
swe.close();
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Deep Explanation
|
|
176
|
+
|
|
177
|
+
### How Gauquelin Sectors Work
|
|
178
|
+
|
|
179
|
+
The 36 Gauquelin sectors are essentially the 12 Placidus houses, each subdivided into 3 equal parts. They are based on the **diurnal arc** -- the path a celestial body traces across the sky during one day.
|
|
180
|
+
|
|
181
|
+
A planet's diurnal cycle consists of:
|
|
182
|
+
1. **Rising** (crossing the eastern horizon) -- the Ascendant
|
|
183
|
+
2. **Culminating** (crossing the upper meridian) -- the Midheaven (MC)
|
|
184
|
+
3. **Setting** (crossing the western horizon) -- the Descendant
|
|
185
|
+
4. **Anti-culminating** (crossing the lower meridian) -- the IC
|
|
186
|
+
|
|
187
|
+
The sectors are numbered 1-36, starting from the Ascendant and proceeding in the direction of **diurnal motion** (clockwise in a standard chart):
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
MC (Midheaven)
|
|
191
|
+
Sectors 9-10-11
|
|
192
|
+
|
|
|
193
|
+
|
|
|
194
|
+
Sectors ----+---- Sectors
|
|
195
|
+
4-5-6-7-8 | 12-13-14-15-16
|
|
196
|
+
|
|
|
197
|
+
Sectors 17-18
|
|
198
|
+
IC (Imum Coeli)
|
|
199
|
+
|
|
|
200
|
+
Sectors ----+---- Sectors
|
|
201
|
+
19-20-21-22-23 | 27-28-29-30-31
|
|
202
|
+
|
|
|
203
|
+
Sectors 24-25-26
|
|
204
|
+
Desc (Setting)
|
|
205
|
+
|
|
|
206
|
+
Sectors 32-33
|
|
207
|
+
|
|
|
208
|
+
Sectors ----+---- Sectors
|
|
209
|
+
34-35-36 | 34-35-36...
|
|
210
|
+
|
|
|
211
|
+
ASC (Rising)
|
|
212
|
+
Sectors 36-1
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
The numbering proceeds: sector 36 is just above the eastern horizon (the planet has just risen), sector 1 is just below the eastern horizon (the planet is about to rise or has just risen -- the convention counts clockwise from the ASC). A planet at the MC is around sectors 9-10.
|
|
216
|
+
|
|
217
|
+
### The Plus Zones and Minus Zones
|
|
218
|
+
|
|
219
|
+
Gauquelin identified four "plus zones" and four "minus zones" arranged in a cross pattern:
|
|
220
|
+
|
|
221
|
+
| Zone | Sectors | Sky position | Meaning |
|
|
222
|
+
|------|---------|-------------|---------|
|
|
223
|
+
| Plus Zone 1 | 36, 1, 2, 3 | Just after rising | Planet has just risen |
|
|
224
|
+
| Plus Zone 2 | 9, 10, 11, 12 | Just after culmination | Planet has just passed MC |
|
|
225
|
+
| Plus Zone 3 | 19, 20, 21 | Just after setting | Planet has just set |
|
|
226
|
+
| Plus Zone 4 | 28, 29, 30 | Just after anti-culmination | Planet has just passed IC |
|
|
227
|
+
|
|
228
|
+
The rise and culmination plus zones (1 and 2) showed the strongest effects. The setting and IC zones showed weaker but still elevated frequencies.
|
|
229
|
+
|
|
230
|
+
### The Mars Effect
|
|
231
|
+
|
|
232
|
+
Gauquelin's most famous finding: among **2,088 eminent European sports champions**, Mars appeared in the plus zones significantly more often than chance would predict.
|
|
233
|
+
|
|
234
|
+
Expected by chance: ~22% (8 out of 36 sectors)
|
|
235
|
+
Observed for champions: ~30%+
|
|
236
|
+
|
|
237
|
+
This result was replicated multiple times, including by skeptical organizations (CSICOP/CFEPP), though the interpretation of those replications remains disputed.
|
|
238
|
+
|
|
239
|
+
### Other Gauquelin Findings
|
|
240
|
+
|
|
241
|
+
| Planet | Profession | Effect |
|
|
242
|
+
|--------|-----------|--------|
|
|
243
|
+
| Mars | Athletes, military leaders | Plus zones over-represented |
|
|
244
|
+
| Jupiter | Actors, politicians | Plus zones over-represented |
|
|
245
|
+
| Saturn | Scientists, doctors | Plus zones over-represented |
|
|
246
|
+
| Moon | Writers, politicians | Plus zones over-represented |
|
|
247
|
+
|
|
248
|
+
Gauquelin found NO significant effects for the Sun, Mercury, Venus, Uranus, Neptune, or Pluto. He also found no effects for "ordinary" people -- only for those who achieved eminence in their profession.
|
|
249
|
+
|
|
250
|
+
### Method Parameter Details
|
|
251
|
+
|
|
252
|
+
The `method` parameter controls two aspects of the calculation:
|
|
253
|
+
|
|
254
|
+
**Ecliptic vs. Equatorial (methods 0-1 vs. 2-3)**:
|
|
255
|
+
- Methods 0 and 1 compute the sector based on the planet's ecliptic longitude (the standard astrological coordinate)
|
|
256
|
+
- Methods 2 and 3 use the planet's right ascension and the MC's right ascension (equatorial coordinates)
|
|
257
|
+
|
|
258
|
+
**Standard vs. Planet-based houses (even vs. odd methods)**:
|
|
259
|
+
- Methods 0 and 2 divide the diurnal arc based on the ecliptic (like standard Placidus houses)
|
|
260
|
+
- Methods 1 and 3 divide the diurnal arc based on the actual rising and setting times of the planet itself. This is more astronomically precise because different planets rise and set at different points along the horizon depending on their declination
|
|
261
|
+
|
|
262
|
+
For most Gauquelin research, method 0 is standard.
|
|
263
|
+
|
|
264
|
+
### Relationship to Placidus Houses
|
|
265
|
+
|
|
266
|
+
Gauquelin sectors map directly to Placidus houses:
|
|
267
|
+
- Sectors 1-3 = 12th house (planet has just risen)
|
|
268
|
+
- Sectors 4-6 = 11th house
|
|
269
|
+
- Sectors 7-9 = 10th house (approaching MC)
|
|
270
|
+
- Sectors 10-12 = 9th house (just past MC)
|
|
271
|
+
- Sectors 13-15 = 8th house
|
|
272
|
+
- Sectors 16-18 = 7th house (approaching Descendant)
|
|
273
|
+
- Sectors 19-21 = 6th house (just past setting)
|
|
274
|
+
- Sectors 22-24 = 5th house
|
|
275
|
+
- Sectors 25-27 = 4th house (approaching IC)
|
|
276
|
+
- Sectors 28-30 = 3rd house (just past IC)
|
|
277
|
+
- Sectors 31-33 = 2nd house
|
|
278
|
+
- Sectors 34-36 = 1st house (approaching rise)
|
|
279
|
+
|
|
280
|
+
Note the numbering direction: sector 1 starts just past the Ascendant going clockwise (which is the 12th house in a standard chart), and the numbers increase in the direction of diurnal motion.
|
|
281
|
+
|
|
282
|
+
### Controversy and Scientific Reception
|
|
283
|
+
|
|
284
|
+
The Gauquelin findings remain one of the most debated topics at the intersection of science and astrology:
|
|
285
|
+
|
|
286
|
+
**In favor**: The Mars effect was replicated by multiple independent groups. The data was collected from official civil registries, making fabrication difficult. The effect showed appropriate "dose-response" -- it was stronger for more eminent athletes.
|
|
287
|
+
|
|
288
|
+
**Against**: Skeptics raised concerns about demographic artifacts (birth times being rounded to certain hours), possible selection bias in choosing which athletes counted as "eminent," and the absence of any known physical mechanism.
|
|
289
|
+
|
|
290
|
+
**Current status**: Most scientists consider the effect to be a statistical artifact or the result of subtle methodological issues, while proponents argue that no specific flaw has been identified that explains the full pattern of results.
|
|
291
|
+
|
|
292
|
+
### Return Type
|
|
293
|
+
|
|
294
|
+
```typescript
|
|
295
|
+
interface GauquelinResult {
|
|
296
|
+
sector: number; // Fractional sector value, 1.0–36.999...
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
The returned value is a fractional number. For example, `1.5` means the planet is in the middle of sector 1. Use `Math.floor(result.sector)` to get the integer sector number (but note that sector 0 should be treated as sector 36).
|
|
301
|
+
|
|
302
|
+
### Requirements
|
|
303
|
+
|
|
304
|
+
Gauquelin sector calculation requires a geographic location because it depends on the local horizon and meridian. The calculation will not work without a valid `geo` parameter containing longitude and latitude.
|