Чаще всего в качестве входных данных для инструмента используется какой-то набор данных. Конечно, вы можете указать место хранения набора данных на диске, но вы также можете использовать слои или представления таблиц в качестве входных данных.
- Слой – это то, что вы видите в таблице содержания ArcMap . Слой содержит путь к набору данных, а также условные знаки и информацию о выбранных строках или пространственных объектах.
- Представления таблиц являются эквивалентом слоя для таблиц. Они представляют собой таблицы, которые хранятся в памяти и являются такими же представлениями таблиц, которые создаются при добавлении таблицы в ArcMap. Вы можете просмотреть таблицы, щелкнув кнопку По источникам , которая находится вверху таблицы содержания, как показано ниже.
Когда вы откроете диалоговое окно инструмента в ArcMap или введете имя инструмента в окне Python, произойдет следующее:
- ArcGIS изучит параметры инструмента, чтобы увидеть, какие параметры используют входные данные или таблицу. Если такие будут найдены, то будет произведен анализ входного набора данных. Это класс пространственных объектов? TIN? Сеть? Таблица?
- Таблица содержания ArcMap будет отсканирована и отфильтрована, чтобы увидеть, имеются ли какие-то слои такого же типа данных, что и параметр данных. Если да, то будет создан ниспадающий список слоев этого типа данных; этот список будет доступен в элементе управления параметра. Вы сможете выбрать один из этих слоев или представлений таблиц в качестве ваших входных данных.
На приведенной иллюстрации показан инструмент Буфер и раскрывающееся меню слоев, созданное инструментом для параметра Входные объекты.
Некоторые инструменты могут работать только со слоями или файлами слоев в качестве входных или выходных данных. Если это действительно для вашего инструмента, то имя отображенного параметра будет содержать слово слой (layer) (например, Входной слой, а не Входные объекты).
Использование слоя вместо поиска набора данных на диске является более интуитивным. Но помните о том, что слои являются чем-то большим, чем простым ярлыком набора данных на диске.
- Слои и представления таблиц могут содержать объекты или строки, а инструменты геообработки могут производить обработку исключительно выбранных объектов или выделенных строк.
- Слои и представления таблиц не обязательно должны быть определены в таблице содержания ArcMap. Вы можете создать их с помощью инструментов геообработки, чтобы они могли быть использованы в ArcCatalog.
- Слои существует недолгое время; вы должны помнить о них при написании скриптов и моделей, поскольку слой может уже не существовать при запуске скрипта или модели в будущем.
Инструменты «Создать слой», например, Создать растровый слой, позволяют создать слой из входных данных. Данный слой будет временно храниться в памяти; он не сохраняется на диск и будет доступен только в текущем сеансе. Если сеанс закрыт, слой будет удален. Слои, созданные в ArcCatalog, нельзя использовать в ArcMap и наоборот. ArcCatalog не отображает созданные слои, но они могут быть использованы в качестве входных данных для инструментов геообработки в сессии, в которой вы работаете.
Выборки
Слой или представление таблицы иногда содержит выбранные объекты или строки, которые иногда совокупно называются выборкой. Выборка представляет собой набор объектов в классе пространственных объектов или набор строк в таблице. Имеется множество способов, с помощью которых вы можете произвести выборку объектов в ArcMap, например, нарисовав графический объект на карте, чтобы выбрать все объекты, расположенные в этом объекте, или используя логическое выражение. Вы также можете выбрать объекты и строки с помощью инструментов геообработки в инструментах Управление данными набора инструментов Слои и представления таблиц. В ArcMap вы можете увидеть число объектов или строк, щелкнув кнопку По выборке , которая находится вверху таблицы содержания, как показано ниже.
Почти все инструменты геообработки работают только с выбранными объектами или набором строк. Например, инструмент Вырезание позволяет использовать только выбранные объекты, как во входных объектах, так и в объектах, по которым происходит вырезание. Инструмент Суммарная статистика позволяет производить расчет статистики только для выборки. Редки те случаи, когда инструмент не производит обработку только тех выбранных объектов или строк. Если инструмент не использует выборку, то в документации по этому инструменту это будет указано.
Слои с поддержкой времени
Если входные данные инструмента имеют вид слоя с поддержкой времени, то будут обработаны только те объекты, которые заключены в указанном временном периоде на Бегунке времени. С помощью слоев с поддержкой времени вы можете рассматривать Бегунок времени как способ выборки объектов для дальнейшей обработки.
Внутренние слои
Вам не нужно приложение ArcMap, чтобы создавать слои. С помощью инструмента Создать векторный слой в группе инструментов Слои и представления таблиц можно создать временный хранимый в памяти слой класса объектов в ArcCatalog.
При создании слоя или представления таблицы с помощью инструментов геообработки, новый слой или представление таблицы будет храниться в списке внутренних слоев, который отличается от списка слоев таблицы ArcMap. Это означает, что в среде геообработки хранятся два списка слоев и представлений таблиц:
- Список слоев в таблице содержания ArcMap
- Внутренний список слоев, созданных инструментами геообработки
Независимо от места хранения слоя, слои будут показаны вам в том же самом ниспадающем списке слоев в диалоговом окне инструмента.
Если в ArcMap выполнить команду Создать векторный слой, то слой будет автоматически добавлен в таблицу содержания ArcMap с помощью включения опции Добавить результат операций геообработки к изображению.
Использование слоев в моделях и скриптах
При завершении приложения ArcGIS Desktop все слои удаляются из памяти. Типичной проблемой при работе со слоями является использование моделей или скриптов, которые используют слой в качестве переменной. Модель или скрипт в этом случае работают корректно в текущей сессии, но не могут быть выполнены в последующих сессиях, поскольку слой был удален по окончании сессии. Например, в скрипте может содержаться следующий код:
landuse_layer = "Zoning"
В этом случае переменная landuse_layer будет «жестко запрограммирована» и будет иметь значение Zoning. Позднее в скрипте используется переменная landuse_layer, и при выполнении скрипта выводится ошибка, потому что в приложении не будет слоя с именем Zoning. Скрипт будет работать корректно, если вы произведете его запуск в ArcMap со слоем Zoning в таблице содержания, но не будет выполнен, если вы запустите его из ArcCatalog, или в другое время, когда этого слоя в таблице содержания не будет.
Похожая ситуация может возникнуть в модели. Вы создаете модель, где используется слой Zoning, и модель не может быть выполнена, потому что нет слоя с этим именем в приложении.
В обоих случаях вы можете сделать следующее (что-то одно):
- Сделать имя слоя параметром инструмента, чтобы пользователь мог указать имя слоя при запуске вашего инструмента.
- Создать слой перед запуском инструмента.
- Создать слой в рамках модели или скрипта.
Использование файлов слоев
Слои могут быть сохранены на диске в качестве файла слоя (файла с расширением .lyr), а затем использованы в качестве входных данных для любого инструмента, который работает со слоями.
Файл слоя содержит ту же самую информацию, что и внутренний слой (например, слой в таблице содержания ArcMap), включая выборку объектов.
Для создания файла слоя используйте инструмент Сохранить в файл слоя. В ArcMap вы можете щелкнуть правой кнопкой мыши на слое в таблице содержания и щелкнуть Сохранить в файл слоя.
При использовании любого инструмента, который может работать со слоем, вы можете указать файл слоя (.lyr) на диске, точно так же, как вы указываете расположение набора данных на диске. Однако когда вы указываете файл слоя, некоторые инструменты не смогут определить тип данных в этом слое и покажут вам все слои файлов. Если вы выберете файл слоя не того типа данных, то в инструменте будет отображена ошибка.
Одинаковые имена слоев – использование составных слоев
В ArcMap вы можете создать в таблице содержания несколько слоев с одним и тем же именем. Когда инструмент геообработки произведет сканирование таблицы содержания, чтобы создать список слоев, слои с одинаковыми именами не будут удалены, так что в ниспадающем списке слоев будут содержаться все слои, независимо от того, сколько слоев с таким именем имеется.
Лучше всего решить эту проблему вы сможете, если создадите составные слои и разместите слои с одинаковыми именами в разных составных слоях. Ниже приводится изображение двух составных слоев в таблице содержания ArcMap, в каждом из которых содержится слой с одинаковым именем. В диалоговом окне инструмента Добавить поле составные слои будут показаны в формате дерева, так что вы сможете выбрать нужный слой.
Блокирование данных в Python
Если вы столкнетесь с блокированием источника данных из-за слоя, ссылающегося на этот источник, воспользуйтесь инструментом Удалить для слоя, чтобы снять эту блокировку.