Среда геообработки
Среда геообработки представляет собой набор окон и диалоговых окон, которые вы используете для управления и работы инструментов. Этот документ делает акцент на описании основных общих принципов и понятий, на которых основана среда, а не на механизмах ее использования.
Основной принцип, лежащий в основе геообработки, состоит в том, чтобы позволить вам быстро и легко превратить ваши идеи в новое программное обеспечение, которое может быть реализовано, управляемо, изменено, задокументировано, и которым можно будет пользоваться вместе с другими пользователями ArcGIS. Программное обеспечение в этом случае означает некоторые указания для ArcGIS сделать то, что вы хотите. Модель геообработки, например, является новым программным обеспечением, созданным вами с помощью легкого в использовании визуального языка программирования, который называется ModelBuilder.
Главной темой этого раздела является понятие, что геообработка является способом создания вами нового полезного программного обеспечения. Создавая программное обеспечение, вы получите более широкое и глубокое понимание, как и зачем использовать геообработку.
Для того, чтобы создать новое программное обеспечение любого вида, вам необходимо два важнейших элемента:
- Формальный язык, который работает с данными, собранными в вашей системе.
- Структура для создания, управления и функционирования программного обеспечения основана на этом языке. Она включает в себя инструменты редактирования, просмотра и документирования.
Язык геообработки представляет собой коллекцию инструментов. Структурой геообработки является небольшой набор встроенных пользовательских интерфейсов для организации и управления существующими инструментами и для создания новых инструментов. Основные компоненты структуры представлены в разделе Краткий обзор геообработки и состоят из следующего:
- Диалоговое окно Поиск (Search) для поиска и запуска инструментов и диалоговое окно Каталог (Catalog) для просмотра набора инструментов и работы этих инструментов.
- Диалоговое окно инструмента для интерактивного заполнения параметров инструмента и работы инструмента
- Окно Python для запуска инструмента с помощью ввода его параметров
- Окно ModelBuilder для связывания последовательности применения инструментов
- Методы создания скриптов и добавления их в наборы инструментов.
Модели геообработки и ModelBuilder
Диалоговое окно инструментов позволяет вам выполнить запуск одного инструмента. Вы можете представить себе это в виде выполнения отдельного указания на языке программирования. Хотя выполнение отдельного инструмента, несомненно, удобно, система не может быть очень полезной до тех пор, пока вы не свяжете вместе многочисленные инструменты, используя выходные данные одного инструмента в качестве входных для другого, примерно как в языке программирования.
В структуре геообработки окно ModelBuilder предоставляет возможность быстро и легко преобразовать ваши идеи в программное обеспечение с помощью связывания вместе элементов языка геообработки (инструментов) в последовательность их применения. Важно понимать, что модели являются программным обеспечением, так как они указывают компьютеру, какие операции нужно выполнить. Язык программирования визуальный – что вы видите в ModelBuilder – в отличие от текстового, традиционного языка программирования.
Наиболее важно отметить при этом, что модели являются инструментами. Они ведут себя так же, как и другие инструменты геообработки. Вы можете управлять ими с использованием их диалоговых окон или написанием скриптов в окне Python. Так как модели являются инструментами, вы можете встроить модели в другие модели. Фактически, некоторые системные инструменты, предоставляемые вместе с ArcGIS, являются моделями.
Модели могут быть настолько сложными, насколько вы пожелаете. Вы можете использовать любую систему или пользовательский инструмент в модели, включая другие модели, которые вы написали (так как модели являются просто инструментами). Вы можете также использовать циклы и условия для контроля логической последовательности выполнения модели.
Модели могут быть крайне простыми и тем не менее эффективными. Вы можете создать модель, которая содержит простой инструмент, но встраивает некоторые из его параметров. Например, инструмент Буфер использует шесть параметров, но для ваших текущих задач, как вы знаете, три из этих параметров всегда являются одинаковыми. Вместо того, чтобы вводить эти параметры каждый раз, когда вы используете инструмент Буфер (Buffer), вы можете быстро создать модель и набор этих трех параметров, сохранить их в инструменте МойБуфер (MyBuffer), и использовать это диалоговое окно инструмента вместо диалогового окна Буфер (Buffer). Вы можете использовать МойБуфер (MyBuffer) только несколько раз, перед тем как удалить его, но в этом нет ничего страшного, так как создать эту модель заново совсем нетрудно, а использование ее очень продуктивно.
Написание скриптов
Вы можете также использовать язык написания скриптов для создания нового полезного программного обеспечения. Программа, которая использует язык написания скриптов, называется скрипт. В мире разработки программного обеспечения, языки могут подразделяться на две основные категории: системные языки и языки написания скриптов. Системными языками являются C++ и .NET, которые используются для написания приложений с нуля, с помощью примитивов низкого уровня и исходных ресурсов компьютера. Языки написания скриптов, такие как Python и Perl, используются для объединения приложений вместе, с помощью встроенных в компьютер функций высокого уровня, маскирующих ошибки системного языка программирования, с которым вынужден был работать программист. По сравнению с системным языком программирования, языки написания скриптов являются простыми в освоении и использовании, основным при этом является понимание базовых принципов программирования.
В структуре геообработки скрипты являются аналогами моделей, которые могут быть использованы для создания новых инструментов. Модели создаются с помощью языка визуального программирования (ModelBuilder), и скрипты создаются с помощью текстового языка программирования и текстовых редакторов.
Как и модели, скрипты являются инструментами. Вы можете поместить скрипт в пользовательский набор инструментов с помощью пошагового мастера, и он становится таким же инструментом, как и другой инструмент, который вы можете использовать в модели, или другим скриптом. Некоторые системные инструменты являются скриптами. Формально вы можете написать скрипт и не поместить его в набор инструментов, в этом случае он не является инструментом, а только отдельным скриптом, хранящимся на диске.
Существует несколько причин, по которым вы хотите использовать скрипты:
- В некоторых случаях вам может быть необходима более продвинутая логика программирования, например, выполнение условия и улучшенное управление ошибками; улучшенная структура данных, например, словари и списки; или большая функциональность, например, функции управления строками, математикой и файлами. Многие языки написания скриптов расширены за счет других библиотек, например, продвинутой математики и статистики, использование интернета в автоматическом режиме, запросами по базе данных, и продвинутыми системными утилитами.
- Существует несколько функций геообработки низкого уровня, которые доступны только в скриптах. Курсоры, например, позволяют вам просматривать записи таблицы в циклическом режиме, читать или записывать, а также вставлять новые строки. Существуют также функции доступа к свойствам данных ArcGIS, таким как экстент класса пространственных объектов или различным свойствам отдельных полей в таблице.
- Скрипты очень удобны для установки связи с другим программным обеспечением, для объединения с другими приложениями. Например, вы можете иметь модель, которая на выходе выдает простой текстовый файл с информацией о владельцах участков и адресах, которых коснулось изменение районного деления. Вы хотите запустить другую программу, которая прочтет этот текстовый файл и создаст письма с официальным уведомлением для владельцев затронутых участков. Вы могли бы использовать скрипт для включения этой программы создания писем, поместив этот скрипт в набор инструментов и использовать его напрямую в этой модели.
- Скрипты можно выполнять за пределами ArcGIS. То есть, вы можете выполнять скрипт напрямую из командной строки операционной системы. Вам также будет нужно инсталлировать локальный пакет ArcPy, чтобы иметь доступ к инструментам геообработки.
Структура создания и управления программным обеспечением
Структура геообработки была создана для того, чтобы позволить вам быстро и легко превращать ваши идеи в новое программное обеспечение, которое может управляться системой и распространяться среди пользователей.
Геообработка является языком, состоящим из операторов или инструментов, которые работают с данными в ArcGIS (таблицы, классы пространственных объектов, растры, TIN-данные, и т.д.), и выполняют задачи, которые необходимы для управления и анализа географической информации в широком спектре областей применения.
Вы можете быстро и просто создать новое программное обеспечение в виде моделей или скриптов. Эти новые инструменты выполняют задачи, которые не являются стандартной частью пакета ArcGIS. Например, нигде в ArcGIS нет меню, кнопок или объектов программирования, которые выполняют простые модели Проект (Project) или Вырезать (Clip), описанные в разделе Что такое геообработка.
Инструменты управляются структурой геообработки, которая означает, что вы не должны это делать. Это очень тонкое, но важное определение, которое не сразу очевидно.
- Все инструменты, системные или пользовательские (написанные пользователем), могут быть доступны из их набора инструментов. Представьте другую ситуацию, когда модели, скрипты, а также системные и пользовательские инструменты каждый доступны из разных интерфейсов или с использованием разных методов – использовать их и управлять ими очень сложно. В геообработке все инструменты создаются и управляются одинаково, при этом они являются встроенными инструментами, инструментами моделей и инструментами скриптов.
- Все инструменты документируются одинаково. Как только вы создаете инструмент, вы можете задокументировать ваш инструмент в диалоговом окне Каталог (Catalog) так, что он будет занесен в каталог и может быть найден системой. Сравните это с использованием стандартной документации и управлением ею по выбору пользователя.
- Инструменты имеют одинаковый интерфейс: диалоговое окно. Такие диалоговые окна автоматически создаются на основе параметров инструментов. Вы не должны выполнять никакого программирования пользовательского интерфейса. Рассмотрите случаи, когда создание пользовательского интерфейса и программирование остаются за автором инструмента.
Инструменты могут использоваться совместно. Набор инструментов со всеми его инструментами и группами инструментов или содержится в файле на диске с расширением .tbx или в базе геоданных. Каждый, имеющий доступ к файлу или базе геоданных, может запустить эти инструменты.
Важным моментом является то, что ваши инструменты становятся полнофункциональными членами структуры геообработки, в которой они имеют единообразную документацию, пользовательский интерфейс, способы доступа и способы совместного использования.
Геообработка и библиотека ArcObjects
ArcObjects – это обширная библиотека объектов программирования низкого уровня, которая поставляется вместе с ArcGIS Software Development Kit (SDK). Разработчики используют ArcObjects для создания новых приложений или расширений существующей функциональности приложений ArcGIS. (Запомните, большинство системных инструментов и структура геообработки были созданы с помощью ArcObjects). Подобно геообработке, ArcObjects SDK можно использовать для создания нового программного обеспечения.
ArcObjects SDK и геообработка взаимно дополняют друг друга, ни тот ни другой не выходят из употребления. ArcObjects SDK в основном используется как модуль расширения ArcGIS с новыми возможностями, причем геообработка разработана для автоматизации выполнения задач. Вы используете ArcObjects для выполнения операций подобных добавлению нового интерфейса пользователя, добавлению поведения к классам пространственных объектов или создания специальных картографических рендереров. Геообработка используется для создания программного обеспечения (моделей и скриптов), которые автоматизируют выполнение задач в пределах управляемой структуры.
Подразумевается, что ArcObjects используется вместе с системным языком программирования, в котором программисту необходим доступ к примитивам низкого уровня для обеспечения выполнения сложной логики и алгоритмов. Вот почему ArcObjects содержит тысячи различных объектов и требований – предоставить программисту необходимую степень контроля, которая требуется для их управления. Так как ArcObjects используется вместе с системным языком программирования, он требует более высоких знаний программирования, более глубоких, чем требуется для геообработки с ее моделями и скриптами.
Наоборот, геообработка является универсальной возможностью, которая может быть использована и введена в действие всеми пользователями ГИС для автоматизации их работы, построения цикличных и хорошо описанных способов и процедур, а также моделирования важнейших географических процессов.