I have a base layer of census data in census tracts (polygons). I'm looking to intersect those tracts with a buffer layer but I only want to include those census tracts whose area is over 50% within the buffer.

The spatial query plugin doesn't offer that kind of precision and I can't find an equivalent of tabulate intersection. Is there any way to do this in QGIS?

1 Answer 1


I guess one way to do it would be to use the field calculator.

In the QGIS field calculator, you can create a new attribute containing the area of each census polygon. Just open the field calculator and write $area in it, and set it to create a new column with that (let's call it Area1).

Than you can use the intersect tool in the Vector menu on the census layer with your buffer, and on the created (intersected) polygons you do the same thing again. So you get another column with the new area after intersection (let's call that Area2).

Then you can query the intersect layer with SQL using a filter, and exclude all features where Area2 < (Area1 / 2).

There is probably some more straight forward way to do this though, but this should work.

  • Thanks hexamon, that sounds like a promising approach, though as you mentioned I hope there is a more direct method of getting the same result.
    – LeoG
    Commented Jan 23, 2015 at 22:07

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.