Generate Spatial Weights Matrix (Spatial Statistics)


Constructs a spatial weights matrix (.swm) file to represent the spatial relationships among features in a dataset.

Learn more about how Generate Spatial Weights Matrix works


Spatial weights based on Polygon Contiguity.
Spatial relationships based on polygon contiguity, Queen's case: shared edges or nodes.



GenerateSpatialWeightsMatrix_stats (Input_Feature_Class, Unique_ID_Field, Output_Spatial_Weights_Matrix_File, Conceptualization_of_Spatial_Relationships, Distance_Method, {Exponent}, {Threshold_Distance}, {Number_of_Neighbors}, {Row_Standardization}, {Input_Table})
ParameterExplanationData Type

The feature class for which spatial relationships of features will be assessed.

Feature Class

An integer field containing a different value for every feature in the Input Feature Class.


The full pathname for the spatial weights matrix file (.swm) you want to create.


Specifies how spatial relationships among features are conceptualized.

  • INVERSE_DISTANCEThe impact of one feature on another feature decreases with distance.
  • FIXED_DISTANCEEverything within a specified critical distance of each feature is included in the analysis; everything outside the critical distance is excluded.
  • K_NEAREST_NEIGHBORSThe closest "k" features are included in the analysis; k is a specified numeric parameter.
  • CONTIGUITY_EDGES_ONLYPolygon features that share a boundary are neighbors.
  • CONTIGUITY_EDGES_CORNERSPolygon features that share a boundary and/or share a node are neighbors.
  • DELAUNAY_TRIANGULATIONA mesh of nonoverlapping triangles is created from feature centroids; features associated with triangle nodes that share edges are neighbors.
  • CONVERT_TABLESpatial relationships are defined in a table.

Note: Polygon Contiguity methods are only available with an ArcInfo license.


Specifies how distances are calculated from each feature to neighboring features.

  • EUCLIDEAN_DISTANCEThe straight-line distance between two points (as the crow flies)
  • MANHATTAN_DISTANCEThe distance between two points measured along axes at right angles (city block); calculated by summing the (absolute) difference between the x- and y-coordinates

Parameter for inverse distance calculation. Typical values are 1 or 2.


Specifies a cutoff distance for Inverse Distance and Fixed Distance conceptualizations of spatial relationships. Enter this value using the units specified in the environment output coordinate system.

A value of zero indicates that no threshold distance is applied. When this parameter is left blank, a default threshold value is computed based on output feature class extent and the number of features.


An integer reflecting either the minimum or the exact number of neighbors. For K Nearest Neighbors, each feature will have exactly this specified number of neighbors. For Inverse Distance or Fixed Distance each feature will have at least this many neighbors (the threshold distance will be temporarily extended to ensure this many neighbors, if necessary). When there are island polygons and one of the Contiguity Conceptualizations of Spatial Relationships is selected, then this specified number of nearest polygons will be associated with those island polygons.


Row standardization is recommended whenever feature distribution is potentially biased due to sampling design or to an imposed aggregation scheme.

  • ROW_STANDARDIZATIONSpatial weights are standardized by row. Each weight is divided by its row sum.
  • NO_STANDARDIZATIONNo standardization of spatial weights is applied.

A table containing numeric weights relating every feature to every other feature in the input feature class. Required fields are the Input Feature Class Unique ID field, NID (neighbor ID), and WEIGHT.


Code Sample

GenerateSpatialWeightsMatrix Example (Python Window)

The following Python Window script demonstrates how to use the GenerateSpatialWeightsMatrix tool.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateSpatialWeightsMatrix_stats("911Count.shp", "MYID","euclidean6Neighs.swm","K_NEAREST_NEIGHBORS","#", "#", "#", 6,"NO_STANDARDIZATION") 
GenerateSpatialWeightsMatrix Example (stand-alone Python script)

The following stand-alone Python script demonstrates how to use the GenerateSpatialWeightsMatrix tool.

# Analyze the spatial distribution of 911 calls in a metropolitan area
# using the Hot-Spot Analysis Tool (Local Gi*)

# Import system modules
import arcpy

# Set geoprocessor object property to overwrite existing output, by default = True

# Local variables...
workspace = "C:/Data"

    # Set the current workspace (to avoid having to specify the full path to the feature classes each time)
    arcpy.env.workspace = workspace

    # Copy the input feature class and integrate the points to snap
    # together at 500 feet
    # Process: Copy Features and Integrate
    cf = arcpy.CopyFeatures_management("911Calls.shp", "911Copied.shp",
                         "#", 0, 0, 0)

    integrate = arcpy.Integrate_management("911Copied.shp #", "500 Feet")

    # Use Collect Events to count the number of calls at each location
    # Process: Collect Events
    ce = arcpy.CollectEvents_stats("911Copied.shp", "911Count.shp", "Count", "#")

    # Add a unique ID field to the count feature class
    # Process: Add Field and Calculate Field
    af = arcpy.AddField_management("911Count.shp", "MyID", "LONG", "#", "#", "#", "#",
                     "NON_NULLABLE", "NON_REQUIRED", "#",
    cf = arcpy.CalculateField_management("911Count.shp", "MyID", "[FID]", "VB")

    # Create Spatial Weights Matrix for Calculations
    # Process: Generate Spatial Weights Matrix... 
    swm = arcpy.GenerateSpatialWeightsMatrix_stats("911Count.shp", "MYID",
                        "#", "#", "#", 6,

    # Hot Spot Analysis of 911 Calls
    # Process: Hot Spot Analysis (Getis-Ord Gi*)
    hs = arcpy.HotSpots_stats("911Count.shp", "ICOUNT", "911HotSpots.shp", 
                     "EUCLIDEAN_DISTANCE", "NONE",
                     "#", "#", "euclidean6Neighs.swm")

    # If an error occurred when running the tool, print out the error message.
    print arcpy.GetMessages()


Output Coordinate System

Feature geometry is projected to the Output Coordinate System prior to analysis.

Related Topics

Licensing Information

ArcView: Yes
ArcEditor: Yes
ArcInfo: Yes