Summary
Creates standard deviational ellipses to summarize the spatial characteristics of geographic features: central tendency, dispersion, and directional trends.
Learn about how Directional Distribution (Standard Deviational Ellipse) works
Illustration
Usage
-
The Standard Deviational Ellipse tool creates a new Output Feature Class containing elliptical polygons, one for each case (Case Field parameter). The attribute values for these ellipse polygons include X and Y coordinates for the mean center, two standard distances (long and short axes), and the orientation of the ellipse. The fieldnames are CenterX, CenterY, XStdDist, YStdDist, and Rotation. When a Case Field is provided, this field is added to the Output Feature Class, as well.
-
Calculations based on either Euclidean or Manhattan distance require projected data to accurately measure distances.
When the underlying spatial pattern of features is concentrated in the center with fewer features toward the periphery (a spatial normal distribution), a one standard deviation ellipse polygon will cover approximately 68 percent of the features; two standard deviations will contain approximately 95 percent of the features; and three standard deviations will cover approximately 99 percent of the features in the cluster.
-
The value in the output Rotation field represents the rotation of the long axis measured clockwise from noon.
-
The Case Field is used to group features prior to analysis. When a Case Field is specified, the input features are first grouped according to case field values, and then a standard deviational ellipse is computed for each group. The case field can be of integer, date, or string type. Records with NULL values for the Case Field will be excluded from analysis.
The standard deviational ellipse calculation may be based on an optional Weight Field (to get the ellipses for traffic accidents weighted by severity, for example). The weight field should be numeric.
-
For line and polygon features, feature centroids are used in distance computations. For multipoints, polylines, or polygons with multiple parts, the centroid is computed using the weighted mean center of all feature parts. The weighting for point features is 1, for line features is length, and for polygon features is area.
-
Map layers can be used to define the Input Feature Class. When using a layer with a selection, only the selected features are included in the analysis.
Syntax
arcpy.stats.DirectionalDistribution(Input_Feature_Class, Output_Ellipse_Feature_Class, Ellipse_Size, {Weight_Field}, {Case_Field})
Parameter | Explanation | Data Type |
Input_Feature_Class |
A feature class containing a distribution of features for which the standard deviational ellipse will be calculated. | Feature Layer |
Output_Ellipse_Feature_Class | A polygon feature class that will contain the output ellipse feature. | Feature Class |
Ellipse_Size | The size of output ellipses in standard deviations. The default ellipse size is 1; valid choices are 1, 2, or 3 standard deviations.
| String |
Weight_Field (Optional) | The numeric field used to weight locations according to their relative importance. | Field |
Case_Field (Optional) | Field used to group features for separate directional distribution calculations. The case field can be of integer, date, or string type. | Field |
Code sample
DirectionalDistribution Example (Python Window)
The following Python Window script demonstrates how to use the DirectionalDistribution tool.
import arcpy
arcpy.env.workspace = r"C:\data"
arcpy.DirectionalDistribution_stats("AutoTheft.shp", "auto_theft_SE.shp", "1_STANDARD_DEVIATION", "#", "#")
DirectionalDistribution Example (stand-alone Python script)
The following stand-alone Python script demonstrates how to use the DirectionalDistribution tool.
# Measure the geographic distribution of auto thefts
# Import system modules
import arcpy
# Local variables...
workspace = "C:/data"
locations = "AutoTheft.shp"
links = "AutoTheft_links.shp"
standardDistance = "auto_theft_SD.shp"
stardardEllipse = "auto_theft_SE.shp"
linearDirectMean = "auto_theft_LDM.shp"
try:
# Set the workspace (to avoid having to type in the full path to the data every time)
arcpy.env.workspace = workspace
# Process: Standard Distance of auto theft locations...
arcpy.StandardDistance_stats(locations, standardDistance, "1_STANDARD_DEVIATION", "#", "#")
# Process: Directional Distribution (Standard Deviational Ellipse) of auto theft locations...
arcpy.DirectionalDistribution_stats(locations, standardEllipse, "1_STANDARD_DEVIATION", "#", "#")
# Process: Linear Directional Mean of auto thefts...
arcpy.DirectionalMean_stats(links, linearDirectMean, "DIRECTION", "#")
except:
# If an error occurred while running a tool, print the messages
print(arcpy.GetMessages())
Environments
Licensing information
- Basic: Yes
- Standard: Yes
- Advanced: Yes