Интеграция внешних программ в ModelBuilder

Скрипты, написанные с использованием Python или другого языка программирования, можно интегрировать в модели преобразуя скрипт в инструмент-скрипт с последующим добавлением его в модель. Этим можно пользоваться, если для улучшения модели или для доступа из ArcGIS к внешним пакетам или программам требуется логика Python или другого языка для написания скриптов.

В этом разделе описана интеграция R внешнего статистического пакета в среде ModelBuilder. В приведенном ниже примере показаны два скрипта, которые нужны для выполнения функций R: скрипт Python, вызывающий исходный код R и сам исходный код R. Скрипт Python вызывается из ModelBuilder и, по сути, служит каналом для организации и передачи аргументов из ModelBuilder в R.

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

Шаги:
  1. Загрузка и извлечение данных
  2. Установка R в системе
  3. Создание новой модели и добавление в нее инструмента скрипта
  4. Ввод параметров инструмента скрипта
  5. Прогон модели

1. Загрузка и извлечение данных

Пример скрипта, Использование R в ArcGIS 10, загружается с веб-страницы ресурсного центра геообработки — галереи инструментов моделей и скриптов (Geoprocessing Resource Center — Model and Script Tool Gallery). Распакованная папка содержит четыре подпапки и инструмент скрипта: Кластеризация точек (версия R) (Point Clustering (R Version)).

Инструменты R в окне Каталога

2. Установка R

Пакет R нужно установить в системе до того, как будет использоваться инструмент скрипта. Если вы используете данный раздел в качестве упражнения или хотите испытать скрипт в будущем, внимательно ознакомьтесь с инструкциями в файле Readme.pdf, который находится в подпапке Doc скрипта, загружаемого из ресурсного центра. Пакет R используется конкретно для данного примера; если вы используете любую другую внешнюю программу, то должны знать процедуру ее установки.

3. Создание новой модели и добавление в нее инструмента скрипта

Загружаемая папка содержит набор инструментов R, в который входит инструмент скрипта. Чтобы добавить в набор инструментов новую модель, правой кнопкой мыши щелкните Создать (New) > Модель (Model). Откроется пустая модель. Чтобы добавить инструмент скрипта Кластеризация точек (версия R) (Point Clustering (R Version)), перетащите его в модель из окна Каталог (Catalog) , как любой другой инструмент геообработки. Он создает переменную выходных производных данных, связанную с инструментом скрипта.

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

Пояснения к примеру скрипта Python

Инструмент скрипта, добавленный в модель, можно редактировать, щелкнув правой кнопкой мыши на инструменте и выбрав команду Редактировать (Edit). Общий вид скрипта PointCluster.py показан на рисунке ниже:

Скрипт Python

Код скрипта вызывает входные параметры для инструмента в ArcGIS и передает их в статистический пакет R через скрипт R. После передачи параметров в R из ArcGIS программа R выполняется и рассчитывает кластеры для входных данных, собранных при помощи скрипта Python в ModelBuilder. Результаты обрабатываются для отображения в ArcMap.

Пояснения к скрипту R

Скрипт R нельзя просмотреть в ModelBuilder или через окно Каталог (Catalog). Он находится в подпапке Scripts загруженного файла. Скрипт PointCluster.r написан и сохранен для данного конкретного примера и вызывается как внешняя функция R в ModelBuilder. При использовании любой другой программы следует знать, какие связанные с ней файлы нужно создать. Затем можно вызвать эти скрипты, написанные для любой программы, из скрипта Python и выполнить их из ModelBuilder.

Скрипт PointCluster.r приведен ниже. Файл R получает входные аргументы из инструмента скрипта на основе Python, который использовался в ModelBuilder для сбора входных параметров. На основе входных данных файл R выполняет кластерный анализ. Затем результаты снова передаются в ModelBuilder или приложение ArcGIS посредством скрипта Python и отображаются в ArcMap в соответствующей обработке.

Файл R

4. Ввод параметров инструмента скрипта

Пример скрипта выполняет кластерный анализ для входного класса точечных объектов на основе кластерного метода и значений атрибутов точек. В данном примере в качестве входных данных используется класс точечных объектов, представляющий вызовы экстренной службы 911. Эти данные находятся в папке ToolData, загружаемой из ресурсного центра. Для данного примера исходные данные были изменены. Каждой точке соответствует значение счетчика, которое показывает количество вызовов в определенной окрестности точки. Поле счетчика используется для расчета пяти кластеров на основе кластерного метода KMEANS_HARTIGAN.

Эти входные параметры определяются при помощи скрипта Python. Инструмент скрипта Python имеет диалоговое окно, где можно указать входные параметры в ArcGIS.

Инструмент Скрипт (Script)

5. Прогон модели

Во время прогона модели, содержащей инструмент скрипта R, может появиться окно командной строки, показывающее, что программа пакета R подготавливается к выполнению.

Окно командной строки

Затем скрипт запускает статистический пакет R со стандартным окном библиотеки clusTool.

Стандартная библиотека clusTool пакета R

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

Результаты применения инструмента кластера

9/11/2013