Extracting land cover data (in percent) from shapefile in QGIS?

I have two shapefiles, one containing stream catchment areas, the other information on land cover classes. The problem: I need to know how many percent of the catchment area is covered by forest, grassland and houses.

I read some tutorials and I understand that I need to clip the land cover shapefile so that it fits the catchment shapefile, then I can somehow calculate the percentage of each land cover class.

However, no matter what I try, it does not work. I get empty shapefiles all the time. Could someone explain how to extract the land cover data? I am using QGIS 2.8 on a Mac.

They are in the same projection system.

This is land cover information

And this the catchment information

I rasterized the land cover shp and used the stream catchment shp to clip it as you suggested. However, the final layer never includes all the relevant land cover information, but only (for example) the "VEG G5" info. I guess I'm doing something wrong when rasterizing the land cover shp or when clipping the layers?

There many forms to do it. If you convert your data to raster you may use Lecos plugin.

See the tutorial below

If you would like to maintain your data in vector follow this steps: 1) Compute the area of catchment stream 2) Run intersect catchment stream with you landscape classification 3) Dissolve all polygons of "intersetion result" 4) Divide area (field) of "intersection result" (that was made in number 3) with the catchment stream (that was made in number 1) and multiple to 100.

Then you will have result that you would like.

Good luck.

Watch the video: Calculate percentage of land use per subcatchment in QGIS 3 (October 2021).