Сводка
Вычисляет число геометрических пересечений между 3D линией и объектами-мультипатчами, а также обеспечивает точки пересечения и делит в таких точках 3D линии.
Иллюстрация
Использование
Число пересечений будет возвращено в окне сообщений, и его можно в дальнейшем использовать как предварительное условие в модели или в скрипте.
Инструмент определяет точки пересечения в евклидовом 3D-пространстве. Двухмерные линейные объекты не поддерживаются этим инструментом, однако двухмерные линейные объекты со значениями высоты, хранящимися в атрибутивном поле, могут быть преобразованы в 3D инструментом Объекты в 3D по атрибуту.
Также возможен результат в виде точек, представляющих собой пересечения между входной линией и объектами-мультипатчами, кроме того, эти точки будут иметь следующие атрибуты:
- LINE_OID– OBJECTID исходной линии, вдоль которой найдено пересечение.
- MPATCH_OID– OBJECTID объекта-мультипатча, который пересек линию в данном месте.
- DIST_3D– 3D расстояние вдоль исходной линии, на которой найдено пересечение.
Также возможен результат в виде линий, полученных путем разделения входного линейного объекта в точках пересечения, эти линии будут иметь следующие атрибуты:
- LINE_OID– OBJECTID исходной линии, из которой была получена новая линия.
- FROM_MP_ID– OBJECTID объекта-мультипатча, пересекающего данную линию в ее начале. Значение -1 означает, что начало линии не является точкой пересечения.
- TO_MP_ID– OBJECTID объекта-мультипатча, пересекающего данную линию в ее конце. Значение -1 означает, что начало линии не является точкой пересечения.
Примечание:
Если линия не пересекается с мультипатчем, то она копируется прямо в выходные данные, а ее поля FROM_MP_ID и TO_MP_ID принимают значение -1.
- DIST_3D– 3D расстояние вдоль исходной линии, на котором найдено пересечение и которое представляет начало этой новой линии.
- LENGTH_3D– 3D длина этой новой линии. Сумма длин всех линий, полученных из исходной линии, будет равна 3D-длине исходной линии.
Полученные в результате объекты (если они есть) могут ссылаться на атрибутивные значения исходной линии посредством установки параметра Соединяемые атрибуты в выходном классе линейных объектов.
Синтаксис
arcpy.3d.Intersect3DLineWithMultiPatch(in_line_features, in_multipatch_features, {join_attributes}, {out_point_feature_class}, {out_line_feature_class})
Parameter | Объяснение | Тип данных |
in_line_features | Линейные объекты, пересекаемые объектами-мультипатчами. | Feature Layer |
in_multipatch_features | Объекты-мультипатчи, с которыми будут пересекаться линии. | Feature Layer |
join_attributes (Дополнительный) | Атрибуты входных линейных объектов, которые будут сохранены с дополнительными (необязательными) выходными объектами.
| String |
out_point_feature_class (Дополнительный) | Дополнительно в результате будут отображены точки пересечения между трехмерной линией и мультипатчем. | Feature Class |
out_line_feature_class (Дополнительный) | Дополнительные линейные объекты, которые делят входные линии в каждой из точек, где они пересекаются с объектом-мультипатчем. | Feature Class |
Производные выходные данные
Name | Объяснение | Тип данных |
out_intersection_count | Количество пересечений. | Long |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
arcpy.env.workspace = 'C:/data'
arcpy.Intersect3DLineWithMultiPatch_3d('inLine.shp', 'inMultipatch.shp',
'IDS_ONLY', 'outPts.shp', 'outLine.shp')
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Intersect3DLineWithMultiPatch Example
Description: This script demonstrates how to
use the Intersect3DLine tool.
****************************************************************************'''
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = 'C:/data'
# Set Local Variables
inLineFC = 'sample.gdb/lines_3d'
inMP = 'sample.gdb/test_MP'
# Ensure a unique name is produced for output files
outPoint = arcpy.CreateUniqueName('OutPt_3DIntersect', 'sample.gdb')
outLine = arcpy.CreateUniqueName('OutLine_3DIntersect', 'sample.gdb')
# Execute Intersect 3D Line with Multipatch
arcpy.Intersect3DLineWithMultiPatch_3d(inLineFC, inMP, 'IDS_ONLY',
outPoint, outLine)
Environments
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst