Сводка
Создает схематическое представление
В зависимости от компоновщика схемы создание схемы может быть основано на слоях объектов, классов объектов, таблицах объектов, слое сетевого анализа или данных XML.
Использование
Если имя выходного схематического представления уже существует, оно может быть удалено, а затем создано повторно. Чтобы избежать этого удаления, можно снять отметку с опции Переписать результаты операций геообработки в диалоговом окне Опции геообработки.
Потребность в параметре Входные данные зависит от компоновщика схемы, связанного с шаблоном схемы, заданным для создаваемого представления:
- Для шаблона схемы, основанного на Стандартном компоновщике, настроенном для работы из геометрической сети или набора сетевых данных, параметр необходим. Заданные входные таблицы могут быть слоями объектов, классами объектов или таблицами объектов.
- Для шаблона схемы, основанного на Компоновщике наборов сетевых данных, в качестве параметра Входные данные должен быть задан уникальный слой сетевого анализа.
- Для шаблона схемы, основанного на XML-компоновщике, в качестве параметра Входные данные должен быть задан уникальный файл XML.
- Для шаблона схемы, основанного на Стандартном компоновщике, настроенном для работы из пользовательских запросов, входные данные не требуются.
Синтаксис
arcpy.schematics.CreateDiagram(out_location, out_name, diagram_type, {in_data}, {builder_options})
Параметр | Объяснение | Тип данных |
out_location | Набор схематических данных или папка схемы, в которых будет создана схема. | Schematic Dataset;Schematic Folder |
out_name | Имя создаваемого схематического представления. | String |
diagram_type | Шаблон для создаваемого схематического представления. | String |
in_data [in_data,...] (Дополнительный) | Входные данные для создания схемы. Параметр Входные данные указывает элементы, на основе которых будет создана схема. Параметр должен быть задан для большинства предопределенных компоновщиков схемы:
| Table View;Data Element;Layer |
builder_options (Дополнительный) | Параметры создания в компоновщике схемы. Эти параметры необходимы только для схем на основе Компоновщика набора сетевых данных, чтобы указать, будут ли объединяться узлы.
| String |
Пример кода
CreateDiagram и Стандартный компоновщик, работающий с данными геометрической сети, пример 1 (автономный скрипт Python)
Создание образцов схематических представлений из объектов ГИС, организованных в геометрическую сеть.Как запустить этот пример скрипта Python:
- Запустите ArcCatalog или ArcMap с новой пустой картой.
- Скопируйте приведенный ниже скрипт в Окно Python:
- Нажмите ENTER.
# Name: CreateDiagramStd.py
# Description: Create schematic diagrams sample from GIS features organized into a geometric network
# Requirement: ArcGIS Schematics extension extension
# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics extension extension license required"
try:
# Checks out the ArcGIS Schematics extension extension license
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseAvailable)
# Sets Schematics general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_In_ArcMap"
gdbName="ElecDemo.gdb"
out_schDataset="ElecDemo"
out_diagAName="FeederDiagram"
out_diagBName="ElectricMainNetworkDiagram"
out_diagTempName="GeoSchematic"
input_FC1="ElectricNetwork/Feeder"
input_FC2="ElectricNetwork/PrimaryLine"
input_LayerName="PrimaryLineLayer"
input_Filter="PHASECODE=135"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# CreateDiagram from a feature class, Feeder
arcpy.CreateDiagram_schematics(out_schDataset, out_diagAName, out_diagTempName, input_FC1)
# CreateDiagram from a feature layer
# 1) Creates a layer with the selection
InputLayer = arcpy.MakeFeatureLayer_management(input_FC2, input_LayerName, input_Filter)
# 2) Uses the layer as input of CreateDiagram
arcpy.CreateDiagram_schematics(out_schDataset, out_diagBName, out_diagTempName, InputLayer)
# Returns the ArcGIS Schematics extension extension license
arcpy.CheckInExtension("Schematics")
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 occured on line %i" % tb.tb_lineno
print str(e)
CreateDiagram и Компоновщик набора сетевых данных, пример 2 (автономный скрипт Python)
Создание образцов схематических представлений из рассчитанного слоя сетевого анализа.Как запустить этот пример скрипта Python:
- Запустите ArcMap.
- Откройте файл Open the ParisTours.mxd, хранящийся в C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset.
- Щелкните Геообработка > Опции геообработки.
- Снимите отметку с Включить в разделе Обработка в фоновом режиме и щелкните ОК.
- Скопируйте приведенный ниже скрипт в Окно Python:
- Нажмите ENTER.
# Name : CreateDiagramNDS.py
# Description : Create a schematic diagram from the network dataset builder
# Requirement: ArcGIS Schematics extension extension,ArcGIS Network Analyst extension extension
# import system modules
import arcpy
msgNoLicenseSchematicsAvailable = "ArcGIS Schematics extension extension license required"
msgNoLicenseNetworkAnalystAvailable = "ArcGIS Network Analyst extension extension license required"
try:
# Checks out the ArcGIS Schematics extension extension licence
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseSchematicsAvailable)
# Checks out the ArcGIS Network Analyst extension extension licence
if arcpy.CheckExtension("Network") == "Available":
arcpy.CheckOutExtension("Network")
else:
raise Exception(msgNoLicenseNetworkAnalystAvailable)
# Sets general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_Configuration/Network_Dataset"
gdbName="NetworkAnalyst_Schematics.gdb"
out_schDataset="NA_SchematicDataset"
out_diagAName="DiagramTour_MERGED"
out_diagBName="DiagramTour_NOTMERGED"
out_diagTempName="NADiagrams"
in_NALayerName="Routes/Tour1"
option1="MERGE_NODES"
option2="NO_MERGE_NODES"
# Sets environnement settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# CreateDiagram from a solved route network analysis layer
# 1) Solves the route network analysis layer, Tour1
arcpy.Solve_na(in_NALayerName)
# 2) Creates diagrams from this solved route network analysis layer
# a - A diagram where a single node is created to represent a GIS point crossed N times along this route (option1)
arcpy.CreateDiagram_schematics(out_schDataset, out_diagAName, out_diagTempName, in_NALayerName, option1)
# b - A diagram where N nodes are created to represent a GIS point crossed N times along this route (option2)
arcpy.CreateDiagram_schematics(out_schDataset, out_diagBName, out_diagTempName, in_NALayerName, option2)
# Returns the licences
arcpy.CheckInExtension("Schematics")
arcpy.CheckInExtension("Network")
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 occured on line %i" % tb.tb_lineno
print str(e)
CreateDiagram и XML-компоновщик, пример 3 (автономный скрипт Python)
Создание образца схематического представления на основе XML компоновщика. Как запустить этот пример скрипта Python:
- Запустите ArcCatalog
- Создание и настройка набора схематических данных, используемого в ходе работы примера скрипта:
- Перейдите в папку C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data в дереве Каталога.
- Щелкните правой кнопкой мыши базу геоданных GISDatabaseForXML, выберите Новый, а затем щелкните Набор схематических данных.
- Введите XMLDataset в качестве имени только что созданного набора схематических данных и нажмите клавишу ENTER.
- Щелкните правой кнопкой мыши набор схематических данных XMLDataset и щелкните Редактировать.
- Щелкните правой кнопкой мыши элемент XMLDataset в дереве Редактора набора данных и щелкните Новый шаблон схематического представления.
- Введите XMLDiagrams в текстовое поле Имя.
- Выберите XML-компоновщик в разделе Компоновщик схемы.
- Щелкните Свойства компоновщика схемы и отметьте опцию Автоматическое создание класса объектов схемы.
- Закройте диалоговое окно Свойства компоновщика.
- Нажмите ОК.
- Щелкните Сохранить на панели инструментов Редактор набора схематических данных и закройте Редактора.
- Скопируйте и вставьте следующий скрипт в окно Python в ArcCatalog или ArcMap:
- Нажмите ENTER.
# Name: CreateDiagramXML.py
# Description: Create a sample schematic diagram based on the XML builder
# Requirement: ArcGIS Schematics extension extension
# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics extension extension license required"
try:
# Checks out the ArcGIS Schematics extension extension license
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseAvailable)
# Sets Schematics general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_Configuration/XML_Data"
gdbName="GISDatabaseForXML.gdb"
out_schDataset="XMLDataset"
out_diagName="XMLDiagramSample"
out_diagTempName="XMLDiagrams"
input_XmlFile="SampleNetworkData.xml"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# CreateDiagram from a XML file, SampleNetworkData.xml file
arcpy.CreateDiagram_schematics(out_schDataset, out_diagName, out_diagTempName, dataLocation + "/" + input_XmlFile)
# Returns the ArcGIS Schematics extension extension license
arcpy.CheckInExtension("Schematics")
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 occured on line %i" % tb.tb_lineno
print str(e)
CreateDiagram и Стандартный компоновщик, работающий из пользовательских запросов, пример 4 (автономный скрипт Python)
Создание образца схематического представления из пользовательских запросов.Как использовать этот пример скрипта Python:
- Запустите ArcCatalog
- Этот скрипт работает с копией учебной базы геоданных ElecDemo, чтобы избежать перезаписи исходной, внутренней схемы:
- Перейдите в папку C:\ArcGIS\ArcTutor\Schematics\chematics_In_ArcMap в дереве Каталога.
- Скопируйте и вставьте базу геоданных ElecDemo. Только что созданная база геоданных ElecDemo_1 предназначена для работы примера скрипта.
- Скопируйте и вставьте следующий скрипт в окно Python в ArcCatalog или ArcMap:
- Нажмите клавишу ENTER. Доп. модуль ArcGIS Schematics extension
# Name: CreateDiagramCustomQuery.py
# Description: Create a schematic diagram from custom queries
# Requirement:
# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics extension extension license required"
try:
# Checks out the ArcGIS Schematics extension extension license
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseAvailable)
# Sets Schematics general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_In_ArcMap"
gdbName="ElecDemo_1.gdb"
out_schDataset="ElecDemo"
out_schFolder="Inside Plants"
out_diagName="Substation 08"
out_diagTempName="InsidePlants"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# CreateDiagram from a diagram template configured from custom queries
arcpy.CreateDiagram_schematics(out_schDataset + "/" + out_schFolder, out_diagName, out_diagTempName)
# Returns the ArcGIS Schematics extension extension license
arcpy.CheckInExtension("Schematics")
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 occured on line %i" % tb.tb_lineno
print str(e)
Параметры среды
Информация о лицензиях
- Basic: Требуется Данные схем (Schematics)
- Standard: Требуется Данные схем (Schematics)
- Advanced: Требуется Данные схем (Schematics)