CReizner / SharpAstrology.HumanDesign

The Human Design Extension for the SharpAstrology project.
MIT License
15 stars 5 forks source link

Variables calculation #7

Open offline-first opened 6 days ago

offline-first commented 6 days ago

Hello @CReizner

I'm trying to figure out why Tone and Base don't match up with other chart generating tools like this one: https://humanarchetypes.com/library/

image

using SharpAstrology.DataModels;
using SharpAstrology.Enums;
using SharpAstrology.Ephemerides;
using SharpAstrology.Interfaces;

var ephemeridesService = new SwissEphemeridesService(ephType: EphType.Moshier);
using IEphemerides eph = ephemeridesService.CreateContext();

var pointInTime = new DateTime(1988, 9, 4, 1, 15, 0, DateTimeKind.Utc);

var chart = new HumanDesignChart(pointInTime, eph);

Console.WriteLine("\nActive Personality Gates:");
foreach (var (planet, activation) in chart.PersonalityActivation)
{
    Console.WriteLine($"\t{planet} {activation.Gate}-{activation.Line} lat:{activation.Longitude} C:{activation.Color.ToNumber()} T:{activation.Tone.ToNumber()} B:{activation.Base.ToNumber()}");//-{activation.}
}

Console.WriteLine("\nActive Design Gates:");
foreach (var (planet, activation) in chart.DesignActivation)
{
    Console.WriteLine($"\t{planet} {activation.Gate}-{activation.Line} lat:{activation.Longitude} C:{activation.Color.ToNumber()} T:{activation.Tone.ToNumber()} B:{activation.Base.ToNumber()}");//-{activation.FixingState}
}
Active Personality Gates:
        Sun Key64-One lat:161.72821348267175 C:3 T:2 B:3
        Earth Key63-One lat:341.7282134826718 C:3 T:2 B:3
        Mars Key21-Two lat:10.96211713806248 C:4 T:3 B:1
        Mercury Key18-Three lat:185.87070197042027 C:1 T:5 B:4
        Venus Key56-One lat:116.40526764021621 C:1 T:2 B:1 // ❌ -> Personality Venus in 62.6
        Moon Key45-Six lat:82.40784246951463 C:5 T:4 B:4
        Jupiter Key20-Six lat:65.43912963192834 C:5 T:1 B:1
        Saturn Key11-Four lat:265.9466415304341 C:4 T:2 B:3
        Uranus Key11-Five lat:267.04480948687336 C:5 T:2 B:4
        Neptune Key58-Four lat:277.4787138547878 C:6 T:1 B:2
        Pluto Key44-Three lat:220.34695172884489 C:6 T:3 B:3
        NorthNode Key63-Three lat:344.1016942514188 C:6 T:3 B:4
        SouthNode Key64-Three lat:164.10169425141885 C:6 T:3 B:4

Active Design Gates:
        Sun Key35-Three lat:73.72821348316879 C:4 T:1 B:2
        Earth Key5-Three lat:253.7282134831688 C:4 T:1 B:2
        Mars Key37-Three lat:338.0575907858297 C:3 T:5 B:4
        Mercury Key12-Five lat:86.40878741181554 C:1 T:2 B:2
        Venus Key12-Six lat:87.31381231071225 C:1 T:1 B:1
        Moon Key41-One lat:302.2624809057128 C:2 T:5 B:1
        Jupiter Key23-Two lat:50.23736147040131 C:3 T:5 B:2
        Saturn Key10-Three lat:270.42940775259103 C:2 T:6 B:4
        Uranus Key10-Two lat:269.6981497228841 C:4 T:2 B:4
        Neptune Key58-Six lat:279.4919306848228 C:6 T:6 B:4
        Pluto Key44-Three lat:220.31028272235505 C:6 T:2 B:1
        NorthNode Key22-Three lat:348.92340135489184 C:1 T:2 B:5
        SouthNode Key47-Three lat:168.9234013548919 C:1 T:2 B:5

I have used three different Ephemeris services and I get different results for all of them. I'm wondering why all chart generators get the same result, as if they all use the same api...

Do you have an idea?

Best regards 💫

CReizner commented 4 days ago

Hi @offline-first , I think they all use this service: bodygraphchart. But most of the time, you can look it up in the dev console.

CReizner commented 4 days ago

Regarding the accuracy, the moshier ephemerides are the most inaccurate of all three options. The JPL files should be the most accurate if you are using swisseph. For color, tone and base, this matters a lot. The calculation itself is actually straight forward. For the color, you split the line into 6 parts. For the tone, you split the color into six parts. For the base, you split the tone into five parts. This algorithm is hard to mess up.

CReizner commented 4 days ago

Regarding the variables coming from the nodes... I'm not sure, if Human Design uses the mean lunar node position or the oscillating true node position. In IEphemerides implementation with swisseph, I used the true node position for the calculations.

offline-first commented 3 days ago

Thank you very much for your answer! Can you tell me how you calculate HdOffsetToZodiac of 3.875? Does the value perhaps have something to do with the shift between the sidereal and tropical zodiac?

CReizner commented 2 days ago

I just looked in the literature at which degree the first gate in Aries starts and then worked with the order of the gates and their width in degrees. And the first gate is gate 17 and started at 3.875° Aries. Therefore, in the Gates enum, Key17 is the first entry with value 0.

offline-first commented 1 day ago

Okay, I understand. Is there a specific time to get the result? Or would the shift even need to be calculated for each chart/time point individually, since it changes over time?

CReizner commented 23 hours ago

I'm not completely sure what you mean. The assumption with IEmphemerides is that the output longitude is measured at the vernal equinox 0° Aries (which I should probably put somewhere as a hint ;( ). This means that if you use it to calculate the planetary positions for a given point in time and want to know whether a planet is in a certain gate, you always proceed in the same way. You start at 0° Aries. You add the HdOffset and start at the first gate (=Gate17). If the longitude of this planet does not fall within this gate, you go 5.625° (the width of a gate) further and see if the planet is there, etc. The HdOffset is therefore constant because the planets are always measured at 0° Aries.