# Ranking target features by number of near features using ArcGIS Desktop?

To help decisionmaking, I want to rank housing units by the number of grocery stores nearby, limited to a 2-mile radius for each unit. I am trying to define my mapping problem and find out what ArcMap tools will help.

• list the distance between target feature (house) and nearby feature (grocery) within 2 miles;
• rank the target features by the number of near features within specific radii. For example, 1 store between 0 ft and 1320 ft radius, 1 store between 1320 ft and 2640 ft radius, 2 stores between 2640 ft and 5280 ft radius, and 4 stores between 5280 ft and 10560 ft radius.

Point Distance (from the Proximity toolset) lists the distances but doesn't include unique IDs or the names of my features, frustratingly. Also, it's only a table.

I am measuring the distances to multiple assets of different FC type (points <> store locations, hospitals; and polygons <> parks).

Will I be using Euclidean Distance and Reclassify?

If you are looking specifically at those defined distance bands. Could you not generate a multi-ring buffer and then spatial joining the data into the distance rings?

In order to ensure the rings dont overlap (each other from the same input). So if for example your bands are 500 feet, 1500 feet and 2000 feet. Create the first buffer with a distance of 500. The resultant polygon then needs to be the input for the next buffer and buffer that by 1000 feet. The last buffer is again the buffered result of the previous buffering process. You can then merge the buffers together - There is another way, it entails the use of the ERASE Tool.

If you are interested in the names or the IDs of the features you are looking to capture in these rings, then you could use an intersect between the buffers and the features you are looking for - ensuring that the outputs are set to points.

You can then dissolve the result using the distance buffer and housing ID as the dissolve fields, and then "Count" the resultant "Grocery Stores" etc. or if you are actually interested in their names, then use that another dissolve field. Either way, using both methods you should be able to track both the number of occurrences and the IDs / names of the features

Using a Vector Approach I would use:

• The Buffer Tool
• Dissolve Tool; and
• Spatial and Table Joins

Just a note, the RECLASS tool is a Raster Based Tool, so you could use it with the Euclidean Distance Tool, but you would get the same results using the vector based buffers.

Have a read of Generate Near Table (all distances within tolerance) and Near (for closest only) both of these tools require an advanced license.

Near will only populate the House point with the ID and distance to the nearest Grocery which doesn't seem to be what you're after.

Generate Near table using House points to Grocery point/polygon creates a table with distances from each house to all Grocery within tolerance, if your grocery is polygon it will be the distance to the nearest vertex, it can be difficult to reduce the data to just the closest/most convenient but on the upside you have all the measures already, if you need to skip some Grocery types at a later date it's easy to do.

In ArcMap open and Join the Near Table to your Houses and calculate your field `Houses.GroceryCount = Houses.GroceryCount + 1` (assuming GroceryCount is the field containing the number of grocery within 2 miles; you might need to add field delimiters `[]` or `!!` to get this calculation to work), this will increment the value in Houses by one for each row representing a close enough grocery store.

Beware if you are joining based on ID do not use shapefiles as in a shapefile the IDs are fluid - if you have shapefile data import into a file or personal geodatabase to ensure a static OBJECTID prior to performing the near.

If you don't have an advanced license you can, as Keagan said use a buffer and spatial join, or Spatial Join Grocery to Houses within a distance and summarize the count like the answer in this post without buffering.