What's the easiest way to calculate the distance between 2 points, from 2 different features, that have matching attribute?
Gary Barden
Solved! Go to Solution.
Hi Gary,
You could accomplish this with a python script that uses the Point Distance tool. Below is an example that creates an individual feature layer based on an attribute selection for each feature class, and then runs the point distance analysis on these two points.
import arcpy from arcpy import env env.workspace = r"C:\temp\python\test.gdb" env.overwriteOutput = 1 fc1 = "pointA" fc2 = "pointB" #retrieve unique field values valueList = [] with arcpy.da.SearchCursor(fc1, ["PIN"]) as cursor: for row in cursor: list.append(row[0]) del cursor #run Point Distance analysis firstTime = 1 for value in valueList: if firstTime == 1: arcpy.MakeFeatureLayer_management(fc1, "fcLyrA", "PIN = '" + value + "'") arcpy.MakeFeatureLayer_management(fc2, "fcLyrB", "PIN = '" + value + "'") arcpy.PointDistance_analysis("fcLyrA", "fcLyrB", r"IN_MEMORY\pointDistance") firstTime = 2 else: arcpy.MakeFeatureLayer_management(fc1, "fcLyrA", "PIN = '" + value + "'") arcpy.MakeFeatureLayer_management(fc2, "fcLyrB", "PIN = '" + value + "'") arcpy.PointDistance_analysis("fcLyrA", "fcLyrB", r"IN_MEMORY\pointDistance_" + str(value)) arcpy.Append_management(r"IN_MEMORY\pointDistance_" + str(value), r"IN_MEMORY\pointDistance") #export table results arcpy.CopyRows_management(r"IN_MEMORY\pointDistance", "pointDistanceResults")
Hi Gary,
You could accomplish this with a python script that uses the Point Distance tool. Below is an example that creates an individual feature layer based on an attribute selection for each feature class, and then runs the point distance analysis on these two points.
import arcpy from arcpy import env env.workspace = r"C:\temp\python\test.gdb" env.overwriteOutput = 1 fc1 = "pointA" fc2 = "pointB" #retrieve unique field values valueList = [] with arcpy.da.SearchCursor(fc1, ["PIN"]) as cursor: for row in cursor: list.append(row[0]) del cursor #run Point Distance analysis firstTime = 1 for value in valueList: if firstTime == 1: arcpy.MakeFeatureLayer_management(fc1, "fcLyrA", "PIN = '" + value + "'") arcpy.MakeFeatureLayer_management(fc2, "fcLyrB", "PIN = '" + value + "'") arcpy.PointDistance_analysis("fcLyrA", "fcLyrB", r"IN_MEMORY\pointDistance") firstTime = 2 else: arcpy.MakeFeatureLayer_management(fc1, "fcLyrA", "PIN = '" + value + "'") arcpy.MakeFeatureLayer_management(fc2, "fcLyrB", "PIN = '" + value + "'") arcpy.PointDistance_analysis("fcLyrA", "fcLyrB", r"IN_MEMORY\pointDistance_" + str(value)) arcpy.Append_management(r"IN_MEMORY\pointDistance_" + str(value), r"IN_MEMORY\pointDistance") #export table results arcpy.CopyRows_management(r"IN_MEMORY\pointDistance", "pointDistanceResults")