import arcpy
from arcpy import env
import os
try:
output_dir = "C:/Data"
env.workspace = os.path.join(output_dir, "Output.gdb")
env.overwriteOutput = True
input_gdb = "C:/Data/Paris.gdb"
network = os.path.join(input_gdb, "Transportation", "ParisMultimodal_ND")
layer_name = "ClosestWarehouse"
impedance = "DriveTime"
accumulate_attributes = ["Meters"]
facilities = os.path.join(input_gdb, "Analysis", "Warehouses")
incidents = os.path.join(input_gdb, "Analysis", "Stores")
output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")
result_object = arcpy.na.MakeClosestFacilityLayer(network, layer_name,
impedance, "TRAVEL_TO",
"", 1, accumulate_attributes,
"NO_UTURNS")
layer_object = result_object.getOutput(0)
sublayer_names = arcpy.na.GetNAClassNames(layer_object)
facilities_layer_name = sublayer_names["Facilities"]
incidents_layer_name = sublayer_names["Incidents"]
arcpy.na.AddLocations(layer_object, facilities_layer_name,
facilities, "", "")
field_mappings = arcpy.na.NAClassFieldMappings(layer_object,
incidents_layer_name)
field_mappings["Name"].mappedFieldName = "NOM"
arcpy.na.AddLocations(layer_object, incidents_layer_name, incidents,
field_mappings, "")
arcpy.na.Solve(layer_object)
layer_object.saveACopy(output_layer_file)
print("Script completed successfully")
except Exception as e:
import traceback, sys
tb = sys.exc_info()[2]
print(("An error occurred on line %i" % tb.tb_lineno))
print((str(e)))