Apologies - new user.

I am working with QGIS on Mac OS X and with shapefiles downloaded from the US Census Bureau that show population data by state and by county.

How do I:

  1. select certain points (e.g. cities)
  2. draw a defined distance radius around those points (e.g. 500km - At the moment I can only get the units to be in degrees)
  3. Sum the populations in the counties that are intersected by the circle?

Any assistance is greatly appreciated!


3 Answers 3


I'm working on a windows machine, but you can:

  1. Select your cities with the selection tool (should be on the tool bar, or under View > select). Also, there needs to be a column with population data in the attributes, of course.

  2. Then create a buffer with your desired radius (Vector > Geoprocessing Tools > Buffer(s)). Make sure to "Use only selected features", set a radius, and a filename for the new shapefile.

  3. Spatially Join your data: Vector > Data Management Tools > Join attributes by location. Here you set the target layer (the buffer), the layer to be joined (your counties), and select "Take summary of intersecting features" and [x] sum. Again, define where to save the file, and keep all records.

  4. Now you should end up with a nice shapefile of the buffers created in step 2, and within the attribute table there should be a column called "sumNAME", with NAME being the name of your old city population data from step one. It should now show the total population of all counties intersected by the defined radius around your selected cities.


First learn about projections, it is a basic skill that any GIS user needs to be familiar with. Census TIGER files (assuming that is where you got them) don't have a projection attached to them, just a datum. You need to assign a projection to the shapefile for the region you are going to mapping that is most appropriate for you map. I would recommend using a State Plane Coord System for the region your are mapping and it will set your mapping units to metric. Though watch out some state insist on using Imperial system though none of QGIS projections should reflect this.

You can change projections in QGIS by clicking the little globe button at the bottom right. Be sure that on-the-fly is checked too see your changes.

What you are asking for is called a buffer and you can do that using the Vector > Geoprocessing Tools > Buffers in the menu. Note that this projections are in metres you will need to adjust your radius accordingly. This will create a buffer around the poly of the city. If you want a circle you need to find the centroid of the city's poly using similarly named function in the Vector menu; then run your buffer function on the resulting points.

Then use Vector > Data Management > Join by Location Set your buffer layer as the target layer with the layer of US Census data as the join layer. Keep all records checked. In attribute summary, check take summary of intersecting features and check any function needed by the data; mean, sum, etc. This will take the mean of all the features that intersect your buffer, otherwise it will just take the attributes of the first polygon it processes.

Do note that TIGER files do not have any census data attached. You will need to join the census data to the TIGER file using the GEOID(GEOID2) field.


0. Prepare project

  • Load your data in QGIS;
  • In Settings > Project Properties > CRS tab, set your coordinate system to a be projected one of your choice, and that that is adequate for your study area (this solves the degree units problem);

1. Create Buffers

  • Select desired cities using the table attribute advanced search or directly using one of the Select features by... buttons in your attributes toolbar;

  • Vector > Geoprocessing tools > Buffer(s), set the distance you want, check the dissolve buffer results box;

2. Select the counties intersected by the buffers

  • Vector > Spatial query > Spatial Query; (Make sure the plugin is on)
  • Set Source features from: Counties,
  • Set Where the feature: Intersects,
  • Set reference features: Buffer_result, and... Apply.

3. Summarize Counties Population

  • Vector > Analysis Tools > Basic Statistics,
  • Set Input vector Layer as: Counties,
  • Check the "Use Only selected features" box,
  • Set target field as "Population field", and... OK.

In the Statistic output, the SUM will represent the sum of all the population of the counties intersect by your city buffers.

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