Dissolve (Data Management) |
|
Release 9.3
Last modified March 8, 2012 |
![]() ![]() ![]() Print all topics in : "Tools" |
NOTE: This topic was updated for 9.3.1.
Aggregates features based on specified attributes
Learn more about how Dissolve works.
Illustration
Usage tips
The attributes of the features that become aggregated by dissolve can be summarized or described using a variety of statistic types. The statistic type used to summarize attributes is added to the output feature class as a single field with the naming standard of statistic type + underscore + input field name. For example, an input with a field named POP summarized using the SUM statistics type will result in a field named SUM_POP in the output feature class.
Dissolve can create very large features in the output feature class. This is especially true when there is a small number of unique values in the Dissolve Field(s) or when dissolving all features into a single feature. Very large features may cause display problems and/or have poor performance when drawn on a map or when edited. To avoid these potential problems, use the Multipart parameter's MULTI_PART option to split potentially larger multipart features into many smaller features.
The availability of physical memory may limit the amount (and complexity) of input features that can be processed and dissolved into a single output feature. This limitation could cause an error to occur, as the dissolve process may require more memory than is available. To prevent this, input features may be cut and processed using an adaptive tiling algorithm. This algorithm is common to several geoprocessing tools and is described here: Geoprocessing with large datasets. To determine the features that have been tiled, run the FREQUENCY tool on the result of dissolve, specifying the same field(s) used in the dissolve process for the frequency field(s) parameter. Any record with a frequency value of 2 has been tiled. Tile boundaries are preserved in the output features to prevent the creation of features that are too large to be used by ArcGIS. These can be evaluated and removed using either a second dissolve operation or using the merge edit task in ArcMap (1. Start editing. 2. Select the two features. 3. Click Editor/Merge.).
Null values are excluded from all statistical calculations. For example, the AVERAGE of 10, 5, and NULL is 7.5 ((10+5)/2). The COUNT tool returns the number of values included in the statistical calculation, which in this case is 2.
The Dissolve Field(s) parameter's Add Field button is used only in ModelBuilder. In ModelBuilder, where the preceding tool has not been run or its derived data does not exist, the Dissolve Field(s) parameter may not be populated with field names. The Add Field button allows you to add expected fields so you can complete the Dissolve dialog box and continue to build your model.
The following environment settings affect this tool: Extent, Configuration Keyword, Output Coordinate System, Output has M Values, Output Spatial Grid, Output has Z Values, and Default Z Value.
Command line syntax
An overview of the Command Line window
Dissolve_management <in_features> <out_feature_class> {dissolve_field; dissolve_field...} {field {statistic type}; field {statistic type}...} {MULTI_PART | SINGLE_PART} {DISSOLVE_LINES | UNSPLIT_LINES}
Parameter | Explanation | Data Type |
<in_features> |
The features to be aggregated. |
Feature Layer |
<out_feature_class> |
The feature class to be created where the resulting features will be written. |
Feature Class |
{dissolve_field; dissolve_field...} |
The field or fields on which to aggregate features. The Add Field button, which is used only in ModelBuilder, allows you to add expected fields so you can complete the dialog box and continue to build your model. |
Field |
{field {statistic type}; field {statistic type}...} |
Choose the statistics and fields with which to summarize attributes. Text attribute fields may be summarized using the statistics First or Last. Numeric attribute fields may be summarized using any statistic. Nulls are excluded from all statistical calculations.
|
(Field String; Field String;...) |
{MULTI_PART | SINGLE_PART} |
Specifies whether multipart features are allowed in the output feature class.
|
Boolean |
{DISSOLVE_LINES | UNSPLIT_LINES} |
Controls how line features are dissolved.
|
Boolean |
workspace E:\arcgis\ArcTutor\BuildingaGeodatabase\Montgomery.mdb Dissolve_management landbase\parcels landbase\zoning zoning "RES FIRST"
Scripting syntax
About getting started with writing geoprocessing scripts
Dissolve_management (in_features, out_feature_class, dissolve_field, statistics_fields, multi_part, unsplit_lines)
Parameter | Explanation | Data Type |
in_features (Required) |
The features to be aggregated. |
Feature Layer |
out_feature_class (Required) |
The feature class to be created where the resulting features will be written. |
Feature Class |
dissolve_field (Optional) |
The field or fields on which to aggregate features. The Add Field button, which is used only in ModelBuilder, allows you to add expected fields so you can complete the dialog box and continue to build your model. |
Field |
statistics_fields (Optional) |
Choose the statistics and fields with which to summarize attributes. Text attribute fields may be summarized using the statistics First or Last. Numeric attribute fields may be summarized using any statistic. Nulls are excluded from all statistical calculations.
|
(Field String; Field String;...) |
multi_part (Optional) |
Specifies whether multipart features are allowed in the output feature class.
|
Boolean |
unsplit_lines (Optional) |
Controls how line features are dissolved.
|
Boolean |
# DissolveByUnique.py # Description: Divide a line geodatabase feature class into several based on the unique values in a # field. Output will be dissolved to remove pseudonodes (if any). # Author: ESRI # Date: 1/1/04 import arcgisscripting, sys, string, os gp = arcgisscripting.create() try: # Set the workspace (to avoid having to type in the full path to the data every time) gp.workspace = "C:/data/Transportation.mdb" # Set the input feature class fc = "transport" # Set the field to create a list of unique values fieldname = "ROAD_CLASS" # Open a Search Cursor to identify all unique values rows = gp.SearchCursor(fc) row = rows.Next() # Set a list variable to hold all unique values L = [] # Using a while loop, cursor through all records and append unique values to the list variable while row: value = row.GetValue(fieldname) if value not in L: L.append(value) row = rows.Next() # Sort the list variable L.sort() # If a value in the list variable is blank, remove it from the list variable if ' ' in L: L.remove(' ') # Use MakeFeatureLayer to create a selectable layer gp.MakeFeatureLayer(fc, "dissolveLYR") # Loop through the list variable x = 0 for item in L: # Concatenate the query query = "[" + fieldname + "]" + " = '" + L[x] + "'" # Create a selection on the layer with the current unique value (i.e., L[x]) gp.SelectLayerByAttribute("dissolveLYR", "NEW_SELECTION", query) # Use Dissolve to create new feature class based on layer selection, output feature class # will share name of unique value gp.Dissolve_management("dissolveLYR", L[x], fieldname) x = x + 1 except: # If an error occurred while running a tool, print the messages print gp.getmessages()