Skip to content

Select by Attributes vs Select by Location

Goal: Master the two ways ArcGIS Pro filters features — attribute (SQL) and spatial (geographic relationship). Then chain them together.


The simplest distinction

Select by Attributes Select by Location
Filters by A field value (SQL) Geographic relationship
Example STATE_NAME = 'GA' "Within 1 mile of a road"
Tool ribbon Map → Select by Attributes Map → Select by Location
Underlying tool Select Layer By Attribute Select Layer By Location

When to use each

Select by Attributes when:

  • You know what you're looking for in the data (a state, a category, a range).
  • The filter is a SQL expression.
  • It's faster — no spatial computation needed.

Select by Location when:

  • The filter depends on where features are.
  • You don't have the answer encoded in any field.
  • E.g., "schools near a flood zone" — there's no near_flood_zone field; you compute it from geometry.

Combining them

Real workflows combine both. Use the Selection method dropdown:

Method Effect
New selection Replace
Add to current selection Union
Remove from current selection Subtract
Select subset of current selection Intersect — keep only those also matching this filter

Example workflow

"Find Title I elementary schools within 0.5 miles of a major road, in Fulton County."

  1. Select by Attributes on schools: TITLE1 = 'Y' AND LEVEL = 'Elementary'. (Method: New)
  2. Select by Location with method = Subset selection: target = schools, relationship = WITHIN_A_DISTANCE 0.5 mi of major roads.
  3. Select by Location again, method = Subset selection: target = schools, relationship = WITHIN, selecting layer = Fulton County.

You're left with just the schools that pass all three tests.

flowchart LR
    A[All schools<br/>1,200] -->|"Attr: Title I + Elementary"| B[300]
    B -->|"Loc: within 0.5 mi of road"| C[120]
    C -->|"Loc: within Fulton"| D[35]

    classDef start fill:#fef3c7,stroke:#f59e0b,color:#92400e
    classDef step fill:#dbeafe,stroke:#1e40af,color:#1e3a8a
    classDef finish fill:#dcfce7,stroke:#10b981,color:#065f46
    class A start
    class B,C step
    class D finish

That's a 3-line analysis. Each step uses the previous selection as input.


The 3 most useful spatial relationships

Relationship Most-used scenario
Intersect Anything overlapping a region (most common)
Within a distance Distance-based filtering ("near", "within X")
Within Fully inside a boundary

The other relationships (touch the boundary of, are crossed by, share a line segment with) come up less often, but they're invaluable when they fit.


Selection vs Definition Query — yet again

A selection is temporary and visible (highlighted). A definition query hides features that don't match.

If you find yourself running the same selection every time you open the project, convert it into a Definition Query (Layer Properties → Definition Query). It runs automatically.


Common pitfalls

Watch the layer's projection

"Within 500 meters" is meaningless if your layer is in lat/long. Project to a projected CRS first.

Selection persists

A selection stays active until you clear it. If your subsequent geoprocessing tool seems to ignore most of your data, check if you have a selection still on. Right-click layer → Selection → Clear Selection.


Practice

Combine to find a useful subset

  1. Add: parcels (with LANDUSE), floodplain.
  2. Select by Attributes: LANDUSE = 'Residential'.
  3. Subset by Location: parcels that intersect floodplain.
  4. Right-click → Convert Selection To Layer. Name it "Residential parcels at flood risk".