Exporting DEM-derived rasters to CSV from QGIS?

If you really want a text-based raster..

whuber is quite right about a text-representation of raster data being inefficient. But at the same time, it can help to "see the data" when it's represented in text, especially while you're cutting your teeth on some concepts

So in the spirit of endorsing text-based-raster for some purposes, you might want to check out the Golden Surfur ASCII Grid (GSAG), which QGIS can export for you (Raster menu > Conversion > Translate).

Furthermore, the format of the GSAG file is described in this document, which you might find useful.


On banding..

If you want to make a two-banded image in QGIS, open Raster menu > Miscellaneous > Merge, and in this dialog you can create a multi-band image, probably alot like I'm doing, below. Note that QGIS implements the Geospatial Data Abstracion Library (GDAL) to accomplish alot of its functionality, so it's often a good idea to become familiar with what GDAL is doing behind the scenes. In this case, here is the documentation for the gdal_merge.py command line utility.

You can't tell in the screen grab, but two different raster files are selected in the Input files field. If you could see all of it, they're comma-separated, like this:

D:/GIS/01_tutorials/geene_dem/slope/slope.tif,D:/GIS/01_tutorials/geene_dem/slope/dem.tif

..and you can just CTRL-click them to do a multi-select in the UI. Also, I believe the bands are index 0-n according to the order that GDAL receives them, so band 1 (index 0) would correspond to the slope values. I hope someone shall correct me there if I am wrong. But the point is, you need to keep track of which band is which value.

enter image description here

Later, once you have the two-band image created, you can check out the Raster Calculator (Raster menu > Raster Calculator) for most any analysis you want to accomplish. In the Raster Calculator, notice how I created a simple expression to evaluate using my bands 1 (slope) and 2 (elevation) to create a new value---a value which I can export into a brand new raster, if I want.

enter image description here


You can export a two-band raster to a space-delimited text file using gdal2xyz.

gdal2xyz.py -band 1 -band 2 filename.tif filename.txt

The raster doesn't have to be a TIFF. I think QGIS still comes with gdal2xyz as part of the package.

Just to add, you have a DEM TIFF and a slope TIFF. It will possible to stack these together in one raster using gdal_merge from within QGIS. Raster -> Miscellaneous -> Merge, tick "Layer stack". Then use gdal2xyz on the resulting two-band raster.