Краткая информация
Предоставляет словарь из объектов NAClassFieldMap, которые используются для сопоставления имен полей или установки значений по умолчанию для свойств входного класса сетевого анализа. Ключи словаря - это имена свойств и класса сетевого анализа, а значения - объекты NAClassFieldMap.
Обсуждение
Объект NAClassFieldMappings получается с использованием метода fieldMappings для объекта класса механизма расчета сетевого анализа и может использоваться в качестве входного для параметра field_mappings метода load. Объекты NAClassFieldMap, содержащиеся в объекте NAClassFieldMappings, предоставляют доступ для получения или установки значения по умолчанию и сопоставленного имени поля, связанного с каждым свойством класса сетевого анализа.
Более подробно о рекомендациях по настройке входных данных анализа
Пример кода
В следующем скрипте показано, как использовать объекты NAClassFieldMappings и NAClassFieldMap для контроля загрузки при анализе матрицы стоимости Источник-Назначение.
# An example showing how to perform origin destination cost matrix analysis using inputs from feature classes.
import arcpy
arcpy.CheckOutExtension("network")
nds = "C:/data/NorthAmerica.gdb/Routing/Routing_ND"
nd_layer_name = "Routing_ND"
input_origins = "C:/data/io.gdb/Origins"
input_destinations = "C:/data/io.gdb/Destinations"
output_lines = "C:/data/io.gdb/ODCostMatrixLines"
# Create a network dataset layer and get the desired travel mode for analysis
arcpy.na.MakeNetworkDatasetLayer(nds, nd_layer_name)
nd_travel_modes = arcpy.na.GetTravelModes(nd_layer_name)
travel_mode = nd_travel_modes["Driving Time"]
# Pre-calculate network location fields on the inputs to speed up analysis later
search_tolerance = "5000 Meters"
search_criteria = [["Streets", "SHAPE"], ["Streets_ND_Junctions", "NONE"]]
arcpy.nax.CalculateLocations(input_origins, nds, search_tolerance, search_criteria, travel_mode=travel_mode)
arcpy.nax.CalculateLocations(input_destinations, nds, search_tolerance, search_criteria, travel_mode=travel_mode)
# Instantiate a OriginDestinationCostMatrix solver object
odcm = arcpy.nax.OriginDestinationCostMatrix(nd_layer_name)
# Set properties
odcm.travelMode = travel_mode
odcm.lineShapeType = arcpy.nax.LineShapeType.NoLine
# Load inputs using field mappings, including the pre-calculated location fields
field_mappings_origins = odcm.fieldMappings(arcpy.nax.OriginDestinationCostMatrixInputDataType.Origins, True)
# Map the "Nombre" field in the input data to the "Name" property of the Origins class
field_mappings_origins["Name"].mappedFieldName = "Nombre"
# If the "Nombre" field is blank, set the default name to "Origen"
field_mappings_origins["Name"].defaultValue = "Origen"
odcm.load(arcpy.nax.OriginDestinationCostMatrixInputDataType.Origins, input_origins, field_mappings_origins)
# Load destinations
field_mappings_destinations = odcm.fieldMappings(arcpy.nax.OriginDestinationCostMatrixInputDataType.Destinations, True)
odcm.load(arcpy.nax.OriginDestinationCostMatrixInputDataType.Destinations, input_destinations, field_mappings_destinations)
# Solve the analysis
result = odcm.solve()
# Export the results to a feature class
if result.solveSucceeded:
result.export(arcpy.nax.OriginDestinationCostMatrixOutputDataType.Lines, output_lines)
else:
print("Solved failed")
print(result.solverMessages(arcpy.nax.MessageSeverity.All))