java-如何计算给定高度和压力下的海平面压力

java-如何计算给定高度和压力下的海平面压力,第1张

概述我正在写一个显示海拔高度的表盘.使用SensorManager.getAltitude(seaLevelPressure,currentPresure)计算海拔高度.但是为了初始化它,我需要在海平面施加压力.不幸的是,没有SensorManager.getSeaLevelPressure(currentPressure,currentAltitude).为此,我找到了以下公式(请参见http

我正在写一个显示海拔高度的表盘.使用SensorManager.getAltitude(seaLevelPressure,currentPresure)计算海拔高度.

但是为了初始化它,我需要在海平面施加压力.不幸的是,没有SensorManager.getSeaLevelPressure(currentPressure,currentAltitude).

为此,我找到了以下公式(请参见http://rechneronline.de/barometer/)

private float calcSeaPressure(float pressure, int altitude) {  float temperature = 9 + 273.15f;  float tempGradIEnt = 0.0065f;  float v3 = temperature + tempGradIEnt * altitude;  float sealevelPressure = (float) (pressure / Math.pow((1 - tempGradIEnt * altitude / v3), .03416f / tempGradIEnt));  sealevelPressure = (float) Math.round(sealevelPressure * 100) / 100;  return sealevelPressure;}

但是,似乎这种算法与SensorManager.getAltitude中使用的算法不太适合.如果我做:

public voID setCurrentAltitude(int currentAltitude) {  sealLevelPressure = calcSealevel(currentAltitude,currentPresure);  altitude = SensorManager.getAltitude(seaLevelPressure, currentPresure)}

计算出的海拔高度与给定的currentAltitude不同.对于小的值(<1000m),该差是可接受的.但是例如4000m,相差250m,这不再是可以接受的.

现在我的问题是:我该如何计算海平面,以便setCurrentAltitude()不会报告不同的值?

还是您知道可以用于此的其他java类?
请记住,应该计算值!

谢谢

解决方法:

如果要从海拔高度进行校准(毕竟已使用setCurrentAltitude方法),则此方法为:

public voID setCalibrationAltitudeAndPressure(float calibrationAltitude, float currentPressure) {   this.calibrationAltitude = calibrationAltitude;   this.calibrationPressure = currentPressure;}public float getCurrentAltitude(float currentPressure) {    float altitudeDifference =            sensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, currentPressure) -            sensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, calibrationPresure);    return calibrationAltitude + altitudeDifference;}

现在,您无需担心海平面压力.

校准中

您需要校准高度,并且可以为此使用GPS.它的海拔高度可能不太准确(请参阅Android: How to get accurate altitude?),但是您可以使用纬度和经度来获取以下服务中的海拔高度:https://developers.google.com/maps/documentation/elevation/,但这对在飞机上使用该应用程序的人来说并不好!

但是,如果您为此准备了一项服务,那么还不妨从一项服务中获得准确的海平面压力:http://www.worldweatheronline.com/api/marine-weather-api.aspx

总结

以上是内存溢出为你收集整理的java-如何计算给定高度和压力下的海平面压力全部内容,希望文章能够帮你解决java-如何计算给定高度和压力下的海平面压力所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1211564.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存