Краткая информация
Инструмент импортирует 3D объекты из одного или нескольких текстовых файлов кодировки ASCII (форматов XYZ, XYZI или GENERATE) в новый класс пространственных объектов.
Рисунок
Использование
Все входные файлы должны быть одного формата и с одним типом геометрии.
Форматы XYZ и XYZI поддерживают строки заголовка и за начало записи точек принимают первую строку с тремя последовательными числами. Оба формата могут хранить точки, линии и полигоны, но каждый файл может хранить только один простой (не составной) линейный или полигональный объект. Полигональные объекты должны быть замкнутыми, т.е. координаты последней вершины должны совпадать с координатами первой, кроме того, они не должны иметь самопересечений.
Файлы XYZ содержат координаты x, y и z в формате с плавающей точкой (float), при этом каждая строка характеризует отдельную точку. За координатами XYZ могут следовать буквенно-цифровые символы, но эта информация не перейдет в полученный класс пространственных объектов.
Файлы XYZI содержат координаты x, y, z и значения интенсивности. В случае выходных объектов-мультипатчей значения интенсивности хранятся в поле типа BLOB (большой двоичный объект).
Формат GENERATE не поддерживает строки заголовка, но каждая точка с координатами XYZ снабжена идентификатором, а последняя строка в файле может быть (но необязательно) отмечена ключевым словом END:
id x y z id x y z . . END
Формат GENERATE может содержать несколько пространственных объектов в одном файле. Слово END показывает конец записи одного линейного или полигонального пространственного объекта, каждый из которых должен состоять из одной части (быть простым). Два слова END подряд обозначают конец файла.
id x y z x y z x y z END id x y z x y z END END
Синтаксис
ASCII3DToFeatureClass_3d (input, in_file_type, out_feature_class, out_geometry_type, {z_factor}, {input_coordinate_system}, {average_point_spacing}, {file_suffix}, {decimal_separator})
Параметр | Объяснение | Тип данных |
input [input,...] | Файлы или папки с файлами ASCII, содержащие данные в формате XYZ, XYZI (с интенсивностью лидара) или 3D GENERATE. Все входные файлы должны быть в одном формате. Если указана папка, то необходимо также задать параметр Суффикс файла (File Suffix), при этом будут обработаны все файлы из папки, имеющие расширение, соответствующее заданному суффиксу. | Folder; File |
in_file_type | String | |
out_feature_class | Класс объектов, который будет получен в результате работы инструмента. | Feature Class |
out_geometry_type | Тип геометрии выходного класса пространственных объектов.
| String |
z_factor (дополнительно) | Коэффициент, на который будут умножаться Z-значения. Этот способ обычно используется для конвертации линейных Z-единиц для соответствия линейным единицам XY. Значение по умолчанию равно 1, при нем значения высоты не изменяются. | Double |
input_coordinate_system (дополнительно) | Система координат входных данных. По умолчанию используется Неизвестная система координат (Unknown Coordinate System). Если параметр задан, то результат может быть проецирован в другую систему координат (но необязательно). Это зависит от того, определена ли в параметрах среды геообработки система координат для выходного местоположения класса пространственных объектов. | Coordinate System |
average_point_spacing (дополнительно) | Среднее расстояние на плоскости между точками во входных данных. Этот параметр используется только в том случае, если тип выходной геометрии задан как MULTIPOINT. Он служит для определения способа группировки точек. Это значение, в сочетании в ограничением количества точек на одну фигуру, применяется для построения виртуальной системы листов, предназначенной для группировки точек. Начало отсчета системы листов основано на домене целевого класса пространственных объектов. Укажите интервал в горизонтальных единицах целевого класса объектов. | Double |
file_suffix (дополнительно) | Суффикс импортируемых файлов из входной папки. Этот параметр также необходим, когда папка указана в качестве входных данных. | String |
decimal_separator (дополнительно) | Десятичный символ, используемый в текстовом файле, чтобы отделить целую часть числа от дробной.
| String |
Пример кода
ASCII3DToFeatureClass – пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
#Create spatial reference object using WKID
sr = arcpy.SpatialReference(32136)
arcpy.ASCII3DToFeatureClass_3d("masspntz.gen", "GENERATE", "elevation_points.shp",
"MULTIPOINT", z_factor=3.28,
input_coordinate_system=sr, average_point_spacing=2.5)
ASCII3DToFeatureClass – пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: ASCII3D_to_Feature_Class Example
Description: Creates a TIN surface using XYZI files in a folder and breaklines
imported from ASCII files.
****************************************************************************'''
# Import system modules`
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
# Define the spatial reference using the name
sr = arcpy.SpatialReference("Hawaii Albers Equal Area Conic")
#Create the elevation points
arcpy.ddd.ASCII3DToFeatureClass("Elevation Points", "XYZI",
"elevation_points.shp",
"MULTIPOINT", z_factor=3.28,
input_coordinate_system=sr,
average_point_spacing=2.5,
file_suffix="XYZ")
#Create the break lines
arcpy.ddd.ASCII3DToFeatureClass("brklines.gen", "GENERATE",
"breaklines.shp",
"POLYLINE", z_factor=3.28,
input_coordinate_system=sr)
arcpy.ddd.CreateTin("elevation_tin", sr,
[["breaklines.shp", "Shape", "hardline"],
["elevation_points.shp", "Shape", "masspoints"]],
"CONSTRAINED_DELAUNAY")
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)
Параметры среды
- Текущая рабочая область (Current Workspace)
- Экстент (Extent)
- Выходная система координат (Output Coordinate System)
- Географические преобразования (Geographic Transformations)
- Разрешение XY (XY Resolution)
- Допуск XY (XY Tolerance)
- Разрешение Z (Z Resolution)
- Допуск Z (Z Tolerance)
- Выходное ключевое слово CONFIG (Output CONFIG Keyword)
- Автоподтверждение (Auto Commit)
- Выходная пространственная сетка 1
- Выходная пространственная сетка 2
- Выходная пространственная сетка 3
Информация о лицензировании
- ArcGIS for Desktop Basic: Требует 3D Analyst
- ArcGIS for Desktop Standard: Требует 3D Analyst
- ArcGIS for Desktop Advanced: Требует 3D Analyst