在 Advanced 许可等级下可用。
描述
创建包含通过以下方式生成的线的要素类:将面边界转换为线,或者分割线、面或在两要素的相交处对两要素进行分割。
插图
使用方法
输入属性可以选择性地保留在输出要素类中,这由对话框上的保留属性选项(脚本中的 attributes 参数)决定。
在输入要素列表中指定了多个要素类或图层时,列表中这些条目的顺序并不影响输出要素类型,但是,在处理过程中将使用工具对话框中此列表最顶部的条目(脚本中的第一个条目)的空间参考,并将其作为输出空间参考。
如果输入线或面边界在除起始折点和结束折点之外的其他位置相接、相交或重叠,则它们将在相交处分割;每条分割线都会变成一个输出线要素。如果输入线或面边界未与另一个要素相交,则仍将以完整形状写出为线要素。
对于多部件输入要素,输出线将为单部件。
对于参数(真)曲线的输入要素,即使被分割,输出线也仍将是真曲线。但这一点不适用于 shapefile 数据。
如果选中对话框中的保留属性选项(脚本中的 attributes 参数设置为 ATTRIBUTES),则所有输入条目中的属性都将按照输入列表中的顺序保留在输出中。一个新字段 FID_xxx(其中 xxx 是特定输入条目的源要素类名称)将会添加到每个输入条目的输出中,并被设置为源要素 ID。输出线将以如下方式与其属性相关联:
- 对于同一输入要素集内重合的线或面边界(例如,分隔两个面的边界),将在输出中写入几何相同的两个线要素:
- 对于两个不同输入要素集中重合的线或面边界,例如,与面边界重叠的一条线,只有同时具有两个源要素属性的那条线要素会写入到输出。
- 如果某条输出线未与特定输入要素集中的任何要素重叠,则它在 FID_xxx 字段中的值将为 -1,在该要素集的其他字段中的值将为零或空值。
如果未选中对话框上的保留属性选项(脚本中的 attributes 参数设置为 NO_ATTRIBUTES),所有输入属性都不会保留在输出要素类中;对于每组重合的线或面边界,只有一个线要素写入到输出。
当输入要素包含相邻面时,如果想要在输出中将具有左右面要素 ID 的共享边界线作为属性,需使用面转线工具替代。
此工具通过切片的方式处理庞大的数据集以便提高性能和可扩展性。有关详细信息,请参阅对大型数据集进行地理处理。
语法
arcpy.management.FeatureToLine(in_features, out_feature_class, {cluster_tolerance}, {attributes})
参数 | 说明 | 数据类型 |
in_features [in_features,...] | 输入要素可以是线或面,或是两者兼而有之。 | Feature Layer |
out_feature_class | 输出线要素类。 | Feature Class |
cluster_tolerance (可选) | 进行空间计算时所有要素坐标之间的最小距离以及坐标可以沿 X 和/或 Y 方向移动的距离。默认 XY 容差设定值为 0.001 米,或者为其等效值(以要素单位表示)。 | Linear Unit |
attributes (可选) | 指定是在输出要素类中保留还是忽略输入属性。
| Boolean |
代码示例
FeatureToLine 示例 1(Python 窗口)
以下 Python 窗口脚本演示了如何在即时模式下使用 FeatureToLine 函数。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.FeatureToLine_management(["majorrds.shp", "habitat_analysis.gdb/futrds"],
"c:/output/output.gdb/allroads",
"0.001 Meters", "ATTRIBUTES")
FeatureToLine 示例 2(独立脚本)
以下独立脚本演示了如何在脚本环境中应用 FeatureToLine 函数。
# Name: FeatureToLine_Example2.py
# Description: Use FeatureToLine function to combine features from two
# street feature classes into a single feature class,
# then determine an area of impact around all streets
# by buffering
# import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
oldStreets = "majorrds.shp"
newStreets = "habitat_analysis.gdb/futrds"
uptodateStreets = "c:/output/output.gdb/allroads"
# Use FeatureToLine function to combine features into single feature class
arcpy.FeatureToLine_management([oldStreets, newStreets], uptodateStreets,
"0.001 Meters", "ATTRIBUTES")
# Use Buffer function to determine area of impact around streets
roadsBuffer = "c:/output/output.gdb/buffer_output"
arcpy.Buffer_analysis(uptodateStreets, roadsBuffer, "50 Feet",
"FULL", "ROUND", "ALL")
环境
许可信息
- Basic: 否
- Standard: 否
- Advanced: 是