瑞士星历星侧模式与Lahiri Ayanamsha给出错误的值
本文关键字:出错 错误 Ayanamsha 模式 Lahiri | 更新日期: 2023-09-27 17:54:41
我正在尝试生成行星的经度。我用瑞士星历表dll来完成我所有的艰苦工作。然而,不幸的是,瑞士星历为恒星模式Lahiri Ayanamsha生成的值与我从其他吠陀软件或在线门户网站(包括JuniorJyothsh)获得的值相差甚远(大约25分钟,尤其是月亮)。
我已经下载了。se1文件(行星和月球),并使用非常精确的瑞士星历模式。此外,我还设置了恒星模式,Lahiri Ayanmsha Flag, Topocentric Flag。我还设置了拓扑纬度和经度位置。
最让我烦恼的是,所有其他在线吠陀出生图生成器(包括junior Jyothish)的值似乎都是相互匹配的。我不确定我到底做错了什么。这里有一个链接到我的代码Swiss ephemeris在。net上使用的git和一个示例代码片段
[Test]
public void ShouldGetAllPlanetValues()
{
var errorMessage = new StringBuilder(1000);
var longitudeAndLatitude = new Double[6];
var cusps = new Double[13];
var ascentantAndMore = new Double[10];
var julianDayNumbersInEtAndUt = new double[2];
TimeZoneInfo indiaTimeZone = TimeZoneInfo.FindSystemTimeZoneById(IndiaStandardTimeZoneId);
var ephemerisTablesPath = new StringBuilder(@"../../../EphemerisFiles/");
swe_set_ephe_path(ephemerisTablesPath);
var birthTimeInIndianZone = new DateTime(1989, 8, 21, 10, 29, 0);
DateTime birthTimeInUtc = TimeZoneInfo.ConvertTimeToUtc(birthTimeInIndianZone, indiaTimeZone);
int errorCOde = swe_utc_to_jd(birthTimeInUtc.Year, birthTimeInUtc.Month, birthTimeInUtc.Day,
birthTimeInUtc.Hour, birthTimeInUtc.Minute, birthTimeInUtc.Second, 1,
julianDayNumbersInEtAndUt, errorMessage);
if (errorCOde != 0)
{
Assert.Fail("Error ho gaya julian date conversion par !!");
}
Console.WriteLine("Julian Day Number from UTC: " + julianDayNumbersInEtAndUt[1]);
Console.WriteLine(swe_sidtime(julianDayNumbersInEtAndUt[1]));
var computationFlag = EphemerisModes.Sidereal | EphemerisModes.SwissEphemeris
| EphemerisModes.Topocentric;
var longitude = ConvertDegreeAngleToDouble(80, 15, 0);
var latitude = ConvertDegreeAngleToDouble(13, 4, 0);
swe_set_topo(12.9667, 77.5667, 0);
swe_set_sid_mode(SiderealFlag.Lahiri, 0, 0);
foreach (var planet in Planets.AllPlanets)
{
int sweCalcUt = swe_calc_ut(julianDayNumbersInEtAndUt[1], planet, computationFlag, longitudeAndLatitude, errorMessage);
Console.WriteLine("Planet Number " + planet + ": " + GetDegreesMinutesSeconds(longitudeAndLatitude[0]));
}
swe_houses_ex(julianDayNumbersInEtAndUt[1], EphemerisModes.Sidereal, 12.9667, 77.5667, 'A', cusps, ascentantAndMore);
Console.WriteLine("Ascendant: " + GetDegreesMinutesSeconds(ascentantAndMore[0]));
}
以下是我自己的出生日期(21-08-1989 10:29 AM)的数值差异的示例。根据我的代码从瑞士星历生成:
Planet Number 0: 124:24:30 SUN
Planet Number 1: 359:38:55 Moon
Planet Number 2: 150:20:40 Mercury
Planet Number 3: 160:0:11 Venus
Planet Number 4: 137:26:47 Mars
Planet Number 5: 70:20:45 Jupiter
Planet Number 6: 253:56:35 Satrun
Planet Number 10: 301:46:40 Rahu (Mean Node)
Ascendant: 187.27:46
来自大多数其他来源的价值(JuniorJyothish, ProKerala, NadiAstrology, Astrosage):
Planet Number 0: 124:24:35 SUN
Planet Number 1: 0:6:21 Moon
Planet Number 2: 150:20:45 Mercury
Planet Number 3: 160:00:17 Venus
Planet Number 4: 137:26:56 Mars
Planet Number 5: 70:20:57 Jupiter
Planet Number 6: 253:56:48 Satrun
Planet Number 10: 301:46:52 Rahu
Ascendant : 187:28:6 Ascendant
任何能给我指出正确方向的帮助/提示/建议,我都非常感激。
谢谢
在谷歌上搜索了几个小时后,我弄清楚了吠陀占星术传统上使用地心说的值。我用地心值来表示月球的经度。这对其他行星来说没有太大区别,因为它们与地球的距离不像月球。一旦我生成了地心值,月球经度也匹配了。
虽然吠陀占星术在有更准确的地心值时使用地心经度似乎是错误的,占星术传统上是这样工作的。此外,占星术规则的建立是为了用错误的数据给出正确的预测:P
瑞士星历表可能会给你更准确的结果。对于大多数行星来说,如果你比较你提供的值,除了月球,差异只存在于几秒钟内。对于吠陀占星术来说,这种差异是可以接受的。请继续使用您从瑞士星历中获得的结果。