I've been seeing a discrepancy between the watch-calculated mean sea level pressure and true calculations based on the watch-observed ambient pressure. Based on the actual mean sea level pressure in the area, the value returned from meanSeaLevelPressure appears inaccurate. Here are more specific details from the simulator using simulated data:
- Activity.Info.meanSeaLevelPressure returns a value of 102154.98 Pa (This is the seemingly incorrect value, should be 101045 Pa).
- Activity.Info.ambientPressure returns a value of 87026.59 Pa
- Activity.Info.altitude returns a value of 1242.70 m
- SensorHistory.getTemperatureHistory (the last value in the iteration) returns a temperature of 25.5 C
Using that ambient pressure (87026 Pa) and altitude (1242 m), the mean sea level pressure should be 101045 Pa1, or 99957 Pa2 with a Temperature correction. The returned meanSeaLevelPressure is substantially off using the Garmin API. There should be only a couple areas where that error could occur
- The altitude used in meanSeaLevelPressure is substantially (roughly 100m) different than that of Activity.Info.altitude .
- The temperature correction used in meanSeaLevelPressure is different than returned by SensorHistory.getTemperatureHistory , however the documentation of meanSeaLevelPressure only suggests it is corrected for altitude
- The formulas used to calculate meanSeaLevelPressure in the API have an error.
Does anyone have any more insight into the specifics of the calculations and data Activity.Info.meanSeaLevelPressure utilizes? I'm consistently seeing errors in my watch face from actual measurements to the displayed data using the API data. Is there anything I may be missing?
References for calculations:
1)Elevation, Station (QFE) and Sea Level (QNH) Pressure Calculator (sensorsone.com)
2) Mean sea level pressure calculator (converter) (wind101.net)