ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Копировать пройденные исходные объекты

  • Сводка
  • Использование
  • Синтаксис
  • Пример кода
  • Параметры среды
  • Информация о лицензиях

Сводка

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

Более подробно о выходных данных инструмента Копировать пройденные исходные объекты

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

  • Инструмент рассчитывает входной слой сетевого анализа, если это еще не сделано. Слой анализа рассчитывается повторно, если входные данные были изменены после предыдущего расчета.

  • Пройденные исходные объекты могут быть созданы для следующих слоев сетевого анализа:

    • Маршрут
    • Область обслуживания
    • Ближайший пункт обслуживания
    • Задача выбора маршрута транспорта

    Пройденные исходные объекты нельзя создать для следующих слоев:

    • Матрица Источник-Назначение
    • Размещение-распределение

  • Выходной класс объектов соединений включает не только точки, представляющие пройденные соединения сети, но также и точки, представляющие следующие элементы:

    • Пройденные точечные барьеры
    • Точки входа и выхода пройденных линейных и полигональных барьеров
    • Посещенные остановки при анализе маршрута
    • Посещенные пункты обслуживания и конечные точки границ при анализе области обслуживания
    • Посещенные пункты обслуживания и инциденты при анализе ближайшего пункта обслуживания
    • Посещенные заказы, станции и границы при решении задачи выбора маршрута транспорта

    Более подробно о выходных данных инструмента Копировать пройденные исходные объекты

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

Синтаксис

arcpy.na.CopyTraversedSourceFeatures(input_network_analysis_layer, output_location, edge_feature_class_name, junction_feature_class_name, turn_table_name)
ПараметрОбъяснениеТип данных
input_network_analysis_layer

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

Network Analyst Layer
output_location

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

Workspace; Feature Dataset
edge_feature_class_name

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

String
junction_feature_class_name

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

String
turn_table_name

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

String

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

ИмяОбъяснениеТип данных
edge_features

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

Класс объектов
junction_features

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

Класс объектов
turn_table

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

Таблица
modified_input_network_analysis_layer

Решенный слой сетевого анализа.

Слой Network Analyst

Пример кода

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

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

arcpy.na.CopyTraversedSourceFeatures("Route", "C:/Data/Output.gdb",
                                     "TraversedEdges",
                                     "TraversedJunctions",
                                     "TraversedTurns")
Пример CopyTraversedSourceFeatures 2 (рабочий процесс)

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

# Name: CopyTraversedSourceFeatures_ex02.py
# Description: The scenario shows how to find the streets that are common to the
#              routes between the closest fire station and the census tract
#              centroids. These streets can be used to identify critical points
#              in case of an emergency. 
# Requirements: Network Analyst Extension 

#Import system modules
import os
import arcpy
from arcpy import env

try:
    #Check out the Network Analyst extension license
    arcpy.CheckOutExtension("Network")

    #Set environment settings
    env.workspace = "C:/data/SanFrancisco.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outNALayerName = "EmergencyRoutes"
    impedanceAttribute = "TravelTime"
    inFacilities = "Analysis/FireStations"
    inIncidents = "Analysis/TractCentroids"
    edgeFrequency = "in_memory/EdgeFrequency"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
    outFeatures = "CriticalStreets"
    
    #Create a new closest facility analysis layer. For this scenario, the default 
    #value for all the remaining parameters statisfies the analysis requirements
    outNALayer = arcpy.na.MakeClosestFacilityLayer(inNetworkDataset, outNALayerName,
                                                   impedanceAttribute, "TRAVEL_FROM")
    
    #Get the layer object from the result object. The closest facility layer can 
    #now be referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)
    
    #Get the names of all the sublayers within the closest facility layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    facilitiesLayerName = subLayerNames["Facilities"]
    incidentsLayerName = subLayerNames["Incidents"]
    
    #Load fire station features as facilities and ensure that they are not
    #located on restricted portions of the network. Use default field mappings
    #and search tolerance
    arcpy.na.AddLocations(outNALayer,facilitiesLayerName,inFacilities,"", "",
                          exclude_restricted_elements = "EXCLUDE")
    
    #Load tract centroids as incidents and ensure that they are not located on
    #restricted portions of the network. Map the ID field from Tract Centroids
    #as the name for incidents using field mappings
    fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer, incidentsLayerName)
    fieldMappings['Name'].mappedFieldName = "ID"
    arcpy.na.AddLocations(outNALayer,incidentsLayerName, inIncidents,
                          fieldMappings,"", exclude_restricted_elements = "EXCLUDE")
    
    #Solve the closest facility layer and copy the travered source features to a
    #temporary in-memory workspace. Use default names for the output feature
    #classes and table. Get only the first output which are the edges traversed.
    traversedEdges = arcpy.na.CopyTraversedSourceFeatures(outNALayer,
                                                          "in_memory").getOutput(0)
    
    #Calculate the frequency of SourceOID in the traversed edges
    arcpy.analysis.Frequency(traversedEdges, edgeFrequency,
                             ["SourceOID", "SourceName"])
    
    #Get the full path to the streets feature class by describing the network
    #dataset referenced by the network analysis layer. 
    network = arcpy.Describe(outNALayer.dataSource)
    edgeSources = network.edgeSources
    for es in edgeSources:
        if es.name.lower() == "streets":
            streetsSource = os.path.join(os.path.dirname(network.catalogPath),
                                         es.name)
            break
    else:
        raise Exception("Failed to detrmine the path for the streets feature class")
    
    #Join the frequency field to the streets feature class. In order to speed up
    #the join select the streets that share a line segment with traversed streets.
    streetsLayer = "StreetsLayer"
    arcpy.management.MakeFeatureLayer(streetsSource,streetsLayer)
    arcpy.management.SelectLayerByLocation(streetsLayer, "SHARE_A_LINE_SEGMENT_WITH",
                                           traversedEdges)
    arcpy.management.JoinField(streetsLayer, "ObjectID", edgeFrequency,
                               "SourceOID", "FREQUENCY")
    
    #Copy the streets that have a frequency value to a new feature class.
    arcpy.management.SelectLayerByAttribute(streetsLayer, "SUBSET_SELECTION",
                                            "FREQUENCY IS NOT NULL")
    arcpy.management.CopyFeatures(streetsLayer,outFeatures)
    
    #Delete the Frequency field from the streets feature class
    arcpy.management.DeleteField(streetsLayer, "FREQUENCY")

    #Save the solved na layer as a layer file on disk with relative paths
    arcpy.management.SaveToLayerFile(outNALayer,outLayerFile,"RELATIVE")
    
    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: Требуется Network Analyst
  • Standard: Требуется Network Analyst
  • Advanced: Требуется Network Analyst

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

  • Выходные данные инструмента Копировать пройденные исходные объекты

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация