import arcpy, os, sys from arcpy import env arcpy.env.workspace = "C:\\Users\\Ant\\Documents\\ArcGIS\\ITN.gdb" arcpy.RefreshCatalog("C:\\Users\\Ant\\Documents\\ArcGIS\\ITN.gdb") env.overwriteOutput = True inNetworkDataset = "C:\Users\Ant\Documents\ArcGIS\OSMaster.gdb\ITN_Network\ITN_NetworkDataset" impedanceAttribute = "Drive" searchTolerance = "5000 Meters" accumulateAttributeName = ["Length", "Drive"] inFacilities = "TL_chemistsV3" inIncidents = "BLPUs_Points" outLayerFile = "ProxChemistsCF.lyr" outNALayer = arcpy.na.MakeClosestFacilityLayer(inNetworkDataset, "ProxChemistsCF", impedanceAttribute, "TRAVEL_TO", "", 1, accumulateAttributeName, "NO_UTURNS", "", "", "", "TRUE_LINES_WITHOUT_MEASURES") outNALayer = outNALayer.getOutput(0) subLayerNames = arcpy.na.GetNAClassNames(outNALayer) facilitiesLayerName = subLayerNames["Facilities"] incidentsLayerName = subLayerNames["Incidents"] arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", searchTolerance) arcpy.na.AddLocations(outNALayer, incidentsLayerName, inIncidents, "", searchTolerance) arcpy.na.Solve(outNALayer) tableName = subLayerNames["CFRoutes"] if arcpy.Exists("ProxChemists"): arcpy.Delete_management("ProxChemists") outTable = "ProxChemists" arcpy.CopyRows_management(tableName, outTable)ExecuteError: Failed to execute. Parameters are not valid. ERROR 000732: Input Rows: Dataset Routes does not exist or is not supported Failed to execute (CopyRows).
with arcpy.da.UpdateCursor("BLPUs", ["FID", "ChemistsFID", "ChemistsDist", "ChemistsDrive"]) as cursor: for row in cursor: OID1 = str(int(row[0])) searchrows = arcpy.da.SearchCursor(tableName, ["ObjectID", "FacilityID", "Total_Drive", "Total_Length"]) for searchrow in searchrows: searchrow1 = str(int(searchrow[0])) searchrow2 = str(int(searchrow[1])) searchrow3 = str(float(searchrow[2])) searchrow4 = str(float(searchrow[3])) if searchrow1 == OID1: row[1] = searchrow2 row[2] = searchrow4 row[3] = searchrow3 cursor.updateRow(row)Solved! Go to Solution.
tableName = subLayerNames["CFRoutes"] routesSubLayer = arcpy.mapping.ListLayers(outNALayer, tableName)[0] searchrows = arcpy.da.SearchCursor(routesSubLayer, ["ObjectID", "FacilityID", "Total_Drive", "Total_Length"]) ...
tableName = subLayerNames["CFRoutes"] routesSubLayer = arcpy.mapping.ListLayers(outNALayer, tableName)[0] searchrows = arcpy.da.SearchCursor(routesSubLayer, ["ObjectID", "FacilityID", "Total_Drive", "Total_Length"]) ...
import arcpy, os, sys
from arcpy import env
arcpy.env.workspace = "C:\\Users\\Ant\\Documents\\ArcGIS\\ITN.gdb"
arcpy.RefreshCatalog("C:\\Users\\Ant\\Documents\\ArcGIS\\ITN.gdb")
env.overwriteOutput = True
inNetworkDataset = "C:\Users\Ant\Documents\ArcGIS\OSMaster.gdb\ITN_Network\ITN_NetworkDataset"
impedanceAttribute = "Drive"
searchTolerance = "5000 Meters"
accumulateAttributeName = "Drive;Length"
inFacilities = "TL_chemistsV3"
inIncidents = "BLPUs_Points"
outLayerFile = "ProxChemistsCF.lyr"
outNALayer = arcpy.MakeClosestFacilityLayer_na(inNetworkDataset, "ProxChemistsCF", impedanceAttribute, "TRAVEL_TO", "", 1, accumulateAttributeName, "NO_UTURNS", "", "", "", "TRUE_LINES_WITHOUT_MEASURES")
outNALayer = outNALayer.getOutput(0)
subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
facilitiesLayerName = subLayerNames["Facilities"]
incidentsLayerName = subLayerNames["Incidents"]
arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", "")
arcpy.na.AddLocations(outNALayer, incidentsLayerName, inIncidents, "", "")
arcpy.Solve_na(outNALayer, "SKIP", "TERMINATE", "")
tableName = ["CFRoutes"]
routesSubLayer = arcpy.mapping.ListLayers(outNALayer, tableName)[0]
arcpy.AddField_management("BLPUs", "ChemistsFID", "LONG")
arcpy.AddField_management("BLPUs", "ChemistsDist", "DOUBLE")
arcpy.AddField_management("BLPUs", "ChemistsDrive", "DOUBLE")
arcpy.AddField_management("BLPUs", "ChemistsMiles", "DOUBLE")
with arcpy.da.UpdateCursor("BLPUs", ["FID", "ChemistsFID", "ChemistsDist", "ChemistsDrive"]) as cursor:
for row in cursor:
OID1 = str(int(row[0]))
searchrows = arcpy.da.SearchCursor(routesSubLayer, ["ObjectID", "FacilityID", "Total_Drive", "Total_Length"])
for searchrow in searchrows:
searchrow1 = str(int(searchrow[0]))
searchrow2 = str(int(searchrow[1]))
searchrow3 = str(float(searchrow[2]))
searchrow4 = str(float(searchrow[3]))
if searchrow1 == OID1:
row[1] = searchrow2
row[2] = searchrow4
row[3] = searchrow3
cursor.updateRow(row)
SQL = ' [ChemistsDist] * 0.000621371192 '
arcpy.CalculateField_management("BLPUs", "ChemistsMiles1", SQL)
arcpy.DeleteField_management("BLPUs", "ChemistsDist1")
tableName = ["CFRoutes"]
tableName = subLayerNames["CFRoutes"]