Make Feature Layer (数据管理)

摘要

根据输入要素类图层文件创建要素图层。该工具创建的图层是临时图层,如果不将此图层保存到磁盘或保存地图文档,该图层在会话结束后将不会继续存在。

用法

语法

MakeFeatureLayer_management (in_features, out_layer, {where_clause}, {workspace}, {field_info})
参数说明数据类型
in_features

用于创建新图层的输入要素类或图层。复杂要素类(如注记和尺寸)不是此工具的有效输入。

Feature Layer
out_layer

要创建的要素图层的名称。新创建的图层可用作任何可接受要素图层作为输入的地理处理工具的输入。

Feature Layer
where_clause
(可选)

用于选择要素子集的 SQL 表达式。表达式的语法会因数据源的不同而稍有不同。例如,如果要查询文件或 ArcSDE 地理数据库、shapefile 或 coverage,字段名需用双引号:

"MY_FIELD"

如果要查询个人地理数据库,需将字段用方括号括起:

[MY_FIELD]

在 Python 中,字符串用成对的单引号或双引号括起。要创建含有引号的字符串(常见于 SQL 表达式中的 WHERE 子句),可以对引号进行转义(使用反斜线)或对字符串使用三重引号。例如,如果所需的 WHERE 子句为

"CITY_NAME" = 'Chicago'

可以将整个字符串用双引号括起,然后如下所示对内部双引号进行转义:

" \"CITY_NAME\" = 'Chicago' "

或者可以将整个字符串用单引号括起,然后如下所示对内部单引号进行转义:

' "CITY_NAME" = \'Chicago\' '

或者不进行转义,而将整个字符串用三重引号括起:

""" "CITY_NAME" = 'Chicago' """

有关 SQL 语法及其在不同数据源中的差异的详细信息,请参阅帮助主题在 ArcGIS 中使用查询表达式的 SQL 参考

SQL Expression
workspace
(可选)

用于验证字段名的输入工作空间。如果输入是地理数据库表,而输出工作空间是 dBASE 表,则字段名可能会被截断,这是由于 dBASE 字段名最多只能具有十个字符。可以使用字段信息控件查看和更改新名称。

Workspace;Feature Dataset
field_info
(可选)

可用于查看和更改字段名,还可以隐藏输出图层中字段的子集。可以指定分割策略。有关详细信息,请参阅用法。

Field Info

代码示例

MakeFeatureLayer 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 MakeFeatureLayer 函数。

import arcpy

arcpy.env.workspace = "C:/data/input"
arcpy.MakeFeatureLayer_management("parcels.shp", "parcels_lyr")



MakeFeatureLayer 示例 2(独立脚本)

以下独立脚本演示了如何使用 MakeFeatureLayer 创建可供 SelectLayerByLocation 和 SelectLayerByAttribute 工具使用的图层。

# 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()

环境

相关主题

许可信息

ArcView: 是
ArcEditor: 是
ArcInfo: 是

7/10/2012