Использование слоев и представлений таблиц
Чаще всего в качестве входных данных для инструмента используется какой-то набор данных. Конечно, вы можете указать место хранения набора данных на диске, но вы также можете использовать слои или представления таблиц в качестве входных данных.
- Слой – это то, что вы видите в таблице содержания ArcMap. Слой содержит путь к набору данных, а также условные знаки и информацию о выбранных строках или пространственных объектах.
- Представления таблицы и эквивалент таблицы слоя. Они представляют собой таблицы, которая хранятся в памяти, и являются такими же представлениями таблиц, которые создаются при добавлении таблицы в ArcMap. Вы можете просматривать таблицы, нажав кнопку По источникам (List By Source) в верхней части таблицы содержания, как показано ниже.
Любой инструмент, который работает с таблицей, сможет работать и с классом пространственных объектов или слоем объектов. Это так, потому что классы пространственных объектов представляют собой таблицы с атрибутами, где хранятся геометрии объектов. Во всех остальных смыслах они являются таблицами.
Когда вы откроете диалоговое окно инструмента в ArcMap или введете имя инструмента в окне Python, произойдет следующее:
- ArcGIS изучит параметры инструмента, чтобы увидеть, какие параметры используют входные данные или таблицу. Если такие будут найдены, то будет произведен анализ входного набора данных. Это класс пространственных объектов? TIN? Сеть? Таблица?
- Таблица содержания ArcMap будет отсканирована и отфильтрована, чтобы увидеть, имеются ли какие-то слои такого же типа данных, что и параметр данных. Если да, то будет создан ниспадающий список слоев этого типа данных; этот список будет доступен в элементе управления параметра. Вы сможете выбрать один из этих слоев или представлений таблиц в качестве ваших входных данных.
На приведенной иллюстрации показан инструмент Буфер (Buffer) и раскрывающееся меню слоев, созданное инструментом для параметра Входные объекты (Input Features).
Некоторые инструменты могут работать только со слоями или файлами слоев в качестве входных или выходных данных. Если это действительно для вашего инструмента, то имя отображенного параметра будет содержать слово слой (layer) (например, Входной слой (Input Feature Layer), а не Входные объекты (Input Features)).
Использование слоя вместо поиска набора данных на диске является более интуитивным. Но помните о том, что слои являются чем-то большим, чем простым ярлыком набора данных на диске.
- Слои и представления таблиц могут содержать объекты или строки, а инструменты геообработки могут производить обработку исключительно выбранных объектов или выделенных строк.
- Слои и представления таблиц не обязательно должны быть определены в таблице содержания ArcMap. Вы можете создать их с помощью инструментов геообработки, чтобы они могли быть использованы в ArcCatalog.
- Слои существует недолгое время; вы должны помнить о них при написании скриптов и моделей, поскольку слой может уже не существовать при запуске скрипта или модели в будущем.
Инструменты Создать слой (Make Layer), например, Создать растровый слой (Make Raster Layer), позволяют создать слой из входных данных. Данный слой будет временно храниться в памяти; он не сохраняется на диск и будет доступен только в текущей сессии. Если сессия будет закрыта, слой будет удален. Слои, созданные в ArcCatalog, не могут быть использованы в ArcMap, и наоборот. ArcCatalog не отображает созданные слои, но они могут быть использованы в качестве входных данных для инструментов геообработки в сессии, в которой вы работаете.
Выборки
Слой или представление таблицы иногда содержит выбранные объекты или строки, которые иногда совокупно называются выборкой. Выборка представляет собой набор объектов в классе пространственных объектов или набор строк в таблице. Имеется множество способов, с помощью которых вы можете произвести выборку объектов в ArcMap, например, нарисовав графический объект на карте, чтобы выбрать все объекты, расположенные в этом объекте, или используя логическое выражение. Вы также можете выбрать объекты и строки с помощью инструментов геообработки в инструментах Управление данными (Data Management) набора инструментов Слои и представления таблиц (Layers and Table Views). В ArcMap можно просмотреть много объектов или строк, нажав кнопку По выборке (List By Selection) в верхней части таблицы содержания, как показано ниже.
Почти все инструменты геообработки работают только с выбранными объектами или набором строк. Например, инструмент Вырезать (Clip) позволяет использовать только выбранные объекты, как во входных объектах, так и в объектах, по которым происходит вырезание. Инструмент Суммарная статистика (Summary Statistics) позволяет производить расчет статистики только для выборки. Редки те случаи, когда инструмент не производит обработку только тех выбранных объектов или строк. Если инструмент не использует выборку, то в документации по этому инструменту это будет указано.
Инструменты, которые производят изменение схемы класса пространственных объектов или таблицы, например, инструмент Добавить поле (Add Field), не использует выборку, поскольку невозможно добавить поле только для определенных строк в таблице.
Слои с поддержкой времени
Если входные данные инструмента имеют вид слоя с поддержкой времени, то будут обработаны только те объекты, которые заключены в указанном временном периоде на Бегунке времени (Time Slider). С помощью слоев с поддержкой времени вы можете рассматривать Бегунок времени (Time Slider) как способ выборки объектов для дальнейшей обработки.
Внутренние слои
Вам не нужно приложение ArcMap, чтобы создать слои. С помощью инструмента Создать векторный слой (Make Feature Layer) в группе инструментов Слои и представления таблиц (Layers and Table Views) можно создать временный хранимый в памяти слой класса объектов в ArcCatalog.
При создании слоя или представления таблицы с помощью инструментов геообработки, новый слой или представление таблицы будет храниться в списке внутренних слоев, который отличается от списка слоев таблицы содержания ArcMap. Это означает, что в среде геообработки хранятся два списка слоев и представлений таблиц:
- Список слоев в таблице содержания ArcMap
- Внутренний список слоев, созданных инструментами геообработки
Независимо от места хранения слоя, слои будут показаны вам в том же самом ниспадающем списке слоев в диалоговом окне инструмента.
Если в ArcMap выполнить команду Создать векторный слой (Make Feature Layer), то слой будет автоматически добавлен в таблицу содержания ArcMap с помощью включения опции Добавить результат операций геообработки к изображению (Add results of geoprocessing operations to the display).
Использование слоев в моделях и скриптах
При завершении приложения ArcGIS for Desktop все слои удаляются из памяти. Типичной проблемой при работе со слоями является использование моделей или скриптов, которые используют слой в качестве переменной. Модель или скрипт в этом случае работают корректно в текущей сессии, но не могут быть выполнены в последующих сессиях, поскольку слой был удален по окончании сессии. Например, в скрипте может содержаться следующий код:
landuse_layer = "Zoning"
В этом случае переменная landuse_layer будет «жестко запрограммирована» и будет иметь значение Зонирование (Zoning). Позднее в скрипте используется переменная landuse_layer, и при выполнении скрипта выводится ошибка, потому что в приложении не будет слоя с именем Zoning. Скрипт будет работать корректно, если вы произведете его запуск в ArcMap со слоем Zoning в таблице содержания, но не будет выполнен, если вы запустите его из ArcCatalog, или в другое время, когда этого слоя в таблице содержания не будет.
Похожая ситуация может возникнуть в модели. Вы создаете модель, где используется слой Zoning, и модель не может быть выполнена, потому что нет слоя с этим именем в приложении.
В обоих случаях вы можете сделать следующее (что-то одно):
- Сделать имя слоя параметром инструмента, чтобы пользователь мог указать имя слоя при запуске вашего инструмента.
- Создать слой перед запуском инструмента.
- Создать слой в рамках модели или скрипта.
Использование файлов слоев
Слои могут быть сохранены на диске в качестве файла слоя (файла с расширением .lyr), а затем использованы в качестве входных данных для любого инструмента, который работает со слоями.
Файл слоя содержит ту же самую информацию, что и внутренний слой (например, слой в таблице содержания ArcMap), включая выборку объектов.
Для создания файла слоя используйте инструмент Сохранить в файл слоя (Save To Layer File). В ArcMap вы можете щелкнуть правой кнопкой мыши на слое в таблице содержания и щелкнуть Сохранить в файл слоя (Save As Layer File).
При использовании любого инструмента, который может работать со слоем, вы можете указать файл слоя (.lyr) на диске, точно так же, как вы указываете расположение набора данных на диске. Однако, когда вы указываете файл слоя, некоторые инструменты не смогут определить тип данных в этом слое и покажут вам все слои файлов. Если вы выберете файл слоя не того типа данных, то в инструменте будет отображена ошибка.
Одинаковые имена слоев – использование составных слоев
В ArcMap вы можете создать в таблице содержания несколько слоев под одним и тем же именем. Когда инструмент геообработки произведет сканирование таблицы содержания, чтобы создать список слоев, слои с одинаковыми именами не будут удалены, так что в ниспадающем списке слоев будут содержаться все слои, независимо от того, сколько слоев с таким именем имеется.
Если вы выберете один из слоев с одинаковым именем, то вы никак не сможете определить, какой именно слой вы выбрали.