I'm trying to create a simple labeled contour line layer for a topographical map in QGIS. I've created a new layer for the contours using "Raster > Extraction > Contours" on a raster DEM GeoTIFF. The original data is in meters, and I want the contours to be at reasonable intervals in feet, so I've taken the newly created vector layer and added a field which converts all the data points in meters to feet.

Great, my labels can now show feet... but the contours have already been created at intervals based on meters, which are now sort of arbitrary. Adding labels at this point yields results like "5,668 ft, 5,889 ft" etc.

At this point, I don't know how to redefine the placement of contours in this layer, or to create a new contour layer that references the newly created field with converted units. How can I tell QGIS that I want this layer to draw contours from the new "ELEV-FT" field I've created w/ converted elevations, and how can I modify the "offset from zero" parameter that determines the starting elevation of the contour intervals?

To get even more fundamental: How in QGIS can I create contours at regular, whole number intervals in feet from a DEM raster source that has a base elevation of 1,643.531982 meters?

  • What is your original data? Have you tried re-projecting the original data to a foot-based coordinate system?
    – Pointdump
    Apr 7, 2022 at 21:17
  • 1
    You can make your contours in intervals of meters that convert to whole feet. For example, 15.24 m is 50 feet. Play around with the offset parameter to establish a datum (lowest contour) that is a whole number in ft.
    – Matt
    Apr 7, 2022 at 21:37
  • @Pointdump I have not tried this. I'm very much a beginner w/ QGIS and GIS in general. Right now I'm working mainly off of LIDAR DEMs from the Texas Natural Resources Information System, which uses the EPS:6342 CRS (apologies if this is an insufficient reference to indicate the CRS being used). Do you happen to have a quick answer for how I would go about finding the appropriate Imperial Unit CRS to swap to? I totally understand if the answer is that I just need to read up more on the subject. Thanks!
    – Kyle
    Apr 8, 2022 at 5:50
  • @Matt Thanks! I'd considered that possibility, and I think it's a workable solution to pre-factor for a nice round starting point for the base elevation, but I'm hopeful that there's a way to alter this after extracting the elevation contours from the raster file. Otherwise, I'd have to make sure I had that number set right, and if I change my mind about the interval, the starting point, or anything else, I'm just recreating the contours from "scratch" each time. Seems like there ought to be a way to adjust some of these values later?
    – Kyle
    Apr 8, 2022 at 6:25
  • 1
    Kyle - why do you want to change contours after you created them? Seems to make no sense to me. A meaningful workflow includes to think about what result you want before you start playing around. If you change your mind, you should start from scratch - or create a model for your whole workflow. But that is a bit of advanced QGIS use. So the proposal by @Matt seems to be the solution to your question (maybe you want to post it as such).
    – Babel
    Apr 8, 2022 at 8:02

1 Answer 1


If you just want to play around and try different settings before creating actual countours, use the layer rendering style Contours, available since QGIS 3.14 - see also the documentation. This creates contours as a style, not actual geometries. You can make different settings and the contours will change in real time (as long as your machine has enough power to render it in real time for the selected extent - otherwise you have to wait a bit or zoom in).

Like this you can easily find out what fits your needs and when satisfied use the interval to create actual contours (vector layer).

enter image description here

  • Awesome! Very handy that the contour style gives you all those controls. Thanks, Babel.
    – Kyle
    Apr 8, 2022 at 17:03

Your Answer

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

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