I am using ArcGIS 10 and I have two shapefiles; (a) a polygon shapefile of block groups of the entire US, (b) a point shapefile of customer locations throughout the US.

What I want to know if how many points (b) are within each block group (a). What tool should I used to add a new field to the block group shapefile that will count and show the total number of points located inside each individual block group?

I also would like to show that number as a percentage of the total number of points.

  • 1
    How quickly does this need to run? Jun 15, 2011 at 2:59
  • Not quick, there are 23 million points spread out on the block groups of the US so I understand that it will take time to calculate.
    – Furlong
    Jun 15, 2011 at 15:10

3 Answers 3


You may want to split your large block group data set into seperate feature classes within a file geodatabase for processing. After doing that you can run a spatial join from the ArcMap TOC.

Right click the customer locations layer and select Joins and Relates>Join. On the top drop down select "Join data from another layer based on spatial location". This will tell you what customer records intersected what block group. Next, summerize the block group 'name' field. This will produce a table from which you can add another field to, to calculate your % of total number of points.

  • Thank you for the suggestion, I am going to take this route as it seems the most simplistic.
    – Furlong
    Jun 16, 2011 at 17:13
  • Actually now that I am running it, it is processing about 100 features every 6 seconds which means it will take 15 days for it to process all 23 million points. Is there anyway that I can make this faster? 15 days is too long.
    – Furlong
    Jun 16, 2011 at 19:31

Based upon your description, I would suggest the opposite method that @artwork described. Use the same tools, but start with your block groups as your primary layer and join the customers to the polygons with a spatial join, which will give you a count field.

From the Layer dialog,

Right-click on the polygon layer, choose Joins & Relates->Join and then from "What do you want to join to this layer" choose "...Spatial Location". Choose the point layer to join to the polygons, choose an output layer, and press OK. This will create the field "Join_Count" in your new table.

or from ArcToolbox choose Analysis->Overlay->Spatial Join:

use your Target features = Block Groups, Join features = customer points, Join Operation = Join-One-to-One, Keep All Target Features checkbox = ON, in the Field Map simply delete all of the Join feature attributes, and Match Options = Intersects? This left me with my base polygon features and a new attribute called "Join_Count"


See http://www.spatialecology.com/htools/overview.php for an excellent free toolset called Hawth's Tools, which performs a raft of useful functions, including counting the number of points in each polygon (see > Analysis Tools > Points In Polygons).

Once you have this value you could use the Field Calculator to calculate the percentage of the total points.

  • Nice to see you here, @slead!
    – whuber
    Jun 15, 2011 at 3:03
  • This tool set does not work in ArcGIS10, is there an alternative?
    – Furlong
    Jun 15, 2011 at 15:49
  • I think Hawth's Tools is unsupported in ArcGIS 10 but does actually work. I've got it installed on ArcView 10 on my PC and it works fine. Jun 15, 2011 at 22:56

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.