@Paul
You can see the quality of Strava's elevation in the first graph posted in this thread. It's clearly using the technique to process the reported data from users (and they also claim to do so), but their algorithm is so far not that great causing errors much larger than necessary as seen in the graph. It also takes quite a lot of rides, probably from many different riders, and a lot of waiting before ride-derived elevation data appears. In the long term Strava could be the best alternative for this application, but so far the file I have derived from gathered rides is of much higher quality than what I get out of Strava at this particular route.
@Anders Torger
Since you've discovered that Strava has good elevation data, why don't you change your "distribute the raw GPX file" desire from "distribute it via plotaroute" to "distribute it via Strava"?
Wholly relying on SRTM for elevation currently is, for the lack of a better word, unacceptable. There are just too many things that rely on the elevation data to not do better. One of those things is the virtual partner advanced settings. Being able to adjust the virtual partner is the only reason I'm a premium member of PAR. Lately, I've tried to tweak the settings to better model my riding. The PAR elevation data quality makes my task impossible.
The reason I can be so certain about my reference curve is quite accurate is that I have over 80 high resolution LIDAR fixpoint retrieved from the local government surveyor database over that course that I can anchor the barometric measurements too, and I can see the correlation of those measurements is very good once anchored.
However, the fewer fixpoints one have, the harder it becomes to merge the barometric measurements as there is quite significant drift over this 4 - 5 hour ride and altimeters have some lag that vary, so there is drift horizontally too.I was expecting vertical drift, but the lag horizontally which can be as much as +/-80 meters I did not know about before this investigation.
Many bike computers can nowadays present info about upcoming climbs, so you can see how steep a climb is and how long it is left.I think garmin calls their feature "ClimbPro". It's pretty cool, but here in Sweden its basically unusable as the elevation curves you get from typical services is just way off where the climb starts and ends.
The reason I want nice elevation profile for my race is to be able to provide this "service" to the participants that they can use the climb feature of their bike computers and trust what they see.
Reliable Permit Solutions, LLC
I added proof of concept code here to anyone interested. I've used this to calculate a elevation curve for a local race I'm organizing, data from that is included as a demo:
https://github.com/atorger/gpx-elevation
Way beyond my knowledge or need, but makes for very interesting reading, Anders!
Thanks for all the additional information Anders, that's very helpful.
Here is another plot for curiosity, it shows the raw measurements from various bike rides with barometric GPS (no post-processing corrections applied), some are shorter segments as they haven't followed the course all the way round. This is basically what Strava uses as input, and also what I have used to derive my reference. This plot also shows all the LIDAR fixpoints I have been using to properly anchor.
[IMAGE REMOVED DUE TO SIZE]
What you can see here is that with few exceptions, the shape of the barometric measurements track quite well, and at this zoomed out scale there's not too much drift either. However, the absolute elevation is often way off, which is expected as barometric altimeter has no notion of absolute value. Even with this it seems like most of the measurements are quite close in absolute level as well.
[IMAGE REMOVED DUE TO SIZE]
Let's look at a zoomed in section:
[IMAGE REMOVED DUE TO SIZE]
Although noise differs etc, the similarity is quite remarkable. When I have derived the reference I haven't just anchored them and made an average, but identified the largest group of curves with high similarity and take an average from that, to avoid taking the outliers into account, because there are always a few of those. I have in this example so many anchor points that my merging code doesn't need to do much guesswork. Without any fixpoints there would have to be much more guesswork but it still seems possible to get quite close to the reference as there is a clear cluster of tracks around that.
A couple of other observations, which you probably know about, but anyway here it comes:
Ride With GPS has introduced a flatten-elevation feature so that users that want can manually correct the elevation at tunnels and bridges. Actually this information could be automatically retrieved from openstreetmap (tunnels and bridges are marked with tags), not sure if this is a good API to extract them though. They do not support to replace the elevation completely from an imported file though.
Apart from not detecting bridges and tunnels where they exist, a typical issue with the elevation databases is that resolution is not high enough in terms of alignment. 100+ meter spacing or so would be quite okay if it was just along the road. However when a road passes nearby a mountain with somewhat steep sides it's often the case that the elevation database have the mountain elevation smeared over a bigger area so it seems like the road is passing over it rather on the side, the false peaks around 12 km in the route is probably that type of issue. This is impossible to do anything about other than having higher resolution data. Fortunately it doesn't happen on all routes.
I'm a mapping nerd, openstreetmap contributor and a software engineer, plus a race organizer, so I'm naturally interested in this topic, but I also do understand that the value-add is not huge compared to many other features that are much easier to implement, so you have my full understanding. The big data approach Strava is doing is super-interesting from a software engineering standpoint, but they are of course in a special position in terms of data gathering and probably development resources. They still seem to have quite some way to go. Garmin could do the same type of processing as they have a huge wealth of data from hardware they know the exact capabilities of, but they have always been weak on the software side.
The reason I can be so certain about my reference curve is quite accurate is that I have over 80 high resolution LIDAR fixpoint retrieved from the local government surveyor database over that course that I can anchor the barometric measurements too, and I can see the correlation of those measurements is very good once anchored. However, the fewer fixpoints one have, the harder it becomes to merge the barometric measurements as there is quite significant drift over this 4 - 5 hour ride and altimeters have some lag that vary, so there is drift horizontally too. I was expecting vertical drift, but the lag horizontally which can be as much as +/-80 meters I did not know about before this investigation.
Many bike computers can nowadays present info about upcoming climbs, so you can see how steep a climb is and how long it is left. I think garmin calls their feature "ClimbPro". It's pretty cool, but here in Sweden its basically unusable as the elevation curves you get from typical services is just way off where the climb starts and ends. The reason I want nice elevation profile for my race is to be able to provide this "service" to the participants that they can use the climb feature of their bike computers and trust what they see.
I have no detailed knowledge of JAXA myself, I just have heard people speaking about it a bit, I'm not sure if any of the popular services actually use it. I was not aware that it included buildings and trees, that's a bummer. But is it really *that* high resolution that it would make a practical difference?
Here's my reference GPX file: https://www.storumangravel.se/files/storuman-gravel-116km-v1.gpx
Same route at plotaroute: https://www.plotaroute.com/route/1256451?units=km
Strava: https://www.strava.com/routes/2997036907876487582
RideWithGPS: https://ridewithgps.com/routes/40870575
Garmin Connect: https://connect.garmin.com/modern/course/54891056
Same area as presented in Swedish government where one can click and get LIDAR fixpoints (not 100% sure this website is accessible abroad). The high resolution LIDAR data as shown in this map is not open data, but there is lower resolution that is. "Stealing" 80 or so mouse clicks from the map for a GPX to a non-profit race like I've done here won't land me in jail though, I hope :-):
https://minkarta.lantmateriet.se/plats/3006/v1.0/?e=591317&n=7222385&z=14&mapprofile=bergodal&background=3&boundaries=false