Класс объектов Z в файл ASCII (Feature Class Z To ASCII) (3D Analyst)
Резюме
Экспортирует 3D объекты в текстовые файлы ASCII, хранящие данные в формате GENERATE, XYZ или данные профиля.
Использование
-
Формат PROFILE предоставляет информацию о профиле для линейных объектов 3D, которую можно импортировать в специализированные графические приложения. Каждый линейный объект в исходном классе пространственных объектов будет записан в отдельный файл, и имя файла будет содержать приставку с уникальным идентификатором (ID) линии. Каждая строка в таблице профиля содержит расстояние от начального положения линии до вершины (D), за которой следует высота этой вершины.
0 z1 D1 z2 D2 z3 D3 z4
Формат XYZ хранит координаты x, y и z в виде значений с плавающей точкой, где каждая строка представляет отдельную запись точки.
x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4
Примечание:Объекты точек и мультиточек записываются в один файл, в то время как каждый полигональный и линейный объект записывается в отдельных текстовый файл, имя которого содержит приставку с уникальным ID объекта. Каждая часть объектов, состоящих из нескольких частей, записывается в отдельный файл, имя которого будет содержать номер части, указанный после ID объекта.
Формат GENERATE не поддерживает строки заголовков, он хранит все входные объекты в одном файле.
- Точечные объекты хранятся со своими ID и координатами XYZ, а последняя линия обозначена ключевым словом END:
id1 x1 y1 z1 id2 x2 y2 z2 id3 x3 y3 z3 id4 x4 y4 z4 END
Примечание:Объекты мультиточек, созданные из одной записи исходного класса пространственных объектов, будут иметь одинаковый ID.
- Линейные и полигональные объекты отделяются ключевым словом END, а два следующих друг за другом ключевых слова END обозначают конец файла:
id1 x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4 END id2 x1 y1 z1 x2 y2 z2 END END
Примечание:Первые и последние координаты XYZ для полигональных объектов всегда являются одинаковыми.
- Точечные объекты хранятся со своими ID и координатами XYZ, а последняя линия обозначена ключевым словом END:
Синтаксис
Параметр | Объяснение | Тип данных |
in_feature_class |
Класс точечных, мультиточечных или полигональных объектов 3D, который будет экспортирован в файл ASCII. | Feature Layer |
output_location |
Папка, в которую будут записаны выходные файлы. | Folder |
out_file |
Имя итогового файла ASCII. Если класс линейных или полигональных объектов экспортируется в формат XYZ, имя файла используется как базовое имя. Каждый объект будет иметь уникальный выходной файл, поскольку формат XYZ поддерживает для каждого файла только одну линию или полигон. У составных объектов каждая часть будет записана в отдельный файл. Имя файла будет содержать приставку с OID каждого объекта, а также любые дополнительные символы, необходимые для придания уникальности каждому имени файла. | String |
format (дополнительно) |
Формат создаваемого файла ASCII.
| String |
delimiter (дополнительно) |
Разделитель поля, используемый в текстовом файле.
| String |
decimal_format (дополнительно) |
Метод, используемый для определения количества значащих цифр, хранящихся в выходных файлах.
| String |
digits_after_decimal (дополнительно) |
Используется, когда в качестве параметра Десятичные обозначения (Decimal Notation) задано значение FIXED. Определяет, как много знаков после запятой записывается для значений с плавающей точкой, в выходные файлы. | Long |
decimal_separator (дополнительно) | Десятичный символ, используемый в текстовом файле, чтобы отделить целую часть числа от дробной.
| String |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.FeatureClassZToASCII_3d("LidarPts.shp", "", "ASCII_LidarPts.txt",
"GENERATE", "COMMA", "FIXED", 6, "DECIMAL_POINT")
В следующем примере показано использование этого инструмента в автономном скрипте 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
import exceptions, sys, traceback
from arcpy import env
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
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:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)