Skip to content

12. Dissolve

Goal: Combine many small features into fewer, bigger ones — usually grouped by an attribute.


What dissolve does

Census tracts (5 features, all in Fulton County)
[▭][▭][▭][▭][▭]
   Dissolve by COUNTY_NAME
Single feature: Fulton County polygon (1 row)

Tool location

Geoprocessing → Dissolve (Data Management Tools).

Parameters

Parameter Notes
Input Features The layer to dissolve
Output Feature Class Where to save
Dissolve Field(s) Group by these — features sharing values merge
Statistics Field(s) Aggregate other fields (sum, mean, max…)
Multi part features Yes (allow), No (split into singleparts)
Unsplit lines For lines: only merge if connected at endpoints

Examples

Dissolve everything

No dissolve field → all features merge into one.

County tracts (159 features) → "Georgia" (1 feature)

Dissolve by attribute

Dissolve field = COUNTY_FIPS.

3,143 tracts → 159 counties (one per FIPS)

Dissolve with statistics

Dissolve field = COUNTY_FIPS, statistics = SUM(POPULATION).

Output: 159 county polygons, each with summed population.

This is one of the cleanest ways to roll up data.

Multipart vs singlepart

  • Multipart allowed (default): a state with islands stays as ONE feature.
  • Multipart NOT allowed: each island becomes its own row.

Unsplit lines (lines only)

For dissolve on lines, this controls whether disconnected line segments with the same attribute should merge into one feature. Useful for road network simplification.

Common patterns

Goal Setup
"Merge tracts to counties" Dissolve field = COUNTY_FIPS
"Total population per land use" Dissolve field = LAND_USE, statistics = SUM(POP)
"Combine all forest patches into one polygon" Filter to forest first, then dissolve all
"Roll up districts to regions" Dissolve field = REGION

Performance tip

Dissolve is fast on indexed feature classes. For huge layers, dissolve to a file geodatabase, not a shapefile — much faster.

Aggregate fields you can compute

Stat Output
SUM Total
MEAN Average (weighted by row, not area)
MIN / MAX Range
STD Standard deviation
VAR Variance
COUNT Number of input rows merged
FIRST / LAST Pick one value

Mean is unweighted

MEAN(MEDIAN_INCOME) after dissolving tracts to a county is the simple average across tracts — not the population-weighted income for the county. If you need a real weighted mean, do it in the attribute table before/after dissolve.


Practice

Build a county layer from tracts

  1. Add a US census tracts layer with COUNTY_FIPS and POP.
  2. Run Dissolve with field = COUNTY_FIPS, statistics = SUM(POP).
  3. You now have a county-level layer with population. Symbolize by total pop.

→ Next: Spatial Join.