如何计算给定大地纬度下的地球半径?


19

(我看到Wikipedia上有一个方程式可以完全满足我的要求,但没有参考文献。我无法确认该方程式的有效性!)

我已经了解了地心纬度和大地纬度之间的区别。

假定已知的半大半圆a和半小半圆b半径。如何在给定的大地纬度下计算半径?

我需要某种专家确认(派生,派生链接,专家确认,解释等)。

Answers:


25

这个问题假设地球是椭圆形的。通过围绕其短轴旋转椭圆(按照惯例垂直绘制)来获得其参考表面。这样的椭圆只是一个水平拉伸了一个因子a和垂直拉伸了一个因子b的圆。使用单位圆的标准参数化,

t --> (cos(t), sin(t))

定义余弦和正弦),我们获得一个参数化

t --> (a cos(t), b sin(t)).

(此参数化的两个组成部分描述了围绕曲线的行程:它们在笛卡尔坐标中指定“时间” t处的位置。)

测地纬度˚F,任何点的是角度“向上”品牌于赤道面。当a不同于b时f的值不同于t的值(沿赤道和极点除外)。

数字

在这张照片中,蓝色曲线是这种椭圆的一个象限(与地球的偏心率相比,被大大放大了)。左下角的红点是其中心。虚线将半径指定为表面上的一点。它的“向上”方向以黑色部分显示:根据定义,该点垂直于该点的椭圆。由于夸张的偏心率,很容易看到“上”不平行于半径。

用我们的术语来说,t与半径相对于水平线的夹角有关,f与黑色段的夹角有关。(请注意,可以从此角度查看表面上的任何点。这使我们能够将tf都限制在0到90度之间;它们的余弦和正弦为正,因此我们不必担心负公式中的平方根。)

诀窍是要根据ft参数化转换为1 ,因为就t而言,半径R易于计算(通过勾股定理)。它的平方是点组成部分的平方和,

R(t)^2 = a^2 cos(t)^2 + b^2 sin(t)^2.

为了进行这种转换,我们需要将“向上”方向f与参数t相关联。该方向垂直于椭圆的切线。根据定义,曲线的切线(表示为矢量)是通过区分其参数化获得的:

Tangent(t) = d/dt (a cos(t), b sin(t)) = (-a sin(t), b cos(t)).

(微分计算变化率。我们在曲线周围移动时位置的变化率当然是速度,并且始终沿曲线指向。)

顺时针旋转90度以获得垂直线,称为“法线”矢量:

Normal(t) = (b cos(t), a sin(t)).

该法向矢量的斜率等于(a sin(t))/(b cos(t))(“越过上升”),也是其与水平方向所成角度的正切值

tan(f) = (a sin(t)) / (b cos(t)).

等效地,

(b/a) tan(f) = sin(t) / cos(t) = tan(t).

(如果您对欧几里得几何学有很好的了解,则可以直接通过椭圆的定义获得这种关系,而无需经历任何trig或演算,只需识别出分别由ab组合的水平和垂直扩展具有改变的效果即可。所有斜率均以此因子b / a表示。)

再看一下R(t)^ 2的公式:我们知道ab-它们确定椭圆的形状和大小-因此我们只需要找到cos(t)^ 2和sin(t)^ 2就f而言,上述方程式使我们可以轻松完成:

cos(t)^2 = 1/(1 + tan(t)^2) 
         = 1 / (1 + (b/a)^2 tan(f)^2) 
         = a^2 / (a^2 + b^2 tan(f)^2);
sin(t)^2 = 1 - cos(t)^2 
         = b^2 tan(f)^2 / (a^2 + b^2 tan(f)^2).

(当tan(f)无限大时,我们处于极点,因此在这种情况下只需设置f = t。)

这是我们需要的连接。 将cos(t)^ 2和sin(t)^ 2的这些值代入R(t)^ 2的表达式,并简化为

R(f)^2 = ( a^4 cos(f)^2 + b^4 sin(f)^2 ) / ( a^2 cos(f)^2 + b^2 sin(f)^2 ).

一个简单的变换表明,该方程与Wikipedia上的方程相同。因为a ^ 2 b ^ 2 =(ab)^ 2和(a ^ 2)^ 2 = a ^ 4,

R(f)^2 = ( (a^2 cos(f))^2 + (b^2 sin(f))^2 ) / ( (a cos(f))^2 + (b sin(f))^2 )

+1 ..除了我认为最终公式的括号不合适...不(b^4 sin(f))^2应该更改为(b^4 sin(f)^2)
Kirk Kuykendall,2012年

真的很高兴有一些有关此主题的专家=)。
Trevor Boyd Smith

可以将Geogebra文件(html)发布到此站点吗?我有一个主要垂直半径,可以直观地显示发生了什么。

您可以导出.png格式的原始文件@Dan:使用“文件” |“导出”对话框。我建议使用大字体(似乎16或18磅效果很好),并尽可能先放大图像。
ub

我认为交互性将会丢失。该演示演示了如何改变半径和感兴趣的纬度如何更改属性。

3

有趣的是,我的数学文盲解决方案仅用了5分钟的思考和编码就能完成工作,是不是必须要考虑扁平系数而不是一个完美的椭圆模型?

        double pRad = 6356.7523142;
        double EqRad = 6378.137;                      
        return pRad + (90 - Math.Abs(siteLatitude)) / 90 * (EqRad - pRad); 

1
其中pRad是极半径,而EqRad是赤道半径。
Stefan Steiger

这是我唯一能读的答案。它似乎为我工作。
肖恩·布拉德利

1
我看到您正在对极点和赤道之间的半径进行线性插值。尽管没有理由相信线性插值是准确的,但鉴于地球的平缓,我将其视为对地球“足够好”。顺便说一句,我认为阅读等效项稍微容易些return E + (P - E) * Abs(Lat) / 90,因此不必90 - ...在公式中使用。
制造商史蒂夫

2

在此处输入图片说明

至少那是我在美国数据分析和评估中心(DAAC)中为国防部(DoD)高性能计算现代化计划(HPCMP)Wiki找到的公式。它确实说他们从维基百科的条目中大量借用。尽管如此,他们保留该公式的事实还是很重要的。


您可以提供内容的链接吗?
Trevor Boyd Smith

其中φ是大地纬度,a(半长轴)和b(半短轴)分别是赤道半径和极半径。var a = 6378137; // m var b = 6356752.3142; //米 en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes en.wikipedia.org/wiki/World_Geodetic_System
Stefan Steiger
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.