描述
根据输入要素类或图层文件创建要素图层。该工具创建的图层是临时图层,如果不将此图层保存到磁盘或保存地图文档,该图层在会话结束后将不会继续存在。
使用方法
此工具不支持复杂要素类(如注记和尺寸)。
除非使用保存至图层文件工具将在 ArcCatalog 中创建的图层保存为图层文件,否则无法在 ArcMap 中使用这些图层。
如果使用了 SQL 表达式但却没有返回任何内容,则输出为空。
可以使用字段信息控件为字段名指定新名称。此控件的第二列列出来自输入的现有字段名。要对某字段重新命名,请单击字段名,然后输入一个新字段名。
在后续工具中将采用字段信息控件中定义的字段名。但是,如果此工具是模型中的最后一个工具,则将从磁盘的源数据中获取字段名。要保留字段名,必须使用复制行或复制要素工具将新图层写出到新数据。
字段名将通过指定输入工作空间来进行验证。因此,如果输入是地理数据库要素类,而输出工作空间是文件夹,则字段名可能会被截断,这是由于 shapefile 属性的名称最多只能具有十个字符。可以使用字段信息控件查看和更改新名称。
通过使用字段信息控件的可见属性,可使字段的子集在新图层中不可用。控件的第三列提供了一个下拉选项,用于指定字段在新图层中是显示还是隐藏。默认值为 TRUE。选择 FALSE 将隐藏字段。如果新建的图层是后续处理过程或工具的输入,则不能在工作流中使用隐藏的字段。如果将输出保存到磁盘,则只有列出的可见字段将显示在新数据中。
可以使用字段信息控件的使用比率策略选项设置分割策略。每当将要素图层用作工具的输入且在处理中分割输入要素图层的几何时,分割策略就会生效。将分割几何发送到输出后,会计算输出属性值与输入属性值的比率。如果启用了使用比率策略选项,执行叠加操作时,对于任一要素的分割都将按照输入要素属性值的一定比率来生成输出要素的属性值。输出值将根据输入要素几何被分割的比率得出。例如,如果输入几何被分割成相等的两部分,则每个新要素的属性值都等于输入要素属性值的一半。使用比率策略仅适用于数值字段类型。
默认值为“无”(未选中)。这意味着两个最终所得要素的属性使用原始对象的属性值副本。
使用 ModelBuilder 创建工具时,需要确保此工具的输入数据变量未被标记为中间。如果输入被标记为中间,则在从输入对话框运行模型后不会删除此输入,而且也不会将输出图层添加到显示。
在模型中,可为创建要素图层工具的输出变量分配一个图层文件,以便从该文件应用所创建图层的符号设置。当所创建的图层以模型或脚本工具输出参数的形式返回到地图时,系统将保留图层文件中的符号系统,但不保留标注属性。但是,如果将通过(模型中的)创建要素图层工具创建的图层保存为永久数据(要素类或 shapefile),且永久数据以输出参数的形式返回地图,则系统会正确应用图层文件的标注属性。
用于输入此工具的源要素类的模式为包括下至要素类(如 C:\my.gdb\feature_dataset\feature_class_name)的所有级别的数据结构。此外还有一个针对宗地结构的额外级别(宗地结构),但此工具的输入中不必使用该结构级别。例如,当宗地的目录路径为 C:\my.gdb\feature_dataset\fabric_str\feature_class_name 时,路径中可省略 fabric_str。
语法
arcpy.management.MakeFeatureLayer(in_features, out_layer, {where_clause}, {workspace}, {field_info})
参数 | 说明 | 数据类型 |
in_features | 用于创建新图层的输入要素类或图层。复杂要素类(如注记和尺寸)不是此工具的有效输入。 | Feature Layer |
out_layer | 要创建的要素图层的名称。新创建的图层可用作任何可接受要素图层作为输入的地理处理工具的输入。 | Feature Layer |
where_clause (可选) | 用于选择要素子集的 SQL 表达式。有关 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
# 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())
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是