Answers:
很简单,但很混乱。
因为您在ECEF中工作,所以大概在ECEF坐标中也具有射线的原点(x,y,z)和方向矢量(u,v,w)。目前,我们假设在到达地球表面的过程中,地球没有明显移动。(旋转的地球的最快部分,赤道以大约0.45 km / sec的速度移动,而光以大约300,000 km / sec的速度移动,因此,从地球上方1000 km发出的,或多或少地直向赤道的射线将采取1/300秒到达它,在此期间,赤道将移动1.5米:这可能是一个可以接受的错误。)
我们只需要计算参数化线的交点
t --> (x,y,z) + t*(u,v,w)
与地球表面,可以视为函数的零集
(x/a)^2 + (y/a)^2 + (z/b)^2 - 1
其中a是半长轴(6,378,137米),b是WGS84椭球(6,356,752.3142米)的半短轴。将第一个公式插入第二个公式,并根据x,y,z,u,v,w求解t。这是一个二次方程,因此您有两种解决方案:一种用于进入地球,另一种用于再次离开地球(例如中微子会发生这种情况)。选择距离最短的解决方案。这给
t = -(1/(b^2 (u^2 + v^2) + a^2 w^2)) * (b^2 (u x + v y) + a^2 w z + 1/2 Sqrt[
4 (b^2 (u x + v y) + a^2 w z)^2 -
4 (b^2 (u^2 + v^2) + a^2 w^2) (b^2 (-a^2 + x^2 + y^2) + a^2 z^2)])
将此值插入第一个方程式以获得相交点。
对于远而不是非常远的光线(例如,来自太阳但不来自太阳系外部),请以粗略估算到达地球所需的时间T(以秒为单位)开始:您可以例如,使用(x,y,z)到地球中心的距离。修改起始坐标(x,y,z)以考虑这段时间内地球的自转量:这会将起始坐标更改为
(x*c + y*s, -x*s + y*c, z)
(该点似乎向后移动),其中c和s是0.000072921150 * T弧度的正弦和余弦。计算从此更新位置开始的光线的交点。由于使用了估计的时间,您可能会相差10米左右。如果这很重要,请基于该交点重新估计经过的时间,并使用新的T值重复计算。