Создать векторный слой (Управление данными)
Резюме
Создает векторный слой из входного класса пространственных объектов или файла слоя. Если слой не сохранить на диск, или не сохранить документ карты, этот временный слой не будет сохранен после завершения сеанса работы.
Использование
-
Временный векторный слой можно сохранить как файл слоя с помощью инструмента Сохранить в файл слоя (Save To Layer File) или сохранить в новый класс пространственных объектов, используя инструмент Копировать объекты (Copy Features).
-
Сложные классы объектов, таких как аннотации и размеры, не поддерживаются этим инструментом.
-
Слои, созданные в ArcCatalog не могут использоваться в ArcMap, если они сохранены в файл слоя с использованием инструмента Сохранить в файл слоя (Save To Layer File).
Если выражение SQL используется, но ничего не дает на выходе, выходные данные будут пустыми.
Именам полей могут быть даны новые имена, путем использования инструмента Информация о поле (Field Info). Второй столбец в окне вносит в список существующие имена полей из входных данных. Чтобы переименовать поле, щелкните имя и тип поля в новом поле.
Новые имена полей, определенные в контрольной панели Информация поля (Field Info) будут выполнена в последующих инструментах. Однако, если этот инструмент - последний в модели, имена полей будут получены из исходных данных на диске. Чтобы сохранить новые имена полей, новый слой должен быть записан в новые данные с помощью инструментов Копировать строки (Copy Rows) или Копировать объекты (Copy Features).
Имена полей будет проверяться путем определения входной рабочей области. Таким образом, если входные данные - класс пространственных объектов базы геоданных, а выходная рабочая область - папка, имена полей могут быть урезаны, так как атрибуты шейп-файла могут иметь имена только из 10 или менее символов. Новые поля можно просмотреть и изменить при помощи элемента управления Информация поля (Field Info).
Поднабор полей можно сделать недоступным в новом слое, используя видимое свойство контрольной панели Информация о поле (Field Info). Третий столбец контрольной панели предоставляет ниспадающую опцию для указания, будет ли поле видимым или скрытым в новом слое. По умолчанию установлено TRUE. Если установить FALSE, поле будет скрыто. Вы не можете использовать скрытые поля в рабочей области, если вновь созданный слой является входными данными для последующего процесса или инструмента. Если выходные данные сохраняются на диск, только поля, перечисленные как видимые, появятся в новых данных.
-
Можно установить правило разбиения с помощью элемента управления Информация поля (Field Info), опции Использовать правило пропорции (Use Ratio Policy). Правило разбиения вступает в силу в любое время использования векторного слоя в качестве входных данных инструмента, и геометрия слоя входного векторного слоя разбивается в процессе обработки. Если геометрия разбиения отправлена в выходные данные, для выходного значения атрибута вычисляется пропорция входного значения атрибута. Если включено Использовать правило пропорции (Use Ratio Policy), всякий раз при разбивке пространственного объекта в операции наложения, атрибутами результирующего пространственного объекта будет пропорция значения атрибутов входных объектов. Выходное значение вычисляется на основании пропорции, в соответствии с которой была разделена геометрия входных объектов. Например, если входная геометрия была разделена поровну, каждому новому атрибутивному значению пространственного объекта присваивается половина значения атрибутивного значение входного объекта. Использовать правило пропорции (Use Ratio Policy) применяется только к числовым типам полей.
По умолчанию используется NONE (не отмечено). Это означает, что атрибут двух результирующих пространственных объектов берется на копии атрибутивного значения исходного объекта.
Внимание:Инструменты геообработки не поддерживают правила разбиения для полей класса пространственных объектов базы геоданных или таблицы.
-
При использовании ModelBuilder для создания инструмента, вам нужно убедиться, что переменная входных данных для этого инструмента не помечена как промежуточная. Если входные данные помечены как промежуточные, они будут удалены после запуска модели из диалогового окна и выходные данные не будут добавлены в отображение.
Синтаксис
Параметр | Объяснение | Тип данных |
in_features |
Входной класс объектов или слой, используемые для создания нового слоя. Сложные классы пространственных объектов, такие как классы аннотаций или объектов-размеров, не могут быть использованы в качестве входных данных для этого инструмента. | Feature Layer |
out_layer |
Имя создаваемого векторного слоя. Новый созданный слой может использоваться как входные данные для инструмента геообработки, который допускает векторный слой в качестве входных данных. | Feature Layer |
where_clause (дополнительно) |
SQL-выражение, использованное для выбора поднабора пространственных объектов. Синтаксис выражения различается в зависимости от формата данных. Например, если вы запрашиваете файловые или ArcSDE базы геоданных, шейп-файлы или покрытия, заключите имена полей в двойные кавычки: "ИМЯ_ПОЛЯ" Если вы строите запрос к персональной базе геоданных, заключите поля в квадратные скобки: [ИМЯ_ПОЛЯ] В Python строковые значения заключаются в соответствующие одинарные или двойные кавычки. Чтобы создать строку с кавычками (что часто требуется при написании условия WHERE в выражениях SQL), можно использовать перед кавычками escape-символ (символ обратной косой черты) или заключить всю строку в три пары кавычек. Например, если требуется написать в условии WHERE "CITY_NAME" = 'Чикаго', можно заключить всю строку в двойные кавычки и добавить escape-символ перед внутренними двойными кавычками: " \"CITY_NAME\" = 'Чикаго' ", Или можно заключить всю строку в одинарные кавычки и добавить escape-символ перед внутренними одинарными кавычками: ' "CITY_NAME" = \'Чикаго\' ' Или можно заключить всю строку в три пары кавычек и не добавлять escape-символ: """ "CITY_NAME" = 'Чикаго' """, Более подробно о синтаксисе SQL и о том, как он различается между источниками данных, смотрите разделы справки: Литература по SQL для выражений запросов, используемых в ArcGIS. | SQL Expression |
workspace (дополнительно) | Входная рабочая область используется для проверки имен полей. Если входными данными является таблица базы геоданных, а выходной рабочей областью - таблица dBASE, имена полей могут быть обрезаны, т.к. поля dBASE могут иметь имена, не превышающие 10 символов. Можно просмотреть и изменить новые поля с помощью контрольной панели информации поля. | Workspace;Feature Dataset |
field_info (дополнительно) | Может использоваться для просмотра и изменения имен полей, а также, чтобы скрыть поднабор полей в выходном слое. Может быть установлено правило разбиения. Более подробно см. использование. | Field Info |
Пример кода
Пример скрипта Python для выполнения функции Создать векторный слой (Make Feature Layer) с запуском из окна Python в ArcGIS.
import arcpy
arcpy.env.workspace = "C:/data/input"
arcpy.MakeFeatureLayer_management("parcels.shp", "parcels_lyr")
Пример скрипта Python для выполнения функции Создать векторный слой (Make Feature Layer) для создания слоя, который может использоваться инструментами Выбрать в слое по расположению (Select Layer By Location) и Выбрать в слое по атрибуту (Select Layer By Attribute).
# Name: ExtractFeaturesByLocationAndAttribute.py
# Description: Extracts features to a new feature class based on a location and an attribute query.
# Import system modules
import arcpy
from arcpy import env
# Set overwrite option
arcpy.env.overwriteOutput = True
# Put in error trapping in case an error occurs when running tool
try:
# Make a layer from the feature class
arcpy.MakeFeatureLayer_management("C:/data/mexico.gdb/cities","cities_lyr")
# Select all cities that overlap the chihuahua polygon
arcpy.SelectLayerByLocation_management("cities_lyr", "INTERSECT", "c:/data/mexico.gdb/chihuahua", "", "NEW_SELECTION")
# Within the selection (done above) further select only those cities that have a population >10,000
arcpy.SelectLayerByAttribute_management("cities_lyr", "SUBSET_SELECTION", "POPULATION > 10000")
# Write the selected features to a new featureclass
arcpy.CopyFeatures_management("cities_lyr", "c:/data/mexico.gdb/chihuahua_10000plus")
except:
print arcpy.GetMessages()