Fix for direction of geographic longitude
I received a mail from Kelley Smoot Garrett from Austin, Texas. She was working with the RadixPro software and found a bug.
Quoting from her mail:
I'm having trouble getting the house positions returned properly. The planets are all placed correctly (when cross-checked against the charts at astro.com) but the Ascendant & house cusps are all off by 150 degrees.
I remember with Astrolog there was a setting that allowed you to compensate if the "Now" chart did not display the right time, due to internal computer settings. (I use Windows XP.)
I'm wondering if you have run across this problem before and know what the solution is.
But fortunately I received another mail from Kelley. She found the solution:
Hi Jan,
I solved the problem. Since I'm West of Greenwich my longitude should
be negative, not positive.I've walked through the code now to figure out how, even though I've checked ra_west on Frm_Dataradix, the variable is a positive value for longitude when the time the code hits Sweph class' getHouses() method.The problem occurs in Conversions class' Coordinates2Degrees method. It is called from InputData.InputDataChart() where you convert the
"+" or "-" to a language value from the resource file (in English, either "E" or "W") and it is that resource value which is passed to Conversions.Coordinates2Degrees(). The problem is that Coordinates2Degrees() checks for "+" or "-", not the resource language value. So instead of computing my birth place as being 97 degrees WEST of Greenwich, RadixPro was calculating my birth for 97 EAST.To fix this problem, I have changed line 231 of inputs.cs from:
this.longitude
= Conversions.Coordinates2Degrees(voir.geoLongitude.data, direction);
TO: this.longitude =
Conversions.Coordinates2Degrees(voir.geoLongitude.data,
voir.geoLongDirection.data);I don't have any southern latitude charts to test this against, but it appears that the same error would occur for charts of a southern latitude so I've changed the call to Conversions.Coordinates2Degrees() a few lines below the longitude call in inputs.cs to be:
this.latitude =
Conversions.Coordinates2Degrees(voir.geoLatitude.data,
voir.geoLatDirection.data);Cheers,
Kelley
Kelley also sent the fixed code so you can download it.
Thanks Kelley, for sharing this fix!