# How to restore a scarp surface grid to calculate material loss

I would like to calculate the volume of material lost from a scarp like the one shown in the following image: Is there a way to do these calculations with open-source software such as GMT, QGIS and GRASS?

• Erase contours inside them and triangulate what remains. Difference of DEMs will give you very rough idea of individual volumes. Oct 21 '17 at 23:10
• thanks, a first idea is to mask the scarp area and then triangulate that area, right?
– Gery
Oct 22 '17 at 15:02
• GRASS GIS offers a volume calculator in grass.osgeo.org/grass72/manuals/r.volume.html Oct 23 '17 at 6:30
• Do you have a before and after raster?
– Fezter
Oct 24 '17 at 5:18

Your problem has a first task that is a bit challenging already, which is to get the situation before the event you want to quantify. I think the best option is to produce a raster of the original situation. To produce it, I would use some countour lines to draw "by hand" the terrain as it was before the event, then with the help of `r.surf.contour` fill a terrain model.

Once you have the two rasters, before and after, you ca produce a raster of the difference with `r.mapcalc` (rasterDiff= rasterBefore - rasterAfter). I guess you will need appropiate masks to box your areas of interest.

You can have the volume by using the `r.sum` of rasterDiff and multiplying the results by the cell size.

## UPDATE

@Gery provided a working example offshore Nicaragua and I attempted to calculate the volume with my own description above using GRASS and bit QGIS.

`````` |        Projection: Latitude-Longitude
|
|            N: 11:15:44.273502N    S: 10:55:46.447629N   Res: 0:00:02.76634 |
|            E: 87:04:08.435069W    W: 87:23:22.390832W   Res: 0:00:02.80086 |
|   Range of data:    min = -4783.09  max = -760.2788                        |`
`````` 1. Load the DTM and set the region to the input data

```r.import input=mb.grd output=mb g.region raster=mb```

2. Digitalize the contourlines before the slide. I did the digitalization in QGIS and I saved the elevation values in field `level`

`v.import input=Contour50_WGS84.shp layer=Contour50_WGS84 output=Contour50_WGS84`

1. Digitalize the boundaries of the scarp to use it as a mask.

`v.import input=mascara.shp layer=mascara output=mascara` 1. Mask the area of interest and fill the null values

```r.mask --overwrite vector=mascara r.fillnulls input=mb output=mbfilled method=rst```

2. Conversion of contour lines into raster lines and interpolation for the DTM prior the slide

```v.to.rast input=Contour50_WGS84 type=line output=prescarp use=attr attribute_column=level r.surf.contour input=prescarp output=prescarpfilled``` 1. Calculate the difference between the two rasters

`r.mapcalc expression=scarpdepth = prescarpfilled - mbfilled` 1. Calculate the average cell size and the sum of the `scarpdepth`

```r.report map=MASK units=me |-----------------------------------------------------------------------------| | Category Information | square| |#|description | meters| |-----------------------------------------------------------------------------| |1|Value 1. . . . . . . . . . . . . . . . . . . . . . . . . . . | 53,830,997| |*|no data. . . . . . . . . . . . . . . . . . . . . . . . . . . |1,235,078,890| |-----------------------------------------------------------------------------| |TOTAL |1,288,909,887| +-----------------------------------------------------------------------------+```

```r.univar map=scarpdepth total null and non-null cells: 178396 total null cells: 170947 Of the non-null cells: ----------------------``` ```n: 7449 minimum: -2.60534 maximum: 387.981 range: 390.586 mean: 206.303 mean of absolute values: 206.305 standard deviation: 76.9735 variance: 5924.92 variation coefficient: 37.3109 % sum: 1536751.12633864```

Then, with 7449 cells and an area of 53.8 km^2, the cell size is 7226 m^2/cell

1. The volume is +/-11 km^3 approximately (7,226 m^2 * 1,536,751 m)
– Gery
Oct 24 '17 at 14:45
• @Gery, it is going to take a while to give it the required time, but it is still fun. Do you have a nice scarp to share? Oct 25 '17 at 7:09
• I think I have one, where can I upload it for you?
– Gery
Oct 26 '17 at 18:07
• I think pasetbin is a good place to share a working example. I have just pasted a small clip from the srtm_22_20.tif as a plain ascii file here pastebin.com/tzYPBDSE. Any public place, if it is not already public data, would be fine Oct 27 '17 at 8:50
• sorry it took me a while to share the grid with the nice scarp, please find it here: ufile.io/3i2ix
– Gery
Nov 2 '17 at 0:59

I am trying to calculate the volume of ore that has been excavated in an open-pit mine, using QGIS and GRASS. I used the same method suggested here except for the step 7.

To calculate the volume of a raster, maybe you could use r.volume in GRASS. It does the same thing as explained here, but there are no intermediate results which are rounded up, so I think it is more precise!

I used the two methods to compare the results. I found that there could be tens of meters of difference up to ten-thousands of meters of difference, depending on how you round your results. So maybe it is worth using r.volume instead.

Hope that helps!