Интерполировать полигон в мультипатч (Interpolate Polygon To Multipatch) (3D Analyst)
Резюме
Создает поверхностно-зависимые объекты мультипатч на основе класса полигональных объектов с помощью растровой поверхности, поверхности Terrain или TIN.
Каждый полигональный объект имеет границу, обозначенную на поверхности. Высоты получаются с помощью линейной интерполяции за счет выборки по каждой входной вершине, а также в местах, где линия границы пересекает ребра и узлы треугольников поверхности. Такое естественное уплотнение данных позволяет точно отобразить линейную поверхность, используя минимальное количество выборок. Затем извлекаются все узлы, попадающие в пределы полигонов. Узлы заново триангулируются в новой TIN, хранящейся в оперативной памяти, а граница 3D полигона используется как вырезающий полигон. Затем треугольники этой новой TIN извлекаются в виде серии полос, которые используются для построения объектов мультипатч.
Использование
Получившийся мультипатч в своей геометрии будет содержать 3D представление поверхности. Вычисления площади на плоскости и площади поверхности включаются в выходные данные вместе с другими атрибутами из входного полигона.
-
Рассмотрите возможность конвертации полигонов в объекты мультипатч, если вы испытываете трудности с трехмерным отображением полигонов, драпированных на поверхности.
-
Значение Максимальный размер полосы (Maximum Triangle Strip Size) должно быть равно или больше 3. Этот параметр задает максимальное количество вершин, которое может находиться в любой полосе, использующейся для построения объектов мультипатч. В ArcGIS нет определенного предела для размера или предпочтительного значения, но у некоторых 3D графических карт они могут быть, так как полосы треугольников напрямую загружаются в программный интерфейс API 3D для отображения. Рекомендуется использовать значения от 128 до 2048.
Синтаксис
Параметр | Объяснение | Тип данных |
in_surface |
Входная поверхность TIN или набора данных Terrain. | Terrain Layer; TIN Layer |
in_feature_class |
Входной класс полигональных объектов. | Feature Layer |
out_feature_class |
Выходной класс пространственных объектов мультипатч. | Feature Class |
max_strip_size (дополнительно) |
Управляет максимальным количеством точек, использующихся для создания отдельных полос. Обратите внимание, что каждый объект-мультипатч обычно состоит из нескольких полос. Значение по умолчанию равно 1024. | Long |
z_factor (дополнительно) |
Коэффициент, на который будут умножаться значения высоты. Обычно он используется для преобразования линейных единиц измерения Z, соответствующих линейным единицам измерения XY. Значение по умолчанию равно 1, при нем значения высоты не изменяются. | Double |
area_field (дополнительно) |
Имя выходного поля, содержащего площадь на плоскости, или 2D площадь, полученных объектов-мультипатч. | String |
surface_area_field (дополнительно) |
Имя выходного поля, содержащего трехмерную площадь полученных объектов-мультипатч. Эта площадь учитывает волнистость поверхности и всегда больше, чем площадь на плоскости, если только сама поверхность не является плоской, в этом случае площади равны. | String |
pyramid_level_resolution (дополнительно) |
z-допуск или разрешение размера окна для уровня пирамидных слоев Terrain, которое будет использоваться этим инструментом. Значением по умолчанию является 0, полное разрешение. | Double |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.InterpolatePolyToPatch_3d("sample.gdb/featuredataset/terrain", "polygon.shp", "out_multipatch.shp", 1024, 1, "Area", "SArea", 5)
В следующем примере показано использование этого инструмента в автономном скрипте Python:
'''****************************************************************************
Name: InterpolatePolyToPatch Example
Description: This script demonstrates how to use the
InterpolatePolyToPatch tool.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
# Set Local Variables
inTerrain = "sample.gdb/featuredataset/terrain"
inPoly = "polygon.shp"
outMP = arcpy.CreateUniqueName("out_multipatch.shp")
#Execute InterpolatePolyToPatch
arcpy.InterpolatePolyToPatch_3d(inTerrain, inPoly, outMP, 1024, 1, "Area", "SArea", 5)