Сводка
Добавляет сведения свойствах высоты объектов в класс объектов с поддержкой Z-значений.
Каждая 3D фигура изучается, а выбранные свойства добавляются в таблицу атрибутов входного класса объектов. Различия выходных опций зависят от типа геометрии объекта.
Использование
Доступны следующие Z-свойства:
Геометрия объекта Z свойства Точка
Z-значение точки.
Мультиточка
Число точек и минимальное, максимальное и среднее Z-значения всех точек в записи мультиточки.
Полилиния и полигон
Количество вершин и 3D расстояние линии или периметр полигона.
Минимальное, максимальное и среднее Z-значение, угол наклона линии или периметра полигона.
Мультипатч
Площадь поверхности и объем замкнутого мультипатча.
Минимальное, максимальное и среднее Z-значения и уклон вдоль поверхности мультипатча.
Уклон возвращается как процентное значение и вычисляется по-разному для каждого типа геометрии, поддерживающего это свойство.
- Значения уклона для линейных объектов и периметров полигонов вычисляются по каждому сегменту:
- Минимальное значение уклона берется из сегмента, значение которого ближе всего к 0 (к горизонтали).
- Максимальное значение уклона получается из сегмента с самым большим вычисленным значением.
- Средний уклон определяется усреднением уклона всех линейных сегментов после взвешивания каждого сегмента по их 3D длине. Это приводит к тому, что более длинные сегменты оказывают большее влияние, чем короткие.
- Значения уклона для объектов-мультипатчей вычисляются для каждой треугольной грани.
- Минимальный уклон получается из грани, значение которой ближе всего к 0, или горизонтальной грани.
- Максимальный уклон получается из грани с самым большим значением.
- Средний уклон определяется усреднением уклона всех треугольных граней после взвешивания каждого сегмента по их 3D площади. Это приводит к тому, что большие площади сильнее влияют на получаемое значение по сравнению с меньшими.
- Значения уклона для полигональных объектов вычисляются вдоль ребер с помощью тех же методов, которые применяются для сегментов линий.
- Значения уклона для линейных объектов и периметров полигонов вычисляются по каждому сегменту:
Объем можно вычислить только для замкнутых мультипатчей. Незамкнутый объект-мультипатч возвращает значение 0.0. На платформе Solaris ограничение реализации не позволяет инструменту определить, замкнут ли мультипатч, что приводит к вычислению объема для всех мультипатчей с предположением, что все они замкнутые.
Синтаксис
arcpy.ddd.AddZInformation(in_feature_class, out_property, {noise_filtering})
Параметр | Объяснение | Тип данных |
in_feature_class | Обрабатываемые входные объекты. | Feature Layer |
out_property [out_property,...] | Z-свойства, которое добавляется в таблицу атрибутов входного класса объектов. Доступны следующие опции:
| String |
noise_filtering (Дополнительный) | Дополнительное числовое значение используется для исключения частей объектов из итоговых вычислений. Эта опция полезна, если входные 3D-данные содержат сравнительно небольшие объекты с экстремальными значениями уклона, которые могут исказить статистические результаты. Если линейными единицами входных 3D-данных являются метры, задание значения, равного 0.001, приведет к исключению линий и границ полигонов, имеющих длину, меньшую 0.001 м. Для объектов мультипатч такое же значение приведет к исключению его фрагментов, имеющих площадь, меньшую 0.001 кв. м. Этот параметр не применяется к точечным и мультиточеным объектам. Фильтр Площадь становится доступным, если входными данными являются объекты мультипатч, а фильтр Длина – если входными являются линейные и полигональные объекты. | String |
Производные выходные данные
Имя | Объяснение | Тип данных |
output_feature_class | Обновленный класс объектов с поддержкой Z-значений. | Векторный слой |
Пример кода
AddZInformation, пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.AddZInformation_3d('lines_3D.shp', 'Z_MEAN; LENGTH_3D; AVG_SLOPE',
'NO_FILTER')
AddZInformation, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''******************************************************************
Name: AddZInformation Example
Description: This script demonstrates AddZInformation on all
z-aware features in a target workspace.
******************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Create list of feature classes
fcList = arcpy.ListFeatureClasses()
if fcList:
for fc in fcList:
desc = arcpy.Describe(fc)
if desc.hasZ:
# Set Local Variables
noise = 'No_Filter'
if desc.shapeType == 'Polygon':
Prop = ['Z_MIN', 'Z_MAX', 'VERTEX_COUNT']
elif desc.shapeType == 'Point':
Prop = 'Z'
elif desc.shapeType == 'Multipoint':
Prop = ['Z_MIN', 'Z_MAX', 'Z_MEAN']
elif desc.shapeType == 'Polyline':
Prop = 'LENGTH_3D'
print 'Completed adding Z information.'
# Execute AddZInformation
arcpy.AddZInformation_3d(inFC, Prop, noise)
arcpy.CheckInExtension('3D')
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)
Параметры среды
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst