要素转线 (数据管理)

摘要

创建包含通过以下方式生成的线的要素类:将面边界转换为线,或者分割线、面或在两要素的相交处对两要素进行分割。

插图

要素转线图示

使用情况

  • 输入属性可以选择性地保留在输出要素类中,这由对话框上的保留属性选项(脚本中的 attributes 参数)决定。

  • 在输入要素列表中指定了多个要素类或图层时,列表中这些条目的顺序并不影响输出要素类型,但是,在处理过程中将使用工具对话框中此列表最顶部的条目(脚本中的第一个条目)的空间参考,并将其作为输出空间参考。

  • 如果输入线或面边界在除起始折点和结束折点之外的其他位置相接、相交或重叠,则它们将在相交处分割;每条分割线都会变成一个输出线要素。 如果输入线或面边界未与另一个要素相交,则仍将以完整形状写出为线要素。

  • 对于多部件输入要素,输出线将为单部件。

  • 对于参数(真)曲线的输入要素,即使被分割,输出线也仍将是真曲线。 但这一点不适用于 shapefile 数据。

  • 如果选中对话框中的保留属性选项(脚本中的 attributes 参数设置为 ATTRIBUTES),则所有输入条目中的属性都将按照输入列表中的顺序保留在输出中。 一个新字段 FID_xxx(其中 xxx 是特定输入条目的源要素类名称)将会添加到每个输入条目的输出中,并被设置为源要素 ID。 输出线将以如下方式与其属性相关联:

    • 对于同一输入要素集内重合的线或面边界(例如,分隔两个面的边界),将在输出中写入几何相同的两个线要素:
    • 对于两个不同输入要素集中重合的线或面边界,例如,与面边界重叠的一条线,只有同时具有两个源要素属性的那条线要素会写入到输出。
    • 如果某条输出线未与特定输入要素集中的任何要素重叠,则它在 FID_xxx 字段中的值将为 -1,在该要素集的其他字段中的值将为零或空值。

    如果未选中对话框上的保留属性选项(脚本中的 attributes 参数设置为 NO_ATTRIBUTES),所有输入属性都不会保留在输出要素类中;对于每组重合的线或面边界,只有一个线要素写入到输出。

  • 当输入要素包含相邻面时,如果想要在输出中将具有左右面要素 ID 的共享边界线作为属性,需使用面转线工具替代。

  • 为了获得更好的性能和可扩展性,此工具将使用切片过程来处理非常大的数据集。 有关详细信息,请参阅大型数据集的切片处理

参数

标注说明数据类型
输入要素

输入要素可以是线或面,或是两者兼而有之。

Feature Layer
输出要素类

输出线要素类。

Feature Class
XY 容差
(可选)

进行空间计算时所有要素坐标之间的最小距离以及坐标可以沿 X 和/或 Y 方向移动的距离。默认 XY 容差设定值为 0.001 米,或者为其等效值(以要素单位表示)。

警告:

更改此参数的值可能会导致出现故障或意外结果。 建议不要修改此参数。 已将其从工具对话框的视图中移除。 默认情况下,将使用输入要素类的空间参考 x,y 容差属性。

Linear Unit
保留属性
(可选)

指定是在输出要素类中保留还是忽略输入要素属性。

  • 选中 - 在输出要素中保留输入属性。 这是默认设置。
  • 未选中 - 在输出要素中忽略输入属性。
Boolean

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 米,或者为其等效值(以要素单位表示)。

警告:

更改此参数的值可能会导致出现故障或意外结果。 建议不要修改此参数。 已将其从工具对话框的视图中移除。 默认情况下,将使用输入要素类的空间参考 x,y 容差属性。

Linear Unit
attributes
(可选)

指定是在输出要素类中保留还是忽略输入属性。

  • ATTRIBUTES在输出要素中保留输入属性。 这是默认设置。
  • NO_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")

相关主题