Continuous pressure sensor recalibration
I've switched to Locus for recording my rides since Strava uses SRTM elevation data only and frequently reports erroneous elevation gain and profile. However, Locus still isn't perfect. I'm using Samsung Galaxy S3, I turned on using pressure sensor, calibrating it automatically, and I also turned on automatic altitude offset correction using geoid.
With all that on, I've seen the elevation drift 26 meters in just 76 minutes, as demonstrated by the attached Na_Lesnou_a_do_závějí.gpx (see first and last points, same location, different time, very different elevation). The other gpx shows a slightly slower drift while riding on the velodrome, but what's interesting is that there seems to be not only a difference in offset, but also in scale — when I exited the velodrome the altitude was ~11m lower than when I entered, but then I climbed a hill and it appeared ~15m higher than when I crossed it on my way to the velodrome.
This suggests that calibrating the pressure sensor only once every 2 hours might not be sufficient. Would it be possible to continuously adjust the calibration?
I also had this idea which may or may not be relevant to the continuous recalibration: Use the pressure sensor to record relative elevation changes only (i.e. don't calibrate it at all), and then post-process the recorded track by (sort of) amplitude modulating pressure changes on top of smoothed SRTM elevation profile. This should eliminate the drift altogether. The first implementation that came to my mind was taking a sliding window (say a minute or two of the record) of both pressura data and SRTM data, averaging it and subtracting the averages to find out the offset for the middle point of the window. Then just apply these offsets to the more detailed pressure data to get a corrected elevation profile. I'm not sure if average would be best, but it may work. :-)