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?
Answer
I will try to address your question with GRASS.
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 |`
Load the DTM and set the region to the input data
r.import input=mb.grd output=mb g.region raster=mb
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
Digitalize the boundaries of the scarp to use it as a mask.
v.import input=mascara.shp layer=mascara output=mascara
Mask the area of interest and fill the null values
r.mask --overwrite vector=mascara r.fillnulls input=mb output=mbfilled method=rst
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
Calculate the difference between the two rasters
r.mapcalc expression=scarpdepth = prescarpfilled - mbfilled
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
- The volume is +/-11 km^3 approximately (7,226 m^2 * 1,536,751 m)
No comments:
Post a Comment