1

I have created a buffer around several points. I want to intersect this layer with a Census Tract layer. My end goal is to create a table that would list all the census tracts that intersect with the buffer area of each point. Something like this:

enter image description here

The result must show that some buffer entities may be related to many census tracts, and the other way round. I think ArcGIS' "Relate" function is suited for that purpose, but I don't know how to do this in QGIS.

Do you have any idea how I could do that in QGIS 2.6?

UPDATE: The way I am planning on doing this if I don't get a simpler answer is to

  1. Create a new attribute in the Census Tract shapefile for each of the 15 buffer polygons
  2. For each of the 15 buffer polygons: run a spatial request to select all Census Tracts that intersect with the chosen buffer polygon
  3. Use the Field Calculator to write the name of the Census Tract in the variable I created in Step 1
  4. Export the Census Tract shapefile to Excel and play around..

There has to be a simpler way around, but I don't know it.

  • I'm thinking you want a Union between the buffers and tracts. That should give you polygons with both buffer and tract attributes, so the attribute table should look (or have parts like) your example. – Chris W Feb 6 '15 at 21:22
  • Unfortunately Union only combines the two layers. If my buffer layer has 15 entities and my CT layer has 25, I end up with 39 entities after the Union. I should have many more, since there is overlap (one census tract can be related to many buffer entities, and vice-versa). – Balala Feb 6 '15 at 21:29
  • Something doesn't sound right. Union should be giving you all the areas of overlap as new shapes. So each buffer would be cut wherever it crosses a CT boundary. You are getting an increase, which sounds right, but I guess without seeing the data or a screenshot I'm not sure why you're expecting more. I will point out that Union gives you everything in both sets, including overlap and non-overlap, while Intersect would give you only areas of overlap. Also note if multiple buffers cover the same area, that results in one shape, but the attributes indicate that shape is multiple buffers. – Chris W Feb 6 '15 at 21:37
  • Sorry, when I wrote "overlap" I didn't mean spatial overlap, but rather a many-to-many relationship. Here is an example: let's say that buffer 1 intersects with CT 100 and 200, and buffer 2 intersects with CT 300 and 200. In this case 2 buffers cover CT 200. At the end of the whole process I would like to export a table that details all the relationships, sorted by buffers (which are attached to a point). Therefore I would see all the CTs that are covered by each buffer. Is that more clear? – Balala Feb 6 '15 at 23:08
  • Yes, but that many-to-many relationship is spatial. You'll have to take the results of the overlay operation (Union or Intersect) and run stats on that table (perhaps with the GroupStats plugin). Union works well for Buffers in CTs, but if you want CTs in Buffer I'd do it via intersect. You would then be able to summarize the resulting table on Buffer ID (which should be the same as Point ID, or have that attribute). That would give you one table row for each buffer/CT combination. – Chris W Feb 6 '15 at 23:41
0

I ended up being able to do what I wanted by using the Intersect function between the buffer layer and the CT layer, as @Chris W suggested. The first time I tried running it, the output was empty. I was told that there was a similar bug in ArcGIS where you had to re-export your shapefile if it had been created with a buffer/union/intersect/etc. function. To make it work, I had to re-export the buffer layer into a new one.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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