Создать векторный слой (Управление данными)

Уровень лицензии:BasicStandardAdvanced

Резюме

Создает векторный слой из входного класса пространственных объектов или файла слоя. Если слой не сохранить на диск, или не сохранить документ карты, этот временный слой не будет сохранен после завершения сеанса работы.

Использование

Синтаксис

MakeFeatureLayer_management (in_features, out_layer, {where_clause}, {workspace}, {field_info})
ПараметрОбъяснениеТип данных
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

Пример кода

Создать векторный слой. Пример 1 (окно Python)

Пример скрипта Python для выполнения функции Создать векторный слой (Make Feature Layer) с запуском из окна Python в ArcGIS.

import arcpy

arcpy.env.workspace = "C:/data/input"
arcpy.MakeFeatureLayer_management("parcels.shp", "parcels_lyr")
Создать векторный слой. Пример 2 (автономный скрипт)

Пример скрипта 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()

Параметры среды

Связанные темы

Информация о лицензировании

ArcGIS for Desktop Basic: Да
ArcGIS for Desktop Standard: Да
ArcGIS for Desktop Advanced: Да
9/10/2013