Интеграция скриптов в модель
Скрипты, написанные с использованием Python или другого языка программирования, можно интегрировать в модели преобразуя скрипт в инструмент-скрипт с последующим добавлением его в модель. Этим можно пользоваться, если для улучшения модели или для доступа из ArcGIS к внешним пакетам или программам требуется логика Python или другого языка для написания скриптов.
Отправной точкой интеграции скриптов в модели является собственно скрипт. Скрипт должен быть написан таким образом, чтобы его можно было интегрировать в процедуру геообработки. Дополнительные сведения см. в разделе Написание скрипта Python.
Как только скрипт будет записан, можно будет создать инструмент-скрипт и добавить его в набор инструментов. Этот инструмент-скрипт можно добавить в модель и использовать для расширения ее функциональности.
Пример приложения
В ArcGIS нет встроенного инструмента для работы с HTML. Однако написание скриптов на Python обеспечит вам доступ к методам и функциям, которые можно использовать для создания и изменения документов HTML. Чтобы интегрировать HTML-функции в ArcGIS, внедрите в модель инструмент-скрипт Python.
В следующем примере выполняются пространственные и атрибутивные запросы к слою участков и создается HTML-отчет с подробной информацией об атрибутах, выбранных пользователем и соседних с ними участков. Создание HTML осуществляется скриптом Python, который выполняется из модели.
Скрипт Python
Следующий скрипт с именем tabletohtml.py используется для чтения содержимого входной таблицы и создания HTML-отчета. Код скрипта представлен в конце раздела.
Создание инструмента-скрипта
Приведенные ниже инструкции помогут вам создать инструмент, выполняющий скрипт tabletohtml.py. Дополнительные сведения о создании инструментов-скриптов см. в разделе Краткий обзор создания инструментов-скриптов
- Щелкните правой кнопкой мыши набор инструментов и выберите последовательно Добавить (Add) > Скрипт (Script).
Откроется мастер Добавить скрипт (Add Script).
- Чтобы задать основные свойства скрипта, используйте мастер Добавить скрипт (Add Script).
- На следующей странице мастера Добавить скрипт (Add Script) укажите, какой скрипт будет выполняться при запуске инструмента-скрипта.
- На следующей странице мастера Добавить скрипт (Add Script) укажите свойства параметров инструмента-скрипта. Данный инструмент-скрипт имеет два параметра: входная таблица и выходной файл HTML. Эти параметры были также определены в файле tabletohtml.py.
- Нажмите Finish (Готово), чтобы добавить инструмент-скрипт в набор инструментов.
Добавление в модель инструмента-скрипта
- Модель Отчет об участках (Parcel Report) формирует пространственные и атрибутивные запросы к слою участков. Добавьте в модель инструмент-скрипт, преобразующий таблицу в HTML, чтобы обеспечить необходимую HTML-функциональность.
- Соедините выходные данные инструмента Выбрать в слое по расположению (Select Layer By Location) в качестве входных данных инструмента-скрипта и укажите путь к выходным данным инструмента-скрипта (папку, в которой будет создаваться файл HTML). Дополнительно переименуйте выходные данные инструмента-скрипта, присвоив им имя Report и сделайте переменную параметром модели.
import arcpy
import sys
import string
import os
tablePath = arcpy.GetParameterAsText(0)
filePath = arcpy.GetParameterAsText(1)
outfile = open(filePath, "w")
fields = arcpy.ListFields(tablePath)
fieldNames = []
for field in fields:
if (field.type <> "Geometry" and field.type <> "BLOB"):
fieldNames.append(field.name)
outfile.write("<table border=""1"">\n")
outfile.write("<tr>\n")
for fieldName in fieldNames:
outfile.write("<th>" + fieldName + "</th>\n")
outfile.write("</tr>\n")
for row in arcpy.da.SearchCursor(tablePath, fieldNames):
outfile.write("<tr>\n")
for value in row:
outfile.write("<td>" + str(value) + "</td>\n")
outfile.write("</tr>\n")
outfile.write("</table>\n")
outfile.flush()
outfile.close()