Краткая информация
Вычисляет число геометрических пересечений между 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 означает, что начало линии не является точкой пересечения.
- DIST_3D – 3D-расстояние вдоль исходной линии, на котором найдено пересечение. Оно также обозначает точку начала данной производной линии.
- LENGTH_3D – 3D-длина данной производной линии. Сумма длин всех линий, полученных из исходной линии, будет равна 3D-длине исходной линии.
Полученные в результате объекты (если они есть) могут ссылаться на атрибутивные значения исходной линии посредством установки параметра Соединяемые атрибуты в выходном классе линейных объектов.
Синтаксис
Intersect3DLineWithMultiPatch_3d (in_line_features, in_multipatch_features, {join_attributes}, {out_point_feature_class}, {out_line_feature_class})
Параметр | Объяснение | Тип данных |
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 |
Пример кода
Intersect3DLineWithMultipatch – пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Intersect3DLineWithMultiPatch_3d('inLine.shp', 'inMultipatch.shp',
'IDS_ONLY', 'outPts.shp', 'outLine.shp')
Intersect3DLineWithMultipatch — пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Intersect3DLineWithMultiPatch Example
Description: This script demonstrates how to
use the Intersect3DLine tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
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)
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 Desktop Basic: Требует 3D Analyst
- ArcGIS Desktop Standard: Требует 3D Analyst
- ArcGIS Desktop Advanced: Требует 3D Analyst