Apologies if this has been answered elsewhere. I have tried for several days now to come up with a solution to this problem, but haven't found an exact answer that applies to my current situation (or at least one that I could understand enough to implement myself). I am trying to extract the percent of particular drainage areas that are covered by different surficial geologies (i.e. sand, silt, bedrock, etc.). I have shape files for almost 100 catchment areas (some overlap each other due to being sub-watersheds of larger river systems). I also have a shape file of surficial geology. Below are some images to help illustrate: The first is what the catchment areas look like. The second is the geology layer with 3 catchments displayed over top (note the nestedness).Finally, I am looking to produce a table of percentages with catchments against geological features. ![This is what the catchment areas look like][1] ![This is the geology layer with 3 catchments displayed over top][2] ![Basically, I am looking to produce a table with catchment areas against geological features:][3] Right now I am only using QGIS, but am open to trying other programs as well. I have used R in the past, but am not very good at python. EDIT: the result of using union on the geology and catchment layers: ![enter image description here][4] [1]: https://i.sstatic.net/9SQKR.jpg [2]: https://i.sstatic.net/T6A9A.png [3]: https://i.sstatic.net/5sPQV.png [4]: https://i.sstatic.net/oS0Jr.png