NAClassFieldMap
Краткая информация
Возможность сопоставления имен полей или установки значений по умолчанию для свойств входного класса сетевого анализа. Свойства класса сетевого анализа используются как исходные данные для расчетов при выполнении сетевого анализа.
Обсуждение
Объект NAClassFieldMap не может сам приписывать значения. Он выполняется объектом NAClassFieldMappings, который возвращает набор объектов NAClassFieldMap в виде словаря. Ключи словаря - это имена свойств и класса сетевого анализа, а значения - объекты NAClassFieldMap.
Свойства
| Имя | Объяснение | Тип данных |
|---|---|---|
|
defaultValue (Чтение / Запись) |
Дает возможность получать или задавать значение по умолчанию для свойства, представленного объектом |
Variant |
|
mappedFieldName (Чтение / Запись) |
Дает возможность получать или задавать имя поля из входного класса объектов или таблицы, которая используется для присвоения значения свойству. Если значение атрибута объекта, отправляющего значение полю, нулевое, то используется указанное для свойства |
String |
|
propertyName (Только для чтения) |
Имя свойства, для которого указывается значение по умолчанию или поле для принятия значения с помощью объекта |
String |
Пример кода
В следующем скрипте показано, как использовать объекты NAClassFieldMappings и NAClassFieldMap для контроля загрузки при анализе матрицы стоимости Источник-Назначение.
# An example showing how to perform origin destination cost matrix analysis using inputs from feature classes.
import arcpy
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))