Добавить информацию Z (3D Analyst)
Резюме
Добавляет сведения свойствах высоты объектов в класс объектов с поддержкой Z-значений.
Каждая 3D фигура изучается, а выбранные свойства добавляются в таблицу атрибутов входного класса объектов. Различия выходных опций зависят от типа геометрии объекта.
Использование
-
Доступны следующие Z-свойства:
- Точки – Z
- Мультиточки – Z минимум, Z максимум, Z среднее, число точек
- Полилинии – Z минимум, Z максимум, Z среднее, 3D длина, минимальный уклон, максимальный уклон, средний уклон, число вершин
- Полигоны – Z минимум, Z максимум, Z среднее, 3D длина, минимальный уклон, максимальный уклон, средний уклон, число вершин
- Мультипатч – Z минимум, Z максимум, площадь поверхности, объем, минимальный уклон, максимальный уклон, средний уклон
-
Уклон возвращается как процентное отношение и вычисляется по-разному для каждого типа геометрии, поддерживающего это свойство.
- Значения уклона для линейных объектов вычисляются для каждого сегмента линии:
- Минимальное значение уклона получается от сегмента, значение которого ближе всего к 0 (к горизонтали).
- Максимальное значение уклона получается от сегмента с самым большим вычисленным значением.
- Средний уклон определяется методом усреднения уклона всех сегментов линии после взвешивания каждого сегмента по их 3D длине. Это приводит к тому, что более длинные сегменты оказывают большее влияние, чем короткие.
- Значения уклона для объектов мультипатча вычисляются для каждого ребра треугольника.
- Минимальное значение уклона получается от ребра, значение которого ближе всего 0 (к горизонтали).
- Максимальное значение уклона получается от ребра с самым большим вычисленным значением.
- Средний уклон определяется методом усреднения уклона всех ребер треугольника после взвешивания каждого сегмента по их 3D площади. Это приводит к тому, что большие площади сегменты сильнее влияют на получаемое значение по сравнению с меньшими площадями.
- Значения уклона для полигональных объектов вычисляются вдоль ребер с помощью тех же методов, которые применяются для фрагментов линий.
- Значения уклона для линейных объектов вычисляются для каждого сегмента линии:
Объем можно вычислить только для замкнутых объектов мультипатча. Незамкнутый объект мультипатча возвращает значение 0.0. На платформе Solaris ограничение реализации не позволяет инструменту определить, замкнут ли мультипатч, что приводит к вычислению объема для всех мультипатчей с предположением, что все они замкнутые.
Синтаксис
Параметр | Объяснение | Тип данных |
in_feature_class |
Входной класс объектов. | Feature Layer |
out_property [out_property,...] | Z-свойства, которое добавляется в таблицу атрибутов входного класса объектов. Доступны следующие опции:
| String |
noise_filtering (дополнительно) |
Позволяет исключать из обработки небольшие части объектов, согласно статистическим данным. Эта опция полезна для получения качественной оценки максимального уклона, так как небольшие части пространственных объектов часто содержат более крутые склоны, что может отражаться на статистических данных. Значения опций Площадь (Area) или Длина (Length) могут использоваться для исключения частей таких объектов. Этот параметр не применяется к точечным и мультиточеным объектам.
| String |
Пример кода
В следующем примере показано использование этого инструмента в окне 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')
В следующем примере показано использование этого инструмента в автономном скрипте 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)