当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python ArcGIS join_features用法及代码示例


本文简要介绍 python 语言中 arcgis.features.analysis.join_features 的用法。

用法:

arcgis.features.analysis.join_features(target_layer, join_layer, spatial_relationship=None, spatial_relationship_distance=None, spatial_relationship_distance_units=None, attribute_relationship=None, join_operation='JoinOneToOne', summary_fields=None, output_name=None, context=None, gis=None, estimate=False, future=False, join_type='INNER', records_to_match=None)

返回:

result_layer:如果指定了output_name,则为 FeatureLayer ,否则为 FeatureCollection

join_features.png

join_features 方法适用于两个图层,并根据空间和属性关系将属性从一个要素连接到另一个要素。

Parameter

Description

target_layer

必需的层。将具有来自join_layer 的属性附加到其表的点、线、多边形或表层。请参阅特征输入。

join_layer

必需的层。将连接到 target_layer 的点、线、多边形或表格图层。请参阅特征输入。

spatial_relationship

如果不是表格图层,则为必需字符串。定义用于空间连接要素的空间关系。

选择列表:[‘identicalto’, ‘intersects’, ‘completelycontains’, ‘completelywithin’, ‘withindistance’]

spatial_relationship_distance

可选浮点数。用于搜索距离的浮点值,以确定目标要素是否在某个范围内或附近

(如果spatial_relationship 在距离内,则为必需)

连接要素的指定距离。这仅适用于在选定的 spatial_relationship 的距离内。您只能输入一个距离值。距离值的单位由spatial_relationship_distance_units 参数提供。

spatial_relationship_distance_units

可选字符串。与 spatial_relationship_distance 中指定的距离值一起使用的线性单位。

(如果spatial_relationship 在距离内,则为必需)

选择列表:['Miles'、'Yards'、'Feet'、'NauticalMiles'、'Meters'、'Kilometers']

默认为“里程”。

attribute_relationship

可选的字典列表。定义用于连接要素的属性关系。当连接图层中的字段值等于目标图层中的字段值时,要素匹配。

join_operation

可选字符串。表示将应用的联接类型的字符串

选择列表:[‘JoinOneToOne’, ‘JoinOneToMany’]

  • JoinOneToOne - 如果发现多个连接要素与单个目标要素具有相同的关系,则将使用指定的汇总统计信息聚合多个连接要素的属性。例如,如果在两个单独的面连接要素中找到点目标要素,则两个面的属性将在传输到输出点要素类之前进行聚合。如果一个面的属性值为 3,另一个面的属性值为 7,并且选择了 SummaryField 总和,则输出要素类中的聚合值将为 10。始终会计算一个 Count 字段,其中对于指定的要素数量,值为 2。这是默认设置。

  • JoinOneToMany - 如果发现多个连接要素与单个目标要素具有相同的关系,则输出要素类将包含目标要素的多个副本(记录)。例如,如果在两个单独的多边形连接要素中找到一个点目标要素,则输出要素类将包含目标要素的两个副本:一个记录具有第一个多边形的属性,另一个记录具有第二个多边形的属性多边形。没有使用此方法计算的汇总统计数据。

summary_fields

可选的字典列表。要计算的字段名称和统计汇总类型的列表。请注意,默认情况下始终返回计数。

fieldName 是在输入连接层中找到的数字字段之一的名称。

statisticType 是以下之一:

  • SUM - 将每个多边形中所有点的总值相加

  • MEAN - 计算每个多边形中所有点的平均值

  • MIN - 找到每个多边形中所有点的最小值

  • MAX - 找到每个多边形中所有点的最大值

  • STDDEV - 找出每个多边形中所有点的标准差

output_name

可选字符串或 FeatureLayer 。现有要素图层将导致新图层附加到要素服务。如果 overwrite 在上下文中为 True,则新层将覆盖现有层。如果未指示output_name,则创建新的 FeatureCollection

context

可选字典。处理范围和输出空间参考等附加设置。对于join_features,有三个设置。

  • extent - 定义分析区域的边界框。仅分析input_layer 中与边界框相交的那些特征。

  • outSR - 输出要素将投影到 wkid 引用的输出空间参考中。

  • overwrite - 如果为 True,则 output_name 中的要素层将被新要素层覆盖。适用于 ArcGIS Online 或 Enterprise 10.9.1+

    # Example Usage
    context = {"extent": {"xmin": 3164569.408035,
                        "ymin": -9187921.892449,
                        "xmax": 3174104.927313,
                        "ymax": -9175500.875353,
                        "spatialReference":{"wkid":102100,"latestWkid":3857}},
                "outSR": {"wkid": 3857},
                "overwrite": True}

estimate

可选的布尔值。如果为 True,将返回运行该操作的积分数。

future

可选布尔值。如果为 True,则将返回 future 对象,并且进程不会等待任务完成。默认为False,表示等待结果。

join_type

可选字符串。确定对数据集执行的连接类型。允许的值为 INNER 或 LEFT。

records_to_match

可选字典。定义两个特征如何连接。例子:

{“groupByFields”:””,
“orderByFields”:”objectid ASC”,
“topCount”:1}

例子:

# USAGE EXAMPLE: To summarize traffic accidents within each parcel using spatial relationship.
accident_count_in_each_parcel = join_features(target_layer=parcel_lyr,
                                              join_layer=traffic_accidents_lyr,
                                              spatial_relationship='intersects',
                                              summary_fields=[{"statisticType": "Mean", "onStatisticField": "Population"},
                                              output_name='join features',
                                              context={"extent":{"xmin":-9375809.87305117,"ymin":4031882.3806860778,"xmax":-9370182.196843527,"ymax":4034872.9794178144,"spatialReference":{"wkid":102100,"latestWkid":3857}}}, )

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 arcgis.features.analysis.join_features。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。