要素类 Z 转 ASCII (3D Analyst)

摘要

将 3D 要素导出到存储有 GENERATE、XYZ 或专用标准数据的 ASCII 文本文件。

使用情况

  • “配置文件”选项将写入一个双列 ASCII 文件,用于将 3D 线要素转换为可用于生成折线图的记录。源要素类中的每个线都将写入一个单独的文件,其名称后将追加线的唯一 ID。ASCII 文件中的各行将包含从线的起始位置到折点 (D)(其后为该折点高程)的距离。将生成的 ASCII 文件加载到图表绘制应用程序中时,第一列将用于定义 x 轴,而第二列将用于定义 y 轴。

    0 z1D1 z2D2 z3D3 z4
  • XYZ 选项会以浮点值形式写入 x、y 和 z 坐标,文件中的各行表示点记录。

    x1 y1 z1x2 y2 z2x3 y3 z3x4 y4 z4
    注:

    点和多点要素写入同一文件,而每个面和折线要素都将写入名称后追加要素 ID 的单独的文本文件。系统会将多部分要素中的每个部分写入一个单独的文件,其部分编号将遵循文件名称中的要素 ID。

  • GENERATE 格式不支持标题行,但可在一个文件中存储所有输入要素。

    • 点要素与其各自的 ID 和 XYZ 坐标一起存储,最后一条线用 END 关键字表示:
      id1 x1 y1 z1id2 x2 y2 z2id3 x3 y3 z3id4 x4 y4 z4END
      注:

      来自原始要素类中同一记录的多点要素的 ID 相同。

    • 线和面要素由 END 关键字分开,两个连续的 END 关键字表示文件结束:
      id1x1 y1 z1x2 y2 z2x3 y3 z3x4 y4 z4END
      id2x1 y1 z1x2 y2 z2END
      END
      注:

      面要素的第一个和最后一个 XYZ 坐标始终相同。

参数

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

导出到 ASCII 文件的 3D 点、多点、折线或面要素类。

Feature Layer
输出位置

将在其中写入输出文件的文件夹。

Folder
输出文本文件

生成的 ASCII 文件的名称。

如果线或面要素类导出为 XYZ 格式,则使用文件名作为基础名称。因为 XYZ 格式每个文件仅支持一条线或一个面,所以每个要素都将具有唯一的文件输出。多部件要素的各部件也将写入单独的文件。文件名将附有每个要素的 OID,以及使各文件名唯一所需的任何附加字符。

String
ASCII 格式
(可选)

指定要创建的 ASCII 文件的格式。

  • GENERATE以 GENERATE 格式写入输出。这是默认设置。
  • XYZ写入输入要素的 XYZ 信息。将为输入要素中的各线或面创建一个文件。
  • 专用标准为可用于外部图表绘制应用程序中的线要素写入专用标准信息。
String
分隔符
(可选)

指定将指示文本文件表的列中条目间隔的分隔符。

  • 空格空格将用于分隔字段值。这是默认设置。
  • 逗号逗号将用于分隔字段值。如果小数分隔符也是逗号,则此选项不适用。
String
十进制记数法
(可选)

指定将确定输出文件中存储的有效数字位数的方法。

  • 自动确定在移除多余的后补零时,自动确定保留可用精度所需的有效数字位数。这是默认设置。
  • 指定数目有效数字位数在小数点后的位数参数中定义。
String
小数点后的位数
(可选)

将在浮点值的小数部分写入到输出文件之后写入的位数。当十进制记数法参数设置为指定数量(Python 中的 decimal_format=FIXED)时,将使用此参数。

Long
小数分隔符
(可选)

指定将区分数字的整数部分与其小数部分的小数字符。

  • 点用作小数字符。这是默认设置。
  • 逗号逗号用作小数字符。
String

派生输出

标注说明数据类型
更新后的文件夹

将在其中写入输出文件的文件夹。

文件夹;文件

arcpy.ddd.FeatureClassZToASCII(in_feature_class, output_location, out_file, {format}, {delimiter}, {decimal_format}, {digits_after_decimal}, {decimal_separator})
名称说明数据类型
in_feature_class

导出到 ASCII 文件的 3D 点、多点、折线或面要素类。

Feature Layer
output_location

将在其中写入输出文件的文件夹。

Folder
out_file

生成的 ASCII 文件的名称。

如果线或面要素类导出为 XYZ 格式,则使用文件名作为基础名称。因为 XYZ 格式每个文件仅支持一条线或一个面,所以每个要素都将具有唯一的文件输出。多部件要素的各部件也将写入单独的文件。文件名将附有每个要素的 OID,以及使各文件名唯一所需的任何附加字符。

String
format
(可选)

指定要创建的 ASCII 文件的格式。

  • GENERATE以 GENERATE 格式写入输出。这是默认设置。
  • XYZ写入输入要素的 XYZ 信息。将为输入要素中的各线或面创建一个文件。
  • PROFILE为可用于外部图表绘制应用程序中的线要素写入专用标准信息。
String
delimiter
(可选)

指定将指示文本文件表的列中条目间隔的分隔符。

  • SPACE空格将用于分隔字段值。这是默认设置。
  • COMMA逗号将用于分隔字段值。如果小数分隔符也是逗号,则此选项不适用。
String
decimal_format
(可选)

指定将确定输出文件中存储的有效数字位数的方法。

  • AUTOMATIC在移除多余的后补零时,自动确定保留可用精度所需的有效数字位数。这是默认设置。
  • FIXED有效数字位数在小数点后的位数参数中定义。
String
digits_after_decimal
(可选)

将在浮点值的小数部分写入到输出文件之后写入的位数。当十进制记数法参数设置为指定数量(Python 中的 decimal_format=FIXED)时,将使用此参数。

Long
decimal_separator
(可选)

指定将区分数字的整数部分与其小数部分的小数字符。

  • DECIMAL_POINT点用作小数字符。这是默认设置。
  • DECIMAL_COMMA逗号用作小数字符。
String

派生输出

名称说明数据类型
derived_output

将在其中写入输出文件的文件夹。

文件夹;文件

代码示例

要素类 Z 转 ASCII (FeatureClassZToASCII) 示例 1(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

arcpy.env.workspace = "C:/data"
arcpy.ddd.FeatureClassZToASCII("LidarPts.shp", "", "ASCII_LidarPts.txt",
                            "GENERATE", "COMMA", "FIXED", 6, "DECIMAL_POINT")
要素类 Z 转 ASCII (FeatureClassZToASCII) 示例 2(独立脚本)

下面的示例演示了如何在独立 Python 脚本中使用此工具。

'''****************************************************************************
Name: FeatureClassZToASCII Example
Description: This script demonstrates how to use the
             FeatureClassZToASCII tool to create generate files for all
             z-aware point features in a given workspace.
****************************************************************************'''
import arcpy

try:
    # Set environment settings
    arcpy.env.workspace = 'C:/data'
    # List all points in the target workspace
    fcList = arcpy.ListFeatureClasses("*", "POINT")
    if fcList:
        # Set Local Variables
        outFolder = "C:/output"
        outFormat = "GENERATE"
        delimeter = "SPACE"
        decimal = "FIXED"
        digits = 3
        dec_sep = "DECIMAL_POINT"
        for fc in fcList:
            # Use Describe method to evaluate whether the feature class is z-aware
            desc = arcpy.Describe(fc)
            if desc.hasZ == True:
                # Define the output file name by replacing '.shp' with _ascii.txt
                outName = fc.replace('.shp', '') + "_ascii.txt"
                #Execute FeatureClassZToASCII_3d
                arcpy.ddd.FeatureClassZToASCII(fc, outFolder, outName, outFormat, delimeter, decimal, digits, dec_sep)
    else:
        print("There are no feature classes in the " + env.workspace + " directory.")

except arcpy.ExecuteError:
    print(arcpy.GetMessages())
except Exception as err:
    print(err)

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题