Сводка
Обновляет Z-координаты вершин 3D-объектов на основе данных поверхности.
Использование
Вершины будут обновлены только для тех объектов, которые полностью перекрывают входную поверхность. Объекты, не перекрывающиеся с входной поверхностью, будут пропущены.
Примечание:
Если z-значение, полученное для данной вершины, не находится на домене Z пространственной привязки объекта базы геоданных, то z-значение такой вершины обновлено не будет. Создайте копию входных объектов и укажите соответствующий Домен Z для обработки измененных объектов.
Синтаксис
arcpy.3d.UpdateFeatureZ(in_features, in_surface, {method}, {status_field})
Parameter | Объяснение | Тип данных |
in_features | 3D объекты, Z-значения вершин которых будут изменены. | Feature Layer |
in_surface | Поверхность, которая будет использоваться для определения нового z-значения для вершин 3D-объектов. | LAS Dataset Layer; Mosaic Layer; Raster Layer; TIN Layer |
method (Дополнительный) | Метод интерполяции, используемый для определения информации о поверхности. Доступные опции зависят от типа данных входной поверхности.
| String |
status_field (Дополнительный) | Существующее числовое поле, в которое заполняются значения, показывающие, успешным ли было обновление вершин объектов. Значение 1 устанавливается для обновившихся объектов и 0 – для объектов, которые не обновились. Объекты с частичным перекрытием поверхности не будут обновлены. | Field |
Производные выходные данные
Name | Объяснение | Тип данных |
out_feature_class | Обновленные 3D объекты, Z-значения вершин которых будут изменены. | Векторный слой |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
arcpy.env.workspace = 'C:/data'
arcpy.UpdateFeatureZ_3d('lines_3d.shp', 'dsm.tif', status_field='Updated')
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Update Antenna Positions
Description: Updates antenna positions based on elevations from a surface.
****************************************************************************'''
# Import system modules
import arcpy
in_fc = arcpy.GetParameterAsText(1) # pt features representing antenna locations
surface = arcpy.GetParameterAsText(2) # surface used to modify feature Z values
try:
if arcpy.Describe(surface).dataType in ('Raster', 'RasterLayer'):
method = 'BILINEAR'
else:
method = 'CONFLATE_ZMAX'
arcpy.ddd.UpdateFeatureZ(in_fc, surface, method)
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Environments
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst