Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I am using ArcGIS 10 and I have 2 shapefiles; (a) a polygon shapefile of block groups of the entire US, (b) a point shape file 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. Thank you for your help!

share|improve this question
1  
How quickly does this need to run? –  Kirk Kuykendall Jun 15 '11 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 '11 at 15:10
add comment

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.

share|improve this answer
    
Thank you for the suggestion, I am going to take this route as it seems the most simplistic. –  Furlong Jun 16 '11 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 '11 at 19:31
add comment

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"

share|improve this answer
add comment

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.

share|improve this answer
    
Nice to see you here, @slead! –  whuber Jun 15 '11 at 3:03
    
This tool set does not work in ArcGIS10, is there an alternative? –  Furlong Jun 15 '11 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. –  Stephen Lead Jun 15 '11 at 22:56
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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