标注 | 说明 | 数据类型 |
输入图层 | 包含要匹配的要素的参考图层(或图层上的选择)。该工具用于搜索与这些要素类似的其他要素。如果提供了多个要素,则会根据属性平均值进行匹配。 | Table View |
搜索图层 | 候选图层(或者图层上的选择)包含候选匹配要素。该工具会在这些候选要素中查找与输入图层参数最相似(或最不相似)的要素。 | Table View |
输出数据集 | 输出要素类的名称。输出要素类包含每个输入图层参数的记录,以及查找到的所有与解决方案相匹配的要素的记录。 | Feature Class; Table |
分析字段 | 表示匹配条件的数值属性列表。 | String |
最相似或最不相似 | 用于指定要查找的要素与输入图层参数最相似还是最不相似。
| String |
匹配方法 | 用于指定是根据值还是余弦关系进行匹配。
| String |
结果数 | 要查找的匹配解决方案的数量。输入 0 或一个大于搜索图层要素总数的数字,将返回所有候选要素的等级(最多 10,000 个)。 | Long |
追加字段 (可选) | 将包含输出的可选属性列表。例如,您可以包含名称标识符、分类字段或者日期字段。这些字段不用于确定相似性;它们包含在输出参数属性中仅供参考之用。默认情况下,将添加所有字段。 | Field |
摘要
根据要素属性识别与单个或多个输入要素最相似或者最不相似的候选要素。
插图
使用情况
可使用表格、点、线或面要素。
需要输入搜索(候选)图层。将根据输入(参考)位置的相似性为搜索图层中的要素划分等级。
如果输入图层中存在多个要素,可根据平均输入图层值进行匹配。例如,如果存在两个输入图层要素,并且其中一个分析字段属性为人口变量,那么工具会搜索人口数与平均人口值接近的搜索图层。例如,如果人口值为 100 和 102,那么工具会搜索人口数接近 101 的候选要素。
注:
如果存在多个输入图层,则请选择具有相似值的分析字段属性。例如,如果其中一个输入的人口值为 100,另一个为 100,000,则工具将搜索人口数接近两者平均值 50,050 的匹配。请注意,此平均值远未达到两个输入图层中任一图层的人口值。
可使用最相似或最不相似参数,分别通过最相似或最不相似选项来搜索与输入图层要素最相似的要素或者最不相似的要素。在某些情况下,您可能希望看见上述两者。例如,如果结果数参数值为 3 且最相似或最不相似参数值为二者,则工具将查找三个最相似和三个最不相似的候选要素。
输出要素中给出的任何匹配解决方案均是与目标输入图层最相似或最不相似的解决方案;单个解决方案不会同时出现两种情况(匹配的解决方案不会在输出要素中重复)。因此,如果最相似或最不相似参数值为二者,则可能出现的匹配结果的最大数量(结果数)将是搜索图层数量的一半。
- 最多将返回 10,000 个搜索图层要素。
匹配方法参数具有以下值选项:
- 属性值 - 最相似的候选要素会具有所有分析字段属性的最小平方差总和。计算差异之前,所有值均为标准化值。
- 属性剖面 - 将测量余弦相似性。余弦相似性将在标准化属性值间搜索相同关系,而并非尝试匹配量级。例如,假设有 A1、A2 和 A3 三个分析字段。A2 是 A1 的两倍,且 A3 与 A2 几乎相等。如果匹配方法参数值为属性剖面,该工具会搜索具有同样属性关系的候选要素:A2 是 A1 的两倍,A3 与 A2 几乎相等。由于该方法用于查找属性关系,您必须至少指定两个分析字段属性。您可以使用余弦相似性方法(属性剖面选项)来查找与洛杉矶相似但比例不同的地方;例如您对人口资料感兴趣的地方,这里车辆数与居民数的比值小于 20。余弦相似性的指数范围在 1.0(完全相似)和 -1.0(完全不相似)之间。将余弦相似性指数写入输出要素 simindex(余弦相似性)字段。
分析字段参数应为数值型字段,且必须以相同字段名称和字段类型同时存在于输入图层和搜索图层数据集中。如果该工具未找到与搜索图层对应的字段,则会出现一条警告,提示缺失的属性已从分析中删除。
将所有用于匹配的属性均写入输出。追加字段参数允许您指定要添加到输出表中的字段。默认情况下,将添加所有字段。使用追加字段参数从想要添加的搜索图层中选择指定字段。
所有输入图层和匹配的解决方案,以及分析字段和追加字段参数都将写入输出要素。此外,下列字段也包含在输出要素中:
字段名 描述 备注 location_type
用于指示要素是参考图层(输入)还是候选图层(搜索)的字符串。
simrank
如果选择最相似或二者作为最相似或最不相似参数值,则所有匹配的解决方案均按照从最相似到最不相似的顺序进行等级划分。最相似匹配解决方案的等级值为 1。
如果选择最相似或二者作为最相似或最不相似参数值,则该字段将仅包含在输出要素中。
dissimrank
如果为最相似或最不相似参数值选择了最不相似或二者,则所有匹配的解决方案均按照从最不相似到最相似的顺序进行等级划分。最不相似的解决方案的等级值为 1。
如果选择最不相似或二者作为最相似或最不相似参数值,则该字段将仅包含在输出要素中。
simindex
该字段量化了每个匹配解决方案与目标要素的相似程度。如果将属性值指定为匹配方法参数值,则该值表示值平方差总和。
有关如何计算该索引的详细信息,请参阅相似性搜索工作原理。
如果选择属性值作为匹配方法参数值,则该字段将仅包含在输出要素中。
cosimindex
该字段量化了每个匹配解决方案与目标要素的相似程度。如果将属性剖面指定为匹配方法参数值,则该值表示余弦相似性。
有关如何计算该索引的详细信息,请参阅相似性搜索工作原理。
如果选择属性剖面作为匹配方法参数值,则该字段将仅包含在输出要素中。
labelrank
该字段仅用于显示。此工具使用该字段为分析结果提供默认渲染。
reference_id
参考要素的唯一 ID 值。搜索要素被赋予空值。
search_id
搜索要素的唯一 ID 值。参考要素被赋予空值。
输出会自动添加到内容列表中,同时对 labelrank 字段应用默认渲染。
您可以使用以下一个或多个提示来提升查找相似位置工具的性能:
- 设置范围环境,以便仅分析感兴趣的数据。
- 仅为参考图层选择几个要素。
- 将本地数据用于分析运行的位置。
此地理处理工具由 Spark 支持。 分析在您的台式计算机上使用多核并行完成。 有关运行分析的详细信息,请参阅 GeoAnalytics Desktop 工具的注意事项。
运行 GeoAnalytics Desktop 工具时,分析在您的台式计算机上完成。 为获得最佳性能,应在台式计算机上提供数据。 如果使用的是托管要素图层,则建议您使用 ArcGIS GeoAnalytics Server。 如果数据不是本地数据,则工具需要更长的运行时间。 要使用 ArcGIS GeoAnalytics Server 执行分析,请参阅 GeoAnalytics Tools。
类似的分析也可使用 ArcGIS AllSource 中的“空间统计”工具箱中的相似性搜索工具来完成。
参数
arcpy.geoanalytics.FindSimilarLocations(input_layer, search_layer, output, analysis_fields, most_or_least_similar, match_method, number_of_results, {append_fields})
名称 | 说明 | 数据类型 |
input_layer | 包含要匹配的要素的参考图层(或图层上的选择)。该工具用于搜索与这些要素类似的其他要素。如果提供了多个要素,则会根据属性平均值进行匹配。 | Table View |
search_layer | 候选图层(或者图层上的选择)包含候选匹配要素。该工具会在这些候选要素中查找与 input_layer 参数最相似(或最不相似)的要素。 | Table View |
output | 输出数据集包含每个 input_layer 参数值的记录,以及查找到的所有与解决方案相匹配的要素的记录。 | Feature Class; Table |
analysis_fields [analysis_fields,...] | 表示匹配条件的数值属性列表。 | String |
most_or_least_similar | 用于指定要查找的要素与 input_layer 参数最相似还是最不相似。
| String |
match_method | 用于指定是根据值还是余弦关系进行匹配。
| String |
number_of_results | 要查找的匹配解决方案的数量。输入 0 或一个大于 search_layer 要素总数的数字,将返回所有候选要素的等级(最多 10,000 个)。 | Long |
append_fields [append_fields,...] (可选) | 将包含输出的可选属性列表。例如,您可以包含名称标识符、分类字段或者日期字段。这些字段不用于确定相似性;它们包含在输出参数属性中仅供参考之用。默认情况下,将添加所有字段。 | Field |
代码示例
以下 Python 窗口脚本演示了如何使用 FindSimilarLocations 函数。
#-------------------------------------------------------------------------------
# Name: FindSimilarLocations.py
# Description: Find Similar stores to a top performing store
# Import system modules
import arcpy
arcpy.env.workspace = "C:/data/SalesData.gdb"
# Set local variables
referenceStore = "TopPerformer"
candidateStores = "AllStores"
analysisFields = [ "SickDays", "TotalCustomers", "AvgPurchaseAmount"]
outputName = "BestStores_10"
# Run Find Similar Locations
arcpy.gapro.FindSimilarLocations(referenceStore, candidateStores,
outputName, analysisFields,
"MOST_SIMILAR", "ATTRIBUTE_VALUES", 10)