Класс объектов Z в файл ASCII (3D Analyst)

Сводка

Экспортирует 3D объекты в текстовые файлы ASCII, хранящие данные в формате GENERATE, XYZ или данные профиля.

Использование

  • Опция Профиль записывает файл 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 объекта. Каждая часть составного объекта записывается в отдельный файл с номером этой части, следующим за идентификатором объекта в имени файла.

  • Формат 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 для полигональных объектов всегда являются одинаковыми.

Синтаксис

arcpy.3d.FeatureClassZToASCII(in_feature_class, output_location, out_file, {format}, {delimiter}, {decimal_format}, {digits_after_decimal}, {decimal_separator})
ParameterОбъяснениеТип данных
in_feature_class

Класс точечных, мультиточечных или полигональных объектов 3D, который будет экспортирован в файл ASCII.

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
(Дополнительный)

Количество цифр, написанных после запятой для значений с плавающей точкой, которые записываются в выходные файлы. Этот параметр используется, когда для параметра Десятичные обозначения задано значение Указанное число (decimal_format=FIXED в Python).

Long
decimal_separator
(Дополнительный)

Указывает десятичный символ, используемый для разделения целой часть числа от дробной.

  • DECIMAL_POINTТочка используется как десятичный символ. Используется по умолчанию.
  • DECIMAL_COMMAЗапятая используется как десятичный символ.
String

Производные выходные данные

NameОбъяснениеТип данных
derived_output

Папка, в которую будут записаны выходные файлы.

Папка; Файл

Пример кода

FeatureClassZToASCII, пример 1 (окно Python)

В следующем примере показано использование этого инструмента в окне Python.

arcpy.env.workspace = "C:/data"
arcpy.FeatureClassZToASCII_3d("LidarPts.shp", "", "ASCII_LidarPts.txt",
                            "GENERATE", "COMMA", "FIXED", 6, "DECIMAL_POINT")
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.FeatureClassZToASCII_3d(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: Требуется 3D Analyst
  • Standard: Требуется 3D Analyst
  • Advanced: Требуется 3D Analyst

Связанные разделы