Вычислить положения (Network Analyst)

Сводка

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

Более подробно о добавлении объектов в сети.

Использование

  • Это инструмент используется для вычисления полей положений, которые могут быть введены в инструмент Добавить положения. Это инструмент применяется в отношении объектов, которые используются в качестве входных в слое сетевого анализа более одного раза. После вычисления положения для быстрой загрузки объектов, как новых положений, можно использовать параметр Использовать поля сетевых положений вместо геометрии инструмента Добавить положения.

  • Это инструмент также можно использовать для пересчета сетевых положений, не расположенных в слое сетевого анализа при использовании другого набора параметров поиска. Например, если остановки на маршруте изначально были добавлены в слой сетевого анализа с допуском при поиске в 500 метров, и некоторые из них не были размещены с точными координатами, можно выбрать эти неразмещенные остановки, например, с помощью инструмента Выбрать в слое по атрибуту и выполнить операцию повторно, указав подслой остановок в качестве параметра Входные объекты с повышенной точностью поиска.

  • Данный инструмент работает значительно быстрее, если классы пространственных объектов, используемые в качестве сетевых источников в наборе сетевых данных, имеют корректный и актуальный пространственный индекс.

Синтаксис

arcpy.na.CalculateLocations(in_point_features, in_network_dataset, {search_tolerance}, {search_criteria}, {match_type}, {source_ID_field}, {source_OID_field}, {position_field}, {side_field}, {snap_X_field}, {snap_Y_field}, {distance_field}, {snap_Z_field}, {location_field}, {exclude_restricted_elements}, {search_query}, {travel_mode})
ParameterОбъяснениеТип данных
in_point_features

Входные объекты, на основании которых будут вычислены сетевые положения.

Для линейных и полигональных объектов поддерживаются только классы объектов баз геоданных, поскольку сведения о сетевых положениях хранятся в поле BLOB (указанном в параметре Поле диапазона положений).

Table View
in_network_dataset

Набор сетевых данных, который будет использоваться для вычисления местоположений.

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

Network Dataset Layer
search_tolerance
(Дополнительный)

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

По умолчанию 5000 метров.

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

Linear Unit
search_criteria
[[Source, SnapType],...]
(Дополнительный)

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

Ниже приведены доступные варианты типов привязки для каждого источника сети:

  • SHAPE – точка будет расположена на ближайшей точке элемента этого сетевого источника.
  • MIDDLE – точка будет расположена на ближайшей средней точке элемента этого сетевого источника.
  • END – точка будет расположена на ближайшей конечной точке элемента этого сетевого источника.
  • NONE – точка не будет расположена на элементах этого сетевого источника.

Опции MIDDLE и END поддерживаются для обратной совместимости. Используйте опцию SHAPE, чтобы найти ваши входные данные на определенном источнике сети; в противном случае используйте NONE.

При вычислении положений для линейного или полигонального объекта используется только тип замыкания SHAPE, даже в том случае, если указаны другие типы.

Для всех источников сети значение по умолчанию SHAPE, кроме замещенных соединений, созданных с помощью инструмента Объединить сеть, и системных соединений, для которых по умолчанию установлено значение NONE.

Этот параметр не используется, если источником сетевых данных является сервис портала.

Значение параметра указывается в виде списка с вложенными списками. Вложенные списки состоят из двух значений, указывающих имя и тип замыкания для всех источников сети. Например, значение параметра [["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]] указывает, что поиск может выполняться по геометрии источника Streets, но не по источнику Streets_ND_Junctions.

Любой источник сети, не включенный в этот список, будет использовать тип замыкания по умолчанию. Рекомендуется включить в список все источники сети и явно установить тип замыкания для каждого.

Для наборов сетевых данных базы геоданных типы замыкания могут быть указаны для каждого подтипа источников сети. Например, если в сети есть источник с именем Streets, а у этого источника есть подтип с именем Local Streets, укажите тип замыкания для локальных улиц, используя ["Streets : Local Streets", "SHAPE"].

Value Table
match_type
(Дополнительный)

Указывает способ сопоставления новых сетевых местоположений с источниками сети.

  • MATCH_TO_CLOSESTНовые сетевые положения будут сопоставляться с ближайшим источником сети среди всех источников, которые имели тип замыкания, указанный в критерии поиска. Это значение по умолчанию.
  • PRIORITYНовые сетевые положения будут сопоставляться с первым источником сети, имеющим тип замыкания, указанный в критерии поиска. Поиск источников выполняется в приоритетном порядке, поиск останавливается после нахождения положения в пределах допуска поиска.

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

Boolean
source_ID_field
(Дополнительный)

Имя поля, которое будет создаваться или обновляться с помощью ID источника для вычисленного сетевого положения. Поле с именем SourceID создается или обновляется по умолчанию.

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

Field
source_OID_field
(Дополнительный)

Имя поля, которое будет создаваться или обновляться с помощью OID источника для вычисленного сетевого положения. Поле с именем SourceOID создается или обновляется по умолчанию.

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

Field
position_field
(Дополнительный)

Имя поля, которое будет создано или обновлено в процентах вместе с вычисленным сетевым положением. Поле с именем PosAlong создается или обновляется по умолчанию.

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

Field
side_field
(Дополнительный)

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

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

Field
snap_X_field
(Дополнительный)

Имя поля, которое будет создаваться или обновляться с помощью координаты х вычисленного сетевого положения. Поле с именем SnapX создается или обновляется по умолчанию.

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

Field
snap_Y_field
(Дополнительный)

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

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

Field
distance_field
(Дополнительный)

Имя поля, которое будет создано или обновлено с учетом расстояния точечного объекта от вычисленного сетевого положения. Поле Distance создается и обновляется по умолчанию.

Выходное поле содержит значения в метрах.

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

Field
snap_Z_field
(Дополнительный)

Имя поля, которое будет создаваться или обновляться с помощью координаты z вычисленного сетевого положения. Поле с именем SnapZ создается или обновляется по умолчанию.

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

При вычислении положений для точечных объектов параметры используется только в случае поддержки набором сетевых данных связей на основе значений z-координат источников. В остальных случаях используйте в качестве значения параметра "#".

Field
location_field
(Дополнительный)

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

Параметр используется только при вычислении положений для линейных и полигональных объектов. Для точечных входных объектов используйте значение параметра "#".

Field
exclude_restricted_elements
(Дополнительный)

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

  • EXCLUDEСетевые положения размещаются только на проходимых участках сети. Это предотвратит размещение сетевых положений на элементах, которых нельзя достичь из-за ограничений или барьеров. Чтобы получить ожидаемые результаты, перед перемещением сетевых положений с использованием этого параметра, убедитесь в том, что в слой сетевого анализа уже добавлены все ограничивающие барьеры. Это значение по умолчанию.
  • INCLUDEСетевые положения размещаются на всех элементах сети. Сетевые положения, перемещаемые с использованием этого параметра, могут быть недоступны в процессе решения, если они размещены на ограниченных элементах.
Boolean
search_query
[[Source, Expression],...]
(Дополнительный)

Определяет запрос, который ограничивает поиск поднабором объектов в исходном классе объектов. Эта опция полезна, если вы не хотите размещать объекты, неподходящие для вашего анализа. Например, вы можете использовать запрос, чтобы исключить все объекты с определенным классом дороги.

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

Этот параметр не используется, если источником сетевых данных является сервис портала.

Значение параметра указывается в виде списка с вложенными списками. Вложенные списки состоят из двух значений, указывающих имя и выражение SQL для всех источников сети. Более подробно о синтаксисе SQL см. Справочник по SQL для выражений запросов, применяемых в ArcGIS.

К любому источнику сети, не включенному в этот список, запросы не применяются. Выражение, заданное как пустая строка, будет интерпретироваться как отсутствие запроса.

Например, значение параметра [["Streets", "\"CFCC\" = 'A15'"], ["Streets_ND_Junctions", ""]] определяет запрос для исходного класса пространственных объектов Streets, чтобы размещать входные данные только на тех улицах, где в поле CFCC значение соответствует A15. К исходному классу пространственных объектов Streets_ND_Junctions запросы не применяются.

Value Table
travel_mode
(Дополнительный)

Имя режима передвижения для выполнения анализа.

Если вы выбрали режим передвижения, настройки режима передвижения, такие как ограничения или атрибуты импеданса будут учтены при вычислении полей положений. Например, если ближайшее к входной точке ребро сети закрыто для передвижения грузового транспорта, а режим передвижения установлен на грузовую перевозку, функция Вычислить положения расположит точку на ближайшем ребре сети, передвижение грузового транспорта по которому разрешено.

Доступные режимы передвижения зависят от значения параметра in_network_dataset.

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

String

Производные выходные данные

NameОбъяснениеТип данных
out_point_feature_class

Обновленные входные объекты.

Вид Таблица

Пример кода

CalculateLocations, пример 1 (окно Python)

Использование параметра Вычислить положения для точечных объектов только с обязательными параметрами.

stores = "C:/Data/SanFrancisco.gdb/Analysis/Hospitals/Analysis/Stores"
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.CalculateLocations(stores, network, "5000 Meters",
                            [["Streets", "SHAPE"],
                            ["Streets_ND_Junctions", "NONE"]])
CalculateLocations, пример 2 (окно Python)

Вычислить положения для точечных объектов на объектах улиц, но не на других источниках сетевых данных.

warehouses = "C:/Data/Paris.gdb/Analysis/Warehouses"
network = "C:/Data/Paris.gdb/Transportation/ParisMultimodal_ND"
arcpy.na.CalculateLocations(warehouses, network, "5000 Meters",
    [["Metro_Lines", "NONE"], ["Streets", "SHAPE"],
    ["Transfer_Stations", "NONE"], ["Metro_Entrances", "NONE"],
    ["Metro_Stations", "NONE"], ["ParisMultimodal_ND_Junctions", "NONE"]],
    "MATCH_TO_CLOSEST", "SID", "SOID", "PA", "SOE", "SnapX", "SnapY",
    "Distance")
CalculateLocations, пример 3 (окно Python)

Использование Вычислить положения для полигональных объектов.

parks = "C:/Data/SanFrancisco.gdb/Analysis/Hospitals/Basemap/Parks"
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.CalculateLocations(parks, network, "", [["Streets", "SHAPE"],
                            ["Streets_ND_Junctions", "NONE"]],
                            location_field="Locations")
CalculateLocations, пример 4 (автономный скрипт Python)

Следующий скрипт Python является примером использования инструмента CalculateLocations в автономном скрипте.

# Name: CalculateLocations_ex04.py
# Description: Calculate network locations for fire stations. Make sure that the
#              fire stations are not located on the freeways.
# Requirements: Network Analyst Extension

#Import system modules
import arcpy
from arcpy import env

try:
    #Set environment settings
    env.workspace = "C:/Data/SanFrancisco.gdb"

    #Set local variables
    in_features = "Analysis/FireStations"
    network = "Transportation/Streets_ND"
    search_tolerance = "2000 Meters"
    search_criteria = [["Streets", "SHAPE"], ["Streets_ND_Junctions", "NONE"]]
    search_query = [["Streets", '"FREEWAY" = 0'], ["Streets_ND_Junctions", ""]]

    #Calculate network locations and store them in defaut field names
    arcpy.na.CalculateLocations(in_features, network, search_tolerance,
                                search_criteria, "MATCH_TO_CLOSEST",
                                exclude_restricted_elements="EXCLUDE",
                                search_query=search_query)

    print("Script completed successfully.")

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print(("An error occurred on line %i" % tb.tb_lineno))
    print((str(e)))

Информация о лицензиях

  • Basic: Да
  • Standard: Да
  • Advanced: Да

Связанные разделы