注:
目前,此功能仅在 Map Viewer 经典版(之前称为 Map Viewer)中受支持。 该功能将在新 Map Viewer 的未来版本中提供。
查找相似位置工具用于根据要素属性识别与单个或多个输入要素最相似或者最不相似的候选要素。
工作流示意图
使用 GeoAnalytics Tools 进行的分析
通过跨多个 ArcGIS GeoAnalytics Server 计算机和核心组件的分布式处理来运行使用 GeoAnalytics Tools 进行的分析。GeoAnalytics Tools 和 ArcGIS Enterprise 中标准要素分析工具的参数和功能不同。要了解有关这些差别的详细信息,请参阅要素分析工具差别。
示例
用于根据客户资料确定与绩效最佳的商店最为相似的商店。
基于疾病肆虐最严重的村庄所具有的各项特征,其他哪些村庄具有较高的风险?
某个城镇的课外健身计划极其成功。 计划提倡者期望找到与其计划推广的候选城镇具有相似特征的其他城镇。
犯罪分析师希望搜索所有犯罪的数据库以查看某近期罪行是否属于较重犯罪形式或有重罪趋势。
某位人力资源经理可能想要证明其公司薪资水平的合理性。 找出在城市规模、生活成本和便利设施方面相似的城市后,她便可以查看感兴趣城市的薪资水平,从而确定它们是否与本公司的薪资水平一致。
用法说明
可使用表格、点、线或面要素。
可通过使用输入图层中的所有要素或通过选择要素来创建参考。 可以使用选择按钮 或通过使用查询按钮 的过滤器进行交互选择。 使用选择按钮可以选定或取消选定多个要素。 只能使用一个查询在参考图层上进行选择。
需要输入候选图层。 将根据参考位置的相似性为候选图层中的要素划分等级。
等级相似性基于相似性依据参数中指定的字段。 可指定多个字段。 只能选择名称与参考图层匹配的的数值字段。 要素的等级数越低,参考图层的相似性就越高。
默认情况下,会将候选位置图层中的所有要素(最多可达 10000 个)从最相似到最不相似进行等级划分。 可使用详情参数来指定您要返回的要素数量。
确定最相似和最不相似使用的参数可用于指定要素匹配的方式。 您可以选择字段值或字段剖面。
- 对于字段值而言,最相似的候选要素会具有所有作为相似性依据的要素的最小平方差总和;在计算差异之前所有值都已标准化。
- 对于字段剖面而言,将测量余弦相似性。 余弦相似性将在标准化属性值间查找相同关系,而并非尝试匹配量级。 例如,您将在相似性依据参数中使用 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 值。 搜索要素被赋予空值。 | 该值是在 ArcGIS Enterprise 10.6.1 中引入的。 |
search_id | 搜索值要素的唯一 ID 值。 参考要素被赋予空值。 | 该值是在 ArcGIS Enterprise 10.6.1 中引入的。 |
在 ArcGIS Enterprise 10.6.1 中,项目详细信息页面为您提供了一份相似性计算汇总。 汇总中包括以下内容:
- 输入要素汇总 - 用作参考要素的一个或多个要素的统计汇总。 如果使用多个要素,则此项为平均值。 计算过程中使用的每个字段都以行的形式呈现。
- 感兴趣属性汇总 - 搜索要素的统计汇总。 计算过程中使用的每个字段都以行的形式呈现。
- 第三个表格表示最为匹配的搜索要素。 此表格最多将显示 50 个要素,尽管可能存在更多的匹配要素。 该表显示了上表中列出的 search_id、simrank 和 simindex 值。
局限性
- 参考图层和候选图层必须至少有一个具有匹配名称的数值字段。
- 使用字段剖面方法时,参考图层和候选图层必须至少有两个具有匹配名称的数值字段。
“查找相似位置”的工作原理
要使用查找相似位置工具,您需要提供参考位置、候选搜索位置和表示匹配条件的字段。 针对分析选择的图层必须包含参考位置或基准位置。 例如,参考位置可能是包含绩效最佳的商店或遭受最严重疾病的村庄所在的图层。 然后指定包含候选搜索位置的图层。 这可能是所有商店或所有其他村庄。 最后,标识出一个或多个用来测量相似性的字段。 随后,查找相似位置工具将在所有已选字段中,按候选搜索位置与参考位置之间的相近程度,为所有候选搜索位置划分等级。
某些情况下,分析图层将同时包含参考位置和候选搜索位置。 例如您可能拥有一个包含所有商店的图层,并希望按照与绩效最佳的商店的相似程度,将这些商店从最相似到最不相似进行等级划分。 将商店图层同时用作分析图层和候选搜索图层。 然后必须使用其中一个选择工具标识出哪个商店是绩效最佳的商店。 可使用交互式查询或通过构建查询来选择参考位置。 此外,由于创建了商店图层的副本,所以在内容列表中存在两个版本。 单击第一个副本下方的过滤器按钮,然后定义一个过滤器以选择绩效最佳的商店。 然后单击第二个图层下方的过滤器按钮并定义一个过滤器以选择候选搜索位置(可以是除绩效最佳商店以外的所有商店)。 第一个图层为分析图层(单击图层下方的执行分析或地图顶部的分析按钮,然后展开查找位置类别以浏览至查找相似位置)。 针对在以下位置中搜索相似位置参数指定第二个图层。 这些是您的候选搜索位置。
在其他情况下,您将具有单独的参考图层和候选搜索图层。 您可能具有包含绩效最佳商店以及描述商店客源的字段(例如中值收入和婚姻状况字段)的商店图层,还可能包括一个可用于确定建造新商店的最佳位置的候选宗地图层。 在这种情况下,如果参考位置图层不仅包含参考位置,则您必须首先使用上述选择工具之一标识参考位置。 如果图层仅包含参考位置(例如绩效最佳的商店),则您无需进行选择。 您将指定用于候选搜索位置的宗地图层(参数 2)。 如果宗地和绩效最佳的商店均具有描述客源的字段,您可以运行查找相似位置来标识其人口特征与绩效最佳商店的客户最为相似的候选宗地。
如果存在多个参考位置,相似性将取决于指定字段的平均值。 例如,如果存在两个参考位置,并且您对匹配人口十分感兴趣,则工具将查找人口值与两参考位置的平均人口值最接近的候选搜索位置。 例如,如果参考位置的值分别为 100 和 102,则工具将查找人口接近于 101 的候选搜索位置。因此,您希望选择具有相似值的参考位置字段。 例如,如果其中一个参考位置的人口值为 100,另一个为 100,000,则工具将查找人口值接近两者平均值 50,050 的候选搜索位置。注意,该平均值与任一参考位置的人口值不接近。
ArcGIS API for Python 示例
可通过 ArcGIS API for Python 获取查找相似位置工具。
本示例可根据当前的顶部位置及其属性查找潜在的零售点位置。
# Import the required ArcGIS API for Python modules
import arcgis
from arcgis.gis import GIS
from arcgis.geoanalytics import find_locations
# Connect to your ArcGIS Enterprise portal and confirm that GeoAnalytics is supported
portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password", verify_cert=False)
if not portal.geoanalytics.is_supported():
print("Quitting, GeoAnalytics is not supported")
exit(1)
# Find the feature layer containing the stores and filter to obtain stores in the top percentile
stores_search_result = portal.content.search("Stores", "Feature Layer")
stores_layer = stores_search_result[0].layers[0]
stores_layer.filter = "top_percentile = 'true'"
# Find the feature layer you'll use to search for similar locations
locations_search_result = portal.content.search("PotentialLocations", "Feature Layer")
locations = locations_search_result[0].layers[0]
# Run the Find Similar Locations tool
similar_location_result = find_locations.find_similar_locations(input_layer = stores_layer,
search_layer = locations,
analysis_fields = "median_income, population, nearest_competitor",
most_or_least_similar = "MostSimilar",
match_method = "AttributeValues",
number_of_results = 50,
output_name = "similar_locations")
# Visualize the tool results if you are running Python in a Jupyter Notebook
processed_map = portal.map('Europe')
processed_map.add_layer(similar_location_result)
processed_map
类似工具
可以使用查找相似位置工具来测量候选图层和参考图层中位置的相似性。 其他工具或许在解决略有差异的类似问题时十分有用。
Map Viewer 经典版 分析工具
如需使用标准分析工具查找相似地点,请参阅查找相似地点。
如果尝试使用查询选择现有位置,请使用标准查找现有位置工具。
如果尝试使用查询创建新要素,请使用标准派生新位置工具。
ArcGIS Pro 分析工具
GeoAnalytics Tools 查找相似位置 在 ArcGIS Pro 中可用。