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 enter image description here

And this the catchment information enter image description here

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?

  • Can you be more specific? Are your shps in the same projection system? One idea is to rasterize the land cover shp and then through Raster->Extraction->Clipper you can use the stream catchment areas to clip the land cover. Then you can use the plugin Landscape Ecology (Lecos) from Raster menu. This plugin is similar to Fragstats (umass.edu/landeco/research/fragstats/fragstats.html) and you can use it to calculate many landscape metrics (like area).
    – geo_dd
    Nov 20, 2015 at 8:31

1 Answer 1


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

See the tutorial below https://conservationecology.wordpress.com/2013/04/01/another-lecos-update-and-more-to-follow-in-the-near-future/

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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