I am trying to get elevation graph with the Terrain profile tool on my GPS data and can't get it to work. I have GPX file from a drive. I got this imported in QGIS. I have elevation data for each point but when using the Terrain profile tool over this GPX file or the derived shape file, all I get is a flat graph. I have also tried converting my points shp to line shp file using the point to path in the toolbox but when doing so, I am loosing the elevation data Anybody can describe the steps to use effectively the point elevation data to create a profile graph?


2 Answers 2


Steps with the Profile Tool :

  • Open both the track and track_points in QGIS.

  • Open the Profile Tool plugin.

  • Select the point layer in the Layers Panel and click on Add Layer in the Profile Tool.

  • Choose the elevation field.

  • Select the track (line) layer in the Layers Panel.

  • Select selected layer in the Profile Tool in Options > Selection.

  • Wait and the plot will be created automatically.

The Profile Tool is great to use when you want to use a DEM as reference to trace profiles of polylines but with GPX files I always prefer to use qProf instead, at least on my computer the performances of the Profile Tool with big GPX files are really poor and QGIS crashes (but maybe I don't configure it right).

  • The steps described "work". Unfortunately the results isn't as accurate as wish it would be.The highest and lowest points in my file are different than the min and max value in the terrain profile. Oct 4, 2019 at 19:35
  • For the qProf, after selecting my GPX input file, I am getting stuck. When trying to "create topographic profile" I am receiving a "No defined profile" error message. Am I missing something? Does the input file need to be formatted in a specific way? Oct 4, 2019 at 19:39
  • In qProf, after loading the GPX, you have to click on Calculate profile statistics and then Create Topographic Profile. I agree with you about the Profile Tool (and also qProf), the result is most of the time not super accurate when using a GPX file as source, it always works better with a DEM. For GPX files, I'd rather use simply Google Earth and the Show Elevation Profile tool which works great.
    – Léo M
    Oct 5, 2019 at 8:40
  • Perhaps it is too late, but in case the OP or anyone else need it, the key here is to select Clamped to Terrain instead of the default option Relative to Terrain. In this way, the highest and lowest points in the resultant elevation profile will be the same as in the track_points layer.
    – Trikelians
    Jul 19, 2023 at 19:55

Since the two profile plugins you've tried aren't working very well, try this workaround.

The point of a profile tool in a GIS program is to combine two sources of geospatial data, one of which has the elevation and one which has the path (usually a DEM and a trail line).

But you have all the information you need in a single file, because your trail line has elevation data in the vertices. So you can make a profile in any graphing program. It's just a question of converting the GPX file to a compatible format.

Make the line vertices a separate layer, if they aren't already. Make sure the vertex layer has fields containing the following information:

  • distance from start of path
  • elevation
  • if you have multiple paths/trails in the same file, each trail should have a shared ID or name

Export the vertices as a CSV file and use any program with basic graphing capabilities, such as Excel or OpenOffice Calculator, to make a line graph.

  • the distance from the start of the path is the X axis of the graph
  • elevation is the Y axis of the graph

If you save the graph as an image or SVG, you can add it back into QGIS in several ways:

  • add it to the print layout
  • add it to the map canvas as an annotation
  • add it to the attribute table using a field edit widget

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.