我正在尝试制作一个用于计算ISS天桥的应用程序。
我想出了如何真正获得天桥,但是我在努力弄清楚如何计算这些天桥期间空间站的视在震级。我看过 Is there any way to calculate the visual magnitude of a satellite (ISS)? 和 Calculating the Phase Angle between the Sun / ISS and an observer on the earth 。
我想出了如何计算太阳相位角,但我想不出如何得到 Is there any way to calculate the visual magnitude of a satellite (ISS)?提供的公式。我的相位角以度为单位,到卫星的距离以km为单位。这是公式:
Mag = Std. Mag - 15 + 5*LOG(Range) - 2.5*LOG(SIN(B) + (pi-B)*COS(B))
对于ISS,我将-1.8用作std.mag。 https://stackoverflow.com/users/2949204/liam-kennedy 提供了此公式,似乎知道如何使它起作用,但我终生无法做到。
注意:我正在C#中执行此操作,并且知道我的相位角是正确的,但是即使使用Python和pyephemem也无法获得接近Heavens-Above's的结果。将B设置为113,将std.mag设置为-1.8,将范围设置为485,这给了我11.25,但是在“天堂之上”中,它们获得的数据完全相同,为-3.0。
这是我正在使用的代码
var B = phaseAngle;
var magnitude = intrinsicMagnitude - 15 + 5 * Math.Log(distanceToSatellite) - 2.5 * Math.Log(Math.Sin(B) + (Math.PI - B) * Math.Cos(B));
编辑:我在这里解决了这个问题:https://astronomy.stackexchange.com/questions/28744/calculating-the-apparent-magnitude-of-a-satellite/28765#28765
主持人,请将此问题标记为已解决。
答案 0 :(得分:1)
我通常使用在https://mostlymissiledefense.com/2012/08/21/space-surveillance-the-visual-brightenss-and-size-of-space-objects-august-21-2012/处找到的方程式。你的相似。但是我要检查的第一件事是您使用LOG()
函数。 LOG()
计算出自然对数,我怀疑您想要的是以10为底的对数-例如LOG10()
。
答案 1 :(得分:1)
Math.Sin()
和Math.Cos()
都以弧度为参数,而不是度数-因此,您需要将B
的值设为113,并进行类似B * Math.PI / 180.0
的操作。实际上,您会想在使用B
的所有三个地方都这样做,因为否则将其值与Math.PI
进行比较就没有意义了。