NAClassFieldMap

Сводка

Предоставляет возможность сопоставлять имена полей или устанавливать значения по умолчанию для свойств входного класса сетевого анализа. Свойства класса сетевого анализа используются как исходные данные для расчетов при выполнении сетевого анализа.

Описание

Объект NAClassFieldMap не может сам приписывать значения. Он выполняется объектом NAClassFieldMappings, который возвращает набор объектов NAClassFieldMap в виде словаря Python. Ключи словаря - это имена свойств и класса сетевого анализа, а значения - объекты NAClassFieldMap.

Свойства

ВладениеОбъяснениеТип данных
defaultValue
(чтение и запись)

Дает возможность получать или задавать значение по умолчанию для свойства, представленного объектом NAClassFieldMap. Значение может определяться как строковое представление значения или как значение типа данных для свойства. Например, свойство Ограждающий подход (Curb Approach) по умолчанию имеет значение в числовом виде 1 или в строковом "1". Значение по умолчанию не может задаваться для свойства Положения (Locations) в подслоях Линейные барьеры (Line Barriers) и Полигональные барьеры (Polygon Barriers), так как они требуют значений BLOB. Если оба свойства mappedFieldName и defaultValue определены для одного свойства, то значение по умолчанию используется только, когда значение атрибута объекта, связанного с указанным полем, имеет нулевое значение.

Variant
mappedFieldName
(чтение и запись)

Дает возможность получать или задавать имя поля из входного класса объектов или таблицы, которая используется для присвоения значения свойству. Если значение атрибута объекта, отправляющего значение полю, нулевое, то используется указанное для свойства defaultValue значение.

String
propertyName
(только чтение)

Имя свойства, для которого указывается значение по умолчанию или поле для принятия значения с помощью объекта NAClassFieldMap.

String

Пример кода

Пример NAClassFieldMap

В следующем скрипте показано, как использовать объекты 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))