Disperse Markers (Cartography)

Summary

Finds point symbols that are overlapping or too close to one another, based on symbology at reference scale, and spreads them apart based on a minimum spacing and dispersal pattern.

Illustration

Disperse Markers geoprocessing tool
Illustration of the dispersal styles.

Usage

  • The input must be a symbolized point feature layer. Multipoint features are not a valid input. The input feature class is changed by this tool.

  • This tool operates by assessing proximity of symbolized point features. The symbology extent and the reference scale are considered in conjunction with one another. Run this tool only after you have finalized the appearance of your symbols, and ensure that the reference scale corresponds to the final intended output scale.

  • Clustered or coincident point symbols are assessed and processed in groups. The analysis of marker groups is based on a minimum rectangular envelope around each marker. Groups are composed of markers with envelopes that overlap or are within the minimum spacing of others. Within each group, markers are dispersed to the minimum spacing.

  • Graphical overlaps may be introduced between marker groups. Use the Detect Graphic Conflict tool to identify conflicts.

Syntax

arcpy.cartography.DisperseMarkers(in_point_features, minimum_spacing, {dispersal_pattern})
ParameterExplanationData Type
in_point_features

The input point feature layer to be dispersed.

Layer
minimum_spacing

The minimum separation distance between individual point symbols, in page units. A distance must be specified and must be greater than or equal to zero. When a positive value is specified, markers will be separated by that value; when a value of zero is specified, point symbols will be touching. The default page unit is Points.

Linear Unit
dispersal_pattern
(Optional)

Specifies the pattern in which the dispersed point symbols are placed. A group of point symbols will have a center of mass derived from the locations of all points in the group. The center of mass is then used as the anchor point around which the dispersal pattern operates.

  • EXPANDEDThe general pattern of the point symbols will be maintained as they are spread apart. Points that were exactly coincident are dispersed to a circle around their center of mass. This is the default.
  • RANDOMPoint symbols are placed around the center of mass in a random dispersal that respects the minimum spacing.
  • SQUARESPoint symbols are placed in multiple square rings around the center of mass, ensuring that all points are placed as closely together as allowable by the minimum spacing parameter.
  • RINGSPoint symbols are placed in multiple circular rings around the center of mass, ensuring that all points are placed as closely together as allowable by the minimum spacing parameter.
  • SQUAREPoint symbols are placed evenly around the center of mass in a single square pattern.
  • RINGPoint symbols are placed evenly around the center of mass in a single circular pattern.
  • CROSSPoint symbols are spaced evenly on horizontal and vertical axes originating from the center of mass.
  • X_CROSSPoint symbols are spaced evenly on 45° axes originating from the center of mass.
String

Derived Output

NameExplanationData Type
out_representations

The updated input features.

Feature Layer

Code sample

DisperseMarkers example (Python window)

The following Python window script demonstrates how to use the DisperseMarkers tool in immediate mode.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.env.referenceScale = "50000"
arcpy.DisperseMarkers_cartography("crime.lyr", "2 Points", "EXPANDED")
DisperseMarkers example 2 (stand-alone script)

This stand-alone script shows an example of using the DisperseMarkers tool.

# Name: DisperseMarkers_standalone_script.py
# Description: Finds point symbols that are overlapping or too close to one 
#              another and spreads them apart based on a minimum spacing and 
#              dispersal pattern

# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data"
arcpy.env.referenceScale = "50000"

# Set local variables
in_point_features = "crime.lyrx"
minimum_spacing = "2 Points"
dispersal_pattern = "EXPANDED"

# Execute Disperse Markers
arcpy.DisperseMarkers_cartography(in_point_features, minimum_spacing, 
                                  dispersal_pattern)

Licensing information

  • Basic: No
  • Standard: No
  • Advanced: Yes

Related topics