Сводка
Определяет, какой из объектов-кандидатов имеет наибольшее сходство или наибольшее различие с одним или несколькими входными объектами на основе их атрибутов.
Более подробно о том, как работает инструмент Поиск сходства
Иллюстрация
Использование
Вам следует указать слой, содержащий значения Входных объектов для сопоставления и второй слой, который содержит значения Объектов кандидатов, из которого сопоставления будут получены. Часто эти значения находятся в том же векторном слое. Один из вариантов подразумевает создание двух отдельных наборов данных. Другой вариант - создать слои с двумя разными определяющими запросами, иногда это проще. Например, если у вас есть файл со сведениями о преступлениях, которые были совершены в прошлом месяце, и вы хотите найти все преступления, которые больше всего похожи на последние угоны автомобилей, вы можете сделать следующее:
- Скопируйте слой, отображающий все преступления, на панель Содержание, чтобы сделать дубликат слоя. Затем измените имя слоя.
- На переименованном слое создайте выборку или задайте определяющий запрос, чтобы найти последний случай угона автомобиля. Используйте этот слой для параметра Входные объекты для сопоставления.
- Примените выборку или задайте определяющий запрос для исходного слоя, чтобы исключить из него последние автоугоны. Используйте этот слой для параметра Объекты-кандидаты.
Если есть несколько значений Входных объектов для сопоставления, то сопоставление будет основано на средних значениях Атрибутов интереса. Поэтому, например, если у вас есть два значения Входных объектов для сопоставления и одно из значений Атрибутов интереса является численностью населения, инструмент будет искать значения Объектов-кандидатов с населением, наиболее соответствующим среднему значению. Если значения населения равны 100 и 102, например, инструмент ищет кандидаты со значением около 101.
Примечание:
Если есть несколько значений Входных объектов для сопоставления, выберите аналогичные значения в параметре Атрибуты интереса. Если, например, первый объект имеет значение населения 100, а другой – 100 000 жителей, инструмент возьмет среднее от этих значений и будет искать кандидатов с населением около 50050. Это среднее значение не похоже ни на одно из значений Входных объектов для сопоставления.
Значения Выходных объектов всегда содержат точки, если только значения Входных объектов для сопоставления и Объектов-кандидатов оба не являются полигонами или линиями. Создание полигональных или линейных значений Выходных объектов может замедлить производительность для больших наборов данных. Отметьте параметр Сжать выходные данные в точки, чтобы использовать точечную геометрию для улучшения производительности.
С помощью параметра Наиболее или наименее схожие вы можете найти результаты, используя опции Наиболее схожие или Наименее схожие, чтобы сопоставить значения Входных объектов для сопоставления. Иногда полезно увидеть оба варианта. Если значение параметра Число результатов равно 3 и значение параметра Наибольшее или наименьшее сходство установлено Оба, например, инструмент вернет три наиболее сходных и три наименее сходных объекта-кандидата.
Любое данное решение соответствия в параметре Выходные объекты будет либо решением наибольшего сходства, либо, по крайней мере, похожим на целевой параметр Входные объекты для сопоставления; одно решение не может быть тем и другим (и результаты решения не будут дублироваться в параметре Выходные объекты). Соответственно, когда вы выбираете Оба для параметра Наибольшее или наименьшее сходство, максимально возможное число сопоставленных результатов (Число результатов) будет равно половине Объекты кандидаты. Если введенное значение для Числа результатов будет слишком большим, инструмент постарается сделать его максимально возможным.
Чтобы изучить пространственную закономерность или сходство, вы можете ранжировать сходство для всех значений Объектов кандидатов. Для этого укажите 0 для параметра Число результатов. Инструмент определит количество корректных объектов в наборе данных кандидатов и запишет их все в параметр Выходные объекты в порядке от наиболее до наименее похожего.
Опции параметра Метод сопоставления - это Значения атрибута, Ранжированные значения атрибутов и Профили атрибутов.
- Значения атрибутов – у наиболее похожих кандидатов будут наименьшие суммы среднеквадратических отклонений для всех значений Атрибутов интереса; перед вычислением разностей все значения будут стандартизированы.
- Ранжированные значения атрибутов – наиболее похожие кандидаты будут иметь наименьшую сумму квадратов различий для всех значений Атрибутов интереса. Параметр Выходные объекты включает эти суммы в поле SIMINDEX (Sum of Squared Rank Differences).
- Профили атрибутов - вычисляется косинусный коэффициент подобия. Косинусный коэффициент подобия определяет те же связи среди стандартизованных значений атрибутов, а не пытается сопоставить значения. Например, есть четыре значения Атрибутов интереса с именами A1, A2, A3 и A4. A2 в два раза больше A1, A3 примерно равно A2, а A4 в три раза больше A3. Для Профилей атрибутов инструмент проверит кандидатов с похожими отношениями атрибутов: в два раза больше, примерно равно, а затем в три раза больше. Поскольку этот метод проверяет отношения атрибутов, вам нужно указать как минимум два значения Атрибутов интереса. Вы можете использовать метод косинусного подобия (Профили атрибутов) для поиска мест, похожих на Лос-Анджелес, но меньшего масштаба. Косинусный коэффициент подобия может иметь значения от 1.0 (полное сходство) до -1.0 (полное различие). Значение косинусного коэффициента подобия записывается в параметр Выходные объекты в поле SIMINDEX.
Значения Атрибутов интереса должны быть числовыми и должны существовать (то же имя и тот же тип поля) в обоих наборах данных: Входные объекты для сопоставления и Объекты-кандидаты. При выборе параметра Атрибуты интереса инструмент перечислит все числовые поля, найденные в наборе данных Входные объекты для сопоставления. Если инструмент не находит соответствующие поля для Объектов-кандидатов, то появится предупреждение о том, что утраченные атрибуты будут исключены из анализа. Если исключены все значения Атрибутов интереса, то сопоставление не может быть выполнено, появится ошибка, говорящая о том, что инструмент не может выполнить требуемый анализ.
Все атрибуты, использованные для сопоставления, записываются в Выходные объекты. Параметр Поля, которые нужно присоединить к выходным данным позволяет включить в выходную таблицу дополнительные поля. Поскольку числовые поля Атрибутов интереса не являются подходящими идентификаторами, вы можете присоединить поле имени или другого идентификатора для каждого сопоставления решения. Если вам нужно выбрать одно из нескольких найденных совпадений, вы также можете присоединить другие нечисловые атрибуты. Если искомое решение должно быть одним из нескольких типов землепользования, например, присоединение категорийного атрибута землепользования поможет вам найти решения, соответствующие запросу. Вы также можете включить дополнительные числовые атрибуты в выходную таблицу только в качестве справочника. Например, вы ищете подходящее место обитания для конкретного вида животного. Вы можете использовать известные местоположения, где эти виды успешно обитают, для параметра Входные объекты для сопоставления. Вы можете выбрать значения Атрибутов интереса, которые связаны с успешным обитанием видов. И дополнительно вы можете присоединить числовой атрибут площади к значениям Выходных объектов, но не потому, что вы хотите точно найти такое же значение площади для целевого объекта, а потому что вы ищите решения с возможно большей площадью.
Все значения Входных объектов для сопоставления и найденные решения будут записаны в параметр Выходные объекты наряду с параметрами Атрибуты интереса и Поля, которые будут добавлены к результату. Кроме того, в Выходные объекты будут добавлены следующие поля:
Имя поля Псевдоним поля Описание Примечания MATCH_ID
MATCH_ID
Все целевые объекты в слое Входные объекты для сопоставления будут перечислены первыми со своими идентификаторами OID или FID, которые записаны в поле MATCH_ID. Для найденных сопоставлений в этом поле указывается значение NULL.
Если значение Выходных объектов представление собой шейп-файл, то значения NULL будут представлены очеь большими отрицательными числами (типа -21474836).
CAND_ID
CAND_ID
Все решения для сопоставления записываются рядом, а это значение становится их OID или FID идентификатором. Целевой объект в слое Входные объекты для сопоставления в этом поле имеет значение NULL.
Если значение Выходных объектов представление собой шейп-файл, то значения NULL будут представлены очеь большими отрицательными числами (типа -21474836).
SIMRANK
Ранг сходства
Когда вы выбираете значение Наиболее схожие или Оба для параметра Метод сопоставления, все найденные решения получают ранг от наиболее до наименее сходных. Наиболее сходное решение получает значение ранга 1.
Это поле включается в Выходные объекты, когда вы выбираете Наиболее схожие или Оба для параметра Метод сопоставления.
DSIMRANK
Ранг различия
Когда вы выбираете значение Наименьшее сходство или Оба для параметра Метод сопоставления, все найденные решения получают ранг от наименее сходных до наиболее сходных. Наименее сходное решение получает значение ранга 1.
Это поле включается в Выходные объекты, когда вы выбираете Наименее схожие или Оба для параметра Метод сопоставления.
SIMINDEX
Сумма квадратов значений различия, Сумма квадратов различий ранга или Сходство по косинусу
В этом поле определяется количественное значение сходства с целевым объектом.
- Когда вы задаете Атрибутивные значения для параметра Метод сопоставление, то у поля будет псевдонимSum of Squared Value Differences.
- Когда вы задаете Ранжированные атрибутивные значения для параметра Метод сопоставления, то у поля будет псевдоним Sum of Squared Rank Differences.
- Когда вы задаете Профили атрибутов для параметра Метод сопоставления, то у поля будет псевдоним Cosine Similarity.
Если есть только одно значение Входных объектов для сопоставления, то целевым объектом будет этот самый объект. Если указано более одного Входного объекта для сопоставления, то целевой объект будет временным объектом, созданным на основе средних значений для всех значений Атрибутов интереса.
LABELRANK
Ранг отображения
Это поле используется только для целей отображения. Инструмент использует это поле для задания метода отображения результатов анализа по умолчанию.
Слой Выходные объекты будет автоматически добавлен в таблицу содержания с механизмом отрисовки по умолчанию, который применен к полю LABELRANK. Применяемое отображение определяется файлом слоя в <ArcGIS Pro>\Resources\ArcToolBox\Templates\Layers. Вы можете заново применить механизм отрисовки по умолчанию, если необходимо, с помощью инструмента Применить символы из слоя.
Примечание:
По умолчанию размер выборки равен 10 000 записям. Если значение Число результатов больше значения по умолчанию, вам нужно увеличить размер выборки, чтобы отрисовать все результаты. Чтобы увеличить размер выборки, откройте панель Символы и щелкните вкладку Дополнительные опции символов . Разверните Размер выборки и измените значение параметра Максимальный размер выборки.
Синтаксис
arcpy.stats.SimilaritySearch(Input_Features_To_Match, Candidate_Features, Output_Features, Collapse_Output_To_Points, Most_Or_Least_Similar, Match_Method, Number_Of_Results, Attributes_Of_Interest, {Fields_To_Append_To_Output})
Parameter | Объяснение | Тип данных |
Input_Features_To_Match | Слой или выборка из слоя, который содержит объекты для сопоставления; вы ищите другие объекты, которые похожи на них. Если указано более одного объекта, сопоставление основывается на средних значениях атрибутов. Подсказка:Когда значения Входных объектов для сопоставления и Объектов кандидатов поступают из одного слоя набора данных, вы можете сделать следующее:
| Feature Layer |
Candidate_Features | Слой или выборка в слое, которая содержит объекты-кандидаты для сопоставления. Инструмент ищет среди этих кандидатов объекты с наибольшим сходством (или наибольшим различием) с Input_Features_To_Match. | Feature Layer |
Output_Features | Выходной класс объектов, содержащий записи для каждого из значений Input_Features_To_Match и для всех найденных сопоставленных объектов. | Feature Class |
Collapse_Output_To_Points | Определяет, будет ли геометрия параметра Output_Features сжата до точек, либо будет совпадать с исходной геометрией (линии или полигоны) входных объектов, если значения параметров Input_Features_To_Match и Candidate_Features оба являются линиями или полигонами. Этот параметр доступен только с лицензией уровня Desktop Advanced. При выборе COLLAPSE повысится производительность работы инструмента для больших линейных и полигональных наборов данных.
| Boolean |
Most_Or_Least_Similar | Определяет, будут ли идентифицированы объекты, которые наиболее или наименее сходны со значениями Input_Features_To_Match.
| String |
Match_Method | Будет ли сопоставление основываться на значениях, степенях или на отношениях между косинусами.
| String |
Number_Of_Results | Число сопоставлений для поиска. Ввод нулевого значения, либо числа большего, чем общее количество значений Candidate_Features, приведет к ранжированию всех объектов-кандидатов. Значение по умолчанию равно 10. | Long |
Attributes_Of_Interest [Attributes_Of_Interest,...] | Числовые атрибуты, представляющие критерий сопоставления. | Field |
Fields_To_Append_To_Output [Fields_To_Append_To_Output,...] (Дополнительный) | Поля, которые будут включены в параметр Output_Features. Эти поля не используются для определениях сходства, они просто будут включены в параметр Output_Features как справочная информация. | Field |
Пример кода
Скрипт окна Python, демонстрирующий использование инструмента SimilaritySearch.
import arcpy
import arcpy.stats as SS
arcpy.env.workspace = r"C:\Analysis"
SS.SimilaritySearch("Crime_selection", "AllCrime", "c:\\Analysis\\CrimeMatches",
"NO_COLLAPSE", "MOST_SIMILAR", "ATTRIBUTE_VALUES", 4,
"HEIGHT;WEIGHT;SEVERITY;DST2CHPSHP", "Name;WEAPON")
Следующий автономный Python скрипт демонстрирует, как использовать инструмент SimilaritySearch.
# Similarity Search of crime data in a metropolitan area
# Import system modules
import arcpy
import os
import arcpy.stats as SS
# Set property to overwrite existing output
arcpy.env.overwriteOutput = True
try:
# Set the current workspace (to avoid having to specify the full path to
# the feature classes each time)
arcpy.env.workspace = r"C:\Analysis"
# Make a layer from the crime feature class
arcpy.MakeFeatureLayer_management("AllCrime", "Crime_selection")
# Select the target crime to match
# Process: Select By Attribute
arcpy.SelectLayerByAttribute_management("Crime_selection", "NEW_SELECTION",
'"OBJECTID" = 1230043')
# Use Similarity Search to find to create groups based on different
# variables or analysis fields
# Process: Group Similar Features
SS.SimilaritySearch("Crime_selection", "AllCrime", "CJMatches",
"NO_COLLAPSE", "MOST_SIMILAR", "ATTRIBUTE_VALUES", 4,
"HEIGHT;WEIGHT;SEVERITY;DST2CHPSHP", "Name;WEAPON")
except:
# If an error occurred when running the tool, print out the error message.
print(arcpy.GetMessages())
Environments
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да