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.
Dissolve by attribute¶
Dissolve field = COUNTY_FIPS.
Dissolve with statistics¶
Dissolve field = COUNTY_FIPS, statistics = SUM(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
- Add a US census tracts layer with
COUNTY_FIPSandPOP. - Run Dissolve with field =
COUNTY_FIPS, statistics =SUM(POP). - You now have a county-level layer with population. Symbolize by total pop.
→ Next: Spatial Join.