enter image description here

I want to establish the population figures within multi-ring buffers around certain site. I have set up the buffers and am running a select by location query on each concentric ring.

Once the selection is made, I am manually accessing the table and using the Statistics function to find the sum of the population.

As I have 76 sites and 10 buffers per site, this is obviously taking a very long time to type up 760 individual results. Is there a way to automate this process and produce a table of the results?

I know nothing about Python scripting at the moment, but I would be interested to know if this could perform such an operation.

  • Do you have access to a raster GIS, such as the Spatial Analyst extension? – whuber Feb 13 '16 at 13:40
  • Are you interested in QGIS or ArcGIS? (conflicting tags) – underdark Feb 13 '16 at 14:19
  • I have the full package of the software with all the extensions, but as I am learning the software I do not have the knowledge to use them, or know the appropriate ones to use. – MIS_Gem Feb 13 '16 at 14:41
  • Eventually I need to do it in QGIS as well, but at the moment I am completing it in ArcGIS – MIS_Gem Feb 13 '16 at 14:42
  • @GemmaDavies did you ever try getting this to work in PostGIS? This is a great example... – DPSSpatial Dec 10 '16 at 16:40

Use the Spatial Join tool in the Analysis toolbox->Overlay toolset with these settings to generate statistics for all of your concentric buffers at once.

  1. Target Features: Concentric Ring buffer feature class

  2. Join Features: Population points

  3. Output feature class: Specify the name and location you want

  4. Join Operation: Join_One_To_One

  5. Join Type: Keep All

  6. Field Mapping - In the actual tool dialog right click the Population field and change the Join Type to Sum. You can remove the other point feature class fields or keep them and set up other summaries as well. Set this up in a model using the tool interface and then export that to a python script to see the syntax of this parameter for Python.

  7. Match Option: Intersect

  8. Search Radius: 0

  9. Distance field: Not applicable so do not include it.

This will output a duplicate of your concentric ring buffer feature class with an added Population field containing the sum of all the population points it intersected.

| improve this answer | |
  • Richard, I don''t know how to thank you. Your instructions were perfect and learning how to do this has saved me hours of manual input. Thank you so much :-) – MIS_Gem Feb 13 '16 at 17:41

That's a great answer by Richard Fairhurst. For future reference: you can use Richard's approach but:

In 1) use your point feature class as input (target features). In 7) use Match Option 'within a distance'. In 8) use the applicable search radius (the radius of your buffers).

This approach has the advantage, that your results are already in the point feature class. If you need to do this analysis for n instead of one distance value, you can do it n-times using the results as the new input for step 1). Or do a batch job with the options as described but of course with differing values in step 8).

| improve this answer | |

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.