Интерполировать форму (3D Analyst)
Резюме
Интерполирует z-значения для класса объектов на основе рельефа растра, триангуляционной нерегулярной сети (TIN) или набора данных Terrain.
Более подробно о работе инструмента Интерполировать форму (Interpolate Shape)
Рисунок
Использование
-
При использовании опции интерполяции методоместественная окрестность нужно указать подходящее расстояние разбиения. Обычно это значение составляет от 0,5 до 1,0 среднего интервала между точками данных, которые были использованы для построения TIN или набора данных Terrain.
-
При использовании опции Интерполировать только вершины (Interpolate Vertices Only) входные объекты с вершинами, не попадающими в область данных поверхности, будут пропущены и не войдут в выходные данные. Вырезайте объекты до запуска функции Интерполировать форму (Interpolate Shape), чтобы объекты были на поверхности полностью.
Синтаксис
Параметр | Объяснение | Тип данных |
in_surface |
Набор данных LAS, растровая, TIN-поверхность или поверхность типа Terrain, которая будет использована для интерполяции z-значений. | LAS Dataset Layer, Raster Layer; Terrain Layer; TIN Layer |
in_feature_class |
Входной класс объектов. | Feature Layer |
out_feature_class |
Выходной класс объектов. | Feature Class |
sample_distance (дополнительно) |
Интервал, по которому будут интерполированы Z-значения. По умолчанию, это размер ячейки растра либо естественное сгущение TIN. | Double |
z_factor (дополнительно) |
Коэффициент, на который будут умножаться значения высоты. Обычно он используется для преобразования линейных единиц измерения Z, соответствующих линейным единицам измерения XY. Значение по умолчанию равно 1, при нем значения высоты не изменяются. | Double |
method (дополнительно) |
Метод интерполяции, используемый для определения значений высоты для выходных объектов. Доступные опции зависят от используемого типа поверхности. BILINEAR (билинейная интерполяция) – доступна для поверхности растра, в которой запрашиваемая точка получает высоту из значений, полученных от четырех ближайших ячеек. Наборы данных TIN и Terrain предоставляют следующие опции:
| String |
vertices_only (дополнительно) |
Определяет, будет ли интерполяция выполняться по вершинам входного объекта (с игнорированием опции расстояния разбиения).
| Boolean |
pyramid_level_resolution (дополнительно) |
z-допуск или разрешение размера окна для уровня пирамидных слоев Terrain, которое будет использоваться этим инструментом. Значением по умолчанию является 0, полное разрешение. | Double |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.InterpolateShape_3d("my_tin", "roads.shp", "roads_interp.shp")
В следующем примере показано использование этого инструмента в автономном скрипте Python:
'''*********************************************************************
Name: InterpolateShape Example
Description: This script demonstrates how to use InterpolateShape
on all 2D features in a target workspace.
*********************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
# Set local variables
inWorkspace = arcpy.GetParameterAsText(0)
surface = arcpy.GetParameterAsText(1)
try:
arcpy.CheckOutExtension("3D")
# Set default workspace
env.workspace = inWorkspace
# Create list of feature classes in target workspace
fcList = arcpy.ListFeatureClasses()
if fcList:
for fc in fcList:
desc = arcpy.Describe(fc)
# Find 2D features
if not desc.hasZ:
# Set Local Variables
outFC = "{0}_3D.shp".format(desc.basename)
method = "BILINEAR"
# Execute InterpolateShape
arcpy.ddd.InterpolateShape(surface, fc, outFC,
10, 1, method, True)
else:
print "{0} is not a 2D feature.".format(fc)
else:
print "No feature classes were found in {0}.".format(env.workspace)
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)