合并图层 (GeoAnalytics)

摘要

合并要素图层以创建单个输出图层。

此工具要求两个输入具有相同的几何类型(点、线或面)或者均为表格。如果一个图层上启用了时间,则另一个图层上也必须启用了时间,并且具有相同的时间类型(时刻或间隔)。结果将始终包含输入图层中的所有字段。默认情况下,将包含合并图层中的所有字段,或者可以指定自定义合并规则以定义生成的方案。以下为示例:

  • 您有三个图层分别表示英格兰、威尔士和苏格兰的行政边界,并希望使用一个图层来代表大不列颠。可以使用合并图层来合并区域并维护每个区域的所有字段。
  • 您有 2 个图层,其中包含相邻镇区的宗地信息。您希望将它们合并成单个图层,只保留这 2 个输入图层中名称和类型相同的字段。

插图

“合并图层”工作流示意图
将显示“合并图层”工作流示意图。

使用情况

  • 两个输入必须具有相同的几何类型(点、线或面)或者均为表格。

  • 两个输入必须具有相同的时间类型(时刻或间隔)或者均未启用时间。

  • 默认情况下,两个输入的所有字段都会复制到输出中。或者,可以重命名或移除合并图层中的字段,或者将合并图层中的字段与输入图层中的字段进行匹配。

    操作描述示例

    重命名

    字段将在输出中重命名。系统将显示一个文本框,您可以在其中指定新名称。

    您希望合并两个图层,并且每个图层都具有一个名为 COUNT 的字段。此字段在一个图层中表示个体计数,而在另一个图层中表示家庭计数。默认情况下,两个 COUNT 字段会合并,因为它们具有匹配的字段名称。使用重命名可将合并图层中该字段的名称更改为 MERGE_COUNT 以保持结果图层中的两个字段分开。

    移除

    字段将从输出中移除。

    您希望合并两个图层,但不想保留合并图层中的某些字段,例如 OBJECTID。使用移除可以阻止将这些字段写入结果图层并仅保留感兴趣的字段。

    匹配

    字段名保持不变。待合并图层的字段值将复制到匹配的输出字段。

    您希望合并两个调查结果表格图层。输入图层具有一个名为 Name 的字段,其中包含调查参与者的姓名。合并图层中的等效字段称为 Participant。使用匹配可表明这些字段是等效的,且两者在结果图层中将合并为一个名为 Name 的字段。

  • 如果输入图层和合并图层包含名称匹配但字段类型不匹配的字段,则除非两个字段类型可以成功合并,否则该工具将运行失败。如果输入字段是字符串字段且合并字段是数值字段,则这些字段将合并为输出图层中的单个字符串字段。如果输入字段是双精度字段且合并字段是数值字段,则这些字段将合并为输出图层中的单个双精度字段。在所有其他情况下,合并属性必须用于重命名或移除任一匹配字段才能运行该工具。

  • 您可以执行以下一个或两个操作来提高合并图层工具的性能:

    • 设置范围环境,以便仅分析感兴趣的数据。
    • 本地数据用于分析运行的位置。

  • 此地理处理工具由 ArcGIS GeoAnalytics Server 作为支持。 分析将在 GeoAnalytics Server 上完成,且结果将存储在 ArcGIS Enterprise 的内容中。

  • GeoAnalytics Server 工具运行时,GeoAnalytics Server 上的分析已完成。 要获得最佳性能,通过 ArcGIS Enterprise 门户上托管的要素图层或通过大数据文件共享,可以将数据用于 GeoAnalytics Server。 在分析开始之前,非 GeoAnalytics Server 本地数据将被转移到您的 GeoAnalytics Server。 这意味着运行工具需要更长时间,并且在某些情况下,从 ArcGIS ProGeoAnalytics Server 移动数据可能会失败。 失败的阈值取决于网络速度,以及数据的大小和复杂性。 建议您始终共享数据或创建大数据文件共享。

    了解有关将数据共享至您的门户的详细信息。

    了解有关通过 Server Manager 创建大数据文件共享的详细信息

参数

标注说明数据类型
输入图层

将与合并图层进行合并的点、线或面要素或者表格。

Record Set
合并图层

将与输入图层进行合并的点、线或面要素或者表格。合并图层必须包含与输入图层相同的要素类型和时间类型。

Record Set
输出名称

输出要素服务的名称。

String
合并属性
(可选)

用于描述如何修改合并图层中的字段并将其与输入图层中的字段相匹配的值列表。可以将输入图层中的所有字段写入输出图层。如果未定义合并属性,则会将合并图层中的所有字段写入输出图层。

如果某个字段存在于一个图层中但不存在于另一个图层中,则输出图层将仍包含这两个字段。对于不含该字段的输入要素,输出字段中将包含空值。例如,如果输入图层中含有名为 TYPE 的字段,但合并图层中不含有 TYPE,则输出图层中将含有 TYPE,但从合并图层复制的所有要素的 TYPE 值均将为空。

可以使用以下合并类型来控制将合并图层中的字段写入输出图层的方式:

  • 移除 - 合并图层字段将从输出图层中移除。
  • 重命名 - 合并图层字段将在输出中重命名。您无法将合并图层中的字段重命名为输入图层中的字段。要使字段名保持不变,请使用匹配选项。
  • 匹配 - 系统将重命名合并图层字段并将其与输入图层中的字段匹配。例如,输入图层中具有名为 CODE 的字段,同时合并图层中具有名为 STATUS 的字段。可将 STATUSCODE 进行匹配,随后输出中将包含 CODE 字段,其中含有从合并图层复制的要素所用的 STATUS 字段值。数值支持类型转换。不支持将数值字段与字符串字段进行匹配。

Value Table
Data Store
(可选)

指定将用于保存输出的 ArcGIS Data Store。 默认设置为时空大数据存储。 在时空大数据存储中存储的所有结果都将存储在 WGS84 中。 在关系数据存储中存储的结果都将保持各自的坐标系。

  • 时空大数据存储输出将存储在时空大数据存储中。 这是默认设置。
  • 关系数据存储输出将存储在关系数据存储中。
String

派生输出

标注说明数据类型
输出

包含来自输入图层和合并图层的合并要素和属性的输出图层。

记录集

arcpy.geoanalytics.MergeLayers(input_layer, merge_layer, output_name, {merging_attributes}, {data_store})
名称说明数据类型
input_layer

将与合并图层进行合并的点、线或面要素或者表格。

Record Set
merge_layer

将与输入图层进行合并的点、线或面要素或者表格。合并图层必须包含与输入图层相同的要素类型和时间类型。

Record Set
output_name

输出要素服务的名称。

String
merging_attributes
[[Merge Field, Action, Input Field],...]
(可选)

用于描述如何修改合并图层中的字段并将其与输入图层中的字段相匹配的值列表。可以将输入图层中的所有字段写入输出图层。如果未定义合并属性,则会将合并图层中的所有字段写入输出图层。

如果某个字段存在于一个图层中但不存在于另一个图层中,则输出图层将仍包含这两个字段。对于不含该字段的输入要素,输出字段中将包含空值。例如,如果输入图层中含有名为 TYPE 的字段,但合并图层中不含有 TYPE,则输出图层中将含有 TYPE,但从合并图层复制的所有要素的 TYPE 值均将为空。

可以使用以下合并类型来控制将合并图层中的字段写入输出图层的方式:

  • 移除 - 合并图层字段将从输出图层中移除。
  • 重命名 - 合并图层字段将在输出中重命名。您无法将合并图层中的字段重命名为输入图层中的字段。要使字段名保持不变,请使用匹配选项。
  • 匹配 - 系统将重命名合并图层字段并将其与输入图层中的字段匹配。例如,输入图层中具有名为 CODE 的字段,同时合并图层中具有名为 STATUS 的字段。可将 STATUSCODE 进行匹配,随后输出中将包含 CODE 字段,其中含有从合并图层复制的要素所用的 STATUS 字段值。数值支持类型转换。不支持将数值字段与字符串字段进行匹配。

Value Table
data_store
(可选)

指定将用于保存输出的 ArcGIS Data Store。 默认为 SPATIOTEMPORAL_DATA_STORE。 在时空大数据存储中存储的所有结果都将存储在 WGS84 中。 在关系数据存储中存储的结果都将保持各自的坐标系。

  • SPATIOTEMPORAL_DATA_STORE输出将存储在时空大数据存储中。 这是默认设置。
  • RELATIONAL_DATA_STORE输出将存储在关系数据存储中。
String

派生输出

名称说明数据类型
output

包含来自输入图层和合并图层的合并要素和属性的输出图层。

记录集

代码示例

MergeLayers 示例(Python 窗口)

以下 Python 窗口脚本演示了如何使用 MergeLayers 工具。

#-------------------------------------------------------------------------------
# Name: MergeLayers.py
# Description: Merge two layers containing parcel information.
#
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
inputFeatures = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/parcels_west/FeatureServer/0"
mergeFeatures = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/east_parcels/FeatureServer/0"
mergingAttributes = [["CODE", "MATCH", "ID"], ["globalid", "REMOVE"]]
outFS = "all_parcels"
dataStore = "SPATIOTEMPORAL_DATA_STORE"
# Execute Merge Layers
arcpy.geoanalytics.MergeLayers(inputFeatures, mergeFeatures, outFS, 
                               mergingAttributes, dataStore)

环境

特殊情况

输出坐标系

将用于分析的坐标系。 除非由该参数进行指定,否则将基于输入坐标系完成分析。 对于 GeoAnalytics Tools,最终结果将存储于 WGS84 中的时空数据存储之内。

许可信息

  • Basic: 需要 ArcGIS GeoAnalytics Server
  • Standard: 需要 ArcGIS GeoAnalytics Server
  • Advanced: 需要 ArcGIS GeoAnalytics Server

相关主题