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

1 Answer 1

6
+25

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)

3
  • 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. Commented Jan 25, 2018 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. Commented Jan 25, 2018 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
    Commented Jan 29, 2018 at 14:51

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