Сводка
Вычисляет пересечение и наложение сегментов линий в 3D пространстве.
Использование
Инструмент работает на попарной основе. Если пересекается более двух линий, то число выходных точек будет математической комбинацией пересекающихся линий. Например, три пересекающиеся линии создадут три выходные точки, одна для пересечения первой и второй линий, вторая для пересечения первой и третьей линий и третья для пересечения второй и третьей линий. Аналогично, если пересекаются четыре линии, то будет создано шесть выходных точек - по одной для пересечений первой и второй, первой и третьей, первой и четвертой, второй и третьей, второй и четвертой, третьей и четвертой линий.
У входных объектов должен быть пространственный индекс. Используйте инструмент Добавить пространственный индекс, чтобы его построить (особенно это касается шейп-файлов) или перестроить уже существующий, чтобы он был абсолютно точен.
Если на вход подаются 2D линии, то предполагается, что высота всех вершин равна нулю.
Если пересекаются две линии с разными значениями z, поскольку разрешен вертикальный допуск для поиска пересечений, то выходная точка будет использовать большую из двух высот. Аналогично, если пересекаются два линейных сегмента с разными значениями z, то выходной линейный объект будет основан на сегментах с большим значением z.
Некоторые выходные линии могут состоять из нескольких частей, если входные линии представляют собой несколько прерывистых перекрывающихся участков или линии, которые становятся все ближе и дальше друг от друга в направлении z.
При переносе атрибутов в выходные данные значения, которые помещаются в первый набор полей, поступают из первой линий, а во второй набор полей - из второй линии. Если указаны два входных векторных слоя, то первые и вторые входные линии поступают из первого и второго входного векторных слоев соответственно. Если на вход указан только один линейный векторный слой, то правило будет тем же, за исключением того, что будет казаться, что столбцы повторяются.
Выходные точечные объекты будут включать следующие поля атрибутов:
- I3L_TYPE—значение 0 говорит о точке, которая является конечной точкой перекрывающегося линейного сегмента, а значение 1 - пересечение двух линий.
- I3L_GROUP—уникальное значение, которое идентифицирует все точки, у которых одно и то же местоположение в горизонтальном пространстве.
- I3L_OID1—ID первого пересекающегося линейного объекта.
- I3L_OID2—ID второго пересекающегося линейного объекта.
- I3L_LINE1Z—значение Z точки пересечения на первой линии.
- I3L_LINE2Z—значение Z точки пересечения второй линии.
- I3L_Z_DIFF—разница в значениях Z между двумя входными линиями в точке пересечения XY.
Синтаксис
arcpy.3d.Intersect3DLines(in_lines, {max_z_diff}, {join_attributes}, {out_point_fc}, {out_line_fc})
Parameter | Объяснение | Тип данных |
in_lines [in_lines,...] | Линейные объекты, которые будут рассматриваться на предмет пересечения. Входными данными могут быть один или два линейных векторных слоя или класса объектов. Если задан только один входной набор данных, то каждый из его объектов будет сравниваться со всеми остальными объектами. Сами с собой объекты сравниваться не будут. | Feature Layer |
max_z_diff (Дополнительный) | Максимальное расстояние по вертикали между пересекающимися сегментами. | Linear Unit |
join_attributes (Дополнительный) | Определяет, какие атрибуты входных объектов будут перенесены в выходной класс объектов.
| String |
out_point_fc (Дополнительный) | Выходные точки, представляющие собой местоположения, где пересекаются входные линии, в том числе локации, где начинаются и заканчиваются перекрывающиеся линейные сегменты. | Feature Class |
out_line_fc (Дополнительный) | Выходные линии, которые представляют собой перекрывающиеся сегменты, найденные между входными линиями. | Feature Class |
Производные выходные данные
Name | Объяснение | Тип данных |
out_intersection_count | Количество найденных местоположений пересечений во входных линиях. | Long |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.ddd.Intersect3DLines(['floor_centerlines.shp', 'stairs.shp'], '2 Meters',
'ONLY_FID', 'intersection_pts.shp')
Environments
Информация о лицензиях
- Basic: Требуется 3D Analyst или ArcGIS Location Referencing
- Standard: Требуется 3D Analyst или ArcGIS Location Referencing
- Advanced: Требуется 3D Analyst или ArcGIS Location Referencing