Инструмент Попарное пересечение вычисляет пересечение между объектами в двух векторных слоях или в классах пространственных объектов, используя метод попарного сравнения. Инструмент выводит объекты или части объектов, которые являются общими для обоих входных.
Сравнение инструментов Пересечение и Попарное пересечение
С помощью инструмента Попарное пересечение один объект из первых входных данных пересекается с каждым отдельным объектом из вторых входных данных. Это принципиально отличается от того, как работает инструмент Пересечение. С помощью инструмента Пересечение все объекты пересекаются независимо от того, к каким входным данным относится объект.
Инструмент Пересечение выполняет следующие действия:
- Выполняет пересечение нескольких векторных слоев или классов пространственных объектов
- Находит пересечение всех входных объектов, независимо от того, к каким входным объектам они принадлежат, создавая топологическую структуру, представляющую геометрическое пересечение всех объектов
Инструмент Попарное пересечение выполняет следующие действия:
- В качестве входных данных принимаются только два векторных слоя или класса пространственных объектов
- Берет объекты из первых входных данных и пересекает их с каждым объектом из вторых входных данных, по одному за раз, создавая новые объекты, представляющие их пересечение
Инструмент Пересечение
Вычисляются все пересечения между всеми объектами, независимо от того, к каким входным данным они относятся. Поскольку вычисляются все пересечения, выходные данные могут содержать намного больше объектов, чем количество всех входных объектов вместе взятых. Например, два набора входных данных, объединяющие десятки тысяч объектов, могут привести к получению выходных данных, содержащих сотни миллионов объектов, из-за сложного пересечения, существующего между всеми объектами.
Например, ниже показаны два векторных слоя; первый содержит 10 объектов, а второй - один объект.


На рисунке ниже показан результат работы инструмента Пересечение с двумя входными данными. Вычисляется пересечение между всеми объектами, независимо от того, к каким входным данным они относятся. Это может привести к появлению гораздо большего числа объектов, чем имеется во входных данных. В этом случае на выходе (167) содержится больше объектов, чем в обоих наборах входных данных (11).

Инструмент Попарное пересечение
Инструмент Попарное пересечение создает более простые выходные данные. Инструмент не вычисляет пересечения объектов в пределах одних и тех же входных данных; пересечения вычисляются только между объектами в разных входных данных.
На рисунке ниже показан результат работы инструмента Попарное пересечение с двумя входными данными. Выходные данные содержат только 10 объектов.

Входные полигоны и выходные точки
На изображениях ниже показан результат обработки двух входных полигональных векторных слоев, когда для параметра Выходной тип задано Точка.
Инструмент Пересечение создает точечные объекты, в которых полигон из любых входных данных имеет вершину, пересекающую границу полигона из других входных данных в том месте, где они соприкасаются в точке или где их границы пересекаются.

Инструмент Попарное пересечение создает точечные объекты, в которых полигон из одних входных данных имеет вершину, касающуюся границы полигона из других входных данных.

Полигональные входные данные полностью перекрываются, выходные данные линейные и точечные
Инструменты Пересечение и Попарное пересечение возвращают разные результаты с входными полигональными объектами, которые полностью перекрываются, если для параметра Выходной тип задано значение Точка или Линия.
На рисунке ниже показан результат пересечения двух полигональных векторных слоев с помощью инструмента Пересечение с параметром Выходной тип, для которого сначала задан параметр Точка (фиолетовый выходной точечный объект), а затем параметр Линия (красный выходной линейный объект). Полигоны из двух входных данных полностью перекрывают друг друга, причем один набор полигонов также пересекается на границе, а другой - в одной точке.

Используя в параметре Выходной тип значение Точка, инструмент Пересечение выведет точечный объект фиолетового цвета, поскольку желтый полигональный объект касается границы синего полигона. Это отношение касания приводит к получению выходной точки независимо от того, будут ли полигоны полностью перекрываться.
Используя в параметре Выходной тип значение Линия, инструмент Пересечение выведет линейный объект красного цвета, поскольку желтый полигональный объект имеет общую границу с синим полигоном. Это отношение общей границы приводит к получению выходной линии независимо от того, будут ли полигоны полностью перекрываться.
В обоих этих случаях инструмент Попарное пересечение вернет пустой результат. Полигоны, которые полностью перекрываются, приведут к тому, что допустимым будет только отношение перекрытия областей, и никакие отношения пересечения более низкого порядка не будут считаться допустимыми.
Различия во время обработки
Инструменты Попарное пересечение и Пересечение при обработке имеют следующие отличия.
Производительность
Инструмент Попарное пересечение может обеспечить существенный выигрыш в производительности по сравнению с инструментом Пересечение при пересечении сильно перекрывающихся объектов. Если степень перекрытия незначительна, прирост производительности может отсутствовать.
Примечание:
Выходные данные этих двух инструментов могут сильно отличаться друг от друга. Поэкспериментируйте с небольшими наборами данных, чтобы проанализировать результаты и определить, какой инструмент является наиболее подходящим.
Инструмент Пересечение выявляет уникальные случаи совпадения всех объектов из входных данных. Учитывая сложность такого рода операций, инструмент Пересечение эффективен и хорошо масштабируется. Если вам нужно найти уникальные случаи совпадения всех объектов в ваших исходных данных, воспользуйтесь инструментом Пересечение.
X,y-разрешение
X,y разрешение – это числовая точность, используемая для хранения значений координат x,y. Все вычисления в инструментах попарного сравнения выполняются с использованием плавающей запятой. Координаты сохраняются в формате с плавающей запятой с двойной точностью (также известном как doubles). Это отличается от таких инструментов, как Пересечение (и большинства инструментов непарного сравнения), которые внутренне используют целые числа для координат, сохраняя значения в целочисленном гриде.
Разница в применении допуска по x,y
Допуск по x,y определяют минимальное расстояние между координатами при обработке геометрии в таких операциях, как упрощение и топологические операции. Термин разбивка и кластеризация используется для описания процесса разделения пересекающихся сегментов и привязки точек. Процесс разбивки заключается в разделении сегментов в точках пересечения с другими сегментами или точками. Процесс кластеризации заключается в объединении близкорасположенных вершин, поскольку они считаются одинаковыми. Дополнительные сведения см. в разделе Понятие геометрической обработки.
Обратите внимание, что точка означает либо отдельную точку, например, в мультиточках, либо вершину сегмента.
Разбивка и кластеризация с использованием инструментов непарной обработки
В процессе разбиения инструментом Пересечение предполагается, что точка находится на сегменте, если ближайшее расстояние от точки до внутренней части сегмента меньше или равно допуску sqrt(2) *. В этом случае сегмент будет разбит и новые конечные точки замкнутся на эту точку.
При выполнении процесса кластеризации с помощью инструмента Пересечение две точки будут замкнуты, когда расстояние между ними будет меньше или равно допуску 2 * sqrt(2) *. Алгоритм кластеризации является итеративным, поэтому в некоторых случаях координаты могут сдвигаться больше, чем на это расстояние.
Когда две точки замыкаются или когда точка замыкается на сегмент, сегменты немного перемещаются. Могут возникнуть новые события пересечения, поскольку сегмент, который переместился, может оказаться ближе, чем допустимое отклонение sqrt(2) * от другой вершины.
Координаты замкнутых вершин или точек пересечения сегментов будут сохранены в целочисленном гриде. Поэтому они вычисляются с точностью до параметров разрешения, а округление до целочисленного грида приводит к небольшому перемещению новых вершин. Из-за этого процесс разбиения и кластеризации повторяется до тех пор, пока не прекратятся новые события разбиения и кластеризации.
Разбивка и кластеризация с использованием инструментов попарной обработки
Инструменты попарной обработки используют значения с плавающей запятой для всех вычислений. Результат обработки непарными инструментами должен считаться чистым (не требующим исправления). То есть, когда набор геометрий обрабатывается непарным инструментом, результат будет таким, что все непарные инструменты не найдут никаких новых пересечений сегментов или точек, которые должны были быть разделены или кластеризованы, но не были.
Упрощение и топологические операторы
В процессе разбиения инструментом попарной обработки предполагается, что точка находится на сегменте, если ближайшее расстояние от точки до внутренней части сегмента меньше или равно 1.01 * sqrt(2) * (допуск + 2 * разрешение).
Когда инструменты попарной обработки выполняют кластеризацию, две точки замыкаются, когда расстояние между ними меньше или равно 1,01 * sqrt(2) * (2 * допуск + 2 * разрешение). Алгоритм кластеризации является итеративным, поэтому в некоторых случаях координаты могут сдвигаться больше, чем на это расстояние.
Значение 1.01 используется для повышения исходного значения на 1 процент для устойчивости.
Какой из инструментов использовать
Выберите инструмент, исходя из требований к производительности и типа выходных данных, необходимых для вашего анализа. Если инструмент Пересечение завершит работу за разумный промежуток времени и создаст выходные данные, подходящие для вашего анализа, продолжайте его использовать.
Однако, если инструмент Пересечение выполняет любое из следующих действий, рассмотрите возможность использования инструмента Попарное пересечение, если выходные данные, которые он создает, подходят для вашего анализа.
- Работа инструмента занимает много времени.
- В инструменте происходит сбой из-за нехватки ресурсов.
- Инструмент создает слишком много выходных объектов по сравнению с количеством входных объектов.