射线与地球表面的交点


11

说我有一个射线矢量,它起源于太空中的某个地方。一个例子可能是来自太阳的光线。如何计算射线与地球表面之间的交点(如果存在)?我正在使用笛卡尔坐标(ECEF),并且希望将地球的椭球几何纳入计算中。

Answers:


12

很简单,但很混乱。

因为您在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米),bWGS84椭球(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值重复计算。


哇。非常感谢您提供非常详细的答案!
2012年

这个问题似乎与另一个问题过于接近:gis.stackexchange.com/questions/86031/…但是我不使用ECEF。可以用类似的方式@whuber解决吗?Thx
alvarolb 2014年

1
示出了如何ECEF和(LON,经纬度,高度)之间进行转换@alvarolb的引用在给出gis.stackexchange.com/questions/20714
whuber

如果不从测地线转换为EFEC,然后再返回到测地线,就无法直接计算?
alvarolb 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.