Cluster/Group Point Data based on network distance?

04-14-2021 12:44 AM
New Contributor III

Hi all,

I need to make a point cluster analysis considering only the network distances between points.
I have a set of locations and the network distances between them (an ODCostMatrix output) and I would like to cluster the locations based on their proximity (street distance proximity).

I read some documentation about these two Spatial Statistics Tools:

  • Spatially Contrained Multivariate Clustering
  • Cluster and Outlier Analysis

but both of them need an input variable to be considered when creating the cluster and I don't have it. I only want to evaluate the network distances between the points.

Does anyone have any idea of how this analysis could be done using ArcGIS Geoprocessing Tools?

Thank you,


0 Kudos
3 Replies
Occasional Contributor II

Hi Roxana,

I believe you have two sets of inputs one is polyline(Street datasets) and point datasets. If I understood perfectly your requirement is to find the distance between two points.

Step a: Build your street layer as a network dataset.

Step b: Create OD Cost Matrix using Network Analyst Extension in ArcGIS Pro

Step c:  In Pro, Contents pane select OD Cost Matrix Origin layer, Once you select the origin layer you will see the OD Cost Matrix tab got highlight in the Pro ribbon.  Go to the Input data Import destination option and import your point cluster datasets in input locations and sub-layer as a destination under the Add locations geoprocessing tools and run (refer below screenshot).


Output result between two-point features.








0 Kudos
New Contributor III

Hi Kiran,

thank you for your reply.

Actually, I already have all the necessary input data, including the network distances between points.

What I need is to run a cluster analysis on that location considering the existing network distance between them. Unfortunately I think there is no ArcGIS Pro tool that does this and the alternative is python and scipy clustering package.




Occasional Contributor III

Hi @Roxana_ElenaUrdea did you ever find a way of doing this?

We are running some parameters to come up with a priority scoring and then clustering for a maintenance backlog. We can use an as-the-crow-flies distance buffer but would be really cool to instead group into clusters based on a drive time using a network to be smarter about it (we have a lot of canyons here that can massively increase drive time!)

Something like...


Thanks for asking this.