7

I have to calculate or estimate the surface area (sq m) considering the elevation data on several places (wich i have in different shapefiles, and some multipolygon shapefiles).

I'm aware of this QGIS calculate the 3d surface area of a region? but this is only for rectangular polygons.

I have the shapefiles and the DEM. Working on QGIS 2.14

underdark
  • 84,148
  • 21
  • 231
  • 413
A_NeriWinter
  • 586
  • 4
  • 16

1 Answers1

5

The following method would make a reasonable approximation knowing that your raster DEM is a discretization of space.

  • Compute the slope of your DEM (this will give you the strongest slope) Raster > Analyses > DEM

  • Use the slope to compute the area of each pixel (using the raster calculator , projected_area_of_the_pixel / cos(slope_in_radian) )

  • Use zonal statistics to have the sum of the "non projected" area of the pixels in the zone (QGIS geoprocesing tools > raster tools > zonal statistics)

radouxju
  • 49,636
  • 2
  • 71
  • 144
  • I´ve tried the method in a known area to see the difference. it over-estimeted the area by more than 30%. that´s too much. – A_NeriWinter Jan 25 '18 at 16:55
  • also have to add that the angle must be transformed to radians, since that´s the angle unit that the Raster Calculator uses. – A_NeriWinter Jan 25 '18 at 16:56
  • maybe you should try smoothing your DEM, because a few pixels with wrong elevation could create slope artefacts which in turn lead to huge overestimation. I now directly mention radian, thanks for pointing this. – radouxju Jan 29 '18 at 14:51