Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to multiply my Raster DEM with a linear graph value y = mx + C. The graph values look as follows:

enter image description here

I want to make a new raster where each cell will represent a damage factor from above graph and by taking into account corresponding cell DEM value. It means, if any particular cell in my DEM raster has a elevation value 10 m, then in my new computed raster this will be damage factor 1. Similarly, any cell of DEM raster has a value of 20 m, the computed new value will be 3 as shown in the graph.

I am familiar with the approach called 'Reclassify'. But reclassify requires a certain range of value, for example elevation 10 - 20 m will be damage factor 1.5.

I want to compute every pixel of DEM raster and redefine it in the form of damage factor by following the linear equation.

Can I write an equation such as y = m*x + c in raster calculator in Qgis /Grass /ArcGIS?

share|improve this question
The figure actually is nonlinear: look at the strange spacings on the y-axis. Although the graph when plotted on this axis is indeed a line, the function describing the damage factor for each elevation is not. – whuber Oct 29 '13 at 13:39

The short answer is 'yes'. In both QGIS and ArcGIS, you want to use the raster calculator. Each has its own syntax so check the documentation (see links below) for which ever one you are using. However, essentially, you can type a formula in the raster calculator along the lines you need. You can also use the raster calculator to do "mapematics" (multiplying, adding, dividing one raster by another etc). In QGIS go Raster->Raster Calculator.

ArcGIS Documentation
QGIS Raster Calculator documentation

share|improve this answer
Thanks MappaGnosis. I just tried and it worked :) – Zaman Oct 29 '13 at 8:49

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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