如何根据平均海平面计算海拔高度

Posted

技术标签:

【中文标题】如何根据平均海平面计算海拔高度【英文标题】:How to calculate the altitude above from mean sea level 【发布时间】:2012-03-04 04:28:12 【问题描述】:

我试图找到如何使海拔高于平均海平面。 此时,它从椭球返回高度。 所以,任何人都知道改变高度值的公式或计算 从椭球到平均海平面的高度值。

感谢大家的帮助

【问题讨论】:

【参考方案1】:

正如您所提到的,GPS 将高度作为与 WGS84 参考椭球体的偏移量返回,但大多数人希望看到平均海平面 (MSL),而这两者经常不一致。最常用的方法是在表格中查找 delta,然后根据 GPS 的高度和表格中的 delta 使用它来计算 MSL。

这里有一些 java 代码:https://github.com/NASAWorldWind/WorldWindJava/blob/develop/src/gov/nasa/worldwind/util/EGM96.java。它使用 Worldwind 的其他功能并没有那么复杂,因此您可能可以使用大部分未修改的代码,如果您使用 Java 并且它们的许可证满足您的需求,则可以调整其余代码。

它使用来自 EGM 96 数据集的信息(如果您有兴趣,请链接 here——尽管并非绝对必要),您可以在此处下载:https://github.com/jleppert/egm96/blob/master/WW15MGH.DAC。您将需要 WW15MGH.DAC 文件。它是一个包含 16 位有符号整数的二进制文件。您可以使用 Java 示例向您展示如何访问文件中的数据。如果那是您的事,他们还提供了一个 Fortran 示例。 :-)

这是他们自述文件中的文件信息。

15 分钟全球二元大地水准面高度文件的数据说明:


---- 文件:WW15MGH.DAC

文件的总大小为 2,076,480 字节。该文件已创建 使用 INTEGER2 数据类型格式并且是未格式化的直接访问 文件。文件中的数据从北到南排列在记录中。 文件中有 721 条记录,从 90 N 处的记录 1 开始。 文件上的最后一条记录位于南纬 90 度。对于每条记录,有 是 1,440 个 15 弧分的大地水准面高度,按经度从西到 东从本初子午线 (0 E) 到西边 15 角分 本初子午线 (359.75 E)。在文件中,大地水准面高度以单位为单位 厘米。在检索文件中的 Integer2 值时,除以 100,这将产生一个以米为单位的大地水准面高度。

【讨论】:

链接不起作用。那么你知道有什么函数可以将android的LocationManager中的海拔值(WGS84)转换为海拔海平面值吗? 更新链接@user924

以上是关于如何根据平均海平面计算海拔高度的主要内容,如果未能解决你的问题,请参考以下文章

1565

洛谷P1565 牛宫

高度和阴影

如何在 runkeeper 应用程序中计算海拔高度

由高度场求法线

计算R中具有纬度,经度和海拔高度的两点之间的距离[关闭]