将地球近似为一个球体有多精确?


63

将地球近似为球体时,会遇到什么程度的误差?具体来说,当处理点的位置以及例如点之间的大圆距离时。

与椭球相比,是否有关于平均和最坏情况误差的研究?我想知道如果为了简化计算而选择球体会牺牲多少精度。

我的特定场景涉及直接映射WGS84坐标,就好像它们是完美球体上的坐标(其平均半径由IUGG定义)一样,无需任何变换。


您是对球形模型特别感兴趣还是对椭球模型感兴趣?我认为在球体和椭圆形之间,误差的数量会相差很大。
杰伊·劳拉

2
相关分析出现在此回复中。但是,要获得问题的答案,您需要指定如何将地球近似为一个球体。使用了许多近似值。它们都等于给出函数f'= u(f,l)和l'= v(f,l),其中(f,l)是球体的地理坐标,而(f',l')是球体的地理坐标椭球。请参见Bugayevskiy&Snyder的Map投影,参考手册中的第1.7节(“旋转的椭球到球体表面的变换...”)。泰勒和弗朗西斯[1995]。
ub

这类似于关于Google / Bing EPSG 900913投影的早期辩论(使用WGS84坐标,但投影时好像是在球体上),并且该错误可能是EPSG最初拒绝该投影直到承受开发人员压力的原因。不想过度分散您的注意力,继续进行一些辩论可能为wubher提供的出色链接中的信息增加了更多的广度。
MappaGnosis

@ Jzl5325:是的,我的意思是说是一个严格的领域,而不是椭圆形,编辑了这个问题以提供更多的背景信息。
杰夫·布里奇曼

1
我认为您应该阅读以下内容:en.wikipedia.org/wiki/Haversine_formula

Answers:


83

简而言之,根据问题点的不同距离可能会误差高达22 km或0.3%。那是:

  • 可以用几种自然的,有用的方式来表示误差,例如(i)(残差)误差,等于两个计算距离之间的差(以公里为单位),以及(ii)相对误差,等于该差除以“正确”(椭圆形)值。为了产生便于使用的数字,我将这些比率乘以1000以表示相对误差(以千分之几为单位)

  • 错误取决于端点。 由于椭球和球体的旋转对称性以及它们的双边(南北向和东西向)对称性,我们可以将端点之一沿北半球的本初子午线(经度0)放置(纬度在0到90之间) )和东半球的另一个端点(经度在0到180之间)。

为了探究这些依赖关系,我绘制了(lat,lon)=(mu,0)和(x,lambda)的端点之间的误差,作为-90至90度之间的纬度x的函数。(所有点的名义上都是椭圆高度为零。)在图中,行对应于{0、22.5、45、67.5}度的mu值,列对应于{0、45、90、180}的lambda值。度。这使我们对各种可能性有了一个很好的认识。不出所料,它们的最大大小大约是长轴(大约6700 km)的展平度(大约1/300)或22 km。

失误

残留错误

相对误差

相对误差

等高线图

可视化错误的另一种方法是固定一个端点,让另一个端点变化,以勾勒出出现的错误。例如,此处是等高线图,其中第一个端点位于北纬45度,经度0度。和以前一样,误差值以千米为单位,正误差表示球面计算太大:

等高线图

当包裹在全球各地时,可能更容易阅读:

地球图

法国南部的红点显示了第一个终点的位置。

作为记录,以下是用于计算的Mathematica 8代码:

WGS84[x_, y_] := GeoDistance @@ (GeoPosition[Append[#, 0], "WGS84"] & /@ {x, y});
sphere[x_, y_] := GeoDistance @@
   (GeoPosition[{GeodesyData["WGS84", {"ReducedLatitude", #[[1]]}], #[[2]], 0}, "WGS84"] & /@ {x, y});

和以下绘图命令之一:

With[{mu = 45}, ContourPlot[(sphere[{mu, 0}, {x, y}] - WGS84[{mu, 0}, {x, y}]) / 1000, 
                   {y, 0, 180}, {x, -90, 90}, ContourLabels -> True]]


21

我最近探讨了这个问题。我想人们想知道

  1. 我应该使用什么球形半径?
  2. 产生的错误是什么?

近似质量的合理度量是大圆距离中的最大绝对相对误差

err = |s_sphere - s_ellipsoid| / s_ellipsoid

在所有可能的点对上评估最大值。

如果平坦度f小,则使err最小的球面半径非常接近(a + b)/ 2,并且由此产生的误差约为

err = 3*f/2 = 0.5% (for WGS84)

(用10 ^ 6个随机选择的点对评估)。有时建议使用(2 * a + b)/ 3作为球半径。这导致误差稍大,err = 5 * f / 3 = 0.56%(对于WGS84)。

球面近似最大长度被低估的测地线位于极点附近,例如(89.1,0)至(89.1,180)。其长度被球面近似最高估计的测地线是赤道附近的子午线,例如(-0.1,0)至(0.1,0)。

附录:这是解决此问题的另一种方法。

在椭球上选择成对的均匀分布点。测量椭球距离s单位球面上的距离t。对于任何一对点,s / t给出等效的球体半径。将所有对点上的该数量平均,得出平均等效球体半径。究竟应该如何计算平均值存在一个问题。但是我尝试过的所有选择

1. <s>/<t>
2. <s/t>
3. sqrt(<s^2>/<t^2>)
4. <s^2>/<s*t>
5. <s^2/t>/<s>

所有结果均在IUGG建议的平均半径R 1 =(2 a + b)/ 3的几米之内。因此,该值可最大程度地减少球面距离计算中的RMS误差。(但是,与(a + b)/ 2 相比,它导致的最大相对误差略大;请参见上文。)鉴于R 1可能会用于其他目的(面积计算等),因此有充分的理由坚持使用此选择进行距离计算。

底线

  • 对于任何形式的系统性工作,在距离计算中可以容忍1%的误差,请使用半径R 1的球体。最大相对误差为0.56%。当您用球体近似地球时,请始终使用此值。
  • 它需要额外的精度,解决椭球测地线问题。
  • 对于封底计算,请使用R 1或6400 km或20000 / pi km或a。这些导致最大相对误差约为1%。

另一个附录:您可以通过将μ= tan -1((1- f3/ 2tanφ)(穷人的矫正纬度)用作大圆计算中的纬度,从大圆距离中挤出更多的精度。这样可以将最大相对误差从0.56%降低到0.11%(使用R 1作为球体的半径)。(与直接计算椭球测地距离相对,尚不清楚采用这种方法是否真的值得。)

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.