Краткая информация
Добавляет к атрибутам объектов пространственную информацию, полученную из поверхности.
Использование
Z-значения из 3D объектов игнорируются. В каждом объекте будут суммированы Z-свойства, пересекающиеся с его геометрией. Точки получают Z-значения из XY-местоположения на поверхности, линии получают Z-свойства с помощью интерполяции измерений поверхности вдоль них, для полигонов суммируются Z-свойства поверхности, входящей в них.
Опции Выходное свойство записываются в таблицу атрибутов входного объекта. Каждый объект определяет местоположение оцениваемых свойств поверхности и тип свойства, о котором может быть сообщено в зависимости от геометрии объекта:
Геометрия объекта Свойства поверхности Point
Отметка высоты, интерполированная из XY координат точки на поверхности.
Мультиточка
Минимум, максимум и среднее значение отметки высоты для всех точек в записи мультиточки.
Полилиния
3D расстояние линии вдоль поверхности.
Минимум, максимум и среднее значение высоты и уклона линии на поверхности.
Polygon
3D площадь поверхности, пересекающаяся с полигоном.
Минимум, максимум и значение высоты и уклона по поверхности.
Значения уклона измеряются в процентах (градусах), а для линейных объектов вычисляются для каждого сегмента вдоль линии.
- Минимальное значение уклона берется для сегмента, значение которого ближе всего к 0 (к горизонтали).
- Максимальное значение уклона берется для сегмента с самым большим вычисленным значением.
- Среднее значение уклона получается путем оценки каждого уклона по его 3D длине и определения среднего значения. Это приводит к тому, что более длинные сегменты сильнее влияют на получаемое значение по сравнению с более короткими сегментами.
Рассмотрите возможность применения Фильтра помех для исключения участков поверхности, характеризующихся аномальными измерениями, из участия в вычислении уклона. Линейные объекты разделяются вершинами в соответствии с профилем поверхности, фильтрация по длине этих сегментов исключает влияние коротких фрагментов, которые могут появиться в результате неверных измерений. Сходным образом, фильтрация полигональных объектов по площади позволяет исключить узкие треугольники триангулированных поверхностей из участия в вычислении уклонов. Для растровых поверхностей, с помощью поднабора центроидов ячеек строится триангулированная поверхность, к которой применяется фильтр.
Синтаксис
AddSurfaceInformation_3d (in_feature_class, in_surface, out_property, {method}, {sample_distance}, {z_factor}, {pyramid_level_resolution}, {noise_filtering})
Параметр | Объяснение | Тип данных |
in_feature_class | Точечные, мультиточечные, линейные или полигональные объекты, задающие местоположения для определения одного или нескольких свойств поверхности. | Feature Layer |
in_surface | Набор данных LAS, растровая, TIN-поверхность или поверхность terrain, использованная для интерполяции z-значений. | LAS Dataset Layer; Raster Layer; Terrain Layer; TIN Layer |
out_property | Свойство высоты поверхности, которое добавляется в таблицу атрибутов входного класса объектов. В следующем списке представлены доступные ключевые слова свойства и поддерживаемые типы геометрии:
| String |
method (дополнительно) | Метод интерполяции, используемый для определения информации о поверхности. Доступные опции зависят от типа данных входной поверхности.
| String |
sample_distance (дополнительно) | Интервал, по которому будут интерполированы Z-значения. По умолчанию используется размер ячейки растра, если входная поверхность – это растр, и естественное уплотнение триангуляционной поверхности используется, если входная поверхность – это набор данных TIN или terrain. | Double |
z_factor (дополнительно) | Коэффициент, на который будут умножаться Z-значения. Этот способ обычно используется для конвертации линейных Z-единиц для соответствия линейным единицам XY. Значение по умолчанию равно 1, при нем значения высоты не изменяются. | Double |
pyramid_level_resolution (дополнительно) | z-допуск или разрешение размера окна для уровня пирамидных слоев Terrain, которое будет использоваться этим инструментом. Значением по умолчанию является 0, полное разрешение. | Double |
noise_filtering (дополнительно) | Исключает участки поверхности, характеризующиеся потенциально аномальными измерениями, из участия в вычислении уклона. Линейные объекты предоставляют фильтр длины, а полигональные – фильтр площади. Значение, соответствующее какой-либо опции фильтрации, вычисляется в линейных единицах измерения системы координат объекта. Свойства, не относящиеся к уклонам, не затрагиваются этим параметром.
| String |
Пример кода
Пример AddSurfaceInformation 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.AddSurfaceInformation_3d("points.shp", "my_tin", "Z", "LINEAR")
AddSurfaceInformation, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''*********************************************************************
Name: AddSurfaceInformation Example
Description: This script demonstrates how to use AddSurfaceInformation
on all 2D feature classes in a target workspace.
*********************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension("3D")
# Set Local Variables
env.workspace = 'c:/data'
inSurface = 'fgdb.gdb/municipal/terrain'
pyramid = 5
method = "BILINEAR"
# Create list of feature classes
fcList = arcpy.ListFeatureClasses()
if fcList:
for fc in fcList:
desc = arcpy.Describe(fc)
# Determine if the feature is 2D
if not desc.hasZ:
if desc.shapeType == "Polygon":
# Desired properties separated by semi-colons
Prop = "Z_MIN;Z_MAX"
elif desc.shapeType == "Point":
Prop = "Z"
elif desc.shapeType == "Multipoint":
Prop = "Z_MIN;Z_MAX;Z_MEAN"
elif desc.shapeType == "Polyline":
Prop = "LENGTH_3D"
# Execute AddSurfaceInformation
arcpy.ddd.AddSurfaceInformation(fc, inSurface, Prop,
method, 15, 1, pyramid)
print "Completed adding surface information."
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)
Параметры среды
Информация о лицензировании
- ArcGIS for Desktop Basic: Требует 3D Analyst
- ArcGIS for Desktop Standard: Требует 3D Analyst
- ArcGIS for Desktop Advanced: Требует 3D Analyst