# Calculating proportion of area covered by another layer - not just the intersection

This is a follow up question from \$area gives NULL for some polygons in QGIS's Field Calculator and \$area is NULL for over-wrapping geometry.

I have a map of Cambodia at district level (dist) and economic land concession (elc). I am trying to calculate the proportion of district that is occupied by the economic land concession. I have tried the following:

1. created area for `elc` layer
2. for dist layer, `100*intersecting_geom_sum('elc','area_elc')/\$area`

Problem is, there are some districts that have over 100% coverage because the `elc` layers in these districts have outrageously large area calculated. I have used the following data, projected them into EPSG:3148, set the output field length as 21 for area calculation as advised. I also ran fix geometry for `elc` layer afterwards.

How can I correctly calculate the area for these districts.

I have found that for a small district, area of one big chunk of `elc` that cross the district and other district was used- instead of part of `elc` that is within district. Attached as picture below:  When I take the intersection, it works to cut them correctly. How could I possibly correct this problem?

Data using: GEO2_KH (Cambodia shapefile) https://international.ipums.org/international/gis_harmonized_2nd.shtml

ELCs: All economic land concessions shapefile https://data.opendevelopmentcambodia.net/dataset/economiclandconcessions

• @UdithaHerath, Could you please have a look at this at your convenience? I'd appreciate any advice on this. Thank you! Jan 26, 2021 at 14:59
• Why do you keep the area as square meters and not convert it in square kilometers ? I think it's more meaning full when you work with country, district data. You can create a float number field. Jan 26, 2021 at 15:05
• Try `area(\$geometry)` for the calculations.
– Erik
Jan 26, 2021 at 15:13
• check that fix geometry actually produced valid geometries Jan 26, 2021 at 17:06
• just because it looks ok doesn't mean it is valid - check with isValid() Jan 28, 2021 at 11:29

I tried to calculate that proportion and It worked for me. May be you did something wrong with those areas. The issue here is that a single `dist` can have several `elc` intersections.

Here is the result: Here I describe you the process:

1. Correct geometries (otherwise the intersection tool doesn't work).
2. Intersection (Union) of the layers. This layer will serve as a future dissolved layer with the `elc` area within each `dist`.
3. Filter the layer removing those polygons with null `fid`(keep just elc).
4. Dissolve by `ADMIN_NAME`. This will make a single `elc` área.
5. Calculate the área of `elc`.
6. Join layers: `dist` joined to the dissolved layer by `ADMIN_NAME`.
7. Calculate the percentage of `dist` covered with `elc`.

Here some screenshots:

• Thank you so much for your answer! Feb 5, 2021 at 15:02