首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓气压计高度读数是错的吗?

安卓气压计高度读数是错的吗?
EN

Stack Overflow用户
提问于 2015-07-21 14:16:55
回答 3查看 5.7K关注 0票数 8

我一直试图实现一个功能,以获得正确的高度,基于气压计传感器从安卓银河S5手机。唯一的问题是,我不认为它是准确的。根据我特定位置的http://www.whatismyelevation.com,它显示我的海拔在114米左右。然而,在我的手机上,它显示它是210米基于气压计传感器。不过,我在一幢高楼里,但我不认为它有100米高。

以下是我的简单代码:

代码语言:javascript
复制
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.configure_settings);
    context = getApplicationContext();

    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    sensors = mSensorManager.getSensorList(Sensor.TYPE_PRESSURE);

    if (sensors.size() > 0)
    {
        sensor = sensors.get(0);
        mSensorManager.registerListener(this, sensor,
                SensorManager.SENSOR_DELAY_NORMAL);
    }

}

@Override
public void onSensorChanged(SensorEvent event)
{
    float pressure = event.values[0];
    altitude = String.valueOf(SensorManager.getAltitude(
            SensorManager.PRESSURE_STANDARD_ATMOSPHERE, pressure));

}

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-21 20:30:39

首先:气压计非常精确,但不准确。如果你把10部Android手机放在一张桌子上,你可以发现设备之间的气压差高达3毫巴。这是一个错误的来源。

第二:不同的组将不同地定义“高度”,所以请确保使用相同的定义。例如,在Location类中,getAltitude被定义为

获得高度,如果可用,以米以上的WGS 84参考椭球。

http://developer.android.com/reference/android/location/Location.html#getAltitude()

第三,天气对气压计读数的影响高达40毫巴。如果你想从气压计中得到一个更准确的高度读数,你将不得不抵消当前天气的影响。大气可以改变局部压力高达每小时1-2毫巴(在极端情况下)。

第四:使用智能手机中的气压计还不可能获得完全准确的高度读数。目前还没有人解决这个问题--例如,仅仅依靠气压计就不足以实现地面探测。

顺便说一句,我是PressureNet的开发者--我从智能手机上收集了超过20亿份压力读数,我每天都会看到这些错误。

最后:如果你想达到“高度”的值,气压计提供给你的读数在使用之前需要有意义的解释。在默认情况下,从每个晴雨表读取的每个值都是“错误的”;根据您的确切需求,您必须做特定的工作才能使它为您工作。

github.com/cbsoftware/pressurenet

票数 6
EN

Stack Overflow用户

发布于 2020-07-11 13:46:10

智能手机式气压传感器的绝对精度很低.也就是说,当你处于静止状态时,读取的值可能不等于你从另一个源读取的值。

然而,它很擅长测量气压的变化.因此,如果你阅读了一个高度的气压,然后迅速移动到另一个高度,你将得到一个相当准确的海拔差异测量(前提是你使用正确的海拔公式,例如。https://physics.stackexchange.com/questions/333475/how-to-calculate-altitude-from-current-temperature-and-pressure)

也就是说,如果你知道你所在地点的绝对高度,你可以为另一个位置计算出一个相当精确的值。

同样重要的是要记住,由于天气的变化,任何位置的气压都是可变的。在多风的环境中,您通常会发现值不太准确,除非对值进行一些时间平均或低通滤波。

当谈到谷歌、全球定位系统或其他来源所提供的高度值时,他们通常会将某个位置的高度指为地球表面的理想化形状。这种形状通常被称为大地水准面(球体形状非常接近我们地球的实际形状)。地球的实际表面,无论是陆地还是海洋,在大多数地方都会偏离理想的大地水准面。对于在上一个冰期被厚厚的冰层覆盖的地区,陆地可能仍然比大地水准面参考值低30-50米。在这里可以找到更多的细节:https://www.esri.com/news/arcuser/0703/geoid1of3.html

对于正常的测绘目的,高度被引用某种形式的常数。因此,当接近海平面时,LAT (最低天文潮汐)的== 0和当地地图对海拔的参考就会被传统地引用到这个水平。还使用了其他更“现代”的参考资料。谷歌,基于卫星的全球定位系统等不使用这个参考,因此你从他们得到的高度和你计算的高度(或阅读地图)当地一般不匹配。

票数 2
EN

Stack Overflow用户

发布于 2020-05-18 18:17:31

与气象站压力传感器/算法相比,三星S7智能手机上的Android8.1只是一份报告。

代码语言:javascript
复制
Samsung S7 phone=970 millibars
Weather station=1010 millibars (at the same time)

这与这两个数值的算术平均值990毫巴相差约+/- 2%。

然而,GPS对高度的误差限制约为3%。在大约5分钟的时间内,消费者级全球定位系统报告说,附近山顶的高度一般在1080英尺到1150英尺之间,孤立的读数比那些低和高。算法的平均值为1115英尺,的上下值约为1115英尺的+/- 3%。国家大地测量图显示,山顶的官方高度为1110英尺,非常接近这两个值的平均值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31541658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档