将ECEF转换为LLA的不同方法的特征


12

我正在尝试将以(0,0,0)为中心的X,Y,Z中定义的ECEF(对地,地球固定)坐标转换为LLA(纬度,经度,海拔)。我在互联网上找到了几种方法(请告诉我是否有更好的方法)。在第3-4页的文档中对此都有明确描述:

http://www.microem.ru/pages/u_blox/tech/dataconvert/GPS.G1-X-00006.pdf

一种使用迭代方法,另一种是封闭形式的解决方案。我想知道我的应用程序使用哪种方法。两个相关的标准是速度(计算时间)准确性。算法并不难实现,但是我不认为将两者进行比较很简单...例如,我觉得准确度会因输入的ECEF坐标而异。

那么,有没有人对每种方法有更多的信息?如果能得到更快的结果(猜测封闭形式)和我可以期望的每一个结果大致准确(即,我可以期望我的答案在实际LLA的几米之内,或者沿着这些思路,那将是很棒的) 。


Answers:


10

可以将两者进行比较。 在大多数应用程序中,我怀疑第二(直接)方法将是首选。

准确度第一(迭代)方法的依赖与你所做的计算,当你决定停止迭代的准确性。因此,对于所有输入都有效的所有输入,它可以像第二种方法一样精确(第一种方法仅适用于地面高度,不适用于天文高度)。

哪个更快取决于编程环境,计算体系结构以及所需的精度。(在我使用Mathematica进行的测试中,第二种直接方法实际上是第一种方法的两倍,实际上,无论迭代方法所容许的误差有多大。)因为这两种方法的计算量大致相同,但是首先必须至少迭代一次,但实际上可能会变慢。如果您仅在海平面(h = 0)上进行转换,则迭代方法可能会更快一些,但差异不会很大(我将对双重优势感到惊讶)。

顺便说一句,请注意“封闭式”(对于第二种方法)有点欺骗性:在计算高度h时,您需要根据刚刚计算的纬度(phi)获得曲率半径N。为此,请使用上一节中找到的N的公式。

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.